You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exception in thread "main" scala.MatchError:AndType(TypeRef(ThisType(TypeRef(NoPrefix,module class<empty>)),traitFruit),TypeRef(ThisType(TypeRef(NoPrefix,module class<empty>)),traitMixin)) (of classdotty.tools.dotc.core.Types$CachedAndType) while compiling /Users/jamie/workspace/dotty/local/foo/App.scala
scala.MatchError:AndType(TypeRef(ThisType(TypeRef(NoPrefix,module class<empty>)),traitFruit),TypeRef(ThisType(TypeRef(NoPrefix,module class<empty>)),traitMixin)) (of classdotty.tools.dotc.core.Types$CachedAndType)
at dotty.tools.dotc.transform.TypeUtils$.companionRef(TypeUtils.scala:91)
at dotty.tools.dotc.typer.Synthesizer.companionPath(Synthesizer.scala:208)
at dotty.tools.dotc.typer.Synthesizer.sumMirror(Synthesizer.scala:327)
at dotty.tools.dotc.typer.Synthesizer.$init$$$anonfun$6$$anonfun$1$$anonfun$1$$anonfun$1(Synthesizer.scala:352)
at dotty.tools.dotc.typer.Synthesizer.makeMirror(Synthesizer.scala:338)
at dotty.tools.dotc.typer.Synthesizer.$init$$$anonfun$6$$anonfun$1(Synthesizer.scala:352)
at dotty.tools.dotc.typer.Synthesizer.recur$1(Synthesizer.scala:505)
at dotty.tools.dotc.typer.Synthesizer.tryAll(Synthesizer.scala:510)
at dotty.tools.dotc.typer.Implicits.inferImplicitArg(Implicits.scala:863)
at dotty.tools.dotc.typer.Implicits.inferImplicitArg$(Implicits.scala:791)
at dotty.tools.dotc.typer.Typer.inferImplicitArg(Typer.scala:119)
at dotty.tools.dotc.typer.Typer.implicitArgs$1(Typer.scala:3428)
at dotty.tools.dotc.typer.Typer.addImplicitArgs$1(Typer.scala:3464)
at dotty.tools.dotc.typer.Typer.adaptNoArgsImplicitMethod$1(Typer.scala:3544)
at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3742)
at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3976)
at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3306)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2937)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2941)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3057)
at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1075)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2817)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2872)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2937)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2941)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3057)
at dotty.tools.dotc.typer.Namer.typedAheadExpr$$anonfun$1(Namer.scala:1473)
at dotty.tools.dotc.typer.Namer.typedAhead(Namer.scala:1463)
at dotty.tools.dotc.typer.Namer.typedAheadExpr(Namer.scala:1473)
at dotty.tools.dotc.typer.Namer.typedAheadRhs$1$$anonfun$1(Namer.scala:1710)
at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:238)
at dotty.tools.dotc.typer.Namer.typedAheadRhs$1(Namer.scala:1710)
at dotty.tools.dotc.typer.Namer.rhsType$1(Namer.scala:1718)
at dotty.tools.dotc.typer.Namer.cookedRhsType$1(Namer.scala:1736)
at dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1737)
at dotty.tools.dotc.typer.Namer.inferredResultType(Namer.scala:1748)
at dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1512)
at dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1519)
at dotty.tools.dotc.typer.Namer.defDefSig(Namer.scala:1588)
at dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:782)
at dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:914)
at dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:806)
at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:168)
at dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:188)
at dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:190)
at dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:370)
at dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2751)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2776)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2871)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2937)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2941)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2963)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3013)
at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2454)
at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:2797)
at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2801)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2871)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2937)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2941)
at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2963)
at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:3013)
at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2581)
at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2842)
at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2872)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2937)
at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2941)
at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3057)
at dotty.tools.dotc.typer.TyperPhase.typeCheck$$anonfun$1(TyperPhase.scala:47)
at dotty.tools.dotc.core.Phases$Phase.monitor(Phases.scala:411)
at dotty.tools.dotc.typer.TyperPhase.typeCheck(TyperPhase.scala:54)
at dotty.tools.dotc.typer.TyperPhase.runOn$$anonfun$3(TyperPhase.scala:88)
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.dotc.typer.TyperPhase.runOn(TyperPhase.scala:88)
at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:259)
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:270)
at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:278)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
at dotty.tools.dotc.Run.compileUnits(Run.scala:287)
at dotty.tools.dotc.Run.compileSources(Run.scala:220)
at dotty.tools.dotc.Run.compile(Run.scala:204)
at dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
at dotty.tools.dotc.Driver.process(Driver.scala:199)
at dotty.tools.dotc.Driver.process(Driver.scala:167)
at dotty.tools.dotc.Driver.process(Driver.scala:179)
at dotty.tools.dotc.Driver.main(Driver.scala:209)
at dotty.tools.dotc.Main.main(Main.scala)
The text was updated successfully, but these errors were encountered:
hard to know what to do in this case, in the case of product types then one part of the intersection is chosen to be the mirror, so there is no intersection in the companion path, but in the case of sum types then one part of the intersection is known to be a subclass of the other, so in mirrorCompanionRef we can take advantage of that.
Compiler version
3.1.2
Minimized code
Output (click arrow to expand)
The text was updated successfully, but these errors were encountered: