Closed
Description
class X[A >: X[_ <: X[_]] <: X[A]]
Exception in thread "main" java.lang.StackOverflowError
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3940)
at dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:156)
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3978)
at dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:156)
at dotty.tools.dotc.core.Types$TypeMap.mapArgs$1(Types.scala:3959)
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3968)
at dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:156)
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3980)
at dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:156)
at dotty.tools.dotc.core.Types$TypeMap.mapArgs$1(Types.scala:3959)
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3968)
at dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:156)
at dotty.tools.dotc.core.Types$TypeMap.$anonfun$mapOver$5(Types.scala:3942)
at dotty.tools.dotc.core.Types$VariantTraversal.atVariance(Types.scala:3888)
at dotty.tools.dotc.core.Types$TypeMap.mapOver(Types.scala:3942)
at dotty.tools.dotc.core.TypeComparer$$anon$1.apply(TypeComparer.scala:154)
at dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:159)
at dotty.tools.dotc.core.TypeComparer.$anonfun$recur$2(TypeComparer.scala:853)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:39)
at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:129)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:124)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:127)
at dotty.tools.dotc.core.TypeComparer.topLevelSubType(TypeComparer.scala:110)
at dotty.tools.dotc.core.Types$Type.$anonfun$$less$colon$less$1(Types.scala:774)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$less$colon$less(Types.scala:774)
at dotty.tools.dotc.core.Types$TypeBounds.contains(Types.scala:3580)
at dotty.tools.dotc.core.TypeComparer.isSubArg$1(TypeComparer.scala:892)
at dotty.tools.dotc.core.TypeComparer.isSubArgs(TypeComparer.scala:905)
at dotty.tools.dotc.core.TypeComparer.isMatchingApply$1(TypeComparer.scala:685)
at dotty.tools.dotc.core.TypeComparer.compareAppliedType2$1(TypeComparer.scala:789)
at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:405)
at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:363)
at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:285)
at dotty.tools.dotc.core.TypeComparer.monitoredIsSubType$1(TypeComparer.scala:163)
at dotty.tools.dotc.core.TypeComparer.$anonfun$recur$2(TypeComparer.scala:853)
at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:39)
at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:129)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:124)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:127)
at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:164)
at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen$(ConstraintHandling.scala:161)
at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:19)
at dotty.tools.dotc.core.TypeComparer.dropIfSuper(TypeComparer.scala:1372)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1243)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)
at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:1744)
at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1700)
at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1689)
at dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:995)
at dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1026)
at dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:246)
at dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:1221)
at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:1224)
at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:1348)
at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:1509)
at dotty.tools.dotc.core.TypeComparer.$anonfun$andType$2(TypeComparer.scala:1440)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:1439)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1263)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)
at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:1744)
at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1700)
at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1689)
at dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:995)
at dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1026)
at dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:246)
at dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:1221)
at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:1224)
at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:1348)
at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:1509)
at dotty.tools.dotc.core.TypeComparer.$anonfun$andType$2(TypeComparer.scala:1440)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:1439)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1263)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)
at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:1744)
at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1700)
at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1689)
at dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:995)
at dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1026)
at dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:246)
at dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:1221)
at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:1224)
at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:1348)
at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:1509)
at dotty.tools.dotc.core.TypeComparer.$anonfun$andType$2(TypeComparer.scala:1440)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:1439)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1263)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)
at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:1744)
at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1700)
at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1689)
at dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:995)
at dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1026)
at dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:246)
at dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:1221)
at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:1224)
at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:1348)
at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:1509)
at dotty.tools.dotc.core.TypeComparer.$anonfun$andType$2(TypeComparer.scala:1440)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:1439)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1263)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)
at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:1744)
at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1700)
at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1689)
at dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:995)
at dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1026)
at dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:246)
at dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:1221)
at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:1224)
at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:1348)
at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:1509)
at dotty.tools.dotc.core.TypeComparer.$anonfun$andType$2(TypeComparer.scala:1440)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:1439)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1263)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)
at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:1744)
at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1700)
at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1689)
at dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:995)
at dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1026)
at dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:246)
at dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:1221)
at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:1224)
at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:1348)
at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:1509)
at dotty.tools.dotc.core.TypeComparer.$anonfun$andType$2(TypeComparer.scala:1440)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:1439)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1263)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)
at dotty.tools.dotc.core.Types$NamedType.computeDenot(Types.scala:1744)
at dotty.tools.dotc.core.Types$NamedType.denot(Types.scala:1700)
at dotty.tools.dotc.core.Types$NamedType.info(Types.scala:1689)
at dotty.tools.dotc.core.Types$Type.dealias1(Types.scala:995)
at dotty.tools.dotc.core.Types$Type.dealias(Types.scala:1026)
at dotty.tools.dotc.core.Types$Type.isSingleton(Types.scala:246)
at dotty.tools.dotc.core.TypeComparer.isSingletonBounds$1(TypeComparer.scala:1221)
at dotty.tools.dotc.core.TypeComparer.singletonInterval(TypeComparer.scala:1224)
at dotty.tools.dotc.core.TypeComparer.glbArgs(TypeComparer.scala:1348)
at dotty.tools.dotc.core.TypeComparer.distributeAnd(TypeComparer.scala:1509)
at dotty.tools.dotc.core.TypeComparer.$anonfun$andType$2(TypeComparer.scala:1440)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.andType(TypeComparer.scala:1439)
at dotty.tools.dotc.core.TypeComparer.$anonfun$glb$2(TypeComparer.scala:1263)
at dotty.tools.dotc.reporting.trace$.op1$3(trace.scala:32)
at dotty.tools.dotc.reporting.trace$.apply(trace.scala:33)
at dotty.tools.dotc.core.TypeComparer.glb(TypeComparer.scala:1229)
at dotty.tools.dotc.core.Types$Type.$anonfun$$amp$1(Types.scala:863)
at dotty.tools.dotc.util.Stats$.track(Stats.scala:35)
at dotty.tools.dotc.core.Types$Type.$amp(Types.scala:863)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3586)
at dotty.tools.dotc.core.Types$TypeBounds.$amp(Types.scala:3594)
at dotty.tools.dotc.core.Types$Type.recoverable_$amp(Types.scala:883)
at dotty.tools.dotc.core.Types$NamedType.argDenot(Types.scala:1801)
at dotty.tools.dotc.core.Types$NamedType.fromDesignator$1(Types.scala:1726)