-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unreasonably slow (or even non-terminating) compilation of pattern match involving GADT reasoning on nested types #16785
Comments
|
Just tried it on my machine and I can't reproduce the hang: [root@HEAD]> core/compile
[info] compiling 83 Scala sources to /home/smarter/opt/libretto/core/target/scala-3.2.2/classes ...
[error] -- [E008] Not Found Error: /home/smarter/opt/libretto/core/src/main/scala/libretto/util/atomic/package.scala:19:13
[error] 19 | go(ref.getOpaque())
[error] | ^^^^^^^^^^^^^
[error] |value getOpaque is not a member of java.util.concurrent.atomic.AtomicReference[A]
[error] |
[error] |where: A is a type in method modifyOpaque with bounds <: AnyRef
[error] -- [E008] Not Found Error: /home/smarter/opt/libretto/core/src/main/scala/libretto/util/atomic/package.scala:32:13
[error] 32 | go(ref.getOpaque())
[error] | ^^^^^^^^^^^^^
[error] |value getOpaque is not a member of java.util.concurrent.atomic.AtomicReference[A]
[error] |
[error] |where: A is a type in method modifyOpaqueWith with bounds <: AnyRef
[error] -- [E008] Not Found Error: /home/smarter/opt/libretto/core/src/main/scala/libretto/util/atomic/package.scala:44:12
[error] 44 | if (ref.weakCompareAndSetPlain(expected, next)) {
[error] | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[error] |value weakCompareAndSetPlain is not a member of java.util.concurrent.atomic.AtomicReference[A]
[error] |
[error] |where: A is a type in method compareAndSetOpaque with bounds <: AnyRef
[error] -- [E008] Not Found Error: /home/smarter/opt/libretto/core/src/main/scala/libretto/util/atomic/package.scala:47:24
[error] 47 | val current = ref.getOpaque()
[error] | ^^^^^^^^^^^^^
[error] |value getOpaque is not a member of java.util.concurrent.atomic.AtomicReference[A]
[error] |
[error] |where: A is a type in method compareAndSetOpaque with bounds <: AnyRef
[error] four errors found
[error] (core / Compile / compileIncremental) Compilation failed
[error] Total time: 20 s, completed 29 janv. 2023 21:17:32 It's possible the hang requires incremental compilation to only recompile a subset of the files in the project. |
(if you can reproduce it on your machine, using |
@smarter Those errors seem unrelated altogether. What Java version are you using? the |
Here's the stack trace from jstack (click to expand)"pool-17-thread-2" #120 prio=5 os_prio=31 cpu=698337.19ms elapsed=730.77s allocated=116G defined_classes=7096 tid=0x00007fd845aa9000 nid=0xb503 runnable [0x000070000bc8d000] java.lang.Thread.State: RUNNABLE at dotty.tools.dotc.core.Types$Type.loop$1(Types.scala:268) at dotty.tools.dotc.core.Types$Type.derivesFrom(Types.scala:292) at dotty.tools.dotc.core.TypeComparer.isSubPrefix$1(TypeComparer.scala:1015) at dotty.tools.dotc.core.TypeComparer.loop$1(TypeComparer.scala:1195) at dotty.tools.dotc.core.TypeComparer.isMatchingApply$1(TypeComparer.scala:1232) at dotty.tools.dotc.core.TypeComparer.compareAppliedType2$1(TypeComparer.scala:1302) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:609) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:401) at dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:275) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.dropIfSuper(TypeComparer.scala:2338) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2202) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:542) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:275) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:275) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:287) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:542) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:542) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:542) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:287) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:287) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:287) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:287) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:542) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:287) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSameTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2181) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2314) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2325) at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2480) at dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2387) at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2415) at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2227) at dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2946) at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1141) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2209) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2218) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2178) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeTypeProxy$1(SymDenotations.scala:2186) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$4(SymDenotations.scala:2194) at dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2238) at dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1134) at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:2393) at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:2338) at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:2354) at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:2311) at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:2299) at dotty.tools.dotc.core.Types$Type.isRef(Types.scala:194) at dotty.tools.dotc.core.Types$Type.isFromJavaObject(Types.scala:296) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:325) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:222) at dotty.tools.dotc.core.ConstraintHandling.op$proxy3$1(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:455) at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:29) at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) at dotty.tools.dotc.core.TypeComparer.compareGADT$1(TypeComparer.scala:546) at dotty.tools.dotc.core.TypeComparer.thirdTryNamed$1(TypeComparer.scala:560) at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:611) at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:539) at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:322) at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:328) at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1430) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:210) at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:220) at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2140) at dotty.tools.dotc.core.TypeComparer.isSame(TypeComparer.scala:2147) at dotty.tools.dotc.core.ConstraintHandling.op$proxy4$1(ConstraintHandling.scala:456) at dotty.tools.dotc.core.ConstraintHandling.isSameTypeWhenFrozen(ConstraintHandling.scala:456) |
Ah right, I was using java 8. |
This was a hell of a task, but here's a minimization: class VarImpl[P, A]()
class ContextImpl[Var[_]]()
trait Lambdas[F[_], P] {
type Var[A] = VarImpl[P, A]
}
class LambdasImpl[F[_], P] extends Lambdas[F, P] {
opaque type Context = ContextImpl[Var]
sealed trait Foo[A]
case class Bar[T]() extends Foo[Var[T]]
def go[X](that: Foo[Var[X]]): Unit =
that match
case _ => ()
} |
How do you get the minimisation to hang? I tried both just running the batch compiler and running it through scala-cli and it just compiles. |
I was playing within a larger sbt project, but tested also with scastie, which hangs as well: |
Hmm, not able to make it fail in an sbt build either. And I don't know how to reproduce Scastie locally. Is there anything of interest in your sbt build? |
Ah. I can reproduce with 3.2.2 (which Scastie uses), not with 3.3.0-R2 which you had mentioned above. |
I just tried with scalac directly and it is hanging for me as well
where |
I was testing the whole project with 3.3.0-RC2 as well, and it was hanging. I didn't check the minimization with 3.3.0-RC2, though |
@dwijnand Are you able to check that the original instructions, after changing Scala version in build.sbt to
|
Yes. |
Here's a version that gets 3.3.0-RC2 hanging: class VarImpl[P, A]()
class ContextImpl[Var[_]]()
trait Lambdas[F[_, _], P] {
type Var[A] = VarImpl[P, A]
}
class LambdasImpl[F[_, _], P] extends Lambdas[F, P] {
opaque type Context = ContextImpl[Var]
sealed trait Foo[A]
case class Bar[T, U]() extends Foo[F[Var[T], Var[U]]]
def go[X](that: Foo[Var[X]]): Unit =
that match
case _ => ()
} @dwijnand Do you want me to open a separate ticket for that? |
No, this will do. Thank you. |
It seems to be happening in the pattern matcher or exhaustivity checker. |
Yes. It's happening in |
My minimisation: class Var[P, I]
class T1
class T2
class T3
class Outer[F[_, _], P]:
type VarP[V] = Var[P, V]
sealed trait Foo[A]
case class Bar() extends Foo[F[VarP[T1], T2]]
def go(scr: Foo[Var[P, T3]]): Unit = scr match
case _ => () |
The code is a bit esoteric, but Dale points out that fixing the pathologically bad performance on this somewhat esoteric code might, if we are lucky, improve performance even on less esoteric code. |
Dale grasps this better than I do, but I'll try to write down his current hypothesis: the compiler is going down a rabbit hole trying to do GADT reasoning on |
@SethTisue Has the compilation actually finished on your machine? Not on mine after 20 minutes. So I don't think "Unreasonably slow compilation" quite captures the problem. Anyway, how do you tell that some code is "esoteric"? And is that a useful qualifier w.r.t. the issue? NB, most minimized examples are contrived and necessarily look artificial. |
My
Apropos to that: it was very handy to have the diff of the commit that failed, because from there I was able to disprove a thought I'd had: I started to wonder whether it was a mistake that Bar extended case class Zip[A1, A2](resultVar: Var[A1 |*| A2]) extends Op.Linear[Var[A1] |*| Var[A2], Var[A1 |*| A2]] But about your main point, it's necessary to balance out how much time to spend or not spend on tickets, and so some thought goes into how common a problem might appear, how hard it might be to fix and how hard it might be to workaround. Creating nested sealed hierarchies that depend on an outer type parameter isn't something I'd seen before, much less considered. I don't consider it unreasonable, but I would also say it's uncommon, which lowers its priority over other issues. But I'm hooked 😄, and I'm hoping I can find a way to distinguish the times where the outer type parameter should be considered vs where it should be ignored (such as this case) so that it doesn't take forever to compile. I'm not sure I'll be able to make progress understanding the underlying cause of why those parameters are leading to this behaviour. |
By no means do I expect anyone to leave everything they are doing and start working on my bug report (but I'm glad @dwijnand is hooked 😄). I just couldn't help but hear that non-termination is OK if the code looks strange.
It wasn't but it could have well been. In the middle of refactoring, there will inevitably be wrong code. That's why I like static type checking—to guide me through it 😉.
I would say that the combination of higher kinds and nested types is Scala's unique feature (among industry languages, at least). We can have trait OuterContext[F[_], G[_, _], H]
enum ->[A, B] {
case Id[A]() extends ->[A, A]
case ...
// elsewhere
val ctx: OuterContext[Foo, Bar, Baz]
import ctx.->
def go[A, B, C](f: A -> B, g: B -> C): A -> C =
??? instead of enum Fun[F[_], G[_, _], H, A, B]
case Id[F[_], G[_, _], H, A]() extends Fun[F, G, H, A, A]
case ...
// elsewhere
def go[F[_], G[_, _], H, A, B, C](f: Fun[F, G, H, A, B], g: Fun[F, G, H, B, C]): Fun[F, G, H, A, C] =
??? Which enum definition is clearer, Also, I have found this style workable only since Scala 3 (thanks to improved type checking of path-dependent types). That means you won't find it in projects that (cross-)compile to Scala 2.x. And that could be a big part of why it's not very common (yet). |
Agreed - I try to always consider the survival bias. |
Thanks for the fix, @dwijnand ! Is there an easy way for me to try the fixed version in an sbt project? |
You can find the version number of the latest nightly by scrolling to the bottom of https://repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/ and it can directly be used as a version number in sbt, e.g. |
Thanks, @smarter. Today is not my lucky day:
|
Sorry about that. We do have libretto in our community-build but it hasn't been updated in a while: https://github.com/lampepfl/dotty/tree/main/community-build/community-projects |
Ha, I've been occasionally syncing the dotty-staging/libretto fork, but obviously that's not enough 🤦 |
Yeah, technically submodules point to commits, not branches. Good for reproducibility but annoying to deal with sometimes :). |
So here I isolated the typechecking regression: #16997. |
Great! I can put it on my todo list, but if you want it to get done faster, you can also open a PR that updates it. It sounds like you have access to the dotty-staging repo already, so you should be able to do something like: git submodule update --init community-build/community-projects/libretto
cd community-build/community-projects/libretto
git fetch # I don't think specifying the remote will be necessary?
git checkout FETCH_HEAD # or manually checkout the correct commit
cd ..
git add libretto
git commit -am "..." |
Here's the pull request to update Libretto: #17044 |
Compiler version
3.2.2
3.3.0-RC2
Reproduction steps
Note that I hit this bug in the middle of a refactoring session, so most likely the code should not compile just yet.
It is hard to minimize, because whatever I undo, I do get an actual compiler error. I'm hoping you could detect where it's looping, anyway.
UPDATE: Here's a minimization:
Output
After a while, compilation hangs with 100% of 1 CPU core.
The text was updated successfully, but these errors were encountered: