Skip to content

extension methods crash dotty when compiled with 2.13.4 snapshot #9358

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
bishabosha opened this issue Jul 13, 2020 · 6 comments
Closed

extension methods crash dotty when compiled with 2.13.4 snapshot #9358

bishabosha opened this issue Jul 13, 2020 · 6 comments

Comments

@bishabosha
Copy link
Member

bishabosha commented Jul 13, 2020

Minimized code

before scala/scala@6acc8ff (2.13.4 snapshot) implicit conversions for AnyVal classes came after the companion object in pickles.
As of that commit, they can come before the companion object, this causes a crash in dotty

compile with scalac on scala/scala@6acc8ff

package example

object MyPredef {
  implicit final class ArrowAssoc2[A](val self: A) extends AnyVal {
    @inline def <&> [B](y: B): (A, B) = (self, y)
  }
}

compile with dotty 0.25.0-RC1:

package example

import MyPredef._

@main def Main: Unit = {
  println(new ArrowAssoc2(1).<&>(""))
}

Output (click arrow to expand)

exception occurred while compiling Main.scala
java.lang.AssertionError: assertion failed: no extension method found for:

  method <&>:[B](y: B): (A, B) with signature Signature(List(1, java.lang.Object),scala.Tuple2) in  <none>

 Candidates:

 

 Candidates (signatures normalized):

  while compiling Main.scala
Exception in thread "main" java.lang.AssertionError: assertion failed: no extension method found for:

  method <&>:[B](y: B): (A, B) with signature Signature(List(1, java.lang.Object),scala.Tuple2) in  <none>

 Candidates:

 

 Candidates (signatures normalized):

 
	at dotty.DottyPredef$.assertFail(DottyPredef.scala:17)
	at dotty.tools.dotc.transform.ExtensionMethods$.extensionMethod(ExtensionMethods.scala:187)
	at dotty.tools.dotc.transform.VCInlineMethods.rewire(VCInlineMethods.scala:69)
	at dotty.tools.dotc.transform.VCInlineMethods.rewireIfNeeded(VCInlineMethods.scala:96)
	at dotty.tools.dotc.transform.VCInlineMethods.transformApply(VCInlineMethods.scala:106)
	at dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:611)
	at dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:612)
	at dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:612)
	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:272)
	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
	at dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:406)
	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:339)
	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
	at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:251)
	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:404)
	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
	at scala.collection.immutable.List.mapConserve(List.scala:472)
	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
	at dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:356)
	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:359)
	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
	at dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:415)
	at dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:427)
	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:318)
	at scala.collection.immutable.List.map(List.scala:246)
	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:319)
	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:180)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
	at dotty.tools.dotc.Run.runPhases$5(Run.scala:190)
	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:198)
	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:64)
	at dotty.tools.dotc.Run.compileUnits(Run.scala:205)
	at dotty.tools.dotc.Run.compileSources(Run.scala:142)
	at dotty.tools.dotc.Run.compile(Run.scala:124)
	at dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
	at dotty.tools.dotc.Driver.process(Driver.scala:194)
	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:202)
	at dotty.tools.dotc.Main.main(Main.scala)

comparison of pickles

commit scala/scala@f8a7132 (parent)

pickles
package example
object MyPredef extends scala.AnyRef {
  def this() = { /* compiled code */ }
  implicit final class ArrowAssoc2[A] extends scala.AnyVal {
    val self: A = { /* compiled code */ }
    def this(self: A) = { /* compiled code */ }
    @scala.inline
    def <&>[B](y: B): scala.Tuple2[A, B] = { /* compiled code */ }
    override def hashCode(): scala.Int = { /* compiled code */ }
    override def equals(x$1: scala.Any): scala.Boolean = { /* compiled code */ }
  }
  object ArrowAssoc2 extends scala.AnyRef {
    def this() = { /* compiled code */ }
    @scala.inline
    final def <&>$extension[B, A]($this: example.MyPredef.ArrowAssoc2[A])(y: B): scala.Tuple2[A, B] = { /* compiled code */ }
    final def hashCode$extension[A]($this: example.MyPredef.ArrowAssoc2[A])(): scala.Int = { /* compiled code */ }
    final def equals$extension[A]($this: example.MyPredef.ArrowAssoc2[A])(x$1: scala.Any): scala.Boolean = { /* compiled code */ }
  }
  implicit final def ArrowAssoc2[A](self: A): example.MyPredef.ArrowAssoc2[A] = { /* compiled code */ }
}

commit scala/scala@6acc8ff

pickles
package example
object MyPredef extends scala.AnyRef {
  def this() = { /* compiled code */ }
  implicit final class ArrowAssoc2[A] extends scala.AnyVal {
    val self: A = { /* compiled code */ }
    def this(self: A) = { /* compiled code */ }
    @scala.inline
    def <&>[B](y: B): scala.Tuple2[A, B] = { /* compiled code */ }
    override def hashCode(): scala.Int = { /* compiled code */ }
    override def equals(x$1: scala.Any): scala.Boolean = { /* compiled code */ }
  }
  implicit final def ArrowAssoc2[A](self: A): example.MyPredef.ArrowAssoc2[A] = { /* compiled code */ }
  object ArrowAssoc2 extends scala.AnyRef {
    def this() = { /* compiled code */ }
    @scala.inline
    final def <&>$extension[B, A]($this: example.MyPredef.ArrowAssoc2[A])(y: B): scala.Tuple2[A, B] = { /* compiled code */ }
    final def hashCode$extension[A]($this: example.MyPredef.ArrowAssoc2[A])(): scala.Int = { /* compiled code */ }
    final def equals$extension[A]($this: example.MyPredef.ArrowAssoc2[A])(x$1: scala.Any): scala.Boolean = { /* compiled code */ }
  }
}
@bishabosha bishabosha changed the title Scala2Unpickler depends on order of definitions for extension methods Scala 2 classes order dependent for extension methods Jul 13, 2020
@bishabosha
Copy link
Member Author

bishabosha commented Jul 13, 2020

second piece of evidence (eta expansion):

package example

import MyPredef._

object Main extends App {
  println(ArrowAssoc2.<&>)
}

crashes because the companion of ArrowAssoc2 is NoType:

exception occurred while typechecking Main.scala
exception occurred while compiling Main.scala
scala.MatchError: NoType (of class dotty.tools.dotc.core.Types$NoType$) while compiling Main.scala
Exception in thread "main" scala.MatchError: NoType (of class dotty.tools.dotc.core.Types$NoType$)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.sourceOfSelf$1(SymDenotations.scala:1011)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.sourceModule(SymDenotations.scala:1013)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.companionModule(SymDenotations.scala:1148)
	at dotty.tools.dotc.core.TypeComparer.compareNamed$1(TypeComparer.scala:257)
	at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:275)
	at dotty.tools.dotc.core.TypeComparer.op$1(TypeComparer.scala:1088)
	at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1107)
	at dotty.tools.dotc.core.TypeComparer.compareTypeParamRef$2(TypeComparer.scala:517)
	at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:529)
	at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:362)
	at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:279)
	at dotty.tools.dotc.core.TypeComparer.op$1(TypeComparer.scala:1088)
	at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1107)
	at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:164)
	at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:174)
	at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:174)
	at dotty.tools.dotc.core.ConstraintHandling.op$1(ConstraintHandling.scala:221)
	at dotty.tools.dotc.core.ConstraintHandling.isSubTypeWhenFrozen(ConstraintHandling.scala:221)
	at dotty.tools.dotc.core.TypeComparer.isSubTypeWhenFrozen(TypeComparer.scala:31)
	at dotty.tools.dotc.core.TypeComparer.compareTypeParamRef$2(TypeComparer.scala:518)
	at dotty.tools.dotc.core.TypeComparer.thirdTry$1(TypeComparer.scala:529)
	at dotty.tools.dotc.core.TypeComparer.secondTry$1(TypeComparer.scala:362)
	at dotty.tools.dotc.core.TypeComparer.firstTry$1(TypeComparer.scala:279)
	at dotty.tools.dotc.core.TypeComparer.op$1(TypeComparer.scala:1088)
	at dotty.tools.dotc.core.TypeComparer.recur(TypeComparer.scala:1107)
	at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:164)
	at dotty.tools.dotc.core.TypeComparer.isSubType(TypeComparer.scala:174)
	at dotty.tools.dotc.core.TypeComparer.topLevelSubType(TypeComparer.scala:131)
	at dotty.tools.dotc.core.Types$Type.$less$colon$less(Types.scala:903)
	at dotty.tools.dotc.core.ConstraintHandling.widenSingle$1(ConstraintHandling.scala:316)
	at dotty.tools.dotc.core.ConstraintHandling.widenInferred(ConstraintHandling.scala:320)
	at dotty.tools.dotc.core.TypeComparer.widenInferred(TypeComparer.scala:31)
	at dotty.tools.dotc.core.ConstraintHandling.instanceType(ConstraintHandling.scala:336)
	at dotty.tools.dotc.core.TypeComparer.instanceType(TypeComparer.scala:31)
	at dotty.tools.dotc.core.Types$TypeVar.instantiate(Types.scala:4165)
	at dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.instantiate(Inferencing.scala:114)
	at dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:130)
	at dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:121)
	at dotty.tools.dotc.core.Types$TypeAccumulator.op$4(Types.scala:5301)
	at dotty.tools.dotc.core.Types$TypeAccumulator.foldArgs$1(Types.scala:5301)
	at dotty.tools.dotc.core.Types$TypeAccumulator.foldOver(Types.scala:5305)
	at dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.apply(Inferencing.scala:144)
	at dotty.tools.dotc.typer.Inferencing$IsFullyDefinedAccumulator.process(Inferencing.scala:155)
	at dotty.tools.dotc.typer.Inferencing$.isFullyDefined(Inferencing.scala:34)
	at dotty.tools.dotc.typer.Inferencing$.fullyDefinedType(Inferencing.scala:43)
	at dotty.tools.dotc.typer.Namer.lhsType$1(Namer.scala:1468)
	at dotty.tools.dotc.typer.Namer.inferredType$1(Namer.scala:1479)
	at dotty.tools.dotc.typer.Namer.valOrDefDefSig(Namer.scala:1487)
	at dotty.tools.dotc.typer.Namer.defDefSig(Namer.scala:1559)
	at dotty.tools.dotc.typer.Namer$Completer.typeSig(Namer.scala:812)
	at dotty.tools.dotc.typer.Namer$Completer.completeInCreationContext(Namer.scala:929)
	at dotty.tools.dotc.typer.Namer$Completer.complete(Namer.scala:840)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:260)
	at dotty.tools.dotc.core.Denotations$Denotation.completeInfo$1(Denotations.scala:185)
	at dotty.tools.dotc.core.Denotations$Denotation.info(Denotations.scala:187)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.ensureCompleted(SymDenotations.scala:400)
	at dotty.tools.dotc.typer.Typer.retrieveSym(Typer.scala:2160)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2185)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2265)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2338)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2382)
	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:821)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:825)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2216)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2266)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.typedFunctionValue(Typer.scala:1132)
	at dotty.tools.dotc.typer.Typer.typedFunction(Typer.scala:939)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2218)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2266)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2424)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:826)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2216)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2266)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.adaptNoArgsUnappliedMethod$2(Typer.scala:2900)
	at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3034)
	at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3244)
	at dotty.tools.dotc.typer.Typer.op$3(Typer.scala:2635)
	at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:2636)
	at dotty.tools.dotc.typer.Typer.readapt$1(Typer.scala:2645)
	at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3228)
	at dotty.tools.dotc.typer.Typer.op$3(Typer.scala:2635)
	at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:2636)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2424)
	at dotty.tools.dotc.typer.Typer.typeSelectOnTerm$1(Typer.scala:508)
	at dotty.tools.dotc.typer.Typer.typedSelect(Typer.scala:532)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2188)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2265)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2424)
	at dotty.tools.dotc.typer.Applications.typedFunPart$$anonfun$1(Applications.scala:820)
	at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2432)
	at dotty.tools.dotc.typer.Applications.typedFunPart(Applications.scala:828)
	at dotty.tools.dotc.typer.Typer.typedFunPart(Typer.scala:83)
	at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:839)
	at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:976)
	at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:83)
	at dotty.tools.dotc.typer.Typer.typedInfixOp(Typer.scala:2107)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2245)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2266)
	at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$2(ProtoTypes.scala:340)
	at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:296)
	at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:341)
	at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:795)
	at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:795)
	at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:530)
	at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:599)
	at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:355)
	at dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:692)
	at dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:794)
	at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:868)
	at dotty.tools.dotc.typer.Applications.realApply$7$$anonfun$6(Applications.scala:929)
	at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2432)
	at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:940)
	at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:976)
	at dotty.tools.dotc.typer.Typer.typedApply(Typer.scala:83)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2208)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2266)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2360)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2382)
	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:1875)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2198)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2265)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2338)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2382)
	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2001)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2239)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2266)
	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2304)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2313)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2316)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2424)
	at dotty.tools.dotc.typer.FrontEnd.liftedTree1$2(FrontEnd.scala:78)
	at dotty.tools.dotc.typer.FrontEnd.typeCheck$$anonfun$1(FrontEnd.scala:83)
	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at dotty.tools.dotc.typer.FrontEnd.monitor(FrontEnd.scala:42)
	at dotty.tools.dotc.typer.FrontEnd.typeCheck(FrontEnd.scala:84)
	at dotty.tools.dotc.typer.FrontEnd.runOn$$anonfun$3(FrontEnd.scala:114)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.immutable.List.foreach(List.scala:305)
	at dotty.tools.dotc.typer.FrontEnd.runOn(FrontEnd.scala:114)
	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:167)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
	at dotty.tools.dotc.Run.runPhases$5(Run.scala:177)
	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:185)
	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:64)
	at dotty.tools.dotc.Run.compileUnits(Run.scala:192)
	at dotty.tools.dotc.Run.compileSources(Run.scala:129)
	at dotty.tools.dotc.Run.compile(Run.scala:112)
	at dotty.tools.dotc.Driver.doCompile(Driver.scala:36)
	at dotty.tools.dotc.Driver.process(Driver.scala:189)
	at dotty.tools.dotc.Driver.process(Driver.scala:158)
	at dotty.tools.dotc.Driver.process(Driver.scala:170)
	at dotty.tools.dotc.Driver.main(Driver.scala:197)
	at dotty.tools.dotc.Main.main(Main.scala)

