Closed
Description
Minimized from the community-build failure of zio/zio-config reported in #15647
Compiler version
3.2.0-RC2
Works on 3.1.3
Fails on 3.2.0-RC1
Fails on 3.2.1-RC1-bin-20220710-794e7c9-NIGHTLY
Minimized code
trait ConfigSourceModule:
object ConfigSource:
class R
object M extends ConfigSourceModule
object Foo:
implicit class FromConfigSource(c: M.ConfigSource.type)
object FooBar: // problem disappears if we rename as `Bar`
def foo: M.ConfigSource.R = new M.ConfigSource.R // problem disappears if we use `???` as rhs
Output (click arrow to expand)
java.lang.AssertionError: assertion failed: MethodType(List(), List(), TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),trait ConfigSourceModule)),module class ConfigSource$))
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
at dotty.tools.dotc.core.TypeErasure.dotty$tools$dotc$core$TypeErasure$$sigName(TypeErasure.scala:851)
at dotty.tools.dotc.core.TypeErasure$.sigName(TypeErasure.scala:204)
at dotty.tools.dotc.core.Signature.$anonfun$2(Signature.scala:111)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Signature.prependTermParams(Signature.scala:111)
at dotty.tools.dotc.core.Types$MethodOrPoly.computeSignature$2(Types.scala:3560)
at dotty.tools.dotc.core.Types$MethodOrPoly.signature(Types.scala:3577)
at dotty.tools.dotc.core.Types$MethodOrPoly.signature(Types.scala:3587)
at dotty.tools.dotc.core.TypeComparer.compareMethod$1(TypeComparer.scala:703)
at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:709)
at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:506)
at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:383)
at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1336)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:194)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:204)
at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2019)
at dotty.tools.dotc.core.TypeComparer$.isSameType(TypeComparer.scala:2761)
at dotty.tools.dotc.core.Types$Type.$eq$colon$eq(Types.scala:1056)
at dotty.tools.backend.jvm.BCodeHelpers.dotty$tools$backend$jvm$BCodeHelpers$$getStaticForwarderGenericSignature(BCodeHelpers.scala:920)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarder(BCodeHelpers.scala:514)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarders$$anonfun$3(BCodeHelpers.scala:594)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarders(BCodeHelpers.scala:596)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarders$(BCodeHelpers.scala:490)
at dotty.tools.backend.jvm.BCodeHelpers$JCommonBuilder.addForwarders(BCodeHelpers.scala:654)
at dotty.tools.backend.jvm.BCodeHelpers$JMirrorBuilder.genMirrorClass(BCodeHelpers.scala:701)
at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.visit(GenBCode.scala:257)
at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.run(GenBCode.scala:231)
at dotty.tools.backend.jvm.GenBCodePipeline.buildAndSendToDisk(GenBCode.scala:598)
at dotty.tools.backend.jvm.GenBCodePipeline.run(GenBCode.scala:564)
at dotty.tools.backend.jvm.GenBCode.run(GenBCode.scala:69)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:311)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:312)
at dotty.tools.backend.jvm.GenBCode.runOn(GenBCode.scala:77)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:234)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1328)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:245)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:253)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:262)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
at dotty.tools.dotc.Run.compileUnits(Run.scala:262)
at dotty.tools.dotc.Run.compileSources(Run.scala:186)
at dotty.tools.dotc.Run.compile(Run.scala:170)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:35)
at dotty.tools.dotc.Driver.process(Driver.scala:195)
at dotty.tools.dotc.Driver.process(Driver.scala:163)
at dotty.tools.dotc.Driver.process(Driver.scala:175)
at dotty.tools.dotc.Driver.main(Driver.scala:205)
at dotty.tools.dotc.Main.main(Main.scala)
no sig for MethodType(List(), List(), TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),trait ConfigSourceModule)),module class ConfigSource$)) because of ()
assertion failure for (c(): ConfigSourceModule.this.ConfigSource): Foo.FromConfigSource <:< (c: ConfigSourceModule.this.ConfigSource): Foo.FromConfigSource, frozen = false
Error while emitting ConfigSourceModule.scala
exception occurred while compiling ConfigSourceModule.scala
java.lang.AssertionError: assertion failed: MethodType(List(), List(), TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),trait ConfigSourceModule)),module class ConfigSource$)) while compiling ConfigSourceModule.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: MethodType(List(), List(), TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),trait ConfigSourceModule)),module class ConfigSource$))
at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
at dotty.tools.dotc.core.TypeErasure.dotty$tools$dotc$core$TypeErasure$$sigName(TypeErasure.scala:851)
at dotty.tools.dotc.core.TypeErasure$.sigName(TypeErasure.scala:204)
at dotty.tools.dotc.core.Signature.$anonfun$2(Signature.scala:111)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Signature.prependTermParams(Signature.scala:111)
at dotty.tools.dotc.core.Types$MethodOrPoly.computeSignature$2(Types.scala:3560)
at dotty.tools.dotc.core.Types$MethodOrPoly.signature(Types.scala:3577)
at dotty.tools.dotc.core.Types$MethodOrPoly.signature(Types.scala:3587)
at dotty.tools.dotc.core.TypeComparer.compareMethod$1(TypeComparer.scala:703)
at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:709)
at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:506)
at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:383)
at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1336)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:194)
at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:204)
at dotty.tools.dotc.core.TypeComparer.isSameType(TypeComparer.scala:2019)
at dotty.tools.dotc.core.TypeComparer$.isSameType(TypeComparer.scala:2761)
at dotty.tools.dotc.core.Types$Type.$eq$colon$eq(Types.scala:1056)
at dotty.tools.backend.jvm.BCodeHelpers.dotty$tools$backend$jvm$BCodeHelpers$$getStaticForwarderGenericSignature(BCodeHelpers.scala:920)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarder(BCodeHelpers.scala:514)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarders$$anonfun$3(BCodeHelpers.scala:594)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.immutable.List.foreach(List.scala:333)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarders(BCodeHelpers.scala:596)
at dotty.tools.backend.jvm.BCodeHelpers$BCForwardersGen.addForwarders$(BCodeHelpers.scala:490)
at dotty.tools.backend.jvm.BCodeHelpers$JCommonBuilder.addForwarders(BCodeHelpers.scala:654)
at dotty.tools.backend.jvm.BCodeHelpers$JMirrorBuilder.genMirrorClass(BCodeHelpers.scala:701)
at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.visit(GenBCode.scala:257)
at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.run(GenBCode.scala:231)
at dotty.tools.backend.jvm.GenBCodePipeline.buildAndSendToDisk(GenBCode.scala:598)
at dotty.tools.backend.jvm.GenBCodePipeline.run(GenBCode.scala:564)
at dotty.tools.backend.jvm.GenBCode.run(GenBCode.scala:69)
at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:311)
at scala.collection.immutable.List.map(List.scala:246)
at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:312)
at dotty.tools.backend.jvm.GenBCode.runOn(GenBCode.scala:77)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:234)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1328)
at dotty.tools.dotc.Run.runPhases$1(Run.scala:245)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:253)
at dotty.tools.dotc.Run.compileUnits$$anonfun$adapted$1(Run.scala:262)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
at dotty.tools.dotc.Run.compileUnits(Run.scala:262)
at dotty.tools.dotc.Run.compileSources(Run.scala:186)
at dotty.tools.dotc.Run.compile(Run.scala:170)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:35)
at dotty.tools.dotc.Driver.process(Driver.scala:195)
at dotty.tools.dotc.Driver.process(Driver.scala:163)
at dotty.tools.dotc.Driver.process(Driver.scala:175)
at dotty.tools.dotc.Driver.main(Driver.scala:205)
at dotty.tools.dotc.Main.main(Main.scala)