Skip to content

Scaladoc regression for references to scala.concurrent #26627

Description

@WojciechMazur

Based on the OpenCB failure in rjolly/scas - build logs

Compiler version

Last good release: 3.9.0-RC1-bin-20260428-9cfa0dd-NIGHTLY
First bad release: 3.9.0-RC1-bin-20260429-88140bc-NIGHTLY

Bisect points to d9b4251 / #25373

Minimized code

import scala.concurrent.{ExecutionContext, CanAwait, Future}
import scala.concurrent.duration.Duration
import scala.util.{Try, Success}

class Lazy[+T](body: => T) extends Future[T] {
  lazy val await = body
  def value = Some(Success(await))
  def isCompleted = true

  def onComplete[U](func: Try[T] => U)(using executor: ExecutionContext) = ???
  def ready(atMost: Duration)(using permit: CanAwait) = ???
  def result(atMost: Duration)(using permit: CanAwait) = ???
  override def map[S](f: T => S)(using executor: ExecutionContext) = ???
  override def flatMap[S](f: T => Future[S])(using executor: ExecutionContext) = ???
  def transform[S](f: Try[T] => Try[S])(using executor: ExecutionContext): Future[S] = ???
  def transformWith[S](f: Try[T] => Future[S])(using executor: ExecutionContext): Future[S] = ???
}

Output

❯ scala doc test.scala -S 3.9.0-RC4 -f
Compiling project (Scala 3.9.0-RC4, JVM (25))
Compiled project (Scala 3.9.0-RC4, JVM (25))
Option -classpath was updated
-- Warning: test.scala:11:6 ----------------------------------------------------
11 |  def ready(atMost: Duration)(using permit: CanAwait) = ???
   |      ^
   |      Couldn't resolve a member for the given link query: Await.ready
-- Warning: test.scala:12:6 ----------------------------------------------------
12 |  def result(atMost: Duration)(using permit: CanAwait) = ???
   |      ^
   |      Couldn't resolve a member for the given link query: Await.result
an identifier expected, but $XMLSTART$< found
-- Error: test.scala:10:10 -----------------------------------------------------
10 |  def onComplete[U](func: Try[T] => U)(using executor: ExecutionContext) = ???
   |          ^
   |          Not found: ExecutionContext
-- Error: test.scala:10:27 -----------------------------------------------------
10 |  def onComplete[U](func: Try[T] => U)(using executor: ExecutionContext) = ???
   |                           ^
   |              (<error Not found: ExecutionContext>#Implicits :
   |                <error Not found: ExecutionContext>) is not a legal path
   |              since it is not a concrete type
-- Error: test.scala:10:12 -----------------------------------------------------
10 |  def onComplete[U](func: Try[T] => U)(using executor: ExecutionContext) = ???
   |            ^
   |            Not found: Future
3 warnings found
4 errors found

Expectation

Both warnings and errors should not be present as these are explicitlly imported

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions