scala / scala3

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

Spurious cyclic reference error #13937

Open adampauls opened 2 years ago

adampauls commented 2 years ago

The code below compiles on Scala 2.13.7. Although in this minimized example, the compiler doesn't crash, in the non-minimized use case in our real code, the compiler does crash with the stacktrace shown even lower. I'm not entirely sure if this code should compile in either version, but we have been using it since 2.12 with no trouble.

Note that the compiler crash occurs when code compiled with 3.1.0 depends on the non-minimized version of this code compiled with 2.13.7.

Update: you can workaround the problem where code compiled with Scala 2 is referenced from Scala 3 by overriding the methods in the Scala 2 code with the concrete type. That is, if you have a method def foo: Foo on AbstractBar, if you override it with def foo: ConcreteFoo on ConcreteBar, then foo can be called on an instance of ConcreteBar from Scala 3 without an error.

Compiler version

3.1.0

Minimized code

trait AbstractFoo extends AbstractTypes
class ConcreteFoo extends AbstractFoo with ConcreteTypes

trait AbstractTypes { self =>

  type Bar <: AbstractBar { type Foo = self.Foo }

  type Foo <: AbstractFoo { type Bar = self.Bar }

}

trait ConcreteTypes extends AbstractTypes {
  override type Bar = ConcreteBar
  override type Foo = ConcreteFoo
}

class ConcreteBar extends AbstractBar with ConcreteTypes

trait AbstractBar extends AbstractTypes

Output (click arrow to expand)

``` [error] -- Error: [redacted] [error] 3 |trait AbstractFoo extends AbstractTypes [error] | ^ [error] |Recursion limit exceeded. [error] |Maybe there is an illegal cyclic reference? [error] |If that's not the case, you could also try to increase the stacksize using the -Xss JVM option. [error] |A recurring operation is (inner to outer): [error] | [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | ... [error] | [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] -- Error: /[redacted] [error] 4 |class ConcreteFoo extends AbstractFoo with ConcreteTypes [error] | ^ [error] |Recursion limit exceeded. [error] |Maybe there is an illegal cyclic reference? [error] |If that's not the case, you could also try to increase the stacksize using the -Xss JVM option. [error] |A recurring operation is (inner to outer): [error] | [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | ... [error] | [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] | find-member AbstractFoo#Foo [error] | find-member AbstractFoo#Bar [error] -- Error: [redacted] [error] 14 |trait ConcreteTypes extends AbstractTypes { [error] | ^ [error] |Recursion limit exceeded. [error] |Maybe there is an illegal cyclic reference? [error] |If that's not the case, you could also try to increase the stacksize using the -Xss JVM option. [error] |A recurring operation is (inner to outer): [error] | [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | ... [error] | [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] -- Error: [redacted] [error] 19 |class ConcreteBar extends AbstractBar with ConcreteTypes [error] | ^ [error] |Recursion limit exceeded. [error] |Maybe there is an illegal cyclic reference? [error] |If that's not the case, you could also try to increase the stacksize using the -Xss JVM option. [error] |A recurring operation is (inner to outer): [error] | [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | ... [error] | [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] | find-member AbstractBar#Foo [error] | find-member AbstractBar#Bar [error] -- Error: [redacted] [error] 21 |trait AbstractBar extends AbstractTypes [error] | ^ [error] |Recursion limit exceeded. [error] |Maybe there is an illegal cyclic reference? [error] |If that's not the case, you could also try to increase the stacksize using the -Xss JVM option. [error] |A recurring operation is (inner to outer): [error] | [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | ... [error] | [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] | find-member AbstractTypes#Foo [error] | find-member AbstractTypes#Bar [error] 5 errors found [error] 5 errors found ``` Stacktrace from non-minimized crash: ``` [error] java.lang.AssertionError: assertion failed [error] scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:11) [error] dotty.tools.dotc.core.Types$LazyRef.ref(Types.scala:2859) [error] dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:1376) [error] dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1384) [error] dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:319) [error] dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:2030) [error] dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:2033) [error] dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:2164) [error] dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:2330) [error] dotty.tools.dotc.core.TypeComparer.andTypeGen(TypeComparer.scala:2237) [error] dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:2265) [error] dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:2077) [error] dotty.tools.dotc.core.TypeComparer$.glb(TypeComparer.scala:2766) [error] dotty.tools.dotc.core.Types$Type.$amp(Types.scala:1132) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeAndOrType$1(SymDenotations.scala:2195) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.recur$1(SymDenotations.scala:2204) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.baseTypeOf(SymDenotations.scala:2224) [error] dotty.tools.dotc.core.Types$Type.baseType(Types.scala:1125) [error] dotty.tools.dotc.core.TypeComparer.nonExprBaseType(TypeComparer.scala:1333) [error] dotty.tools.dotc.core.TypeComparer.tryBaseType$1(TypeComparer.scala:753) [error] dotty.tools.dotc.core.TypeComparer.compareAppliedType2$1(TypeComparer.scala:1196) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:565) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:451) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:260) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:260) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Types$Type.goAnd$1(Types.scala:851) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:717) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.nonPrivateMember(Types.scala:656) [error] dotty.tools.dotc.core.Types$NamedType.memberDenot(Types.scala:2269) [error] dotty.tools.dotc.core.Types$NamedType.reload$1(Types.scala:2550) [error] dotty.tools.dotc.core.Types$NamedType.withPrefix(Types.scala:2563) [error] dotty.tools.dotc.core.Types$NamedType.derivedSelect(Types.scala:2503) [error] dotty.tools.dotc.core.Types$TypeMap.derivedSelect(Types.scala:5328) [error] dotty.tools.dotc.core.Types$ApproximatingTypeMap.derivedSelect(Types.scala:5632) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:101) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver$$anonfun$1(Types.scala:5450) [error] dotty.tools.dotc.core.Types$LazyRef.ref(Types.scala:2865) [error] dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:249) [error] dotty.tools.dotc.core.Types$TypeMap.op$proxy16$1(Types.scala:5367) [error] dotty.tools.dotc.core.Types$TypeMap.mapArgs(Types.scala:5367) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5402) [error] dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:253) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5414) [error] dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:253) [error] dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:256) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Types$Type.goAnd$1(Types.scala:851) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:717) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.nonPrivateMember(Types.scala:656) [error] dotty.tools.dotc.core.Types$NamedType.memberDenot(Types.scala:2269) [error] dotty.tools.dotc.core.Types$NamedType.reload$1(Types.scala:2550) [error] dotty.tools.dotc.core.Types$NamedType.withPrefix(Types.scala:2563) [error] dotty.tools.dotc.core.Types$NamedType.derivedSelect(Types.scala:2503) [error] dotty.tools.dotc.core.Types$TypeMap.derivedSelect(Types.scala:5328) [error] dotty.tools.dotc.core.Types$ApproximatingTypeMap.derivedSelect(Types.scala:5632) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:101) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver$$anonfun$1(Types.scala:5450) [error] dotty.tools.dotc.core.Types$LazyRef.ref(Types.scala:2865) [error] dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:249) [error] dotty.tools.dotc.core.Types$TypeMap.op$proxy16$1(Types.scala:5367) [error] dotty.tools.dotc.core.Types$TypeMap.mapArgs(Types.scala:5367) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5402) [error] dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:253) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5414) [error] dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:253) [error] dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:256) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.goAnd$1(Types.scala:851) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:717) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.Types$ApproximatingTypeMap.tryWiden(Types.scala:5582) [error] dotty.tools.dotc.core.Types$ApproximatingTypeMap.derivedSelect(Types.scala:5628) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:101) [error] dotty.tools.dotc.core.Types$TypeMap.op$proxy18$1(Types.scala:5408) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5408) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5437) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5414) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.TypeOps$.asSeenFrom(TypeOps.scala:54) [error] dotty.tools.dotc.core.Types$Type.asSeenFrom(Types.scala:1024) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.derived$1(Denotations.scala:1096) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1118) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1076) [error] dotty.tools.dotc.core.Denotations$PreDenotation.asSeenFrom(Denotations.scala:135) [error] dotty.tools.dotc.core.Denotations$DenotUnion.computeAsSeenFrom(Denotations.scala:1215) [error] dotty.tools.dotc.core.Denotations$PreDenotation.asSeenFrom(Denotations.scala:135) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.goAnd$1(Types.scala:851) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:717) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.Types$ApproximatingTypeMap.tryWiden(Types.scala:5582) [error] dotty.tools.dotc.core.Types$ApproximatingTypeMap.derivedSelect(Types.scala:5628) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:101) [error] dotty.tools.dotc.core.Types$TypeMap.op$proxy18$1(Types.scala:5408) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5408) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5437) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5437) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5414) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.TypeOps$.asSeenFrom(TypeOps.scala:54) [error] dotty.tools.dotc.core.Types$Type.asSeenFrom(Types.scala:1024) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.derived$1(Denotations.scala:1096) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1118) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1076) [error] dotty.tools.dotc.core.Denotations$PreDenotation.asSeenFrom(Denotations.scala:135) [error] dotty.tools.dotc.core.Denotations$DenotUnion.computeAsSeenFrom(Denotations.scala:1215) [error] dotty.tools.dotc.core.Denotations$PreDenotation.asSeenFrom(Denotations.scala:135) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.goAnd$1(Types.scala:851) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:717) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:590) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:451) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:260) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:355) [error] dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:260) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:260) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSubInfo$1(TypeComparer.scala:1827) [error] dotty.tools.dotc.core.TypeComparer.qualifies$1(TypeComparer.scala:1830) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1835) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.core.TypeComparer.hasMatchingMember(TypeComparer.scala:1834) [error] dotty.tools.dotc.core.TypeComparer.compareRefinedSlow$1(TypeComparer.scala:574) [error] dotty.tools.dotc.core.TypeComparer.compareRefined$1(TypeComparer.scala:595) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:600) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:396) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.compareTypeBounds$1(TypeComparer.scala:730) [error] dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:736) [error] dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:498) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:384) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.isSub(TypeComparer.scala:207) [error] dotty.tools.dotc.core.ConstraintHandling.op$proxy1$1(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:229) [error] dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:27) [error] dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:30) [error] dotty.tools.dotc.core.TypeComparer$.isSubTypeWhenFrozen(TypeComparer.scala:2738) [error] dotty.tools.dotc.core.Types$Type.frozen_$less$colon$less(Types.scala:1038) [error] dotty.tools.dotc.core.Types$Type.overrides(Types.scala:1077) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeSingleDenot$1(Denotations.scala:474) [error] dotty.tools.dotc.core.Denotations$Denotation.mergeDenot$1(Denotations.scala:407) [error] dotty.tools.dotc.core.Denotations$Denotation.meet(Denotations.scala:493) [error] dotty.tools.dotc.core.Denotations$DenotUnion.toDenot(Denotations.scala:1210) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2067) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.goThis$1(Types.scala:807) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:700) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.nonPrivateMember(Types.scala:656) [error] dotty.tools.dotc.core.Types$NamedType.memberDenot(Types.scala:2269) [error] dotty.tools.dotc.core.Types$NamedType.reload$1(Types.scala:2550) [error] dotty.tools.dotc.core.Types$NamedType.withPrefix(Types.scala:2563) [error] dotty.tools.dotc.core.Types$NamedType.derivedSelect(Types.scala:2503) [error] dotty.tools.dotc.core.Types$TypeMap.derivedSelect(Types.scala:5328) [error] dotty.tools.dotc.core.Types$ApproximatingTypeMap.derivedSelect(Types.scala:5632) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:101) [error] dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:5421) [error] dotty.tools.dotc.core.TypeOps$AsSeenFromMap.apply(TypeOps.scala:109) [error] dotty.tools.dotc.core.TypeOps$.asSeenFrom(TypeOps.scala:54) [error] dotty.tools.dotc.core.Types$Type.asSeenFrom(Types.scala:1024) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.derived$1(Denotations.scala:1096) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1118) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.computeAsSeenFrom(Denotations.scala:1076) [error] dotty.tools.dotc.core.Denotations$PreDenotation.asSeenFrom(Denotations.scala:135) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.mapInherited(Denotations.scala:1059) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.mapInherited(Denotations.scala:1056) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.collect$1(SymDenotations.scala:2055) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.collect$1(SymDenotations.scala:2051) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.addInherited(SymDenotations.scala:2060) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.computeMembersNamed(SymDenotations.scala:2045) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.membersNamed(SymDenotations.scala:2012) [error] dotty.tools.dotc.core.SymDenotations$ClassDenotation.findMember(SymDenotations.scala:2063) [error] dotty.tools.dotc.core.Types$Type.go$1(Types.scala:683) [error] dotty.tools.dotc.core.Types$Type.findMember(Types.scala:870) [error] dotty.tools.dotc.core.Types$Type.memberBasedOnFlags(Types.scala:666) [error] dotty.tools.dotc.core.Types$Type.member(Types.scala:650) [error] dotty.tools.dotc.typer.ProtoTypes$SelectionProto.isMatchedBy(ProtoTypes.scala:187) [error] dotty.tools.dotc.core.TypeComparer.isMatchedByProto(TypeComparer.scala:1893) [error] dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:315) [error] dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1315) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:195) [error] dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:205) [error] dotty.tools.dotc.core.TypeComparer.topLevelSubType(TypeComparer.scala:128) [error] dotty.tools.dotc.core.TypeComparer.testSubType(TypeComparer.scala:154) [error] dotty.tools.dotc.core.TypeComparer$.testSubType(TypeComparer.scala:2741) [error] dotty.tools.dotc.typer.Typer.adaptNoArgsOther$4(Typer.scala:3585) [error] dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3682) [error] dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3873) [error] dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3224) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3003) [error] dotty.tools.dotc.typer.Typer.typeSelectOnTerm$1(Typer.scala:613) [error] dotty.tools.dotc.typer.Typer.typedSelect(Typer.scala:663) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2725) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2817) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3003) [error] dotty.tools.dotc.typer.Typer.typeSelectOnTerm$1(Typer.scala:613) [error] dotty.tools.dotc.typer.Typer.typedSelect(Typer.scala:663) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2725) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2817) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3003) [error] dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1429) [error] dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1419) [error] dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1429) [error] dotty.tools.dotc.typer.Namer.typedAheadRhs$1$$anonfun$1(Namer.scala:1681) [error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:225) [error] dotty.tools.dotc.typer.Namer.typedAheadRhs$2(Namer.scala:1681) [error] dotty.tools.dotc.typer.Namer.rhsType$1(Namer.scala:1689) [error] dotty.tools.dotc.typer.Namer.cookedRhsType$1(Namer.scala:1716) [error] dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1717) [error] dotty.tools.dotc.typer.Namer.inferredResultType(Namer.scala:1728) [error] dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1468) [error] dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1475) [error] dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:751) [error] dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:887) [error] dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:779) [error] dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:167) [error] dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:188) [error] dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:190) [error] dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:369) [error] dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2697) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2722) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2817) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2909) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2959) [error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1027) [error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1031) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2763) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3003) [error] dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1429) [error] dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1419) [error] dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1429) [error] dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1486) [error] dotty.tools.dotc.typer.Namer.defDefSig(Namer.scala:1559) [error] dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:755) [error] dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:887) [error] dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:779) [error] dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:167) [error] dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:188) [error] dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:190) [error] dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:369) [error] dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2697) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2722) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2817) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2909) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2959) [error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1027) [error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1031) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2763) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.typedFunctionValue(Typer.scala:1410) [error] dotty.tools.dotc.typer.Typer.typedFunction(Typer.scala:1199) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2765) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818) [error] dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$5(ProtoTypes.scala:431) [error] dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:359) [error] dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:432) [error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:853) [error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:853) [error] dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:544) [error] dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:609) [error] dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:447) [error] dotty.tools.dotc.typer.Applications$TypedApply.(Applications.scala:735) [error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.(Applications.scala:852) [error] dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1060) [error] dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:317) [error] dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:107) [error] dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:907) [error] dotty.tools.dotc.typer.Applications.realApply$5$$anonfun$4(Applications.scala:986) [error] dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:3011) [error] dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:997) [error] dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1035) [error] dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:317) [error] dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:107) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2755) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2802) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2936) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2959) [error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1027) [error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1031) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2763) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3003) [error] dotty.tools.dotc.typer.Typer.$anonfun$39(Typer.scala:2211) [error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:225) [error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2211) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2732) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2817) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2909) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2959) [error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2409) [error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2743) [error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2747) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2817) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2909) [error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2959) [error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2532) [error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2788) [error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2818) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2883) [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2887) [error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3003) [error] dotty.tools.dotc.typer.TyperPhase.liftedTree1$1(TyperPhase.scala:56) [error] dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$1(TyperPhase.scala:62) [error] dotty.tools.dotc.core.Phases$Phase.monitor(Phases.scala:411) [error] dotty.tools.dotc.typer.TyperPhase.typeCheck(TyperPhase.scala:63) [error] dotty.tools.dotc.typer.TyperPhase.runOn$$anonfun$1(TyperPhase.scala:105) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.immutable.List.foreach(List.scala:333) [error] dotty.tools.dotc.typer.TyperPhase.runOn(TyperPhase.scala:105) [error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:261) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323) [error] dotty.tools.dotc.Run.runPhases$5(Run.scala:272) [error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:280) [error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18) [error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68) [error] dotty.tools.dotc.Run.compileUnits(Run.scala:289) [error] dotty.tools.dotc.Run.compileSources(Run.scala:222) [error] dotty.tools.dotc.Run.compile(Run.scala:206) [error] dotty.tools.dotc.Driver.doCompile(Driver.scala:39) [error] dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88) [error] dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22) [error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:186) [error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) [error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:241) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:176) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:157) [error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239) [error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:157) [error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:204) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:528) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:528) [error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:174) [error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:172) [error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:457) [error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116) [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56) [error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52) [error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:261) [error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:412) [error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499) [error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:399) [error] sbt.internal.inc.Incremental$.apply(Incremental.scala:166) [error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:528) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:482) [error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332) [error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420) ```
adampauls commented 2 years ago

@odersky this comment suggests that this issue might not get fixed. Where can I read up on the workaround using intersection types? In our particular case, the alternative to the code we have is to have type parameter lists that are going to be hundreds of chars long (like T[A <: AbstractA, B <: AbstractB[A], C <: AbstractC[A, B], ...] but where A and B are real class names) repeated in probably a dozen or so places. I'm not sure how to use intersection types to fix the problem. Moreover, note that the compiler crash occurred when trying to use this code from Scala 3, but compiled with 2.13 -- where intersection types are not available.

Perhaps I should focus on minimizing the compiler crash and treating that as the more urgent bug?

odersky commented 2 years ago

I am not very good at finding past comments on issues. I think @japgolly commented once on that. Or maybe others can help?

adampauls commented 2 years ago

The link goes straight to a comment by you. It says:

For my own sanity I have decided to no longer fix F-bounds problems that cause cyclic references. We know they will cause more cyclic references than Scala 2. The recommended fix is to replace them with intersection types.

odersky commented 2 years ago

Yes, but I cannot find the original discussions. Some others should help out here.

adampauls commented 2 years ago

Okay great, I will wait then. We are eager to upgrade our codebase to Scala 3!

griggt commented 2 years ago

Perhaps this comment is of interest, re: replacing F-bounds with intersection types.

odersky commented 2 years ago

@griggt That's the one! Thanks for digging it out. We should put it in a FAQ, it certainly comes up often enough.

japgolly commented 2 years ago

Yep, also check this out to see it in action in a way that cross-compiles for Scala 2 and 3. Very cool trick.

adampauls commented 2 years ago

Thanks, that's great! Just to make sure it doesn't get lost though: that is not a solution to using existing code compiled under 2.13 right? The compiler crash I mentioned still violates the promised binary compatibility, and even if you could can the code, the intersection type option is not available.

adampauls commented 2 years ago

Oh, oops, commented too fast! Looks like this is a potential solution, thanks. I do hope you don't close this issue though, it is a shame to have to do this surprising transformation away from the intuitive way of doing it.

adampauls commented 2 years ago

So am I reading the room right that neither the compiler error nor the compiler crash is going to get fixed any time soon? I want to repeat that the original bug came from a compiler crash trying to use code compiled in 2.13 from code compiled using 3. Even if Scala 3 has effectively declared that f-bounds will not be supported, maintaining binary compatibility with 2.13 I think is a must, and eliminating a known compiler crash also seems like a must. If I can minimize the crash, is there any chance this will get prioritized? Our team will just never upgrade to Scala 3 if we can't get this fixed I think. The change required to get rid of f-bounds in our existing code would be too large.

adampauls commented 2 years ago

(Sorry if I seem impatient. There's a bit of a window right now to maybe upgrade to Scala 3, but my some on my team are skeptical. If this bug has been placed in a queue where it eventually will get fixed then I apologize for speaking up, I was just worried from @odersky 's comment that this fix might be low enough priority that it will never happen).

adampauls commented 2 years ago

I added some notes on a workaround above that at least unblock our current usage.