Closed
Description
Compiler version
3.2.0-RC1-bin-20220308-29073f1-NIGHTLY
Minimized code
type F[_] = A
type A = F[?]
Output (click arrow to expand)
scalac: Error: type of TypeBoundsTree(EmptyTree,EmptyTree,EmptyTree) is not assigned
dotty.tools.dotc.ast.Trees$UnAssignedTypeException: type of TypeBoundsTree(EmptyTree,EmptyTree,EmptyTree) is not assigned
at dotty.tools.dotc.ast.Trees$Tree.tpe(Trees.scala:70)
at dotty.tools.dotc.typer.Checking$.checkBounds$$anonfun$1(Checking.scala:70)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:15)
at scala.runtime.function.JProcedure2.apply(JProcedure2.java:10)
at scala.collection.LazyZip2.foreach(LazyZipOps.scala:112)
at dotty.tools.dotc.typer.Checking$.checkBounds(Checking.scala:72)
at dotty.tools.dotc.typer.Checking$.checkAppliedType(Checking.scala:113)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:405)
at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1465)
at dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:40)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:388)
at dotty.tools.dotc.ast.tpd$TreeMapWithPreciseStatContexts.loop$2(tpd.scala:1206)
at dotty.tools.dotc.ast.tpd$TreeMapWithPreciseStatContexts.transformStats(tpd.scala:1206)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transformStats(PostTyper.scala:462)
at dotty.tools.dotc.ast.tpd$TreeMapWithPreciseStatContexts.transformStats(tpd.scala:1208)
at dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:47)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform$$anonfun$4$$anonfun$1(PostTyper.scala:353)
at dotty.tools.dotc.transform.SuperAccessors.wrapTemplate(SuperAccessors.scala:208)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform$$anonfun$4(PostTyper.scala:353)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.withNoCheckNews(PostTyper.scala:100)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:355)
at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1465)
at dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:40)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:388)
at dotty.tools.dotc.ast.tpd$TreeMapWithPreciseStatContexts.loop$2(tpd.scala:1206)
at dotty.tools.dotc.ast.tpd$TreeMapWithPreciseStatContexts.transformStats(tpd.scala:1206)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transformStats(PostTyper.scala:462)
at dotty.tools.dotc.ast.tpd$TreeMapWithPreciseStatContexts.transformStats(tpd.scala:1208)
at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1476)
at dotty.tools.dotc.transform.MacroTransform$Transformer.transform(MacroTransform.scala:40)
at dotty.tools.dotc.transform.PostTyper$PostTyperTransformer.transform(PostTyper.scala:453)
at dotty.tools.dotc.transform.MacroTransform.run(MacroTransform.scala:18)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:311)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:312)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:225)
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:1328)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:236)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:244)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:253)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
at dotty.tools.dotc.Run.compileUnits(Run.scala:253)
at dotty.tools.dotc.Run.compileSources(Run.scala:186)
at dotty.tools.dotc.Run.compile(Run.scala:170)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:35)
at dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
at dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
at org.jetbrains.jps.incremental.scala.local.IdeaIncrementalCompiler.compile(IdeaIncrementalCompiler.scala:57)
at org.jetbrains.jps.incremental.scala.local.LocalServer.doCompile(LocalServer.scala:52)
at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:30)
at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:207)
at org.jetbrains.jps.incremental.scala.remote.Main$.$anonfun$handleCommand$1(Main.scala:190)
at org.jetbrains.jps.incremental.scala.remote.Main$.decorated$1(Main.scala:180)
at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:187)
at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:163)
at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:103)
at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala)
at jdk.internal.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)
The stacktrace is somewhat similar to that of #12457.
Side remark: if the two aliases are mutually recursive then the code compiles correctly, but it hangs the JetBrains IDE.