You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[error] java.lang.ArrayIndexOutOfBoundsException: 150
[error] at scala.reflect.internal.util.BatchSourceFile.findLine$1(SourceFile.scala:199)
[error] at scala.reflect.internal.util.BatchSourceFile.offsetToLine(SourceFile.scala:202)
[error] at xsbt.DelegatingReporter$.lineOf$1(DelegatingReporter.scala:99)
[error] at xsbt.DelegatingReporter$.makePosition$1(DelegatingReporter.scala:112)
[error] at xsbt.DelegatingReporter$.convert(DelegatingReporter.scala:134)
[error] at xsbt.DelegatingReporter.info0(DelegatingReporter.scala:165)
[error] at xsbt.DelegatingReporter.info0(DelegatingReporter.scala:142)
[error] at scala.reflect.internal.Reporter.warning(Reporting.scala:90)
[error] at scala.tools.nsc.doc.ScaladocAnalyzer$ScaladocTyper.$anonfun$typedDocDef$1(ScaladocAnalyzer.scala:48)
[error] at scala.tools.nsc.doc.ScaladocAnalyzer$ScaladocTyper.typedDocDef(ScaladocAnalyzer.scala:45)
I believe the bug would be fixed by:
diff --git a/src/compiler/scala/tools/nsc/ast/DocComments.scala b/src/compiler/scala/tools/nsc/ast/DocComments.scala
index c2e8f8e01e..243dc91726 100644
--- a/src/compiler/scala/tools/nsc/ast/DocComments.scala+++ b/src/compiler/scala/tools/nsc/ast/DocComments.scala@@ -415,7 +415,7 @@ trait DocComments { self: Global =>
if (pos == NoPosition) NoPosition
else {
val start1 = pos.start + start
- val end1 = pos.end + end+ val end1 = pos.start + end
pos withStart start1 withPoint start1 withEnd end1
}
Use case handling in Scaladoc is something of a dead feature anyway as the Scala 2.13.x collection design doesn't call for them.
Here is the Zinc change that introduces the conversion from the (bogus) end position to a line which crashes with an AIOOBE. A bug fix in this area could also include a softer failure mode for such a conversion (e.g. just return the last line of the file.)
Workaround is to add padding to the end of the file to make sure the number of characters from @usecase ... */ is less than that from the */ ... EOF.
The text was updated successfully, but these errors were encountered:
Fixessbt#734
Ref scala/bug#11865
When `ArrayIndexOutOfBoundsException` is encountered, this will use startLine and startColumn as fallback. This is probably cheaper than trying to figure out the EOL position.
Fixessbt#734
Ref scala/bug#11865
When `ArrayIndexOutOfBoundsException` is encountered, this will use startLine and startColumn as fallback. This is probably cheaper than trying to figure out the EOL position.
Fixessbt/zinc#734
Ref scala/bug#11865
When `ArrayIndexOutOfBoundsException` is encountered, this will use startLine and startColumn as fallback. This is probably cheaper than trying to figure out the EOL position.
Rewritten from sbt/zinc@4c33afe
Reproduction and details in in https://github.com/retronym/sbt-scaladoc-aioooe.
The failure mode is:
I believe the bug would be fixed by:
Use case handling in Scaladoc is something of a dead feature anyway as the Scala 2.13.x collection design doesn't call for them.
Here is the Zinc change that introduces the conversion from the (bogus) end position to a line which crashes with an AIOOBE. A bug fix in this area could also include a softer failure mode for such a conversion (e.g. just return the last line of the file.)
Workaround is to add padding to the end of the file to make sure the number of characters from
@usecase ... */
is less than that from the*/ ... EOF
.The text was updated successfully, but these errors were encountered: