Skip to content

Error when pickling tree with UOption or scala-verify? #7128

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
dwijnand opened this issue Aug 29, 2019 · 15 comments
Closed

Error when pickling tree with UOption or scala-verify? #7128

dwijnand opened this issue Aug 29, 2019 · 15 comments
Assignees
Labels
area:metaprogramming:reflection Issues related to the quotes reflection API itype:bug

Comments

@dwijnand
Copy link
Member

minimized code

It's not minimal, minimal, but it's two files.

See my branch: https://github.com/dwijnand/scala-unboxed-option/tree/dotty

Stack trace
error when pickling tree def $anonfun(_$3: uoption.UOption[Int]): Boolean =
  uoption.UOptionOps[Int](_$3).isDefined
error when pickling tree {
  def $anonfun(_$3: uoption.UOption[Int]): Boolean =
    uoption.UOptionOps[Int](_$3).isDefined
  closure($anonfun)
}
error when pickling tree uoption.UOptionOps[uoption.UOption[Int]](someSomeInt).map[Boolean](
  {
    def $anonfun(_$3: uoption.UOption[Int]): Boolean =
      uoption.UOptionOps[Int](_$3).isDefined
    closure($anonfun)
  }
)
error when pickling tree uoption.UOptionOps[uoption.UOption[Int]](someSomeInt).map[Boolean](
  {
    def $anonfun(_$3: uoption.UOption[Int]): Boolean =
      uoption.UOptionOps[Int](_$3).isDefined
    closure($anonfun)
  }
).==
error when pickling tree uoption.UOptionOps[uoption.UOption[Int]](someSomeInt).map[Boolean](
  {
    def $anonfun(_$3: uoption.UOption[Int]): Boolean =
      uoption.UOptionOps[Int](_$3).isDefined
    closure($anonfun)
  }
).==(uoption.USome.apply[Boolean](true))
error when pickling tree val value: Boolean =
  uoption.UOptionOps[uoption.UOption[Int]](someSomeInt).map[Boolean](
    {
      def $anonfun(_$3: uoption.UOption[Int]): Boolean =
        uoption.UOptionOps[Int](_$3).isDefined
      closure($anonfun)
    }
  ).==(uoption.USome.apply[Boolean](true))

... etc etc for a large number of big trees ...

java.lang.AssertionError: assertion failed: method $anonfun while compiling /d/scala-unboxed-option/src/test/scala/uoption/test/UOptionTest.scala
[info] exception occurred while compiling /d/scala-unboxed-option/src/test/scala/uoption/test/UOptionTest.scala
[error] ## Exception when compiling 1 sources to /d/scala-unboxed-option/.jvm/target/scala-0.17/test-classes
[error] assertion failed: method $anonfun
[error] dotty.DottyPredef$.assertFail(DottyPredef.scala:16)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:297)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:503)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$38$$anonfun$1(TreePickler.scala:421)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$8(TreePickler.scala:421)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:421)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$36$$anonfun$1(TreePickler.scala:380)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$2(TreePickler.scala:380)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:381)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:370)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$2(TreePickler.scala:379)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:381)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTreeUnlessEmpty(TreePickler.scala:294)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$2(TreePickler.scala:307)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:309)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:494)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$42$$anonfun$1(TreePickler.scala:470)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$18(TreePickler.scala:470)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:472)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$36$$anonfun$1(TreePickler.scala:380)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$2(TreePickler.scala:380)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:381)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$2(TreePickler.scala:379)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:381)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$8(TreePickler.scala:421)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:421)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$36$$anonfun$1(TreePickler.scala:380)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$2(TreePickler.scala:380)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:381)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:328)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:328)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$25(TreePickler.scala:529)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:530)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef$$anonfun$2(TreePickler.scala:304)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:309)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:505)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats$$anonfun$2(TreePickler.scala:328)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleStats(TreePickler.scala:328)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree$$anonfun$27(TreePickler.scala:540)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.core.tasty.TreePickler.withLength(TreePickler.scala:44)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:540)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickle$$anonfun$1(TreePickler.scala:694)
[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:392)
[error] dotty.tools.dotc.core.tasty.TreePickler.pickle(TreePickler.scala:694)
[error] dotty.tools.dotc.transform.Pickler.run$$anonfun$10$$anonfun$8(Pickler.scala:60)
[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:392)
[error] dotty.tools.dotc.transform.Pickler.run$$anonfun$2(Pickler.scala:83)
[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:392)
[error] dotty.tools.dotc.transform.Pickler.run(Pickler.scala:83)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:316)
[error] scala.collection.immutable.List.map(List.scala:286)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:318)
[error] dotty.tools.dotc.transform.Pickler.runOn(Pickler.scala:87)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:158)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)
[error] scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:33)
[error] scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:198)
[error] dotty.tools.dotc.Run.runPhases$5(Run.scala:170)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:178)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:102)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:185)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:120)
[error] dotty.tools.dotc.Run.compile(Run.scala:104)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:34)
[error] dotty.tools.dotc.Driver.process(Driver.scala:172)
[error] dotty.tools.dotc.Main.process(Main.scala)
[error] xsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:69)
[error] xsbt.CompilerInterface.run(CompilerInterface.java:41)
@dwijnand
Copy link
Member Author

cc @eed3si9n I think this is a bug in the macro in scala-verify.

@dwijnand
Copy link
Member Author

(but this issue still stands as it shouldn't crash the compiler, I think)

@dwijnand
Copy link
Member Author

dwijnand commented Jan 7, 2020

Testing using Dotty 0.21.0-RC1 it still blows up, stack:

java.lang.AssertionError: assertion failed: invalid prefix MethodType(List(opt), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)) while compiling /d/scala-unboxed-option/src/test/scala/uoption/test/UOptionTest.scala
[info] exception occurred while compiling /d/scala-unboxed-option/src/test/scala/uoption/test/UOptionTest.scala
[error] ## Exception when compiling 1 sources to /d/scala-unboxed-option/.jvm/target/scala-0.21/test-classes
[error] assertion failed: invalid prefix MethodType(List(opt), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object))
[error] dotty.DottyPredef$.assertFail(DottyPredef.scala:17)
[error] dotty.tools.dotc.core.Types$NamedType.<init>(Types.scala:1835)
[error] dotty.tools.dotc.core.Types$TermRef.<init>(Types.scala:2354)
[error] dotty.tools.dotc.core.Types$CachedTermRef.<init>(Types.scala:2406)
[error] dotty.tools.dotc.core.Uniques$NamedTypeUniques.newType$1(Uniques.scala:63)
[error] dotty.tools.dotc.core.Uniques$NamedTypeUniques.enterIfNew(Uniques.scala:65)
[error] dotty.tools.dotc.core.Types$TermRef$.apply(Types.scala:2454)
[error] dotty.tools.dotc.core.Types$NamedType$.apply(Types.scala:2444)
[error] dotty.tools.dotc.core.Types$NamedType.withPrefix(Types.scala:2317)
[error] dotty.tools.dotc.core.Types$NamedType.derivedSelect(Types.scala:2250)
[error] dotty.tools.dotc.ast.tpd$TypedTreeCopier.Select(tpd.scala:561)
[error] dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:229)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:291)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)

commit dwijnand/scala-unboxed-option@c5d9e9e

@nicolasstucki nicolasstucki added the stat:needs minimization Needs a self contained minimization label Jan 9, 2020
@griggt
Copy link
Contributor

griggt commented Sep 26, 2020

Minimized somewhat, still has a dependency on scala-verify:

import verify._

object N
type T[A] >: N.type

object Test extends BasicTestSuite {
  test("") {
    def foo(x: T[Int]): Boolean = ???
    def boom = assert(foo(N))
  }
}

We can also do:

import verify._

object N
type T[A] >: N.type

def foo(x: T[Int]): Boolean = ???

object Test extends Assertion {
  def boom = assert(foo(N))
}

which crashes Dotty 0.21.0-RC1 with a different (backend) error:

dotc 0.21.0-RC1 output -- click to expand
[info] Compiling 1 Scala source to /src/dotty-issues/i7128/repro/target/scala-0.21/classes ...
[warn] an unexpected type representation reached the compiler backend while compiling /src/dotty-issues/i7128/repro/src/main/scala/Main.scala: MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean)). If possible, please file a bug on https://github.com/lampepfl/dotty/issues
Error while emitting Main.scala
[info] exception occurred while compiling /src/dotty-issues/i7128/repro/src/main/scala/Main.scala
scala.MatchError: MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean)) (of class dotty.tools.dotc.core.Types$CachedMethodType) while compiling /src/dotty-issues/i7128/repro/src/main/scala/Main.scala
[error] ## Exception when compiling 1 sources to /src/dotty-issues/i7128/repro/target/scala-0.21/classes
[error] scala.MatchError: MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean)) (of class dotty.tools.dotc.core.Types$CachedMethodType)
[error] dotty.tools.backend.jvm.DottyBackendInterface$$anon$9.toTypeKind(DottyBackendInterface.scala:967)
[error] dotty.tools.backend.jvm.BCodeHelpers$BCInnerClassGen.toTypeKind(BCodeHelpers.scala:258)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.toTypeKind(BCodeSkelBuilder.scala:43)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.tpeTK(BCodeSkelBuilder.scala:75)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genTypeApply(BCodeBodyBuilder.scala:639)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:430)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
[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.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1052)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:785)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:814)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:339)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
[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.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1052)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:785)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:814)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:339)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
[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.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1052)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:785)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:814)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:339)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genStat(BCodeBodyBuilder.scala:83)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock$$anonfun$1(BCodeBodyBuilder.scala:918)
[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.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:918)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:919)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:414)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genStat(BCodeBodyBuilder.scala:83)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock$$anonfun$1(BCodeBodyBuilder.scala:918)
[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.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:918)
[error] dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.emitNormalMethodBody$1(BCodeSkelBuilder.scala:597)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genDefDef(BCodeSkelBuilder.scala:630)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:501)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen$$anonfun$1(BCodeSkelBuilder.scala:503)
[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.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:503)
[error] dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genPlainClass(BCodeSkelBuilder.scala:109)
[error] dotty.tools.backend.jvm.GenBCodePipeline$Worker1.visit(GenBCode.scala:217)
[error] dotty.tools.backend.jvm.GenBCodePipeline$Worker1.run(GenBCode.scala:184)
[error] dotty.tools.backend.jvm.GenBCodePipeline.buildAndSendToDisk(GenBCode.scala:514)
[error] dotty.tools.backend.jvm.GenBCodePipeline.run(GenBCode.scala:480)
[error] dotty.tools.backend.jvm.GenBCode.run(GenBCode.scala:51)
[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.backend.jvm.GenBCode.runOn(GenBCode.scala:55)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:161)
[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:171)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:179)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:65)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:186)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:123)
[error] dotty.tools.dotc.Run.compile(Run.scala:106)
[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] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] java.base/java.lang.reflect.Method.invoke(Method.java:566)
[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:1765)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] java.base/java.lang.Thread.run(Thread.java:834)
[error]
[error] scala.MatchError: MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean)) (of class dotty.tools.dotc.core.Types$CachedMethodType)
[error] 	at dotty.tools.backend.jvm.DottyBackendInterface$$anon$9.toTypeKind(DottyBackendInterface.scala:967)
[error] 	at dotty.tools.backend.jvm.BCodeHelpers$BCInnerClassGen.toTypeKind(BCodeHelpers.scala:258)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.toTypeKind(BCodeSkelBuilder.scala:43)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.tpeTK(BCodeSkelBuilder.scala:75)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genTypeApply(BCodeBodyBuilder.scala:639)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:430)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] 	at scala.collection.immutable.List.foreach(List.scala:305)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1052)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:785)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:814)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:339)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] 	at scala.collection.immutable.List.foreach(List.scala:305)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1052)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:785)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:814)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:339)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments$$anonfun$1(BCodeBodyBuilder.scala:1052)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] 	at scala.collection.immutable.List.foreach(List.scala:305)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoadArguments(BCodeBodyBuilder.scala:1052)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genNormalMethodCall$1(BCodeBodyBuilder.scala:785)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genApply(BCodeBodyBuilder.scala:814)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:339)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genStat(BCodeBodyBuilder.scala:83)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock$$anonfun$1(BCodeBodyBuilder.scala:918)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] 	at scala.collection.immutable.List.foreach(List.scala:305)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:918)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:919)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:414)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genStat(BCodeBodyBuilder.scala:83)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock$$anonfun$1(BCodeBodyBuilder.scala:918)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] 	at scala.collection.immutable.List.foreach(List.scala:305)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genBlock(BCodeBodyBuilder.scala:918)
[error] 	at dotty.tools.backend.jvm.BCodeBodyBuilder$PlainBodyBuilder.genLoad(BCodeBodyBuilder.scala:410)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.emitNormalMethodBody$1(BCodeSkelBuilder.scala:597)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genDefDef(BCodeSkelBuilder.scala:630)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:501)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen$$anonfun$1(BCodeSkelBuilder.scala:503)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] 	at dotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)
[error] 	at scala.collection.immutable.List.foreach(List.scala:305)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.gen(BCodeSkelBuilder.scala:503)
[error] 	at dotty.tools.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.genPlainClass(BCodeSkelBuilder.scala:109)
[error] 	at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.visit(GenBCode.scala:217)
[error] 	at dotty.tools.backend.jvm.GenBCodePipeline$Worker1.run(GenBCode.scala:184)
[error] 	at dotty.tools.backend.jvm.GenBCodePipeline.buildAndSendToDisk(GenBCode.scala:514)
[error] 	at dotty.tools.backend.jvm.GenBCodePipeline.run(GenBCode.scala:480)
[error] 	at dotty.tools.backend.jvm.GenBCode.run(GenBCode.scala:51)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:315)
[error] 	at scala.collection.immutable.List.map(List.scala:219)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:316)
[error] 	at dotty.tools.backend.jvm.GenBCode.runOn(GenBCode.scala:55)
[error] 	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:161)
[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:171)
[error] 	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:179)
[error] 	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] 	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:65)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:186)
[error] 	at dotty.tools.dotc.Run.compileSources(Run.scala:123)
[error] 	at dotty.tools.dotc.Run.compile(Run.scala:106)
[error] 	at dotty.tools.dotc.Driver.doCompile(Driver.scala:36)
[error] 	at dotty.tools.dotc.Driver.process(Driver.scala:189)
[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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] 	at sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
[error] 	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
[error] 	at sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
[error] 	at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
[error] 	at sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
[error] 	at sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
[error] 	at sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
[error] 	at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1765)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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:67)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error] 	at sbt.Execute.work(Execute.scala:290)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] 	at java.base/java.lang.Thread.run(Thread.java:834)
[error] (Compile / compileIncremental) scala.MatchError: MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean)) (of class dotty.tools.dotc.core.Types$CachedMethodType)
[error] Total time: 5 s, completed Sep 26, 2020, 2:08:02 PM

Both examples crash 0.26.0. The error appears to have moved to the erasure phase, and looks to be the same for both cases; this log is from the latter:

dotc 0.26.0 output -- click to expand
[info] Compiling 1 Scala source to /src/dotty-issues/i7128/repro/target/scala-0.26/classes ...
error while abstracting tree = foo | mt = (x: Object): Boolean | args =  | tp = Boolean | pt = Object
exception while typing {
  recorderRuntime
}.recordValue[(foo : (x: Object): Boolean)](foo, 20) of class class dotty.tools.dotc.ast.Trees$Apply # 1397
exception while typing {
  recorderRuntime
}.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
  {
    recorderRuntime
  }.recordValue[N.type](N, 24)
) of class class dotty.tools.dotc.ast.Trees$Apply # 1400
exception while typing {
  recorderRuntime
}.recordValue[Boolean](
  {
    recorderRuntime
  }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
    {
      recorderRuntime
    }.recordValue[N.type](N, 24)
  )
, 24) of class class dotty.tools.dotc.ast.Trees$Apply # 1401
exception while typing {
  recorderRuntime
}.recordExpression("                    foo(N)",
  "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
,
  {
    recorderRuntime
  }.recordValue[Boolean](
    {
      recorderRuntime
    }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
      {
        recorderRuntime
      }.recordValue[N.type](N, 24)
    )
  , 24)
) of class class dotty.tools.dotc.ast.Trees$Apply # 1402
exception while typing {
  {
    recorderRuntime
  }.resetValues()
  {
    recorderRuntime
  }.recordExpression("                    foo(N)",
    "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
  ,
    {
      recorderRuntime
    }.recordValue[Boolean](
      {
        recorderRuntime
      }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
        {
          recorderRuntime
        }.recordValue[N.type](N, 24)
      )
    , 24)
  )
  {
    recorderRuntime.completeRecording()
  }
} of class class dotty.tools.dotc.ast.Trees$Block # 8487
exception while typing {
  {
    {
      recorderRuntime
    }.resetValues()
    {
      recorderRuntime
    }.recordExpression("                    foo(N)",
      "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
    ,
      {
        recorderRuntime
      }.recordValue[Boolean](
        {
          recorderRuntime
        }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
          {
            recorderRuntime
          }.recordValue[N.type](N, 24)
        )
      , 24)
    )
    {
      recorderRuntime.completeRecording()
    }
  }
} of class class dotty.tools.dotc.ast.Trees$Inlined # 8488
exception while typing {
  val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
    new verify.asserts.RecorderRuntime[Boolean, Unit](
      {
        {
          Recorder_this.inline$listener
        }
      }
    )
  recorderRuntime.recordMessage(
    <special-ops>.<cbn-arg>[("" : String)](
      {
        def $anonfun(): ("" : String) =
          {
            ""
          }
        closure($anonfun)
      }
    )
  )
  {
    {
      {
        recorderRuntime
      }.resetValues()
      {
        recorderRuntime
      }.recordExpression("                    foo(N)",
        "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
      ,
        {
          recorderRuntime
        }.recordValue[Boolean](
          {
            recorderRuntime
          }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
            {
              recorderRuntime
            }.recordValue[N.type](N, 24)
          )
        , 24)
      )
      {
        recorderRuntime.completeRecording()
      }
    }
  }
} of class class dotty.tools.dotc.ast.Trees$Block # 8489
exception while typing {
  {
    val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
      new verify.asserts.RecorderRuntime[Boolean, Unit](
        {
          {
            Recorder_this.inline$listener
          }
        }
      )
    recorderRuntime.recordMessage(
      <special-ops>.<cbn-arg>[("" : String)](
        {
          def $anonfun(): ("" : String) =
            {
              ""
            }
          closure($anonfun)
        }
      )
    )
    {
      {
        {
          recorderRuntime
        }.resetValues()
        {
          recorderRuntime
        }.recordExpression("                    foo(N)",
          "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
        ,
          {
            recorderRuntime
          }.recordValue[Boolean](
            {
              recorderRuntime
            }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
              {
                recorderRuntime
              }.recordValue[N.type](N, 24)
            )
          , 24)
        )
        {
          recorderRuntime.completeRecording()
        }
      }
    }
  }
} of class class dotty.tools.dotc.ast.Trees$Inlined # 8490
exception while typing {
  {
    val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
      new verify.asserts.RecorderRuntime[Boolean, Unit](
        {
          {
            Recorder_this.inline$listener
          }
        }
      )
    recorderRuntime.recordMessage(
      <special-ops>.<cbn-arg>[("" : String)](
        {
          def $anonfun(): ("" : String) =
            {
              ""
            }
          closure($anonfun)
        }
      )
    )
    {
      {
        {
          recorderRuntime
        }.resetValues()
        {
          recorderRuntime
        }.recordExpression("                    foo(N)",
          "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
        ,
          {
            recorderRuntime
          }.recordValue[Boolean](
            {
              recorderRuntime
            }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
              {
                recorderRuntime
              }.recordValue[N.type](N, 24)
            )
          , 24)
        )
        {
          recorderRuntime.completeRecording()
        }
      }
    }
  }
}:Unit of class class dotty.tools.dotc.ast.Trees$Typed # 7308
exception while typing {
  val value: Boolean = foo(N)
  val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
    Test.assert
  {
    {
      val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
        new verify.asserts.RecorderRuntime[Boolean, Unit](
          {
            {
              Recorder_this.inline$listener
            }
          }
        )
      recorderRuntime.recordMessage(
        <special-ops>.<cbn-arg>[("" : String)](
          {
            def $anonfun(): ("" : String) =
              {
                ""
              }
            closure($anonfun)
          }
        )
      )
      {
        {
          {
            recorderRuntime
          }.resetValues()
          {
            recorderRuntime
          }.recordExpression("                    foo(N)",
            "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
          ,
            {
              recorderRuntime
            }.recordValue[Boolean](
              {
                recorderRuntime
              }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
                {
                  recorderRuntime
                }.recordValue[N.type](N, 24)
              )
            , 24)
          )
          {
            recorderRuntime.completeRecording()
          }
        }
      }
    }
  }:Unit
} of class class dotty.tools.dotc.ast.Trees$Inlined # 1403
exception while typing def boom: Unit =
  {
    val value: Boolean = foo(N)
    val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
      Test.assert
    {
      {
        val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
          new verify.asserts.RecorderRuntime[Boolean, Unit](
            {
              {
                Recorder_this.inline$listener
              }
            }
          )
        recorderRuntime.recordMessage(
          <special-ops>.<cbn-arg>[("" : String)](
            {
              def $anonfun(): ("" : String) =
                {
                  ""
                }
              closure($anonfun)
            }
          )
        )
        {
          {
            {
              recorderRuntime
            }.resetValues()
            {
              recorderRuntime
            }.recordExpression("                    foo(N)",
              "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
            ,
              {
                recorderRuntime
              }.recordValue[Boolean](
                {
                  recorderRuntime
                }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
                  {
                    recorderRuntime
                  }.recordValue[N.type](N, 24)
                )
              , 24)
            )
            {
              recorderRuntime.completeRecording()
            }
          }
        }
      }
    }:Unit
  } of class class dotty.tools.dotc.ast.Trees$DefDef # 1404
exception while typing @scala.annotation.internal.SourceFile(
  "/src/dotty-issues/i7128/repro/src/main/scala/Main.scala"
) final module class Test$() extends Object(), verify.Assertion, Serializable {
  private def writeReplace(): AnyRef =
    new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
  def boom: Unit =
    {
      val value: Boolean = foo(N)
      val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
        Test.assert
      {
        {
          val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
            new verify.asserts.RecorderRuntime[Boolean, Unit](
              {
                {
                  Recorder_this.inline$listener
                }
              }
            )
          recorderRuntime.recordMessage(
            <special-ops>.<cbn-arg>[("" : String)](
              {
                def $anonfun(): ("" : String) =
                  {
                    ""
                  }
                closure($anonfun)
              }
            )
          )
          {
            {
              {
                recorderRuntime
              }.resetValues()
              {
                recorderRuntime
              }.recordExpression("                    foo(N)",
                "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
              ,
                {
                  recorderRuntime
                }.recordValue[Boolean](
                  {
                    recorderRuntime
                  }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
                    {
                      recorderRuntime
                    }.recordValue[N.type](N, 24)
                  )
                , 24)
              )
              {
                recorderRuntime.completeRecording()
              }
            }
          }
        }
      }:Unit
    }
} of class class dotty.tools.dotc.ast.Trees$TypeDef # 1406
exception while typing package <empty> {
  final lazy module val N: N$ = new N$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/repro/src/main/scala/Main.scala"
  ) final module class N$() extends Object(), Serializable {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[N.type])
  }
  final lazy module val Test: Test$ = new Test$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/repro/src/main/scala/Main.scala"
  ) final module class Test$() extends Object(), verify.Assertion, Serializable
     {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
    def boom: Unit =
      {
        val value: Boolean = foo(N)
        val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
          Test.assert
        {
          {
            val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit]
               =
            new verify.asserts.RecorderRuntime[Boolean, Unit](
              {
                {
                  Recorder_this.inline$listener
                }
              }
            )
            recorderRuntime.recordMessage(
              <special-ops>.<cbn-arg>[("" : String)](
                {
                  def $anonfun(): ("" : String) =
                    {
                      ""
                    }
                  closure($anonfun)
                }
              )
            )
            {
              {
                {
                  recorderRuntime
                }.resetValues()
                {
                  recorderRuntime
                }.recordExpression("                    foo(N)",
                  "Apply(Ident(\"foo\"), List(Ident(\"N\")))"
                ,
                  {
                    recorderRuntime
                  }.recordValue[Boolean](
                    {
                      recorderRuntime
                    }.recordValue[(foo : (x: Object): Boolean)](foo, 20)(
                      {
                        recorderRuntime
                      }.recordValue[N.type](N, 24)
                    )
                  , 24)
                )
                {
                  recorderRuntime.completeRecording()
                }
              }
            }
          }
        }:Unit
      }
  }
  final lazy module val Main$package: Main$package$ = new Main$package$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/repro/src/main/scala/Main.scala"
  ) final module class Main$package$() extends Object(), Serializable {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Main$package.type])
    type T[A] >: N.type
    def foo(x: T[Int]): Boolean = ???
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # 1407
[info] exception occurred while compiling /src/dotty-issues/i7128/repro/src/main/scala/Main.scala
scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef) while compiling /src/dotty-issues/i7128/repro/src/main/scala/Main.scala
[error] ## Exception when compiling 1 sources to /src/dotty-issues/i7128/repro/target/scala-0.26/classes
[error] scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:489)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:520)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:354)
[error] dotty.tools.dotc.transform.Erasure$Typer.op$1(Erasure.scala:990)
[error] dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:991)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:777)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:117)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:117)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:871)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:597)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2428)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.typer.Typer.$anonfun$32(Typer.scala:1946)
[error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1946)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:891)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2400)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2081)
[error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2411)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2415)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2207)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2455)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure.run(Erasure.scala:122)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:295)
[error] scala.collection.immutable.List.map(List.scala:246)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:296)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:181)
[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:191)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:199)
[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:206)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:143)
[error] dotty.tools.dotc.Run.compile(Run.scala:125)
[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] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] java.base/java.lang.reflect.Method.invoke(Method.java:566)
[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:1765)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] java.base/java.lang.Thread.run(Thread.java:834)
[error]
[error] scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:489)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:520)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:354)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.op$1(Erasure.scala:990)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:991)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:777)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:117)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:117)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:871)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:597)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2428)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.typer.Typer.$anonfun$32(Typer.scala:1946)
[error] 	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] 	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1946)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:891)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2400)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2081)
[error] 	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2411)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2415)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2207)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2455)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:122)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:295)
[error] 	at scala.collection.immutable.List.map(List.scala:246)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:296)
[error] 	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:181)
[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:191)
[error] 	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:199)
[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:206)
[error] 	at dotty.tools.dotc.Run.compileSources(Run.scala:143)
[error] 	at dotty.tools.dotc.Run.compile(Run.scala:125)
[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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] 	at sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
[error] 	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
[error] 	at sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
[error] 	at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
[error] 	at sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
[error] 	at sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
[error] 	at sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
[error] 	at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1765)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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:67)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error] 	at sbt.Execute.work(Execute.scala:290)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] 	at java.base/java.lang.Thread.run(Thread.java:834)
[error] (Compile / compileIncremental) scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] Total time: 4 s, completed Sep 26, 2020, 2:10:52 PM

I was unable to build scala-verify with 0.27.0-RC1.

@griggt
Copy link
Contributor

griggt commented Sep 26, 2020

Note that if we make foo polymorphic

def foo[A](x: T[A]): Boolean = ???

then the compiler does not crash. This is also true for the original non-minimized code.

@griggt
Copy link
Contributor

griggt commented Sep 30, 2020

I believe I have worked out a standalone reproducer for this issue:

// Verify.scala
import scala.language.experimental.macros
import scala.quoted._

class Runtime {
  def fooValue[U](u: U): U = ???
}

class Macro(using qctx: QuoteContext) {
  import qctx.tasty.{ Type => _, _ }

  def apply[A: Type](x: Expr[A]): Expr[Unit] = {
    val termArg: Term = x.unseal.underlyingArgument
    '{
      val rt: Runtime = ???
      ${Block(doExprs('{ rt }.unseal, termArg), '{ () }.unseal).seal.cast[Unit]}
    }
  }

  private def doExprs(rt: Term, t: Term): List[Term] = doAllVals(rt, t) :: Nil

  private def doAllVals(rt: Term, t: Term): Term = doVal(rt, doSubVals(rt, t))

  private def doSubVals(rt: Term, t: Term): Term = t match {
    case Apply(x, ys) => Apply(doAllVals(rt, x), ys.map(doAllVals(rt, _)))
    case _            => t
  }

  private val runtimeSym: Symbol = '[Runtime].unseal.tpe.typeSymbol

  private def doVal(rt: Term, t: Term): Term = t match {
    case TypeApply(_, _) => t
    case _ =>
      val sel: Term = rt.select(runtimeSym.method("fooValue").head)
      Apply.copy(t)(sel.appliedToType(t.tpe), t :: Nil)
  }
}

object Macro {
  def apply[A: Type](x: Expr[A])(using QuoteContext): Expr[Unit] =
    new Macro().apply(x)
}

class Assert[A] {
  inline def apply(value: A): Unit = ${ Macro.apply('value) }
}

trait TestSuite {
  def assert: Assert[Boolean] = ???
  def test(f: => Unit): Unit = ???
}
// Main.scala
object N
type T[A] >: N.type

object Test extends TestSuite {
  test {
    def foo(x: T[Int]): Boolean = ???
    def boom = assert(foo(N))
  }
}

This may be adapted for Dotty versions < 0.23.0 by replacing using with given, and adding given to the qctx.tasty import list.

Compiler output for a selection of Dotty versions:

dotc 0.21.0-RC1
[info] Compiling 2 Scala sources to /src/dotty-issues/i7128/standalone/target/scala-0.21/classes ...
java.lang.AssertionError: assertion failed: invalid prefix MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean)) while compiling /src/dotty-issues/i7128/standalone/src/main/scala-0.21/Verify.scala, /src/dotty-issues/i7128/standalone/src/main/scala/Main.scala
[error] ## Exception when compiling 2 sources to /src/dotty-issues/i7128/standalone/target/scala-0.21/classes
[error] java.lang.AssertionError: assertion failed: invalid prefix MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean))
[error] dotty.DottyPredef$.assertFail(DottyPredef.scala:17)
[error] dotty.tools.dotc.core.Types$NamedType.<init>(Types.scala:1835)
[error] dotty.tools.dotc.core.Types$TermRef.<init>(Types.scala:2354)
[error] dotty.tools.dotc.core.Types$CachedTermRef.<init>(Types.scala:2406)
[error] dotty.tools.dotc.core.Uniques$NamedTypeUniques.newType$1(Uniques.scala:63)
[error] dotty.tools.dotc.core.Uniques$NamedTypeUniques.enterIfNew(Uniques.scala:65)
[error] dotty.tools.dotc.core.Types$TermRef$.apply(Types.scala:2454)
[error] dotty.tools.dotc.core.Types$NamedType$.apply(Types.scala:2444)
[error] dotty.tools.dotc.core.Types$NamedType.withPrefix(Types.scala:2317)
[error] dotty.tools.dotc.core.Types$NamedType.derivedSelect(Types.scala:2250)
[error] dotty.tools.dotc.ast.tpd$TypedTreeCopier.Select(tpd.scala:561)
[error] dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:229)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:291)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:406)
[error] dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:287)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:306)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:406)
[error] dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:245)
[error] dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:248)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:404)
[error] dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:245)
[error] dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:248)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:404)
[error] dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:406)
[error] dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:245)
[error] dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:248)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] dotty.tools.dotc.transform.MegaPhase.transformSpecificTree(MegaPhase.scala:400)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:336)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:251)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:404)
[error] dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] scala.collection.immutable.List.mapConserve(List.scala:444)
[error] dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:356)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:359)
[error] dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:415)
[error] dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:427)
[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.Run.runPhases$4$$anonfun$4(Run.scala:161)
[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:171)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:179)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:65)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:186)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:128)
[error] dotty.tools.dotc.Driver.finish$1(Driver.scala:46)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:49)
[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] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] java.base/java.lang.reflect.Method.invoke(Method.java:566)
[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:1765)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] java.base/java.lang.Thread.run(Thread.java:834)
[error]
[error] java.lang.AssertionError: assertion failed: invalid prefix MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean))
[error] 	at dotty.DottyPredef$.assertFail(DottyPredef.scala:17)
[error] 	at dotty.tools.dotc.core.Types$NamedType.<init>(Types.scala:1835)
[error] 	at dotty.tools.dotc.core.Types$TermRef.<init>(Types.scala:2354)
[error] 	at dotty.tools.dotc.core.Types$CachedTermRef.<init>(Types.scala:2406)
[error] 	at dotty.tools.dotc.core.Uniques$NamedTypeUniques.newType$1(Uniques.scala:63)
[error] 	at dotty.tools.dotc.core.Uniques$NamedTypeUniques.enterIfNew(Uniques.scala:65)
[error] 	at dotty.tools.dotc.core.Types$TermRef$.apply(Types.scala:2454)
[error] 	at dotty.tools.dotc.core.Types$NamedType$.apply(Types.scala:2444)
[error] 	at dotty.tools.dotc.core.Types$NamedType.withPrefix(Types.scala:2317)
[error] 	at dotty.tools.dotc.core.Types$NamedType.derivedSelect(Types.scala:2250)
[error] 	at dotty.tools.dotc.ast.tpd$TypedTreeCopier.Select(tpd.scala:561)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:229)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:291)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:406)
[error] 	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:287)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:306)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:406)
[error] 	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:245)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:248)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:404)
[error] 	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:245)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:248)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:404)
[error] 	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTrees$$anonfun$1(MegaPhase.scala:420)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTrees(MegaPhase.scala:420)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:271)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:406)
[error] 	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:286)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.mapDefDef$1(MegaPhase.scala:245)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:248)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformSpecificTree(MegaPhase.scala:400)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:336)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformNamed$1(MegaPhase.scala:251)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:394)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStat$2(MegaPhase.scala:404)
[error] 	at dotty.tools.dotc.transform.MegaPhase.$anonfun$1(MegaPhase.scala:409)
[error] 	at scala.collection.immutable.List.mapConserve(List.scala:444)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformStats(MegaPhase.scala:409)
[error] 	at dotty.tools.dotc.transform.MegaPhase.mapPackage$1(MegaPhase.scala:356)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnnamed$1(MegaPhase.scala:359)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformTree(MegaPhase.scala:396)
[error] 	at dotty.tools.dotc.transform.MegaPhase.transformUnit(MegaPhase.scala:415)
[error] 	at dotty.tools.dotc.transform.MegaPhase.run(MegaPhase.scala:427)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:315)
[error] 	at scala.collection.immutable.List.map(List.scala:219)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:316)
[error] 	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:161)
[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:171)
[error] 	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:179)
[error] 	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] 	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:65)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:186)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:128)
[error] 	at dotty.tools.dotc.Driver.finish$1(Driver.scala:46)
[error] 	at dotty.tools.dotc.Driver.doCompile(Driver.scala:49)
[error] 	at dotty.tools.dotc.Driver.process(Driver.scala:189)
[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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] 	at sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
[error] 	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
[error] 	at sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
[error] 	at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
[error] 	at sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
[error] 	at sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
[error] 	at sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
[error] 	at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1765)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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:67)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error] 	at sbt.Execute.work(Execute.scala:290)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] 	at java.base/java.lang.Thread.run(Thread.java:834)
[error] (Compile / compileIncremental) java.lang.AssertionError: assertion failed: invalid prefix MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class Object)), TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Boolean))
dotc 0.26.0
[info] Compiling 2 Scala sources to /src/dotty-issues/i7128/standalone/target/scala-0.26/classes ...
error while abstracting tree = foo | mt = (x: Object): Boolean | args =  | tp = Boolean | pt = Object
exception while typing {
  rt
}.fooValue[(foo : (x: Object): Boolean)](foo) of class class dotty.tools.dotc.ast.Trees$Apply # 2584
exception while typing {
  rt
}.fooValue[(foo : (x: Object): Boolean)](foo)(
  {
    rt
  }.fooValue[N.type](N)
) of class class dotty.tools.dotc.ast.Trees$Apply # 2587
exception while typing {
  rt
}.fooValue[Boolean](
  {
    rt
  }.fooValue[(foo : (x: Object): Boolean)](foo)(
    {
      rt
    }.fooValue[N.type](N)
  )
) of class class dotty.tools.dotc.ast.Trees$Apply # 2588
exception while typing {
  {
    rt
  }.fooValue[Boolean](
    {
      rt
    }.fooValue[(foo : (x: Object): Boolean)](foo)(
      {
        rt
      }.fooValue[N.type](N)
    )
  )
  ()
} of class class dotty.tools.dotc.ast.Trees$Block # 10297
exception while typing {
  {
    {
      rt
    }.fooValue[Boolean](
      {
        rt
      }.fooValue[(foo : (x: Object): Boolean)](foo)(
        {
          rt
        }.fooValue[N.type](N)
      )
    )
    ()
  }
} of class class dotty.tools.dotc.ast.Trees$Inlined # 10298
exception while typing {
  val rt: Runtime = ???
  {
    {
      {
        rt
      }.fooValue[Boolean](
        {
          rt
        }.fooValue[(foo : (x: Object): Boolean)](foo)(
          {
            rt
          }.fooValue[N.type](N)
        )
      )
      ()
    }
  }
} of class class dotty.tools.dotc.ast.Trees$Block # 10299
exception while typing {
  {
    val rt: Runtime = ???
    {
      {
        {
          rt
        }.fooValue[Boolean](
          {
            rt
          }.fooValue[(foo : (x: Object): Boolean)](foo)(
            {
              rt
            }.fooValue[N.type](N)
          )
        )
        ()
      }
    }
  }
} of class class dotty.tools.dotc.ast.Trees$Inlined # 10300
exception while typing {
  {
    val rt: Runtime = ???
    {
      {
        {
          rt
        }.fooValue[Boolean](
          {
            rt
          }.fooValue[(foo : (x: Object): Boolean)](foo)(
            {
              rt
            }.fooValue[N.type](N)
          )
        )
        ()
      }
    }
  }
}:Unit of class class dotty.tools.dotc.ast.Trees$Typed # 9326
exception while typing {
  val value: Boolean = foo(N)
  val Assert_this: Assert[Boolean] = Test.assert
  {
    {
      val rt: Runtime = ???
      {
        {
          {
            rt
          }.fooValue[Boolean](
            {
              rt
            }.fooValue[(foo : (x: Object): Boolean)](foo)(
              {
                rt
              }.fooValue[N.type](N)
            )
          )
          ()
        }
      }
    }
  }:Unit
} of class class dotty.tools.dotc.ast.Trees$Inlined # 2589
exception while typing def boom: Unit =
  {
    val value: Boolean = foo(N)
    val Assert_this: Assert[Boolean] = Test.assert
    {
      {
        val rt: Runtime = ???
        {
          {
            {
              rt
            }.fooValue[Boolean](
              {
                rt
              }.fooValue[(foo : (x: Object): Boolean)](foo)(
                {
                  rt
                }.fooValue[N.type](N)
              )
            )
            ()
          }
        }
      }
    }:Unit
  } of class class dotty.tools.dotc.ast.Trees$DefDef # 2590
exception while typing {
  def foo(x: T[Int]): Boolean = ???
  def boom: Unit =
    {
      val value: Boolean = foo(N)
      val Assert_this: Assert[Boolean] = Test.assert
      {
        {
          val rt: Runtime = ???
          {
            {
              {
                rt
              }.fooValue[Boolean](
                {
                  rt
                }.fooValue[(foo : (x: Object): Boolean)](foo)(
                  {
                    rt
                  }.fooValue[N.type](N)
                )
              )
              ()
            }
          }
        }
      }:Unit
    }
  ()
} of class class dotty.tools.dotc.ast.Trees$Block # 2591
exception while typing def $anonfun(): Unit =
  {
    def foo(x: T[Int]): Boolean = ???
    def boom: Unit =
      {
        val value: Boolean = foo(N)
        val Assert_this: Assert[Boolean] = Test.assert
        {
          {
            val rt: Runtime = ???
            {
              {
                {
                  rt
                }.fooValue[Boolean](
                  {
                    rt
                  }.fooValue[(foo : (x: Object): Boolean)](foo)(
                    {
                      rt
                    }.fooValue[N.type](N)
                  )
                )
                ()
              }
            }
          }
        }:Unit
      }
    ()
  } of class class dotty.tools.dotc.ast.Trees$DefDef # 2592
exception while typing {
  def $anonfun(): Unit =
    {
      def foo(x: T[Int]): Boolean = ???
      def boom: Unit =
        {
          val value: Boolean = foo(N)
          val Assert_this: Assert[Boolean] = Test.assert
          {
            {
              val rt: Runtime = ???
              {
                {
                  {
                    rt
                  }.fooValue[Boolean](
                    {
                      rt
                    }.fooValue[(foo : (x: Object): Boolean)](foo)(
                      {
                        rt
                      }.fooValue[N.type](N)
                    )
                  )
                  ()
                }
              }
            }
          }:Unit
        }
      ()
    }
  closure($anonfun)
} of class class dotty.tools.dotc.ast.Trees$Block # 2593
exception while typing <special-ops>.<cbn-arg>[Unit](
  {
    def $anonfun(): Unit =
      {
        def foo(x: T[Int]): Boolean = ???
        def boom: Unit =
          {
            val value: Boolean = foo(N)
            val Assert_this: Assert[Boolean] = Test.assert
            {
              {
                val rt: Runtime = ???
                {
                  {
                    {
                      rt
                    }.fooValue[Boolean](
                      {
                        rt
                      }.fooValue[(foo : (x: Object): Boolean)](foo)(
                        {
                          rt
                        }.fooValue[N.type](N)
                      )
                    )
                    ()
                  }
                }
              }
            }:Unit
          }
        ()
      }
    closure($anonfun)
  }
) of class class dotty.tools.dotc.ast.Trees$Apply # 2594
exception while typing Test.test(
  <special-ops>.<cbn-arg>[Unit](
    {
      def $anonfun(): Unit =
        {
          def foo(x: T[Int]): Boolean = ???
          def boom: Unit =
            {
              val value: Boolean = foo(N)
              val Assert_this: Assert[Boolean] = Test.assert
              {
                {
                  val rt: Runtime = ???
                  {
                    {
                      {
                        rt
                      }.fooValue[Boolean](
                        {
                          rt
                        }.fooValue[(foo : (x: Object): Boolean)](foo)(
                          {
                            rt
                          }.fooValue[N.type](N)
                        )
                      )
                      ()
                    }
                  }
                }
              }:Unit
            }
          ()
        }
      closure($anonfun)
    }
  )
) of class class dotty.tools.dotc.ast.Trees$Apply # 2595
exception while typing @scala.annotation.internal.SourceFile(
  "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
) final module class Test$() extends Object(), TestSuite, Serializable {
  private def writeReplace(): AnyRef =
    new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
  Test.test(
    <special-ops>.<cbn-arg>[Unit](
      {
        def $anonfun(): Unit =
          {
            def foo(x: T[Int]): Boolean = ???
            def boom: Unit =
              {
                val value: Boolean = foo(N)
                val Assert_this: Assert[Boolean] = Test.assert
                {
                  {
                    val rt: Runtime = ???
                    {
                      {
                        {
                          rt
                        }.fooValue[Boolean](
                          {
                            rt
                          }.fooValue[(foo : (x: Object): Boolean)](foo)(
                            {
                              rt
                            }.fooValue[N.type](N)
                          )
                        )
                        ()
                      }
                    }
                  }
                }:Unit
              }
            ()
          }
        closure($anonfun)
      }
    )
  )
} of class class dotty.tools.dotc.ast.Trees$TypeDef # 2597
exception while typing package <empty> {
  final lazy module val N: N$ = new N$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
  ) final module class N$() extends Object(), Serializable {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[N.type])
  }
  final lazy module val Test: Test$ = new Test$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
  ) final module class Test$() extends Object(), TestSuite, Serializable {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
    Test.test(
      <special-ops>.<cbn-arg>[Unit](
        {
          def $anonfun(): Unit =
            {
              def foo(x: T[Int]): Boolean = ???
              def boom: Unit =
                {
                  val value: Boolean = foo(N)
                  val Assert_this: Assert[Boolean] = Test.assert
                  {
                    {
                      val rt: Runtime = ???
                      {
                        {
                          {
                            rt
                          }.fooValue[Boolean](
                            {
                              rt
                            }.fooValue[(foo : (x: Object): Boolean)](foo)(
                              {
                                rt
                              }.fooValue[N.type](N)
                            )
                          )
                          ()
                        }
                      }
                    }
                  }:Unit
                }
              ()
            }
          closure($anonfun)
        }
      )
    )
  }
  final lazy module val Main$package: Main$package$ = new Main$package$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
  ) final module class Main$package$() extends Object(), Serializable {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Main$package.type])
    type T[A] >: N.type
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # 2598
scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef) while compiling /src/dotty-issues/i7128/standalone/src/main/scala-0.26/Verify.scala, /src/dotty-issues/i7128/standalone/src/main/scala/Main.scala
[error] ## Exception when compiling 2 sources to /src/dotty-issues/i7128/standalone/target/scala-0.26/classes
[error] scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:489)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:520)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:354)
[error] dotty.tools.dotc.transform.Erasure$Typer.op$1(Erasure.scala:990)
[error] dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:991)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:777)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:871)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:597)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2428)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.typer.Typer.$anonfun$32(Typer.scala:1946)
[error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1946)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:891)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2400)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.typer.Typer.$anonfun$32(Typer.scala:1946)
[error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1946)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:891)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2400)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2374)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:772)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2081)
[error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2411)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2415)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2207)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2455)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] dotty.tools.dotc.transform.Erasure.run(Erasure.scala:122)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:295)
[error] scala.collection.immutable.List.map(List.scala:246)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:296)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:181)
[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:191)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:199)
[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:206)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:148)
[error] dotty.tools.dotc.Driver.finish$1(Driver.scala:48)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:51)
[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] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] java.base/java.lang.reflect.Method.invoke(Method.java:566)
[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:1765)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] java.base/java.lang.Thread.run(Thread.java:834)
[error]
[error] scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:489)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:520)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:354)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.op$1(Erasure.scala:990)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:991)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:777)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:871)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:597)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2428)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2550)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1594)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:839)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2444)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.typer.Typer.$anonfun$32(Typer.scala:1946)
[error] 	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] 	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1946)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:891)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2400)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.typer.Typer.$anonfun$32(Typer.scala:1946)
[error] 	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] 	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1946)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:891)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2400)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:865)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:869)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2431)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2374)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:772)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:790)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:116)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:790)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2423)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2081)
[error] 	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2411)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2415)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2483)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2579)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2627)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:978)
[error] 	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2207)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2455)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2484)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.op$1(Typer.scala:2553)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2554)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2557)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2671)
[error] 	at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:122)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:295)
[error] 	at scala.collection.immutable.List.map(List.scala:246)
[error] 	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:296)
[error] 	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:181)
[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:191)
[error] 	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:199)
[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:206)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:148)
[error] 	at dotty.tools.dotc.Driver.finish$1(Driver.scala:48)
[error] 	at dotty.tools.dotc.Driver.doCompile(Driver.scala:51)
[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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] 	at sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
[error] 	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
[error] 	at sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
[error] 	at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
[error] 	at sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
[error] 	at sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
[error] 	at sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
[error] 	at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1765)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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:67)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error] 	at sbt.Execute.work(Execute.scala:290)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] 	at java.base/java.lang.Thread.run(Thread.java:834)
[error] (Compile / compileIncremental) scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
dotc 0.28.0-bin-20200928-09eaed7-NIGHTLY
[info] Compiling 2 Scala sources to /src/dotty-issues/i7128/standalone/target/scala-0.28/classes ...
error while abstracting tree = foo | mt = (x: Object): Boolean | args =  | tp = Boolean | pt = Object
exception while typing rt.fooValue[(foo : (x: Object): Boolean)](foo) of class class dotty.tools.dotc.ast.Trees$Apply # 2829
exception while typing rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N)) of class class dotty.tools.dotc.ast.Trees$Apply # 2832
exception while typing rt.fooValue[Boolean](
  rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
) of class class dotty.tools.dotc.ast.Trees$Apply # 2833
exception while typing {
  rt.fooValue[Boolean](
    rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
  )
  ()
} of class class dotty.tools.dotc.ast.Trees$Block # 10301
exception while typing {
  rt.fooValue[Boolean](
    rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
  )
  ()
} of class class dotty.tools.dotc.ast.Trees$Inlined # 10302
exception while typing {
  val rt: Runtime = ???
  {
    rt.fooValue[Boolean](
      rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
    )
    ()
  }
} of class class dotty.tools.dotc.ast.Trees$Block # 10303
exception while typing {
  val rt: Runtime = ???
  {
    rt.fooValue[Boolean](
      rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
    )
    ()
  }
} of class class dotty.tools.dotc.ast.Trees$Inlined # 10304
exception while typing {
  val rt: Runtime = ???
  {
    rt.fooValue[Boolean](
      rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
    )
    ()
  }
}:Unit of class class dotty.tools.dotc.ast.Trees$Typed # 9493
exception while typing {
  val value$proxy2: Boolean = foo(N)
  val Assert_this: Assert[Boolean] = Test.assert
  {
    val rt: Runtime = ???
    {
      rt.fooValue[Boolean](
        rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
      )
      ()
    }
  }:Unit
} of class class dotty.tools.dotc.ast.Trees$Inlined # 2834
exception while typing def boom: Unit =
  {
    val value$proxy2: Boolean = foo(N)
    val Assert_this: Assert[Boolean] = Test.assert
    {
      val rt: Runtime = ???
      {
        rt.fooValue[Boolean](
          rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
        )
        ()
      }
    }:Unit
  } of class class dotty.tools.dotc.ast.Trees$DefDef # 2835
exception while typing {
  def foo(x: T[Int]): Boolean = ???
  def boom: Unit =
    {
      val value$proxy2: Boolean = foo(N)
      val Assert_this: Assert[Boolean] = Test.assert
      {
        val rt: Runtime = ???
        {
          rt.fooValue[Boolean](
            rt.fooValue[(foo : (x: Object): Boolean)](foo)(
              rt.fooValue[N.type](N)
            )
          )
          ()
        }
      }:Unit
    }
  ()
} of class class dotty.tools.dotc.ast.Trees$Block # 2836
exception while typing def $anonfun(): Unit =
  {
    def foo(x: T[Int]): Boolean = ???
    def boom: Unit =
      {
        val value$proxy2: Boolean = foo(N)
        val Assert_this: Assert[Boolean] = Test.assert
        {
          val rt: Runtime = ???
          {
            rt.fooValue[Boolean](
              rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                rt.fooValue[N.type](N)
              )
            )
            ()
          }
        }:Unit
      }
    ()
  } of class class dotty.tools.dotc.ast.Trees$DefDef # 2837
exception while typing {
  def $anonfun(): Unit =
    {
      def foo(x: T[Int]): Boolean = ???
      def boom: Unit =
        {
          val value$proxy2: Boolean = foo(N)
          val Assert_this: Assert[Boolean] = Test.assert
          {
            val rt: Runtime = ???
            {
              rt.fooValue[Boolean](
                rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                  rt.fooValue[N.type](N)
                )
              )
              ()
            }
          }:Unit
        }
      ()
    }
  closure($anonfun)
} of class class dotty.tools.dotc.ast.Trees$Block # 2838
exception while typing <special-ops>.<cbn-arg>[Unit](
  {
    def $anonfun(): Unit =
      {
        def foo(x: T[Int]): Boolean = ???
        def boom: Unit =
          {
            val value$proxy2: Boolean = foo(N)
            val Assert_this: Assert[Boolean] = Test.assert
            {
              val rt: Runtime = ???
              {
                rt.fooValue[Boolean](
                  rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                    rt.fooValue[N.type](N)
                  )
                )
                ()
              }
            }:Unit
          }
        ()
      }
    closure($anonfun)
  }
) of class class dotty.tools.dotc.ast.Trees$Apply # 2839
exception while typing Test.test(
  <special-ops>.<cbn-arg>[Unit](
    {
      def $anonfun(): Unit =
        {
          def foo(x: T[Int]): Boolean = ???
          def boom: Unit =
            {
              val value$proxy2: Boolean = foo(N)
              val Assert_this: Assert[Boolean] = Test.assert
              {
                val rt: Runtime = ???
                {
                  rt.fooValue[Boolean](
                    rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                      rt.fooValue[N.type](N)
                    )
                  )
                  ()
                }
              }:Unit
            }
          ()
        }
      closure($anonfun)
    }
  )
) of class class dotty.tools.dotc.ast.Trees$Apply # 2840
exception while typing @scala.annotation.internal.SourceFile(
  "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
) final module class Test$() extends Object(), TestSuite {
  private def writeReplace(): AnyRef =
    new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
  Test.test(
    <special-ops>.<cbn-arg>[Unit](
      {
        def $anonfun(): Unit =
          {
            def foo(x: T[Int]): Boolean = ???
            def boom: Unit =
              {
                val value$proxy2: Boolean = foo(N)
                val Assert_this: Assert[Boolean] = Test.assert
                {
                  val rt: Runtime = ???
                  {
                    rt.fooValue[Boolean](
                      rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                        rt.fooValue[N.type](N)
                      )
                    )
                    ()
                  }
                }:Unit
              }
            ()
          }
        closure($anonfun)
      }
    )
  )
} of class class dotty.tools.dotc.ast.Trees$TypeDef # 2842
exception while typing package <empty> {
  final lazy module val N: N$ = new N$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
  ) final module class N$() extends Object() {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[N.type])
  }
  final lazy module val Test: Test$ = new Test$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
  ) final module class Test$() extends Object(), TestSuite {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
    Test.test(
      <special-ops>.<cbn-arg>[Unit](
        {
          def $anonfun(): Unit =
            {
              def foo(x: T[Int]): Boolean = ???
              def boom: Unit =
                {
                  val value$proxy2: Boolean = foo(N)
                  val Assert_this: Assert[Boolean] = Test.assert
                  {
                    val rt: Runtime = ???
                    {
                      rt.fooValue[Boolean](
                        rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                          rt.fooValue[N.type](N)
                        )
                      )
                      ()
                    }
                  }:Unit
                }
              ()
            }
          closure($anonfun)
        }
      )
    )
  }
  final lazy module val Main$package: Main$package$ = new Main$package$()
  @scala.annotation.internal.SourceFile(
    "/src/dotty-issues/i7128/standalone/src/main/scala/Main.scala"
  ) final module class Main$package$() extends Object() {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Main$package.type])
    type T[A] >: N.type
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # 2843
scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef) while compiling /src/dotty-issues/i7128/standalone/src/main/scala-0.26/Verify.scala, /src/dotty-issues/i7128/standalone/src/main/scala/Main.scala
[error] ## Exception when compiling 2 sources to /src/dotty-issues/i7128/standalone/target/scala-0.28/classes
[error] scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:490)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:521)
[error] dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:355)
[error] dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:991)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:791)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:791)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:778)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:791)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:791)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2585)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2640)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:897)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:901)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:840)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:903)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:840)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:598)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2463)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2585)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:840)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1982)
[error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1982)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:892)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2435)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2518)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2614)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:897)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:901)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1982)
[error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1982)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:892)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2435)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2518)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2614)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:897)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:901)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2409)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:773)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:791)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:791)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2640)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2119)
[error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2446)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2450)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2518)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2614)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2244)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2490)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] dotty.tools.dotc.transform.Erasure.run(Erasure.scala:123)
[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:185)
[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:195)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:203)
[error] dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:63)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:210)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:152)
[error] dotty.tools.dotc.Driver.finish$1(Driver.scala:48)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:51)
[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] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] java.base/java.lang.reflect.Method.invoke(Method.java:566)
[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:1765)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] java.base/java.lang.Thread.run(Thread.java:834)
[error]
[error] scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:490)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:521)
[error] 	at dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:355)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:991)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:791)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:791)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:778)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:791)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:791)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2585)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2640)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:897)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:901)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:840)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:903)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:840)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:598)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2463)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2585)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1630)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:840)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1982)
[error] 	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] 	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1982)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:892)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2435)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2518)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2614)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:897)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:901)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:1982)
[error] 	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:217)
[error] 	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1982)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:892)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2435)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2518)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2614)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:897)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:901)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2466)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2409)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:773)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:791)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:791)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2458)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2640)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] 	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2119)
[error] 	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2446)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2450)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2518)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2614)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2663)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:979)
[error] 	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2244)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2490)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2519)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:122)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2588)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2592)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2707)
[error] 	at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:123)
[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:185)
[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:195)
[error] 	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:203)
[error] 	at dotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error] 	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:63)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:210)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:152)
[error] 	at dotty.tools.dotc.Driver.finish$1(Driver.scala:48)
[error] 	at dotty.tools.dotc.Driver.doCompile(Driver.scala:51)
[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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[error] 	at sbt.internal.inc.AnalyzingCompiler.call(AnalyzingCompiler.scala:248)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:122)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:95)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:91)
[error] 	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:186)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3(MixedAnalyzingCompiler.scala:82)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$3$adapted(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:215)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:77)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:146)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:343)
[error] 	at sbt.internal.inc.Incremental$.doCompile(Incremental.scala:120)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$4(Incremental.scala:100)
[error] 	at sbt.internal.inc.IncrementalCommon.recompileClasses(IncrementalCommon.scala:180)
[error] 	at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:98)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$compile$3(Incremental.scala:102)
[error] 	at sbt.internal.inc.Incremental$.manageClassfiles(Incremental.scala:155)
[error] 	at sbt.internal.inc.Incremental$.compile(Incremental.scala:92)
[error] 	at sbt.internal.inc.IncrementalCompile$.apply(Compile.scala:75)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:348)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:301)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:168)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:248)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:74)
[error] 	at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:1765)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:1738)
[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:67)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:281)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:19)
[error] 	at sbt.Execute.work(Execute.scala:290)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:281)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[error] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[error] 	at java.base/java.lang.Thread.run(Thread.java:834)
[error] (Compile / compileIncremental) scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),module scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)

As mentioned in a previous comment, making foo polymorphic allows compilation to complete successfully.

@dotbg dotbg mentioned this issue Mar 7, 2021
@dwijnand dwijnand removed the stat:needs minimization Needs a self contained minimization label Jun 8, 2021
@dwijnand dwijnand self-assigned this Jun 8, 2021
@dwijnand
Copy link
Member Author

dwijnand commented Jun 8, 2021

Using 3.0.0:

// Verify.scala
import scala.language.experimental.macros
import scala.quoted.*

class Runtime {
  def fooValue[U](u: U): U = ???
}

class Macro(using qctx: Quotes) {
  import qctx.reflect._

  def apply[A: Type](x: Expr[A]): Expr[Unit] = {
    val termArg = x.asTerm.underlyingArgument.asExprOf[A]
    '{
      val rt: Runtime = ???
      ${Block(doExprs('{ rt }.asTerm, termArg.asTerm), '{ () }.asTerm).asExprOf[Unit]}
    }
  }

  private def doExprs(rt: Term, t: Term): List[Term] = doAllVals(rt, t) :: Nil

  private def doAllVals(rt: Term, t: Term): Term = doVal(rt, doSubVals(rt, t))

  private def doSubVals(rt: Term, t: Term): Term = t match {
    case Apply(x, ys) => Apply(doAllVals(rt, x), ys.map(doAllVals(rt, _)))
    case _            => t
  }

  private val runtimeSym: Symbol = TypeRepr.of[Runtime].typeSymbol

  private def doVal(rt: Term, t: Term): Term = t match {
    case TypeApply(_, _) => t
    case _ =>
      val sel: Term = rt.select(runtimeSym.memberMethod("fooValue").head)
      Apply.copy(t)(sel.appliedToType(t.tpe), t :: Nil)
  }
}

object Macro {
  def apply[A: Type](x: Expr[A])(using Quotes): Expr[Unit] =
    new Macro().apply(x)
}

class Assert[A] {
  inline def apply(value: A): Unit = ${ Macro.apply('value) }
}

trait TestSuite {
  def assert: Assert[Boolean] = ???
  def test(f: => Unit): Unit = ???
}
// Main.scala
object N
type T[A] >: N.type

object Test extends TestSuite {
  test {
    def foo(x: T[Int]): Boolean = ???
    def boom = assert(foo(N))
  }
}
dotc 3.0.0
error while abstracting tree = foo | mt = (x: Object): Boolean | args =  | tp = Boolean | pt = Object
exception while typing rt.fooValue[(foo : (x: Object): Boolean)](foo) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N)) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing rt.fooValue[Boolean](
  rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing {
  rt.fooValue[Boolean](
    rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
  )
  ()
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
  rt.fooValue[Boolean](
    rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
  )
  ()
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
  val rt: Runtime = ???
  {
    rt.fooValue[Boolean](
      rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
    )
    ()
  }
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
  val rt: Runtime = ???
  {
    rt.fooValue[Boolean](
      rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
    )
    ()
  }
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
  val rt: Runtime = ???
  {
    rt.fooValue[Boolean](
      rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
    )
    ()
  }
}:Unit of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
  val value$proxy1: Boolean = foo(N)
  val Assert_this: Assert[Boolean] = Test.assert
  {
    val rt: Runtime = ???
    {
      rt.fooValue[Boolean](
        rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
      )
      ()
    }
  }:Unit
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing def boom: Unit =
  {
    val value$proxy1: Boolean = foo(N)
    val Assert_this: Assert[Boolean] = Test.assert
    {
      val rt: Runtime = ???
      {
        rt.fooValue[Boolean](
          rt.fooValue[(foo : (x: Object): Boolean)](foo)(rt.fooValue[N.type](N))
        )
        ()
      }
    }:Unit
  } of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing {
  def foo(x: T[Int]): Boolean = ???
  def boom: Unit =
    {
      val value$proxy1: Boolean = foo(N)
      val Assert_this: Assert[Boolean] = Test.assert
      {
        val rt: Runtime = ???
        {
          rt.fooValue[Boolean](
            rt.fooValue[(foo : (x: Object): Boolean)](foo)(
              rt.fooValue[N.type](N)
            )
          )
          ()
        }
      }:Unit
    }
  ()
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing def $anonfun(): Unit =
  {
    def foo(x: T[Int]): Boolean = ???
    def boom: Unit =
      {
        val value$proxy1: Boolean = foo(N)
        val Assert_this: Assert[Boolean] = Test.assert
        {
          val rt: Runtime = ???
          {
            rt.fooValue[Boolean](
              rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                rt.fooValue[N.type](N)
              )
            )
            ()
          }
        }:Unit
      }
    ()
  } of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing {
  def $anonfun(): Unit =
    {
      def foo(x: T[Int]): Boolean = ???
      def boom: Unit =
        {
          val value$proxy1: Boolean = foo(N)
          val Assert_this: Assert[Boolean] = Test.assert
          {
            val rt: Runtime = ???
            {
              rt.fooValue[Boolean](
                rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                  rt.fooValue[N.type](N)
                )
              )
              ()
            }
          }:Unit
        }
      ()
    }
  closure($anonfun)
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing <special-ops>.<cbn-arg>[Unit](
  {
    def $anonfun(): Unit =
      {
        def foo(x: T[Int]): Boolean = ???
        def boom: Unit =
          {
            val value$proxy1: Boolean = foo(N)
            val Assert_this: Assert[Boolean] = Test.assert
            {
              val rt: Runtime = ???
              {
                rt.fooValue[Boolean](
                  rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                    rt.fooValue[N.type](N)
                  )
                )
                ()
              }
            }:Unit
          }
        ()
      }
    closure($anonfun)
  }
) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing Test.test(
  <special-ops>.<cbn-arg>[Unit](
    {
      def $anonfun(): Unit =
        {
          def foo(x: T[Int]): Boolean = ???
          def boom: Unit =
            {
              val value$proxy1: Boolean = foo(N)
              val Assert_this: Assert[Boolean] = Test.assert
              {
                val rt: Runtime = ???
                {
                  rt.fooValue[Boolean](
                    rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                      rt.fooValue[N.type](N)
                    )
                  )
                  ()
                }
              }:Unit
            }
          ()
        }
      closure($anonfun)
    }
  )
) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing @scala.annotation.internal.SourceFile("Main.scala") final module class Test$()
   extends
 Object(), TestSuite {
  private def writeReplace(): AnyRef =
    new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
  Test.test(
    <special-ops>.<cbn-arg>[Unit](
      {
        def $anonfun(): Unit =
          {
            def foo(x: T[Int]): Boolean = ???
            def boom: Unit =
              {
                val value$proxy1: Boolean = foo(N)
                val Assert_this: Assert[Boolean] = Test.assert
                {
                  val rt: Runtime = ???
                  {
                    rt.fooValue[Boolean](
                      rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                        rt.fooValue[N.type](N)
                      )
                    )
                    ()
                  }
                }:Unit
              }
            ()
          }
        closure($anonfun)
      }
    )
  )
} of class class dotty.tools.dotc.ast.Trees$TypeDef # -1
exception while typing package <empty> {
  final lazy module val N: N$ = new N$()
  @scala.annotation.internal.SourceFile("Main.scala") final module class N$()
     extends
   Object() {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[N.type])
  }
  final lazy module val Test: Test$ = new Test$()
  @scala.annotation.internal.SourceFile("Main.scala") final module class Test$()
     extends
   Object(), TestSuite {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
    Test.test(
      <special-ops>.<cbn-arg>[Unit](
        {
          def $anonfun(): Unit =
            {
              def foo(x: T[Int]): Boolean = ???
              def boom: Unit =
                {
                  val value$proxy1: Boolean = foo(N)
                  val Assert_this: Assert[Boolean] = Test.assert
                  {
                    val rt: Runtime = ???
                    {
                      rt.fooValue[Boolean](
                        rt.fooValue[(foo : (x: Object): Boolean)](foo)(
                          rt.fooValue[N.type](N)
                        )
                      )
                      ()
                    }
                  }:Unit
                }
              ()
            }
          closure($anonfun)
        }
      )
    )
  }
  final lazy module val Main$package: Main$package$ = new Main$package$()
  @scala.annotation.internal.SourceFile("Main.scala") final module class
    Main$package$
  () extends Object() {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Main$package.type])
    type T[A] >: N.type
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # -1
exception occurred while compiling Main.scala
scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef) while compiling Main.scala
Exception in thread "main" scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),class Boolean) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
	at dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:540)
	at dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:571)
	at dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:369)
	at dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:1080)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:850)
	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:153)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2669)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:837)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2669)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:850)
	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:153)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2669)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2849)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2793)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1018)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:652)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2674)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2793)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1769)
	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:899)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2691)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:2142)
	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:225)
	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2142)
	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:955)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2646)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.typer.Typer.$anonfun$34(Typer.scala:2142)
	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:225)
	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2142)
	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:955)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2646)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1012)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1016)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2677)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2620)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:832)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2669)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:850)
	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:153)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2669)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2849)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2328)
	at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1057)
	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2657)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2661)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2730)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2822)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2872)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1068)
	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2451)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2702)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2731)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2796)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2800)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2916)
	at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:132)
	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:303)
	at scala.collection.immutable.List.map(List.scala:246)
	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:304)
	at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:205)
	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:1323)
	at dotty.tools.dotc.Run.runPhases$5(Run.scala:215)
	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:223)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
	at dotty.tools.dotc.Run.compileUnits(Run.scala:230)
	at dotty.tools.dotc.Run.compileSources(Run.scala:166)
	at dotty.tools.dotc.Run.compile(Run.scala:150)
	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)

@nicolasstucki
Copy link
Contributor

Running this with -Xcheck-macros shows the place where the problem starts.

-- Error: Foo2.scala:7:21 ------------------------------------------------------
7 |    def boom = assert(foo(N))
  |               ^^^^^^^^^^^^^^
  |Exception occurred while executing macro expansion.
  |java.lang.AssertionError: assertion failed: Reference to a method must be eta-expanded before it is used as an expression: foo
  |     at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
  |     at scala.quoted.runtime.impl.QuotesImpl$reflect$.scala$quoted$runtime$impl$QuotesImpl$reflect$$$xCheckMacroValidExpr(QuotesImpl.scala:2863)
  |     at scala.quoted.runtime.impl.QuotesImpl$reflect$.xCheckMacroValidExprs$$anonfun$1(QuotesImpl.scala:2855)
  |     at scala.collection.immutable.List.foreach(List.scala:333)
  |     at scala.quoted.runtime.impl.QuotesImpl$reflect$.scala$quoted$runtime$impl$QuotesImpl$reflect$$$xCheckMacroValidExprs(QuotesImpl.scala:2855)
  |     at scala.quoted.runtime.impl.QuotesImpl$reflect$Apply$.copy(QuotesImpl.scala:592)
  |     at scala.quoted.runtime.impl.QuotesImpl$reflect$Apply$.copy(QuotesImpl.scala:591)
  |     at Macro.doVal(Foo.scala:34)
  |     at Macro.doAllVals(Foo.scala:21)
  |     at Macro.doSubVals(Foo.scala:24)
  |     at Macro.doAllVals(Foo.scala:21)
  |     at Macro.doExprs(Foo.scala:19)
  |     at Macro.apply$$anonfun$1(Foo.scala:15)
  |     at Macro.apply$$anonfun$adapted$1(Foo.scala:15)
  |     at dotty.tools.dotc.quoted.PickledQuotes$$anon$1.transform(PickledQuotes.scala:82)
  |     at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1417)
  |     at dotty.tools.dotc.quoted.PickledQuotes$$anon$1.transform(PickledQuotes.scala:107)
  |     at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1397)
  |     at dotty.tools.dotc.quoted.PickledQuotes$$anon$1.transform(PickledQuotes.scala:107)
  |     at dotty.tools.dotc.quoted.PickledQuotes$.spliceTerms(PickledQuotes.scala:122)
  |     at dotty.tools.dotc.quoted.PickledQuotes$.unpickleTerm(PickledQuotes.scala:61)
  |     at scala.quoted.runtime.impl.QuotesImpl.unpickleExpr(QuotesImpl.scala:2913)
  |     at Macro.apply(Foo.scala:15)
  |     at Macro$.apply(Foo.scala:40)

@dwijnand
Copy link
Member Author

dwijnand commented Jun 9, 2021

Oh. Took me a while (via #11537 (comment)) to realise it's the stacktrace of doVal that is your point (right?), not so much the message (which to me was very confusing as foo is being invoked in the userland code, not used as an expression)

@nicolasstucki
Copy link
Contributor

I believe that it failed when checking one of the args trees passed to the Apply. That tree was not a valid expression. I did not dig too deeply into the failure.

@nicolasstucki
Copy link
Contributor

The error message is half useful. It tells that we passed fun as an expression but did not apply it to anything. The suggestion in the error message is to eta-expand .etaExpand it to create a lambda for it. But it might just be messing a parameter.

@eed3si9n
Copy link
Member

eed3si9n commented Jun 9, 2021

So given an expression this.foo(N), Verify is trying to macro expand to:

record(record(this.foo)(record(N)))

? If so I wonder if the first record around this.foo is necessary.

@nicolasstucki
Copy link
Contributor

It should probably be

record(record((n: N) => this.foo(n))(record(N)))

The eta expansion needs to be done manually.

@dwijnand
Copy link
Member Author

dwijnand commented Mar 1, 2022

The bug in the macro implementation was fixed upstream. The fact that compiler was crashing isn't a bug per-se, given -Xcheck-macros (same if it were -Ycheck) errors out.

Currently, however this smaller minimisation of the macro implementation doesn't even compile, because "prepare inlineable" widens a prefix (type avoidance) which fails -Ycheck:

// Verify.scala
import scala.language.experimental.macros
import scala.quoted.*

class Runtime

class Macro(using qctx: Quotes) {
  import qctx.reflect._

  def apply[A: Type](x: Expr[A]): Expr[Unit] = {
    '{
      val rt: Runtime = ???
      ${Block(doExprs('{ rt }.asTerm), '{ () }.asTerm).asExprOf[Unit]}
    }
  }

  private def doExprs(rt: Term): List[Term] = Nil
}
Fatal compiler crash when compiling: tests/pos-macros/i7128:
assertion failed: Found:    quoted.Quotes#reflect.Term2s
Required: Macro.this.qctx.reflect.Term
found: type Term in trait reflectModule with type Term, flags = <deferred> <touched>, underlying = quoted.Quotes#reflect.Term,  <: quoted.Quotes#reflect.Statement, quoted.Quotes#reflect.Statement,  <: quoted.Quotes#reflect.Tree, quoted.Quotes#reflect.Tree,  <: AnyRef, AnyRef,  = Object, Object, Any with Matchable {...}
expected: type Term in trait reflectModule with type Term, flags = <deferred> <touched>, underlying = Macro.this.qctx.reflect.Term,  <: Macro.this.qctx.reflect.Statement, Macro.this.qctx.reflect.Statement,  <: Macro.this.qctx.reflect.Tree, Macro.this.qctx.reflect.Tree,  <: AnyRef, AnyRef,  = Object, Object, Any with Matchable {...}
tree = this.inline$qctx.reflect.asTerm('{rt}.apply(evidence$2))
	at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
	at dotty.tools.dotc.transform.TreeChecker$Checker.adapt(TreeChecker.scala:598)
	at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:463)
	at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:866)

Nico to close and spin off an issue for that.

@nicolasstucki
Copy link
Contributor

Moved the new issue to #14603

@nicolasstucki nicolasstucki added the area:metaprogramming:reflection Issues related to the quotes reflection API label Mar 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:metaprogramming:reflection Issues related to the quotes reflection API itype:bug
Projects
None yet
Development

No branches or pull requests

4 participants