Closed
Description
Compiler version
3.2.1-RC1-bin-20220831-398b72e-NIGHTLY
Minimized code
sealed trait T
class C extends T
class AClass
type AType = AClass {
type TypeMember <: T
}
def list2Product(
atype: AType,
opt: atype.TypeMember
): Unit =
opt match {
case _: C => ()
}
Output (click arrow to expand)
java.lang.AssertionError: assertion failed: NoType
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
at dotty.tools.dotc.core.Types$TypeBounds.<init>(Types.scala:5046)
at dotty.tools.dotc.core.Types$AliasingBounds.<init>(Types.scala:5125)
at dotty.tools.dotc.core.Types$TypeAlias.<init>(Types.scala:5147)
at dotty.tools.dotc.core.Types$TypeAlias$.apply(Types.scala:5180)
at dotty.tools.dotc.core.Types$Type.bounds(Types.scala:1730)
at dotty.tools.dotc.core.ProperGadtConstraint.$anonfun$2$$anonfun$1(GadtConstraint.scala:119)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.ProperGadtConstraint.$anonfun$2(GadtConstraint.scala:123)
at dotty.tools.dotc.core.Types$PolyType.<init>(Types.scala:4115)
at dotty.tools.dotc.core.Types$PolyType$.apply(Types.scala:4221)
at dotty.tools.dotc.core.ProperGadtConstraint.addToConstraint(GadtConstraint.scala:126)
at dotty.tools.dotc.core.TypeOps$.instantiateToSubType(TypeOps.scala:858)
at dotty.tools.dotc.core.TypeOps$.refineUsingParent(TypeOps.scala:737)
at dotty.tools.dotc.transform.patmat.SpaceEngine.$anonfun$13(Space.scala:645)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.transform.patmat.SpaceEngine.decompose(Space.scala:659)
at dotty.tools.dotc.transform.patmat.SpaceLogic.tryDecompose1$3(Space.scala:236)
at dotty.tools.dotc.transform.patmat.SpaceLogic.minus(Space.scala:244)
at dotty.tools.dotc.transform.patmat.SpaceLogic.minus$(Space.scala:78)
at dotty.tools.dotc.transform.patmat.SpaceEngine.minus(Space.scala:322)
at dotty.tools.dotc.transform.patmat.SpaceLogic.minus$$anonfun$3(Space.scala:258)
at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
at scala.collection.immutable.List.foldLeft(List.scala:79)
at dotty.tools.dotc.transform.patmat.SpaceLogic.minus(Space.scala:258)
at dotty.tools.dotc.transform.patmat.SpaceLogic.minus$(Space.scala:78)
at dotty.tools.dotc.transform.patmat.SpaceEngine.minus(Space.scala:322)
at dotty.tools.dotc.transform.patmat.SpaceEngine.checkExhaustivity(Space.scala:889)
at dotty.tools.dotc.transform.PatternMatcher.transformMatch(PatternMatcher.scala:49)
at dotty.tools.dotc.transform.MegaPhase.goMatch(MegaPhase.scala:785)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:366)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:427)
at dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:248)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:251)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:425)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:438)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:438)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:359)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:427)
at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:255)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:425)
at dotty.tools.dotc.transform.MegaPhase.loop$1(MegaPhase.scala:438)
at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:438)
at dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:379)
at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:382)
at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:427)
at dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:454)
at dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:466)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:316)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:320)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:233)
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:244)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:252)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:261)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
at dotty.tools.dotc.Run.compileUnits(Run.scala:261)
at dotty.tools.dotc.Run.compileSources(Run.scala:185)
at dotty.tools.dotc.Run.compile(Run.scala:169)
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 sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.compileSources$1(BloopHighLevelCompiler.scala:133)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.$anonfun$compile$7(BloopHighLevelCompiler.scala:151)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.$anonfun$compile$1(BloopHighLevelCompiler.scala:71)
at bloop.tracing.BraveTracer.traceInternal(BraveTracer.scala:65)
at bloop.tracing.BraveTracer.trace(BraveTracer.scala:39)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.timed$1(BloopHighLevelCompiler.scala:70)
at sbt.internal.inc.bloop.internal.BloopHighLevelCompiler.$anonfun$compile$6(BloopHighLevelCompiler.scala:151)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
at monix.eval.internal.TaskRunLoop$.monix$eval$internal$TaskRunLoop$$loop$1(TaskRunLoop.scala:187)
at monix.eval.internal.TaskRunLoop$RestartCallback$1.onSuccess(TaskRunLoop.scala:119)
at monix.eval.Task$.$anonfun$forkedUnit$2(Task.scala:1463)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)