scala / scala3

The Scala 3 compiler, also known as Dotty.
https://dotty.epfl.ch
Apache License 2.0
5.81k stars 1.05k forks source link

"sbt doc" AssertionError when extending Iterator[_] (scala3) #16290

Closed nigeleke closed 1 year ago

nigeleke commented 1 year ago

Compiler version

3.2.0 & 3.2.1

Minimized code

object Foo extends Iterator[String]:
  override def hasNext: Boolean = ???
  override def next(): String        = ???

Output

First few lines of stack trace:

[info] welcome to sbt 1.7.1 (Oracle Corporation Java 17.0.1)
[info] loading global plugins from ...\.sbt\1.0\plugins
[info] loading project definition from ...\docfailexample\project
[info] loading settings for project root from build.sbt ...
[info] set current project to docfailexample (in build file:/.../docfailexample/)
[success] Total time: 0 s, completed 5 Nov 2022, 2:50:24 pm
[info] compiling 1 Scala source to ...\docfailexample\target\scala-3.2.0\classes ...
[info] Main Scala API documentation to ...\docfailexample\target\scala-3.2.0\api...
[info] Skipping unused scalacOptions: -Werror
Problem parsing src\main\scala\Main.scala:<0..124>, documentation may not be generated.
java.lang.AssertionError: assertion failed
  | => rat scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:11)
        at dotty.tools.dotc.util.Spans$Span$.start$extension(Spans.scala:45)
        at dotty.tools.dotc.util.SourcePosition.start(SourcePosition.scala:52)
        at scala.quoted.runtime.impl.QuotesImpl$reflect$PositionMethods$.start(QuotesImpl.scala:2813)
        at scala.quoted.runtime.impl.QuotesImpl$reflect$PositionMethods$.start(QuotesImpl.scala:2813)
        at dotty.tools.scaladoc.tasty.ClassLikeSupport.getParentsAsTreeSymbolTuples$$anonfun$1(ClassLikeSupport.scala:260)
        at scala.collection.Iterator$$anon$6.hasNext(Iterator.scala:472)
        at scala.collection.Iterator$$anon$9.hasNext(Iterator.scala:576)
        at scala.collection.immutable.List.prependedAll(List.scala:152)
        at scala.collection.immutable.List$.from(List.scala:684)
        at scala.collection.immutable.List$.from(List.scala:681)
        at scala.collection.IterableOps$WithFilter.map(Iterable.scala:891)

Expectation

An AssertionError is generated. The task completes with warning, but no documentation is generated. The stack trace is unexpected. I would expect documentation would be generated & no AssertionError.

Notes

sbt 1.7.1

The error only occurs with extends Iterator[String] and not other extends, e.g. extends Iterable[String].

Original reported here: https://github.com/sbt/sbt/issues/7065

Error also occurs with scaladoc command.

SethTisue commented 1 year ago

looks like a duplicate of #15927