instead of compiling

@bishabosha bishabosha changed the title Scala 2 classes order dependent for extension methods implicit conversion to value class appearing in scope before synthetic companion crashes Jul 13, 2020
@bishabosha bishabosha changed the title implicit conversion to value class appearing in scope before synthetic companion crashes -> syntax unusable when code compiled with 2.13.4 snapshot Jul 13, 2020
@bishabosha bishabosha changed the title -> syntax unusable when code compiled with 2.13.4 snapshot extension methods crash dotty when compiled with 2.13.4 snapshot Jul 13, 2020
@odersky odersky assigned smarter and bishabosha and unassigned smarter Jul 13, 2020
@bishabosha
Copy link
Member Author

With 2.13.4 coming this month this is more critical

@bishabosha
Copy link
Member Author

bishabosha commented Oct 9, 2020

it still crashes with Scala 2.13.4-bin-8891679, but now there is a new trace (due to changes in dotty's side, the same crash happens with 0.25.0-RC1):

[error] ## Exception when compiling 1 sources to /Users/jamie/Workspace/tasty-reader-blog/app/target/scala-0.27/classes
[error] scala.MatchError: NoType (of class dotty.tools.dotc.core.Types$NoType$)
[error] dotty.tools.dotc.core.SymDenotations$SymDenotation.sourceOfSelf$1(SymDenotations.scala:1000)
[error] dotty.tools.dotc.core.SymDenotations$SymDenotation.sourceModule(SymDenotations.scala:1002)
[error] dotty.tools.dotc.core.SymDenotations$SymDenotation.companionModule(SymDenotations.scala:1156)
[error] dotty.tools.dotc.transform.ExtensionMethods$.extensionMethod(ExtensionMethods.scala:189)
[error] dotty.tools.dotc.transform.VCInlineMethods.rewire(VCInlineMethods.scala:69)
[error] dotty.tools.dotc.transform.VCInlineMethods.rewireIfNeeded(VCInlineMethods.scala:96)
[error] dotty.tools.dotc.transform.VCInlineMethods.transformApply(VCInlineMethods.scala:106)
[error] dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:643)
[error] dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:644)
[error] dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:644)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:280)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error] dotty.tools.dotc.transform.MegaPhase.recur$2(MegaPhase.scala:452)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:452)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:279)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:438)
[error] dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:441)
[error] dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:1060)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:441)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:361)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error] dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:255)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:426)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:436)
[error] dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:441)
[error] dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:1060)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:441)
[error] dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:381)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:384)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:447)
[error] dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:459)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:296)
[error] scala.collection.immutable.List.map(List.scala:246)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:297)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:180)
[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:190)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:198)
[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:205)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:142)
[error] dotty.tools.dotc.Run.compile(Run.scala:124)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
[error] dotty.tools.dotc.Driver.process(Driver.scala:195)
[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.invoke(AnalyzingCompiler.scala:330)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:113)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:185)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:240)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:175)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:156)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:232)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:156)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:203)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:571)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:571)
[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:459)
[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:414)
[error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499)
[error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:401)
[error] sbt.internal.inc.Incremental$.apply(Incremental.scala:166)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:571)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:489)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:419)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2139)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2099)
[error] sbt.internal.io.Retry$.apply(Retry.scala:40)
[error] sbt.internal.io.Retry$.apply(Retry.scala:23)
[error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2096)
[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:68)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] sbt.Execute.work(Execute.scala:291)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[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)
[error]            
[error] scala.MatchError: NoType (of class dotty.tools.dotc.core.Types$NoType$)
[error]         at dotty.tools.dotc.core.SymDenotations$SymDenotation.sourceOfSelf$1(SymDenotations.scala:1000)
[error]         at dotty.tools.dotc.core.SymDenotations$SymDenotation.sourceModule(SymDenotations.scala:1002)
[error]         at dotty.tools.dotc.core.SymDenotations$SymDenotation.companionModule(SymDenotations.scala:1156)
[error]         at dotty.tools.dotc.transform.ExtensionMethods$.extensionMethod(ExtensionMethods.scala:189)
[error]         at dotty.tools.dotc.transform.VCInlineMethods.rewire(VCInlineMethods.scala:69)
[error]         at dotty.tools.dotc.transform.VCInlineMethods.rewireIfNeeded(VCInlineMethods.scala:96)
[error]         at dotty.tools.dotc.transform.VCInlineMethods.transformApply(VCInlineMethods.scala:106)
[error]         at dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:643)
[error]         at dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:644)
[error]         at dotty.tools.dotc.transform.MegaPhase.goApply(MegaPhase.scala:644)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:280)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error]         at dotty.tools.dotc.transform.MegaPhase.recur$2(MegaPhase.scala:452)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:452)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:279)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:438)
[error]         at dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:441)
[error]         at dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:1060)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:441)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:361)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:255)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:426)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:436)
[error]         at dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:441)
[error]         at dotty.tools.dotc.transform.MegaPhase.recur$1(MegaPhase.scala:1060)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:441)
[error]         at dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:381)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:384)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:428)
[error]         at dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:447)
[error]         at dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:459)
[error]         at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:296)
[error]         at scala.collection.immutable.List.map(List.scala:246)
[error]         at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:297)
[error]         at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:180)
[error]         at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error]         at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error]         at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
[error]         at dotty.tools.dotc.Run.runPhases$5(Run.scala:190)
[error]         at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:198)
[error]         at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error]         at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:64)
[error]         at dotty.tools.dotc.Run.compileUnits(Run.scala:205)
[error]         at dotty.tools.dotc.Run.compileSources(Run.scala:142)
[error]         at dotty.tools.dotc.Run.compile(Run.scala:124)
[error]         at dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
[error]         at dotty.tools.dotc.Driver.process(Driver.scala:195)
[error]         at dotty.tools.dotc.Main.process(Main.scala)
[error]         at xsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:69)
[error]         at xsbt.CompilerInterface.run(CompilerInterface.java:41)
[error]         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]         at java.lang.reflect.Method.invoke(Method.java:498)
[error]         at sbt.internal.inc.AnalyzingCompiler.invoke(AnalyzingCompiler.scala:330)
[error]         at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:113)
[error]         at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:185)
[error]         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error]         at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:240)
[error]         at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:175)
[error]         at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:156)
[error]         at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:232)
[error]         at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:156)
[error]         at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:203)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:571)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:571)
[error]         at sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:174)
[error]         at sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:172)
[error]         at sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:459)
[error]         at sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[error]         at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[error]         at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[error]         at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:261)
[error]         at sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:414)
[error]         at sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499)
[error]         at sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:401)
[error]         at sbt.internal.inc.Incremental$.apply(Incremental.scala:166)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:571)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:489)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:419)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error]         at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2139)
[error]         at sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2099)
[error]         at sbt.internal.io.Retry$.apply(Retry.scala:40)
[error]         at sbt.internal.io.Retry$.apply(Retry.scala:23)
[error]         at sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error]         at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2096)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error]         at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error]         at sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error]         at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error]         at sbt.Execute.work(Execute.scala:291)
[error]         at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]         at java.lang.Thread.run(Thread.java:748)
[error] (app / Compile / compileIncremental) scala.MatchError: NoType (of class dotty.tools.dotc.core.Types$NoType$)

@smarter
Copy link
Member

smarter commented Oct 26, 2020

should be fixed by #10006

@bishabosha
Copy link
Member Author

should be fixed by #10006

Yes I tested that PR with Scala 2.13.4-bin-8891679 and it works

@smarter
Copy link
Member

smarter commented Oct 27, 2020

#10006 is merged, closing.

@smarter smarter closed this as completed Oct 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants