Skip to content

dotc crash caused by: cannot take signature of type alias #8405

Closed
@ohze

Description

@ohze

minimized code

class ActorRef
trait ActorEventBus {
  type Subscriber = ActorRef
}
trait ManagedActorClassification { this: ActorEventBus =>
  def unsubscribe(subscriber: Subscriber): Unit = ???
}
class ActorClassificationUnsubscriber(bus: ManagedActorClassification) {
  val actor = ???
  bus.unsubscribe(actor)
}

Compilation output

  • scala 2.13.1: success
  • dotty 0.22.0-RC1:
```scala [info] cannot take signature of (subscriber: ActorClassificationUnsubscriber.this.bus.Subscriber): Unit [info] exception occurred while compiling /dotty-example/src/main/scala/Main.scala NoExplanation(cannot resolve reference to type [cannot display due to assertion failed: denotation module class invalid in run 1. ValidFor: Period(1..11, run = 2), raw string = TermRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class )),class ActorClassificationUnsubscriber)),val bus)].Subscriber the classfile defining the type might be missing from the classpath) while compiling /dotty-example/src/main/scala/Main.scala [error] ## Exception when compiling 1 sources to /dotty-example/target/scala-0.22/classes [error] dotty.tools.dotc.core.MissingType: [error] dotty.tools.dotc.core.TypeErasure.dotty$tools$dotc$core$TypeErasure$$sigName(TypeErasure.scala:587) [error] dotty.tools.dotc.core.TypeErasure$.sigName(TypeErasure.scala:159) [error] dotty.tools.dotc.core.Signature.$anonfun$2(Signature.scala:114) [error] scala.collection.immutable.List.map(List.scala:219) [error] dotty.tools.dotc.core.Signature.prependTermParams(Signature.scala:114) [error] dotty.tools.dotc.core.Types$MethodType.computeSignature(Types.scala:3295) [error] dotty.tools.dotc.core.Types$SignatureCachingType.signature(Types.scala:3003) [error] dotty.tools.dotc.core.Types$MethodOrPoly.signature(Types.scala:3136) [error] dotty.tools.dotc.core.Denotations$SingleDenotation.signature(Denotations.scala:739) [error] dotty.tools.dotc.core.Types$NamedType.computeSignature(Types.scala:1877) [error] dotty.tools.dotc.core.Types$SignatureCachingType.signature(Types.scala:3003) [error] dotty.tools.dotc.core.Types$NamedType.signature(Types.scala:1834) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:383) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$2(TreePickler.scala:395) [error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) [error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:47) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:397) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:343) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.immutable.List.foreach(List.scala:305) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:343) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$25(TreePickler.scala:546) [error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) [error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:47) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:547) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$2(TreePickler.scala:319) [error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) [error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:47) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:324) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:522) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:343) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.immutable.List.foreach(List.scala:305) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:343) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$27(TreePickler.scala:556) [error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) [error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:47) [error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:556) [error] dotty.tools.dotc.core.tasty.TreePickler.pickle$$anonfun$1(TreePickler.scala:713) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.immutable.List.foreach(List.scala:305) [error] dotty.tools.dotc.core.tasty.TreePickler.pickle(TreePickler.scala:713) [error] dotty.tools.dotc.transform.Pickler.run$$anonfun$10$$anonfun$8(Pickler.scala:63) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.immutable.List.foreach(List.scala:305) [error] dotty.tools.dotc.transform.Pickler.run$$anonfun$2(Pickler.scala:87) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10) [error] scala.collection.immutable.List.foreach(List.scala:305) [error] dotty.tools.dotc.transform.Pickler.run(Pickler.scala:87) [error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:315) [error] scala.collection.immutable.List.map(List.scala:219) [error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:316) [error] dotty.tools.dotc.transform.Pickler.runOn(Pickler.scala:91) [error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:167) [error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15) [error] dotty.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:177) [error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:185) [error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12) [error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:64) [error] dotty.tools.dotc.Run.compileUnits(Run.scala:192) [error] dotty.tools.dotc.Run.compileSources(Run.scala:129) [error] dotty.tools.dotc.Run.compile(Run.scala:112) [error] dotty.tools.dotc.Driver.doCompile(Driver.scala:36) [error] dotty.tools.dotc.Driver.process(Driver.scala:189) [error] dotty.tools.dotc.Main.process(Main.scala) [error] xsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:69) [error] xsbt.CompilerInterface.run(CompilerInterface.java:41) [error] sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [error] sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [error] sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [error] java.lang.reflect.Method.invoke(Method.java:498) [error] sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248) [error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122) [error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91) [error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) [error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82) [error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77) [error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215) [error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77) [error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343) [error] sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120) [error] sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100) [error] sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180) [error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98) [error] sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102) [error] sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155) [error] sbt.internal.inc.Incremental$.compile(Incremental.scala:92) [error] sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75) [error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348) [error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301) [error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168) [error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248) [error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74) [error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1762) [error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1735) [error] scala.Function1.$anonfun$compose$1(Function1.scala:49) [error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62) [error] sbt.std.Transform$$anon$4.work(Transform.scala:67) [error] sbt.Execute.$anonfun$submit$2(Execute.scala:281) [error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19) [error] sbt.Execute.work(Execute.scala:290) [error] sbt.Execute.$anonfun$submit$1(Execute.scala:281) [error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178) [error] sbt.CompletionService$$anon$2.call(CompletionService.scala:37) [error] java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [error] java.util.concurrent.FutureTask.run(FutureTask.java:266) [error] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [error] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [error] java.lang.Thread.run(Thread.java:748) ```

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions