scala / scala3

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

Compile crashes if a specific Scala source file is (mistakenly) placed in java source directory #20022

Open Zschimmer opened 7 months ago

Zschimmer commented 7 months ago

Compiler version

Scala 3.3.3 sbt 1.9.9 Java 21.0.2

Minimized code

I am sorry, it’s not easy to minimize it. It happened after a merge commit. I reduced to a single code line which switches the crash on and off.

Also, due to a mistake, this Scala source file is placed in a java source directory. If I move the file to the corresponding scala source directory, the compiler succeeds.

How to reproduce

It's reproducible with

git clone git@github.com:sos-berlin/js7 --branch topic/compiler-crash
cd js7
sbt Test/compile

(the compilation takes two minutes)

The single line which switches the crash on and off is in the file js7-tests/src/test/java/js7/tests/controller/proxy/ScalaCompilerKnockOut.scala, the word controllerAdmission.

When you prefix this line with a comment, and clean and compile again, the compilation succeed. Same result, if you move the file from the java to the scala source code directory.

It’s enough to clean and recompile the js7-tests subproject. Clean is required, otherwise the incremental compilation may succeed, while a clean compilation does not succeed.

js7-tests/clean
js7-tests/Test/compile

Output (click arrow to expand)

The compilations errors occur only if this 'controllerAdmission' line is active.

There are some warnings about unused imports, which are required for compilation, nevertheless. This is something else.

(IntelliJ IDEA is not happy with the code, because build.sbt still contains crossproject subprojects.)

```scala [error] -- [E046] Cyclic Error: /.../dev/js7-clone/js7-tests/src/test/scala/js7/tests/testenv/DirectoryProvider.scala:58:7 [error] 58 |import scala.concurrent.duration.* [error] | ^ [error] | Cyclic reference involving class DirectoryProvider [error] |---------------------------------------------------------------------------- [error] | Explanation (enabled by `-explain`) [error] |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [error] | class DirectoryProvider is declared as part of a cycle which makes it impossible for the [error] | compiler to decide upon DirectoryProvider's type. [error] | To avoid this error, try giving DirectoryProvider an explicit type. [error] ---------------------------------------------------------------------------- [error] Explanation [error] =========== [error] class DirectoryProvider is declared as part of a cycle which makes it impossible for the [error] compiler to decide upon DirectoryProvider's type. [error] To avoid this error, try giving DirectoryProvider an explicit type. [error] -- [E008] Not Found Error: /.../dev/js7-clone/js7-tests/src/test/scala/js7/tests/ForkListRecoveryTest.scala:51:9 [error] 46 | childOrderIds.toVector [error] 47 | .traverse(childOrderId => [error] 48 | controller.eventWatch [error] 49 | .awaitAsync[OrderPrompted](_.key == childOrderId) [error] 50 | .*>(controller.api.executeCommand(AnswerOrderPrompt(childOrderId)))) [error] 51 | .await(99.s) [error] | ^ [error] |value await is not a member of Vector[Vector[Nothing]]. [error] |An extension method was tried, but could not be fully constructed: [error] | [error] | js7.base.thread.CatsBlocking.syntax.await() [error] | [error] | failed with: [error] | [error] | value await: does not take parameters [error] -- [E007] Type Mismatch Error: /.../dev/js7-clone/js7-tests/src/test/scala/js7/tests/ReleaseEventsTest.scala:55:6 [error] 55 | env.writeExecutable(TestPathExecutable, script(0.s)) [error] | ^^^ [error] |Found: (env : Nothing) [error] |Required: ?{ writeExecutable: ? } [error] |Note that implicit conversions were not tried because the result of an implicit conversion [error] |must be more specific than ?{ writeExecutable: [applied to (TestPathExecutable, [error] | js7.tests.testenv.DirectoryProvider.script(0.s)) returning U] } [error] |---------------------------------------------------------------------------- [error] | Explanation (enabled by `-explain`) [error] |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [error] | [error] | Tree: env [error] | I tried to show that [error] | (env : Nothing) [error] | conforms to [error] | ?{ writeExecutable: ? } [error] | but the comparison trace ended with `false`: [error] | [error] | ==> (env : Nothing) <: ?{ writeExecutable: ? } [error] | <== (env : Nothing) <: ?{ writeExecutable: ? } = true [error] | [error] | The tests were made under a constraint with: [error] | uninstantiated variables: U, U [error] | constrained types: [error] | [U] [error] | (f: ((js7.data.agent.AgentPath, [error] | #concurrent. [error] | duration.DirectorEnv [error] | )) => U): Unit [error] | , [error] | [U] [error] | (f: ((js7.data.agent.AgentPath, [error] | #concurrent. [error] | duration.DirectorEnv [error] | )) => U): Unit [error] | bounds: [error] | U [error] | U [error] | ordering: [error] | co-deps: [error] | contra-deps: [error] ---------------------------------------------------------------------------- [error] Explanation [error] =========== [error] [error] Tree: env [error] I tried to show that [error] (env : Nothing) [error] conforms to [error] ?{ writeExecutable: ? } [error] but the comparison trace ended with `false`: [error] [error] ==> (env : Nothing) <: ?{ writeExecutable: ? } [error] <== (env : Nothing) <: ?{ writeExecutable: ? } = true [error] [error] The tests were made under a constraint with: [error] uninstantiated variables: U, U [error] constrained types: [error] [U] [error] (f: ((js7.data.agent.AgentPath, [error] #concurrent. [error] duration.DirectorEnv [error] )) => U): Unit [error] , [error] [U] [error] (f: ((js7.data.agent.AgentPath, [error] #concurrent. [error] duration.DirectorEnv [error] )) => U): Unit [error] bounds: [error] U [error] U [error] ordering: [error] co-deps: [error] contra-deps: [error] -- [E007] Type Mismatch Error: /.../dev/js7-clone/js7-tests/src/test/scala/js7/tests/ReleaseEventsTest.scala:72:13 [error] 72 | import controller.eventWatch.{lastFileEventId, tornEventId} [error] | ^^^^^^^^^^ [error] |Found: (controller : Nothing) [error] |Required: ?{ eventWatch: ? } [error] |Note that implicit conversions were not tried because the result of an implicit conversion [error] |must be more specific than ?{ eventWatch: a type that can be selected or applied } [error] |---------------------------------------------------------------------------- [error] | Explanation (enabled by `-explain`) [error] |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (too long, shortend) [error] ## Exception when compiling 202 sources to /.../dev/js7-clone/js7-tests/target/scala-3.3.3/test-classes [error] java.lang.AssertionError: assertion failed: NoType [error] scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8) [error] dotty.tools.dotc.core.Types$TypeBounds.(Types.scala:5178) [error] dotty.tools.dotc.core.Types$AliasingBounds.(Types.scala:5257) [error] dotty.tools.dotc.core.Types$TypeAlias.(Types.scala:5279) [error] dotty.tools.dotc.core.Types$TypeAlias$.apply(Types.scala:5316) [error] dotty.tools.dotc.core.Types$Type.bounds(Types.scala:1756) [error] dotty.tools.dotc.typer.Typer$$anon$9.apply(Typer.scala:4322) [error] dotty.tools.dotc.typer.Typer.checkEqualityEvidence(Typer.scala:4342) [error] dotty.tools.dotc.typer.Typer.adaptNoArgsOther$1(Typer.scala:3959) [error] dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:4071) [error] dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:4277) [error] dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3590) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Applications.$anonfun$18(Applications.scala:1455) [error] scala.collection.LazyZip2$$anon$1$$anon$2.next(LazyZipOps.scala:42) [error] scala.collection.immutable.List.prependedAll(List.scala:153) [error] scala.collection.immutable.List$.from(List.scala:684) [error] scala.collection.immutable.List$.from(List.scala:681) [error] scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:115) [error] scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:112) [error] scala.collection.LazyZip2.map(LazyZipOps.scala:37) [error] dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1455) [error] dotty.tools.dotc.typer.Applications.typedUnApply$(Applications.scala:352) [error] dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:117) [error] dotty.tools.dotc.typer.Typer.typedInfixOp(Typer.scala:2932) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3089) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Applications.$anonfun$18(Applications.scala:1455) [error] scala.collection.LazyZip2$$anon$1$$anon$2.next(LazyZipOps.scala:42) [error] scala.collection.immutable.List.prependedAll(List.scala:156) [error] scala.collection.immutable.List$.from(List.scala:684) [error] scala.collection.immutable.List$.from(List.scala:681) [error] scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:115) [error] scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:112) [error] scala.collection.LazyZip2.map(LazyZipOps.scala:37) [error] dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1455) [error] dotty.tools.dotc.typer.Applications.typedUnApply$(Applications.scala:352) [error] dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:117) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedPattern(Typer.scala:3323) [error] dotty.tools.dotc.typer.Typer.typedCase(Typer.scala:1887) [error] dotty.tools.dotc.typer.Typer.typedCases$$anonfun$1(Typer.scala:1820) [error] dotty.tools.dotc.core.Decorators$.loop$1(Decorators.scala:94) [error] dotty.tools.dotc.core.Decorators$.mapconserve(Decorators.scala:110) [error] dotty.tools.dotc.typer.Typer.typedCases(Typer.scala:1822) [error] dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1812) [error] dotty.tools.dotc.typer.Applications.harmonic(Applications.scala:2333) [error] dotty.tools.dotc.typer.Applications.harmonic$(Applications.scala:352) [error] dotty.tools.dotc.typer.Typer.harmonic(Typer.scala:117) [error] dotty.tools.dotc.typer.Typer.typedMatchFinish(Typer.scala:1812) [error] dotty.tools.dotc.typer.Typer.typedMatch(Typer.scala:1746) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3064) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1656) [error] dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1646) [error] dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1656) [error] dotty.tools.dotc.typer.Namer.typedAheadRhs$1$$anonfun$1(Namer.scala:1909) [error] dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) [error] dotty.tools.dotc.typer.Namer.typedAheadRhs$1(Namer.scala:1909) [error] dotty.tools.dotc.typer.Namer.rhsType$1(Namer.scala:1917) [error] dotty.tools.dotc.typer.Namer.cookedRhsType$1(Namer.scala:1935) [error] dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1936) [error] dotty.tools.dotc.typer.Namer.inferredResultType(Namer.scala:1947) [error] dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1694) [error] dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1701) [error] dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:787) [error] dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:934) [error] dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:814) [error] dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:174) [error] dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:187) [error] dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:189) [error] dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:393) [error] dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2991) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3016) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) [error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] dotty.tools.dotc.typer.Typer.$anonfun$57(Typer.scala:2486) [error] dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) [error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2486) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3026) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) [error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedFunctionValue(Typer.scala:1630) [error] dotty.tools.dotc.typer.Typer.typedFunction(Typer.scala:1381) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3060) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$7(ProtoTypes.scala:495) [error] dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:418) [error] dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:496) [error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) [error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) [error] dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:589) [error] dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:653) [error] dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:492) [error] dotty.tools.dotc.typer.Applications$TypedApply.(Applications.scala:779) [error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.(Applications.scala:896) [error] dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1126) [error] dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:352) [error] dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:117) [error] dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:969) [error] dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$2(Applications.scala:1052) [error] dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3327) [error] dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1063) [error] dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1101) [error] dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:352) [error] dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:117) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] dotty.tools.dotc.typer.Typer.$anonfun$57(Typer.scala:2486) [error] dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) [error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2486) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3026) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2669) [error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3038) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3042) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2812) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3083) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$1(TyperPhase.scala:44) [error] dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$adapted$1(TyperPhase.scala:50) [error] scala.Function0.apply$mcV$sp(Function0.scala:42) [error] dotty.tools.dotc.core.Phases$Phase.monitor(Phases.scala:440) [error] dotty.tools.dotc.typer.TyperPhase.typeCheck(TyperPhase.scala:50) [error] dotty.tools.dotc.typer.TyperPhase.runOn$$anonfun$3(TyperPhase.scala:84) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.immutable.List.foreach(List.scala:333) [error] dotty.tools.dotc.typer.TyperPhase.runOn(TyperPhase.scala:84) [error] dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:246) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323) [error] dotty.tools.dotc.Run.runPhases$1(Run.scala:262) [error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:270) [error] dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:279) [error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:71) [error] dotty.tools.dotc.Run.compileUnits(Run.scala:279) [error] dotty.tools.dotc.Run.compileSources(Run.scala:194) [error] dotty.tools.dotc.Run.compile(Run.scala:179) [error] dotty.tools.dotc.Driver.doCompile(Driver.scala:37) [error] dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:136) [error] dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22) [error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:193) [error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) [error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:248) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:183) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:163) [error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239) [error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:163) [error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:211) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:534) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:534) [error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:180) [error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:178) [error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:464) [error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116) [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56) [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52) [error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263) [error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:419) [error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:506) [error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:406) [error] sbt.internal.inc.Incremental$.apply(Incremental.scala:172) [error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:534) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:488) [error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332) [error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:425) [error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137) [error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2371) [error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2321) [error] sbt.internal.server.BspCompileTask$.$anonfun$compute$1(BspCompileTask.scala:31) [error] sbt.internal.io.Retry$.apply(Retry.scala:47) [error] sbt.internal.io.Retry$.apply(Retry.scala:29) [error] sbt.internal.io.Retry$.apply(Retry.scala:24) [error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31) [error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2319) [error] scala.Function1.$anonfun$compose$1(Function1.scala:49) [error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63) [error] sbt.std.Transform$$anon$4.work(Transform.scala:69) [error] sbt.Execute.$anonfun$submit$2(Execute.scala:283) [error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24) [error] sbt.Execute.work(Execute.scala:292) [error] sbt.Execute.$anonfun$submit$1(Execute.scala:283) [error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265) [error] sbt.CompletionService$$anon$2.call(CompletionService.scala:65) [error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) [error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) [error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) [error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [error] java.base/java.lang.Thread.run(Thread.java:1583) [error] [error] java.lang.AssertionError: assertion failed: NoType [error] at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8) [error] at dotty.tools.dotc.core.Types$TypeBounds.(Types.scala:5178) [error] at dotty.tools.dotc.core.Types$AliasingBounds.(Types.scala:5257) [error] at dotty.tools.dotc.core.Types$TypeAlias.(Types.scala:5279) [error] at dotty.tools.dotc.core.Types$TypeAlias$.apply(Types.scala:5316) [error] at dotty.tools.dotc.core.Types$Type.bounds(Types.scala:1756) [error] at dotty.tools.dotc.typer.Typer$$anon$9.apply(Typer.scala:4322) [error] at dotty.tools.dotc.typer.Typer.checkEqualityEvidence(Typer.scala:4342) [error] at dotty.tools.dotc.typer.Typer.adaptNoArgsOther$1(Typer.scala:3959) [error] at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:4071) [error] at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:4277) [error] at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3590) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Applications.$anonfun$18(Applications.scala:1455) [error] at scala.collection.LazyZip2$$anon$1$$anon$2.next(LazyZipOps.scala:42) [error] at scala.collection.immutable.List.prependedAll(List.scala:153) [error] at scala.collection.immutable.List$.from(List.scala:684) [error] at scala.collection.immutable.List$.from(List.scala:681) [error] at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:115) [error] at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:112) [error] at scala.collection.LazyZip2.map(LazyZipOps.scala:37) [error] at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1455) [error] at dotty.tools.dotc.typer.Applications.typedUnApply$(Applications.scala:352) [error] at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:117) [error] at dotty.tools.dotc.typer.Typer.typedInfixOp(Typer.scala:2932) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3089) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Applications.$anonfun$18(Applications.scala:1455) [error] at scala.collection.LazyZip2$$anon$1$$anon$2.next(LazyZipOps.scala:42) [error] at scala.collection.immutable.List.prependedAll(List.scala:156) [error] at scala.collection.immutable.List$.from(List.scala:684) [error] at scala.collection.immutable.List$.from(List.scala:681) [error] at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:115) [error] at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:112) [error] at scala.collection.LazyZip2.map(LazyZipOps.scala:37) [error] at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1455) [error] at dotty.tools.dotc.typer.Applications.typedUnApply$(Applications.scala:352) [error] at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:117) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedPattern(Typer.scala:3323) [error] at dotty.tools.dotc.typer.Typer.typedCase(Typer.scala:1887) [error] at dotty.tools.dotc.typer.Typer.typedCases$$anonfun$1(Typer.scala:1820) [error] at dotty.tools.dotc.core.Decorators$.loop$1(Decorators.scala:94) [error] at dotty.tools.dotc.core.Decorators$.mapconserve(Decorators.scala:110) [error] at dotty.tools.dotc.typer.Typer.typedCases(Typer.scala:1822) [error] at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1812) [error] at dotty.tools.dotc.typer.Applications.harmonic(Applications.scala:2333) [error] at dotty.tools.dotc.typer.Applications.harmonic$(Applications.scala:352) [error] at dotty.tools.dotc.typer.Typer.harmonic(Typer.scala:117) [error] at dotty.tools.dotc.typer.Typer.typedMatchFinish(Typer.scala:1812) [error] at dotty.tools.dotc.typer.Typer.typedMatch(Typer.scala:1746) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3064) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] at dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1656) [error] at dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1646) [error] at dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1656) [error] at dotty.tools.dotc.typer.Namer.typedAheadRhs$1$$anonfun$1(Namer.scala:1909) [error] at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) [error] at dotty.tools.dotc.typer.Namer.typedAheadRhs$1(Namer.scala:1909) [error] at dotty.tools.dotc.typer.Namer.rhsType$1(Namer.scala:1917) [error] at dotty.tools.dotc.typer.Namer.cookedRhsType$1(Namer.scala:1935) [error] at dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1936) [error] at dotty.tools.dotc.typer.Namer.inferredResultType(Namer.scala:1947) [error] at dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1694) [error] at dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1701) [error] at dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:787) [error] at dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:934) [error] at dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:814) [error] at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:174) [error] at dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:187) [error] at dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:189) [error] at dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:393) [error] at dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2991) [error] at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3016) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) [error] at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] at dotty.tools.dotc.typer.Typer.$anonfun$57(Typer.scala:2486) [error] at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) [error] at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2486) [error] at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3026) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) [error] at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedFunctionValue(Typer.scala:1630) [error] at dotty.tools.dotc.typer.Typer.typedFunction(Typer.scala:1381) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3060) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$7(ProtoTypes.scala:495) [error] at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:418) [error] at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:496) [error] at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) [error] at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) [error] at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:589) [error] at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:653) [error] at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:492) [error] at dotty.tools.dotc.typer.Applications$TypedApply.(Applications.scala:779) [error] at dotty.tools.dotc.typer.Applications$ApplyToUntyped.(Applications.scala:896) [error] at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1126) [error] at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:352) [error] at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:117) [error] at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:969) [error] at dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$2(Applications.scala:1052) [error] at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3327) [error] at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1063) [error] at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1101) [error] at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:352) [error] at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:117) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] at dotty.tools.dotc.typer.Typer.$anonfun$57(Typer.scala:2486) [error] at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) [error] at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2486) [error] at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3026) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2669) [error] at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3038) [error] at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3042) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) [error] at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) [error] at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2812) [error] at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3083) [error] at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) [error] at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) [error] at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) [error] at dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$1(TyperPhase.scala:44) [error] at dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$adapted$1(TyperPhase.scala:50) [error] at scala.Function0.apply$mcV$sp(Function0.scala:42) [error] at dotty.tools.dotc.core.Phases$Phase.monitor(Phases.scala:440) [error] at dotty.tools.dotc.typer.TyperPhase.typeCheck(TyperPhase.scala:50) [error] at dotty.tools.dotc.typer.TyperPhase.runOn$$anonfun$3(TyperPhase.scala:84) [error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] at scala.collection.immutable.List.foreach(List.scala:333) [error] at dotty.tools.dotc.typer.TyperPhase.runOn(TyperPhase.scala:84) [error] at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:246) [error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323) [error] at dotty.tools.dotc.Run.runPhases$1(Run.scala:262) [error] at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:270) [error] at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:279) [error] at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:71) [error] at dotty.tools.dotc.Run.compileUnits(Run.scala:279) [error] at dotty.tools.dotc.Run.compileSources(Run.scala:194) [error] at dotty.tools.dotc.Run.compile(Run.scala:179) [error] at dotty.tools.dotc.Driver.doCompile(Driver.scala:37) [error] at dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:136) [error] at dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22) [error] at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91) [error] at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:193) [error] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) [error] at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:248) [error] at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:183) [error] at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:163) [error] at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239) [error] at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:163) [error] at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:211) [error] at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:534) [error] at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:534) [error] at sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:180) [error] at sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:178) [error] at sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:464) [error] at sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116) [error] at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56) [error] at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52) [error] at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263) [error] at sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:419) [error] at sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:506) [error] at sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:406) [error] at sbt.internal.inc.Incremental$.apply(Incremental.scala:172) [error] at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:534) [error] at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:488) [error] at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332) [error] at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:425) [error] at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137) [error] at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2371) [error] at sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2321) [error] at sbt.internal.server.BspCompileTask$.$anonfun$compute$1(BspCompileTask.scala:31) [error] at sbt.internal.io.Retry$.apply(Retry.scala:47) [error] at sbt.internal.io.Retry$.apply(Retry.scala:29) [error] at sbt.internal.io.Retry$.apply(Retry.scala:24) [error] at sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31) [error] at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2319) [error] at scala.Function1.$anonfun$compose$1(Function1.scala:49) [error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63) [error] at sbt.std.Transform$$anon$4.work(Transform.scala:69) [error] at sbt.Execute.$anonfun$submit$2(Execute.scala:283) [error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24) [error] at sbt.Execute.work(Execute.scala:292) [error] at sbt.Execute.$anonfun$submit$1(Execute.scala:283) [error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265) [error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:65) [error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) [error] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) [error] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) [error] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [error] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [error] at java.base/java.lang.Thread.run(Thread.java:1583) [error] (js7-tests / Test / compileIncremental) java.lang.AssertionError: assertion failed: NoType ```
SethTisue commented 7 months ago

Is the problem reproducible without involving sbt?

It can be helpful to run sbt -debug to get more logging about exactly what's going on. In particular, it will show you scalac and javac invocations that you can then separately attempt outside of the build tool, as a way of cutting sbt out of the picture. (Or, perhaps the invocations will make it plain that it's sbt going wrong here.)

Zschimmer commented 7 months ago

Below the scalac command with the same output: AssertionError: assertion failed: NoType. The error appears immediately. It's repeatable. The command compiles all .scala and .java files of the subproject, gathered with $(find ...).

Not sure if it helps. The subproject depends on other subprojects which I compiled with sbt. There are many third-party dependencies, too. A complete compilation without sbt would require the extraction of 48 scalac commands and several downloads of third party libraries (it's great to have sbt!).

Command

```scala /opt/homebrew/Cellar/scala\@3.3/3.3.3/bin/scalac \ -explain \ -bootclasspath \ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.3.3/scala3-library_3-3.3.3.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.12/scala-library-2.13.12.jar \ -classpath \ js7-tests/target/scala-3.3.3/test-classes:\ js7-tests/target/scala-3.3.3/classes:\ js7-controller/target/scala-3.3.3/classes:\ js7-controller-client/jvm/target/scala-3.3.3/classes:\ js7-cluster-watch-api/jvm/target/scala-3.3.3/classes:\ js7-data/jvm/target/scala-3.3.3/classes:\ js7-base/jvm/target/scala-3.3.3/classes:\ js7-common-http/jvm/target/scala-3.3.3/classes:\ js7-common/target/scala-3.3.3/classes:\ js7-agent-data/jvm/target/scala-3.3.3/classes:\ js7-core/target/scala-3.3.3/classes:\ js7-journal/target/scala-3.3.3/classes:\ js7-license/target/scala-3.3.3/classes:\ js7-cluster/target/scala-3.3.3/classes:\ js7-agent-client/target/scala-3.3.3/classes:\ js7-cluster-watch/target/scala-3.3.3/classes:\ js7-agent/target/scala-3.3.3/classes:\ js7-subagent/target/scala-3.3.3/classes:\ js7-launcher/target/scala-3.3.3/classes:\ js7-launcher-for-windows/target/scala-3.3.3/classes:\ js7-agent/target/scala-3.3.3/test-classes:\ js7-base/jvm/target/scala-3.3.3/test-classes:\ js7-tester/jvm/target/scala-3.3.3/classes:\ js7-service-pgp/target/scala-3.3.3/classes:\ js7-proxy/jvm/target/scala-3.3.3/classes:\ js7-data-for-java/target/scala-3.3.3/classes:\ js7-core/target/scala-3.3.3/test-classes:\ js7-data/jvm/target/scala-3.3.3/test-classes:\ js7-provider/target/scala-3.3.3/classes:\ js7-docker/target/scala-3.3.3/classes:\ js7-launcher-for-java/target/scala-3.3.3/classes:\ js7-launcher-for-java/target/scala-3.3.3/test-classes:\ js7-launcher-for-windows/target/scala-3.3.3/test-classes:\ js7-license-fake/target/scala-3.3.3/classes:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-http-testkit_2.13/1.0.0/pekko-http-testkit_2.13-1.0.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-stream-testkit_2.13/1.0.2/pekko-stream-testkit_2.13-1.0.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest_3/3.2.18/scalatest_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/diffx/diffx-core_3/0.9.0/diffx-core_3-0.9.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/diffx/diffx-scalatest-should_3/0.9.0/diffx-scalatest-should_3-0.9.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest-library/2.2/hamcrest-library-2.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.23.1/log4j-api-2.23.1.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.23.1/log4j-core-2.23.1.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j2-impl/2.23.1/log4j-slf4j2-impl-2.23.1.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lmax/disruptor/3.4.4/disruptor-3.4.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-actor_2.13/1.0.2/pekko-actor_2.13-1.0.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-stream_2.13/1.0.2/pekko-stream_2.13-1.0.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-slf4j_2.13/1.0.2/pekko-slf4j_2.13-1.0.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-http_2.13/1.0.0/pekko-http_2.13-1.0.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/intellij/annotations/12.0/annotations-12.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatestplus/scalacheck-1-16_3/3.2.14.0/scalacheck-1-16_3-3.2.14.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalacheck/scalacheck_3/1.17.0/scalacheck_3-1.17.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-laws_3/2.10.0/cats-laws_3-2.10.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/discipline-core_3/1.5.1/discipline-core_3-1.5.1.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/discipline-scalatest_3/2.2.0/discipline-scalatest_3-2.2.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect_3/2.3.8/izumi-reflect_3-2.3.8.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-core_3/2.10.0/cats-core_3-2.10.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-parse_3/1.0.0/cats-parse_3-1.0.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect_3/3.5.4/cats-effect_3-3.5.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/github/timwspence/cats-stm_3/0.13.4/cats-stm_3-0.13.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-core_3/0.14.6/circe-core_3-0.14.6.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-parser_3/0.14.6/circe-parser_3-0.14.6.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-generic_3/0.14.6/circe-generic_3-0.14.6.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/co/fs2/fs2-core_3/3.9.4/fs2-core_3-3.9.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/co/fs2/fs2-reactive-streams_3/3.9.4/fs2-reactive-streams_3-3.9.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/co/fs2/fs2-io_3/3.9.4/fs2-io_3-3.9.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_3/0.3.1/sourcecode_3-0.3.1.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/common/tagging_3/2.3.4/tagging_3-2.3.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/scala-logging/scala-logging_3/3.9.5/scala-logging_3-3.9.5.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/2.0.12/slf4j-api-2.0.12.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.4.3/config-1.4.3.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-testkit_3/3.5.4/cats-effect-testkit_3-3.5.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-testing-scalatest_3/1.5.0/cats-effect-testing-scalatest_3-1.5.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalactic/scalactic_3/3.2.18/scalactic_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/vavr/vavr/0.10.4/vavr-0.10.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.14.0/jna-platform-5.14.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/bouncycastle/bcpg-jdk18on/1.77/bcpg-jdk18on-1.77.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-testkit_2.13/1.0.2/pekko-testkit_2.13-1.0.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-core_3/3.2.18/scalatest-core_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-featurespec_3/3.2.18/scalatest-featurespec_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-flatspec_3/3.2.18/scalatest-flatspec_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-freespec_3/3.2.18/scalatest-freespec_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-funsuite_3/3.2.18/scalatest-funsuite_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-funspec_3/3.2.18/scalatest-funspec_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-propspec_3/3.2.18/scalatest-propspec_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-refspec_3/3.2.18/scalatest-refspec_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-wordspec_3/3.2.18/scalatest-wordspec_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-diagrams_3/3.2.18/scalatest-diagrams_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-matchers-core_3/3.2.18/scalatest-matchers-core_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-shouldmatchers_3/3.2.18/scalatest-shouldmatchers_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-mustmatchers_3/3.2.18/scalatest-mustmatchers_3-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/magnolia1_3/magnolia_3/1.1.4/magnolia_3-1.1.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/hamcrest/hamcrest-core/2.2/hamcrest-core-2.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-protobuf-v3_2.13/1.0.2/pekko-protobuf-v3_2.13-1.0.2.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.13/0.6.1/ssl-config-core_2.13-0.6.1.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-http-core_2.13/1.0.0/pekko-http-core_2.13-1.0.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/projectreactor/reactor-core/3.6.4/reactor-core-3.6.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel_3/2.10.0/cats-kernel_3-2.10.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-kernel-laws_3/2.10.0/cats-kernel-laws_3-2.10.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect-thirdparty-boopickle-shaded_3/2.3.8/izumi-reflect-thirdparty-boopickle-shaded_3-2.3.8.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-kernel_3/3.5.4/cats-effect-kernel_3-3.5.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-std_3/3.5.4/cats-effect-std_3-3.5.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-numbers_3/0.14.6/circe-numbers_3-0.14.6.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/circe/circe-jawn_3/0.14.6/circe-jawn_3-0.14.6.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scodec/scodec-bits_3/1.1.38/scodec-bits_3-1.1.38.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/com/comcast/ip4s-core_3/3.4.0/ip4s-core_3-3.4.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-kernel-testkit_3/3.5.4/cats-effect-kernel-testkit_3-3.5.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-effect-testing-core_3/1.5.0/cats-effect-testing-core_3-1.5.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/io/vavr/vavr-match/0.10.4/vavr-match-0.10.4.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk18on/1.77/bcprov-jdk18on-1.77.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scalatest/scalatest-compatible/3.2.18/scalatest-compatible-3.2.18.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_3/2.1.0/scala-xml_3-2.1.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/apache/pekko/pekko-parsing_2.13/1.0.0/pekko-parsing_2.13-1.0.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/parboiled/parboiled_2.13/2.5.0/parboiled_2.13-2.5.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/jawn-parser_3/1.4.0/jawn-parser_3-1.4.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/literally_3/1.1.0/literally_3-1.1.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-free_3/2.9.0/cats-free_3-2.9.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/coop_3/1.2.0/coop_3-1.2.0.jar:\ $HOME/Library/Caches/Coursier/v1/https/repo1.maven.org/maven2/org/typelevel/cats-mtl_3/1.3.0/cats-mtl_3-1.3.0.jar \ $(find js7-tests/src/test/java -name "*.scala" -o -name "*.java") \ $(find js7-tests/src/main/scala -name "*.scala" -o -name "*.java") \ $(find js7-tests/src/test/scala -name "*.scala" -o -name "*.java") ```

Output

``` -- [E046] Cyclic Error: js7-tests/src/test/scala/js7/tests/testenv/DirectoryProvider.scala:58:7 58 |import scala.concurrent.duration.* | ^ | Cyclic reference involving class DirectoryProvider |---------------------------------------------------------------------------- | Explanation (enabled by `-explain`) |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | class DirectoryProvider is declared as part of a cycle which makes it impossible for the | compiler to decide upon DirectoryProvider's type. | To avoid this error, try giving DirectoryProvider an explicit type. ---------------------------------------------------------------------------- exception occurred while typechecking js7-tests/src/test/scala/js7/tests/cluster/controller/UntaughtClusterWatchFailoverControllerClusterTest.scala An unhandled exception was thrown in the compiler. Please file a crash report here: https://github.com/lampepfl/dotty/issues/new/choose while compiling: js7-tests/src/test/scala/js7/tests/cluster/controller/UntaughtClusterWatchFailoverControllerClusterTest.scala during phase: typer mode: Mode(ImplicitsEnabled) library version: version 2.13.12 compiler version: version 3.3.3 settings: (DELETED) Exception in thread "main" java.lang.AssertionError: assertion failed: NoType at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8) at dotty.tools.dotc.core.Types$TypeBounds.(Types.scala:5178) at dotty.tools.dotc.core.Types$AliasingBounds.(Types.scala:5257) at dotty.tools.dotc.core.Types$TypeAlias.(Types.scala:5279) at dotty.tools.dotc.core.Types$TypeAlias$.apply(Types.scala:5316) at dotty.tools.dotc.core.Types$Type.bounds(Types.scala:1756) at dotty.tools.dotc.typer.Typer$$anon$9.apply(Typer.scala:4322) at dotty.tools.dotc.typer.Typer.checkEqualityEvidence(Typer.scala:4342) at dotty.tools.dotc.typer.Typer.adaptNoArgsOther$1(Typer.scala:3959) at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:4071) at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:4277) at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3590) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Applications.$anonfun$18(Applications.scala:1455) at scala.collection.LazyZip2$$anon$1$$anon$2.next(LazyZipOps.scala:42) at scala.collection.immutable.List.prependedAll(List.scala:153) at scala.collection.immutable.List$.from(List.scala:684) at scala.collection.immutable.List$.from(List.scala:681) at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:115) at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:112) at scala.collection.LazyZip2.map(LazyZipOps.scala:37) at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1455) at dotty.tools.dotc.typer.Applications.typedUnApply$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:117) at dotty.tools.dotc.typer.Typer.typedInfixOp(Typer.scala:2932) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3089) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Applications.$anonfun$18(Applications.scala:1455) at scala.collection.LazyZip2$$anon$1$$anon$2.next(LazyZipOps.scala:42) at scala.collection.immutable.List.prependedAll(List.scala:156) at scala.collection.immutable.List$.from(List.scala:684) at scala.collection.immutable.List$.from(List.scala:681) at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:115) at scala.collection.BuildFromLowPriority2$$anon$11.fromSpecific(BuildFrom.scala:112) at scala.collection.LazyZip2.map(LazyZipOps.scala:37) at dotty.tools.dotc.typer.Applications.typedUnApply(Applications.scala:1455) at dotty.tools.dotc.typer.Applications.typedUnApply$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.typedUnApply(Typer.scala:117) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedPattern(Typer.scala:3323) at dotty.tools.dotc.typer.Typer.typedCase(Typer.scala:1887) at dotty.tools.dotc.typer.Typer.typedCases$$anonfun$1(Typer.scala:1820) at dotty.tools.dotc.core.Decorators$.loop$1(Decorators.scala:94) at dotty.tools.dotc.core.Decorators$.mapconserve(Decorators.scala:110) at dotty.tools.dotc.typer.Typer.typedCases(Typer.scala:1822) at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1812) at dotty.tools.dotc.typer.Applications.harmonic(Applications.scala:2333) at dotty.tools.dotc.typer.Applications.harmonic$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.harmonic(Typer.scala:117) at dotty.tools.dotc.typer.Typer.typedMatchFinish(Typer.scala:1812) at dotty.tools.dotc.typer.Typer.typedMatch(Typer.scala:1746) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3064) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1656) at dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1646) at dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1656) at dotty.tools.dotc.typer.Namer.typedAheadRhs$1$$anonfun$1(Namer.scala:1909) at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) at dotty.tools.dotc.typer.Namer.typedAheadRhs$1(Namer.scala:1909) at dotty.tools.dotc.typer.Namer.rhsType$1(Namer.scala:1917) at dotty.tools.dotc.typer.Namer.cookedRhsType$1(Namer.scala:1935) at dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1936) at dotty.tools.dotc.typer.Namer.inferredResultType(Namer.scala:1947) at dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1694) at dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1701) at dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:787) at dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:934) at dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:814) at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:174) at dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:187) at dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:189) at dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:393) at dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2991) at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3016) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1656) at dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1646) at dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1656) at dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1712) at dotty.tools.dotc.typer.Namer.defDefSig(Namer.scala:1792) at dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:791) at dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:934) at dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:814) at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:174) at dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:187) at dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:189) at dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:393) at dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2991) at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3016) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedFunctionValue(Typer.scala:1630) at dotty.tools.dotc.typer.Typer.typedFunction(Typer.scala:1381) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3060) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$7(ProtoTypes.scala:495) at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:418) at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:496) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:589) at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:653) at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:492) at dotty.tools.dotc.typer.Applications$TypedApply.(Applications.scala:779) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.(Applications.scala:896) at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1126) at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:117) at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:969) at dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$2(Applications.scala:1052) at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3327) at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1063) at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1101) at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:117) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1656) at dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1646) at dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1656) at dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1712) at dotty.tools.dotc.typer.Namer.defDefSig(Namer.scala:1792) at dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:791) at dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:934) at dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:814) at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:174) at dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:187) at dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:189) at dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:393) at dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2991) at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3016) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedFunctionValue(Typer.scala:1630) at dotty.tools.dotc.typer.Typer.typedFunction(Typer.scala:1381) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3060) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$7(ProtoTypes.scala:495) at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:418) at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:496) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:589) at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:653) at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:492) at dotty.tools.dotc.typer.Applications$TypedApply.(Applications.scala:779) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.(Applications.scala:896) at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1126) at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:117) at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:969) at dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$2(Applications.scala:1052) at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3327) at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1063) at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1101) at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:117) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Typer.$anonfun$57(Typer.scala:2486) at dotty.tools.dotc.inlines.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:243) at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2486) at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3026) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1161) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1165) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedFunctionValue(Typer.scala:1630) at dotty.tools.dotc.typer.Typer.typedFunction(Typer.scala:1381) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3060) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1168) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3058) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$7(ProtoTypes.scala:495) at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:418) at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:496) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:589) at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:653) at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:492) at dotty.tools.dotc.typer.Applications$TypedApply.(Applications.scala:779) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.(Applications.scala:896) at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1126) at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:117) at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:969) at dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$2(Applications.scala:1052) at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3327) at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1063) at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1101) at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:117) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3050) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$7(ProtoTypes.scala:495) at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:418) at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:496) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:897) at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:589) at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:653) at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:492) at dotty.tools.dotc.typer.Applications$TypedApply.(Applications.scala:779) at dotty.tools.dotc.typer.Applications$ApplyToUntyped.(Applications.scala:896) at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1126) at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:117) at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:969) at dotty.tools.dotc.typer.Applications.realApply$1$$anonfun$2(Applications.scala:1052) at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3327) at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:1063) at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1101) at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:352) at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:117) at dotty.tools.dotc.typer.Typer.typedInfixOp(Typer.scala:2934) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3089) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3240) at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2669) at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:3038) at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:3042) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3114) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:3213) at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3259) at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2812) at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:3083) at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:3115) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3187) at dotty.tools.dotc.typer.Typer.typed(Typer.scala:3191) at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3303) at dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$1(TyperPhase.scala:44) at dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$adapted$1(TyperPhase.scala:50) at scala.Function0.apply$mcV$sp(Function0.scala:42) at dotty.tools.dotc.core.Phases$Phase.monitor(Phases.scala:440) at dotty.tools.dotc.typer.TyperPhase.typeCheck(TyperPhase.scala:50) at dotty.tools.dotc.typer.TyperPhase.runOn$$anonfun$3(TyperPhase.scala:84) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at scala.collection.immutable.List.foreach(List.scala:333) at dotty.tools.dotc.typer.TyperPhase.runOn(TyperPhase.scala:84) at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:246) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323) at dotty.tools.dotc.Run.runPhases$1(Run.scala:262) at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:270) at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:279) at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:71) at dotty.tools.dotc.Run.compileUnits(Run.scala:279) at dotty.tools.dotc.Run.compileSources(Run.scala:194) at dotty.tools.dotc.Run.compile(Run.scala:179) at dotty.tools.dotc.Driver.doCompile(Driver.scala:37) at dotty.tools.dotc.Driver.process(Driver.scala:197) at dotty.tools.dotc.Driver.process(Driver.scala:165) at dotty.tools.dotc.Driver.process(Driver.scala:177) at dotty.tools.dotc.Driver.main(Driver.scala:207) at dotty.tools.MainGenericCompiler$.run$1(MainGenericCompiler.scala:162) at dotty.tools.MainGenericCompiler$.main(MainGenericCompiler.scala:186) at dotty.tools.MainGenericCompiler.main(MainGenericCompiler.scala) ```
Gedochao commented 7 months ago

@Zschimmer Any chance you'd be able to minimize this further in the near future?

Zschimmer commented 7 months ago

The following snippet shows the same exception, without the "cyclic reference involving class" error.

val KeyedEvent(NoKey, event) = ???

/// Event ///

trait Event:
  type KeyBase <: Event
  val keyCompanion: Event.KeyCompanion[KeyBase]

object Event:
  trait KeyCompanion[E <: Event]:
    type Key

/// KeyedEvent ///

final class KeyedEvent[+E <: Event](val event: E)(val key: event.keyCompanion.Key)

object KeyedEvent:
  def unapply[E <: Event](ke: KeyedEvent[E]): (ke.event.keyCompanion.Key, E) =
    ke.key -> ke.event

/// NoKey ///

case object NoKey

Scastie shows this, too: https://scastie.scala-lang.org/5vDJcHrQTRysv9SRwIuA3g

It's not clear to me why this (radically reduced) snippet shows the behaviour whereas the same parts scattered in the code compiles as expected (as long as the Scala files are placed in the scala subdirectory!).

I have several groups of events, where each group is associated with a key (or the dummy NoKey). The type of the key is determined via the dependent type keyCompanion.Key. KeyedEvent contains both the Event and its key.

The snippet does not have a real event. In the real code, the type of keyCompanion.Key is defined and known.