Skip to content

"error while abstracting tree" MatchError during Erasure #10544

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

Open
eed3si9n opened this issue Nov 29, 2020 · 7 comments
Open

"error while abstracting tree" MatchError during Erasure #10544

eed3si9n opened this issue Nov 29, 2020 · 7 comments
Assignees

Comments

@eed3si9n
Copy link
Member

Minimized code

I don't have a minimized code, but here's a reproduction using GitHub Actions - scopt/scopt#293

Output

2020-11-29T04:28:56.3049370Z error while abstracting tree = scopttest.SpecUtil.RichString | mt = (self: String): scopttest.SpecUtil.RichString | args =  | tp = scopttest.SpecUtil.RichString | pt = Object
....
2020-11-29T04:28:58.7784166Z [error] scala.MatchError: TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class scopttest)),module class SpecUtil$)),class RichString) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
2020-11-29T04:28:58.7786132Z [error] dotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:490)
2020-11-29T04:28:58.7787694Z [error] dotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:521)
2020-11-29T04:28:58.7789320Z [error] dotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:355)
2020-11-29T04:28:58.7790942Z [error] dotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:996)
2020-11-29T04:28:58.7792202Z [error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
2020-11-29T04:28:56.3049370Z error while abstracting tree = scopttest.SpecUtil.RichString | mt = (self: String): scopttest.SpecUtil.RichString | args =  | tp = scopttest.SpecUtil.RichString | pt = Object
....
2020-11-29T04:28:58.7768767Z [0m[[0m[0minfo[0m] [0m[0mexception occurred while compiling /home/runner/work/scopt/scopt/jvm/src/test/scala/scopt/ImmutableParserSpecJVM.scala, /home/runner/work/scopt/scopt/jvm/src/test/scala/scopt/MonadicParserSpecJVM.scala, /home/runner/work/scopt/scopt/jvm/src/test/scala/scopt/SpecUtilPlatform.scala, /home/runner/work/scopt/scopt/jvm_js/src/test/scala/scopttest/UriSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/DiffUtil.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/ImmutableParserSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/MonadicParserSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/MutableParserSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/NotToStringInverse.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/SpecUtil.scala[0m
2020-11-29T04:28:58.7776691Z scala.MatchError: TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class scopttest)),module class SpecUtil$)),class RichString) (of class dotty.tools.dotc.core.Types$CachedTypeRef) while compiling /home/runner/work/scopt/scopt/jvm/src/test/scala/scopt/ImmutableParserSpecJVM.scala, /home/runner/work/scopt/scopt/jvm/src/test/scala/scopt/MonadicParserSpecJVM.scala, /home/runner/work/scopt/scopt/jvm/src/test/scala/scopt/SpecUtilPlatform.scala, /home/runner/work/scopt/scopt/jvm_js/src/test/scala/scopttest/UriSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/DiffUtil.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/ImmutableParserSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/MonadicParserSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/MutableParserSpec.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/NotToStringInverse.scala, /home/runner/work/scopt/scopt/shared/src/test/scala/scopttest/SpecUtil.scala
2020-11-29T04:28:58.7782182Z [0m[[0m[31merror[0m] [0m[0m## Exception when compiling 10 sources to /home/runner/work/scopt/scopt/jvm/target/scala-3.0.0-M2/test-classes[0m
2020-11-29T04:28:58.7784166Z [0m[[0m[31merror[0m] [0m[0mscala.MatchError: TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class scopttest)),module class SpecUtil$)),class RichString) (of class dotty.tools.dotc.core.Types$CachedTypeRef)[0m
2020-11-29T04:28:58.7786132Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Boxing$.abstracted$1(Erasure.scala:490)[0m
2020-11-29T04:28:58.7787694Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Boxing$.etaExpand(Erasure.scala:521)[0m
2020-11-29T04:28:58.7789320Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Boxing$.adaptToType(Erasure.scala:355)[0m
2020-11-29T04:28:58.7790942Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.adapt(Erasure.scala:996)[0m
2020-11-29T04:28:58.7792202Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7793394Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7794849Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7796361Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)[0m
2020-11-29T04:28:58.7798032Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)[0m
2020-11-29T04:28:58.7799785Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)[0m
2020-11-29T04:28:58.7801210Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.7802673Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7804291Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7805710Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7806916Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7808002Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7809395Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:779)[0m
2020-11-29T04:28:58.7811234Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.7812915Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7814715Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7816307Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7817682Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7819128Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7820648Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)[0m
2020-11-29T04:28:58.7822371Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)[0m
2020-11-29T04:28:58.7823872Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)[0m
2020-11-29T04:28:58.7825290Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.7826685Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7828043Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7829244Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7830272Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7831413Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:638)[0m
2020-11-29T04:28:58.7832592Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2441)[0m
2020-11-29T04:28:58.7833908Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)[0m
2020-11-29T04:28:58.7835265Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7836464Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7837500Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7839283Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7840909Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)[0m
2020-11-29T04:28:58.7842715Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)[0m
2020-11-29T04:28:58.7844555Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)[0m
2020-11-29T04:28:58.7846325Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.7848138Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7850248Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7851908Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7853294Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7854740Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7856245Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)[0m
2020-11-29T04:28:58.7857924Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)[0m
2020-11-29T04:28:58.7859645Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)[0m
2020-11-29T04:28:58.7861063Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.7862485Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7863822Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7865025Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7866094Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7867195Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7868630Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)[0m
2020-11-29T04:28:58.7870437Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)[0m
2020-11-29T04:28:58.7872152Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)[0m
2020-11-29T04:28:58.7873799Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.7875509Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7877584Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7879302Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7880803Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7882447Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7884068Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)[0m
2020-11-29T04:28:58.7885886Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)[0m
2020-11-29T04:28:58.7887846Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:150)[0m
2020-11-29T04:28:58.7890204Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:150)[0m
2020-11-29T04:28:58.7892058Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)[0m
2020-11-29T04:28:58.7893816Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.7895633Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7897547Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7899270Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7900738Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7902362Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2653)[0m
2020-11-29T04:28:58.7904011Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)[0m
2020-11-29T04:28:58.7905739Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)[0m
2020-11-29T04:28:58.7907542Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:898)[0m
2020-11-29T04:28:58.7909329Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:902)[0m
2020-11-29T04:28:58.7911030Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)[0m
2020-11-29T04:28:58.7912833Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7914393Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7915777Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7917214Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)[0m
2020-11-29T04:28:58.7918594Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7919902Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)[0m
2020-11-29T04:28:58.7921351Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)[0m
2020-11-29T04:28:58.7922787Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)[0m
2020-11-29T04:28:58.7924256Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7925812Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7927228Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7928400Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7929667Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7931168Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:904)[0m
2020-11-29T04:28:58.7932533Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)[0m
2020-11-29T04:28:58.7933904Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7935274Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7936466Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7937496Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7938640Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)[0m
2020-11-29T04:28:58.7939865Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)[0m
2020-11-29T04:28:58.7941095Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)[0m
2020-11-29T04:28:58.7942365Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7943705Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7944900Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7945929Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)[0m
2020-11-29T04:28:58.7946990Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7948124Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:594)[0m
2020-11-29T04:28:58.7949350Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2476)[0m
2020-11-29T04:28:58.7951107Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7952887Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7954493Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7955846Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)[0m
2020-11-29T04:28:58.7957197Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7958705Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)[0m
2020-11-29T04:28:58.7960345Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)[0m
2020-11-29T04:28:58.7961979Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)[0m
2020-11-29T04:28:58.7963570Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7965165Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7966402Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7967440Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7968509Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2653)[0m
2020-11-29T04:28:58.7969655Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)[0m
2020-11-29T04:28:58.7970934Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)[0m
2020-11-29T04:28:58.7972178Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:898)[0m
2020-11-29T04:28:58.7973415Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:902)[0m
2020-11-29T04:28:58.7974620Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)[0m
2020-11-29T04:28:58.7975938Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.7977564Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7978948Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7980128Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7981390Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.7982626Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.$anonfun$33(Typer.scala:1987)[0m
2020-11-29T04:28:58.7984461Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:216)[0m
2020-11-29T04:28:58.7986298Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1987)[0m
2020-11-29T04:28:58.7987935Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:893)[0m
2020-11-29T04:28:58.7989442Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2448)[0m
2020-11-29T04:28:58.7990872Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)[0m
2020-11-29T04:28:58.7992471Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.7994331Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.7995814Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.7997350Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2627)[0m
2020-11-29T04:28:58.7999001Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)[0m
2020-11-29T04:28:58.8000703Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)[0m
2020-11-29T04:28:58.8002526Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:898)[0m
2020-11-29T04:28:58.8004278Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:902)[0m
2020-11-29T04:28:58.8006007Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)[0m
2020-11-29T04:28:58.8007845Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.8009782Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.8011850Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2422)[0m
2020-11-29T04:28:58.8013671Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:774)[0m
2020-11-29T04:28:58.8015435Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.8017301Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.8019090Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.8020725Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.8022092Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.8023533Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.8025067Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)[0m
2020-11-29T04:28:58.8026757Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)[0m
2020-11-29T04:28:58.8028925Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)[0m
2020-11-29T04:28:58.8030342Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)[0m
2020-11-29T04:28:58.8031813Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.8033387Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.8034764Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.8035965Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.8037204Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2653)[0m
2020-11-29T04:28:58.8038524Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)[0m
2020-11-29T04:28:58.8040199Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)[0m
2020-11-29T04:28:58.8041772Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2131)[0m
2020-11-29T04:28:58.8043341Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2459)[0m
2020-11-29T04:28:58.8044953Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2463)[0m
2020-11-29T04:28:58.8046379Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)[0m
2020-11-29T04:28:58.8047953Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.8049372Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.8050707Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.8051792Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2627)[0m
2020-11-29T04:28:58.8052931Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)[0m
2020-11-29T04:28:58.8054108Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)[0m
2020-11-29T04:28:58.8055387Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2256)[0m
2020-11-29T04:28:58.8056938Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2503)[0m
2020-11-29T04:28:58.8058888Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)[0m
2020-11-29T04:28:58.8060850Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)[0m
2020-11-29T04:28:58.8062595Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)[0m
2020-11-29T04:28:58.8064066Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)[0m
2020-11-29T04:28:58.8065682Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)[0m
2020-11-29T04:28:58.8067346Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.transform.Erasure.run(Erasure.scala:123)[0m
2020-11-29T04:28:58.8068916Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:296)[0m
2020-11-29T04:28:58.8070399Z [0m[[0m[31merror[0m] [0m[0mscala.collection.immutable.List.map(List.scala:250)[0m
2020-11-29T04:28:58.8071852Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:297)[0m
2020-11-29T04:28:58.8073239Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:185)[0m
2020-11-29T04:28:58.8074854Z [0m[[0m[31merror[0m] [0m[0mdotty.runtime.function.JProcedure1.apply(JProcedure1.java:15)[0m
2020-11-29T04:28:58.8076704Z [0m[[0m[31merror[0m] [0m[0mdotty.runtime.function.JProcedure1.apply(JProcedure1.java:10)[0m
2020-11-29T04:28:58.8078450Z [0m[[0m[31merror[0m] [0m[0mscala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)[0m
2020-11-29T04:28:58.8079815Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Run.runPhases$5(Run.scala:195)[0m
2020-11-29T04:28:58.8081215Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:203)[0m
2020-11-29T04:28:58.8082896Z [0m[[0m[31merror[0m] [0m[0mdotty.runtime.function.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)[0m
2020-11-29T04:28:58.8084298Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)[0m
2020-11-29T04:28:58.8085593Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Run.compileUnits(Run.scala:210)[0m
2020-11-29T04:28:58.8086912Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Run.compileSources(Run.scala:147)[0m
2020-11-29T04:28:58.8088168Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Run.compile(Run.scala:129)[0m
2020-11-29T04:28:58.8089522Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Driver.doCompile(Driver.scala:38)[0m
2020-11-29T04:28:58.8090731Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Driver.process(Driver.scala:193)[0m
2020-11-29T04:28:58.8092061Z [0m[[0m[31merror[0m] [0m[0mdotty.tools.dotc.Main.process(Main.scala)[0m
2020-11-29T04:28:58.8093448Z [0m[[0m[31merror[0m] [0m[0mxsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:69)[0m
2020-11-29T04:28:58.8094860Z [0m[[0m[31merror[0m] [0m[0mxsbt.CompilerInterface.run(CompilerInterface.java:41)[0m
2020-11-29T04:28:58.8096458Z [0m[[0m[31merror[0m] [0m[0msun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[0m
2020-11-29T04:28:58.8098470Z [0m[[0m[31merror[0m] [0m[0msun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[0m
2020-11-29T04:28:58.8100805Z [0m[[0m[31merror[0m] [0m[0msun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[0m
2020-11-29T04:28:58.8102724Z [0m[[0m[31merror[0m] [0m[0mjava.lang.reflect.Method.invoke(Method.java:498)[0m
2020-11-29T04:28:58.8104340Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.AnalyzingCompiler.invoke(AnalyzingCompiler.scala:330)[0m
2020-11-29T04:28:58.8106415Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:113)[0m
2020-11-29T04:28:58.8108646Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:186)[0m
2020-11-29T04:28:58.8110563Z [0m[[0m[31merror[0m] [0m[0mscala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)[0m
2020-11-29T04:28:58.8112525Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:241)[0m
2020-11-29T04:28:58.8114917Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:176)[0m
2020-11-29T04:28:58.8117296Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:157)[0m
2020-11-29T04:28:58.8119232Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)[0m
2020-11-29T04:28:58.8121208Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:157)[0m
2020-11-29T04:28:58.8123679Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:204)[0m
2020-11-29T04:28:58.8126020Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:573)[0m
2020-11-29T04:28:58.8128303Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:573)[0m
2020-11-29T04:28:58.8130021Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:173)[0m
2020-11-29T04:28:58.8131710Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:171)[0m
2020-11-29T04:28:58.8133109Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:458)[0m
2020-11-29T04:28:58.8134707Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)[0m
2020-11-29T04:28:58.8136466Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)[0m
2020-11-29T04:28:58.8138157Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)[0m
2020-11-29T04:28:58.8139914Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:261)[0m
2020-11-29T04:28:58.8141672Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:413)[0m
2020-11-29T04:28:58.8143466Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:498)[0m
2020-11-29T04:28:58.8145166Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:400)[0m
2020-11-29T04:28:58.8146713Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.Incremental$.apply(Incremental.scala:165)[0m
2020-11-29T04:28:58.8148995Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:573)[0m
2020-11-29T04:28:58.8151834Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:491)[0m
2020-11-29T04:28:58.8154871Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)[0m
2020-11-29T04:28:58.8158285Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)[0m
2020-11-29T04:28:58.8161217Z [0m[[0m[31merror[0m] [0m[0msbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)[0m
2020-11-29T04:28:58.8163177Z [0m[[0m[31merror[0m] [0m[0msbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2176)[0m
2020-11-29T04:28:58.8164317Z [0m[[0m[31merror[0m] [0m[0msbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2133)[0m
2020-11-29T04:28:58.8165334Z [0m[[0m[31merror[0m] [0m[0msbt.internal.io.Retry$.apply(Retry.scala:40)[0m
2020-11-29T04:28:58.8166277Z [0m[[0m[31merror[0m] [0m[0msbt.internal.io.Retry$.apply(Retry.scala:23)[0m
2020-11-29T04:28:58.8167444Z [0m[[0m[31merror[0m] [0m[0msbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)[0m
2020-11-29T04:28:58.8168727Z [0m[[0m[31merror[0m] [0m[0msbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2129)[0m
2020-11-29T04:28:58.8169760Z [0m[[0m[31merror[0m] [0m[0mscala.Function1.$anonfun$compose$1(Function1.scala:49)[0m
2020-11-29T04:28:58.8170880Z [0m[[0m[31merror[0m] [0m[0msbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)[0m
2020-11-29T04:28:58.8171886Z [0m[[0m[31merror[0m] [0m[0msbt.std.Transform$$anon$4.work(Transform.scala:68)[0m
2020-11-29T04:28:58.8172759Z [0m[[0m[31merror[0m] [0m[0msbt.Execute.$anonfun$submit$2(Execute.scala:282)[0m
2020-11-29T04:28:58.8173864Z [0m[[0m[31merror[0m] [0m[0msbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)[0m
2020-11-29T04:28:58.8174937Z [0m[[0m[31merror[0m] [0m[0msbt.Execute.work(Execute.scala:291)[0m
2020-11-29T04:28:58.8175772Z [0m[[0m[31merror[0m] [0m[0msbt.Execute.$anonfun$submit$1(Execute.scala:282)[0m
2020-11-29T04:28:58.8176972Z [0m[[0m[31merror[0m] [0m[0msbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)[0m
2020-11-29T04:28:58.8178315Z [0m[[0m[31merror[0m] [0m[0msbt.CompletionService$$anon$2.call(CompletionService.scala:64)[0m
2020-11-29T04:28:58.8179621Z [0m[[0m[31merror[0m] [0m[0mjava.util.concurrent.FutureTask.run(FutureTask.java:266)[0m
2020-11-29T04:28:58.8180949Z [0m[[0m[31merror[0m] [0m[0mjava.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[0m
2020-11-29T04:28:58.8182589Z [0m[[0m[31merror[0m] [0m[0mjava.util.concurrent.FutureTask.run(FutureTask.java:266)[0m
2020-11-29T04:28:58.8184509Z [0m[[0m[31merror[0m] [0m[0mjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[0m
2020-11-29T04:28:58.8186592Z [0m[[0m[31merror[0m] [0m[0mjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)[0m
2020-11-29T04:28:58.8188011Z [0m[[0m[31merror[0m] [0m[0mjava.lang.Thread.run(Thread.java:748)[0m

Expectation

It compiles.

notes

https://github.com/lampepfl/dotty/blob/3cdf0fd2afbc7d204d33c941e02ab89f2be7d812/compiler/src/dotty/tools/dotc/transform/Erasure.scala#L490

@griggt
Copy link
Contributor

griggt commented Nov 29, 2020

Here's a partial minimization, which still depends on Verify, but not scopt:

// Test.scala
import verify._

object Test extends BasicTestSuite {
  def foo(x: Int): String = "foo"
  def bar(): Unit = assert(foo(0) == "foo")
}
Output (click to expand)
[info] compiling 1 Scala source to /src/dotty-issues/i10544/target/scala-3.0.0-M2/test-classes ...
error while abstracting tree = Test.foo | mt = (x: Int): String | args =  | tp = String | pt = Object
exception while typing recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)(0) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing recorderRuntime.recordValue[String](
  recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)(0)
, 31) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing recorderRuntime.recordValue[String](
  recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)(0)
, 31).== of class class dotty.tools.dotc.ast.Trees$Select # -1
exception while typing recorderRuntime.recordValue[String](
  recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)(0)
, 31).==("foo") of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing recorderRuntime.recordValue[Boolean](
  recorderRuntime.recordValue[String](
    recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)(0)
  , 31).==("foo")
, 34) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing recorderRuntime.recordExpression("                           foo(0) == \"foo\""
  ,
"Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
  ,
recorderRuntime.recordValue[Boolean](
  recorderRuntime.recordValue[String](
    recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)(0)
  , 31).==("foo")
, 34)
) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing {
  recorderRuntime.resetValues()
  recorderRuntime.recordExpression(
    "                           foo(0) == \"foo\""
  ,
    "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
  ,
    recorderRuntime.recordValue[Boolean](
      recorderRuntime.recordValue[String](
        recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)
          (
        0)
      , 31).==("foo")
    , 34)
  )
  recorderRuntime.completeRecording()
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
  recorderRuntime.resetValues()
  recorderRuntime.recordExpression(
    "                           foo(0) == \"foo\""
  ,
    "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
  ,
    recorderRuntime.recordValue[Boolean](
      recorderRuntime.recordValue[String](
        recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo, 27)
          (
        0)
      , 31).==("foo")
    , 34)
  )
  recorderRuntime.completeRecording()
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
  val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
    new ([A, R] =>> verify.asserts.RecorderRuntime[A, R])[Boolean, Unit](
      Recorder_this.inline$listener
    )
  recorderRuntime.recordMessage(
    <special-ops>.<cbn-arg>[("" : String)](
      {
        def $anonfun(): ("" : String) = ""
        closure($anonfun)
      }
    )
  )
  {
    recorderRuntime.resetValues()
    recorderRuntime.recordExpression(
      "                           foo(0) == \"foo\""
    ,
      "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
    ,
      recorderRuntime.recordValue[Boolean](
        recorderRuntime.recordValue[String](
          recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo,
            27
          )(0)
        , 31).==("foo")
      , 34)
    )
    recorderRuntime.completeRecording()
  }
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
  val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
    new ([A, R] =>> verify.asserts.RecorderRuntime[A, R])[Boolean, Unit](
      Recorder_this.inline$listener
    )
  recorderRuntime.recordMessage(
    <special-ops>.<cbn-arg>[("" : String)](
      {
        def $anonfun(): ("" : String) = ""
        closure($anonfun)
      }
    )
  )
  {
    recorderRuntime.resetValues()
    recorderRuntime.recordExpression(
      "                           foo(0) == \"foo\""
    ,
      "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
    ,
      recorderRuntime.recordValue[Boolean](
        recorderRuntime.recordValue[String](
          recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo,
            27
          )(0)
        , 31).==("foo")
      , 34)
    )
    recorderRuntime.completeRecording()
  }
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing {
  val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
    new ([A, R] =>> verify.asserts.RecorderRuntime[A, R])[Boolean, Unit](
      Recorder_this.inline$listener
    )
  recorderRuntime.recordMessage(
    <special-ops>.<cbn-arg>[("" : String)](
      {
        def $anonfun(): ("" : String) = ""
        closure($anonfun)
      }
    )
  )
  {
    recorderRuntime.resetValues()
    recorderRuntime.recordExpression(
      "                           foo(0) == \"foo\""
    ,
      "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
    ,
      recorderRuntime.recordValue[Boolean](
        recorderRuntime.recordValue[String](
          recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo,
            27
          )(0)
        , 31).==("foo")
      , 34)
    )
    recorderRuntime.completeRecording()
  }
}:Unit of class class dotty.tools.dotc.ast.Trees$Typed # -1
exception while typing {
  val value$proxy1: Boolean = Test.foo(0).==("foo")
  val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
    Test.assert
  {
    val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
      new ([A, R] =>> verify.asserts.RecorderRuntime[A, R])[Boolean, Unit](
        Recorder_this.inline$listener
      )
    recorderRuntime.recordMessage(
      <special-ops>.<cbn-arg>[("" : String)](
        {
          def $anonfun(): ("" : String) = ""
          closure($anonfun)
        }
      )
    )
    {
      recorderRuntime.resetValues()
      recorderRuntime.recordExpression(
        "                           foo(0) == \"foo\""
      ,
        "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
      ,
        recorderRuntime.recordValue[Boolean](
          recorderRuntime.recordValue[String](
            recorderRuntime.recordValue[(Test.foo : (x: Int): String)](Test.foo
              ,
            27)(0)
          , 31).==("foo")
        , 34)
      )
      recorderRuntime.completeRecording()
    }
  }:Unit
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing def bar(): Unit =
  {
    val value$proxy1: Boolean = Test.foo(0).==("foo")
    val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
      Test.assert
    {
      val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
        new ([A, R] =>> verify.asserts.RecorderRuntime[A, R])[Boolean, Unit](
          Recorder_this.inline$listener
        )
      recorderRuntime.recordMessage(
        <special-ops>.<cbn-arg>[("" : String)](
          {
            def $anonfun(): ("" : String) = ""
            closure($anonfun)
          }
        )
      )
      {
        recorderRuntime.resetValues()
        recorderRuntime.recordExpression(
          "                           foo(0) == \"foo\""
        ,
          "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
        ,
          recorderRuntime.recordValue[Boolean](
            recorderRuntime.recordValue[String](
              recorderRuntime.recordValue[(Test.foo : (x: Int): String)](
                Test.foo
              , 27)(0)
            , 31).==("foo")
          , 34)
        )
        recorderRuntime.completeRecording()
      }
    }:Unit
  } of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing @scala.annotation.internal.SourceFile("src/test/scala/Test.scala") final module
  class
 Test$() extends Object(), verify.BasicTestSuite {
  private def writeReplace(): AnyRef =
    new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
  def foo(x: Int): String = "foo"
  def bar(): Unit =
    {
      val value$proxy1: Boolean = Test.foo(0).==("foo")
      val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
        Test.assert
      {
        val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
          new ([A, R] =>> verify.asserts.RecorderRuntime[A, R])[Boolean, Unit](
            Recorder_this.inline$listener
          )
        recorderRuntime.recordMessage(
          <special-ops>.<cbn-arg>[("" : String)](
            {
              def $anonfun(): ("" : String) = ""
              closure($anonfun)
            }
          )
        )
        {
          recorderRuntime.resetValues()
          recorderRuntime.recordExpression(
            "                           foo(0) == \"foo\""
          ,
            "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
          ,
            recorderRuntime.recordValue[Boolean](
              recorderRuntime.recordValue[String](
                recorderRuntime.recordValue[(Test.foo : (x: Int): String)](
                  Test.foo
                , 27)(0)
              , 31).==("foo")
            , 34)
          )
          recorderRuntime.completeRecording()
        }
      }:Unit
    }
} of class class dotty.tools.dotc.ast.Trees$TypeDef # -1
exception while typing package <empty> {
  final lazy module val Test: Test$ = new Test$()
  @scala.annotation.internal.SourceFile("src/test/scala/Test.scala") final
    module
   class Test$() extends Object(), verify.BasicTestSuite {
    private def writeReplace(): AnyRef =
      new scala.runtime.ModuleSerializationProxy(classOf[Test.type])
    def foo(x: Int): String = "foo"
    def bar(): Unit =
      {
        val value$proxy1: Boolean = Test.foo(0).==("foo")
        val Recorder_this: (Test.assert : (): verify.asserts.PowerAssert) =
          Test.assert
        {
          val recorderRuntime: verify.asserts.RecorderRuntime[Boolean, Unit] =
            new ([A, R] =>> verify.asserts.RecorderRuntime[A, R])[Boolean, Unit]
              (
            Recorder_this.inline$listener)
          recorderRuntime.recordMessage(
            <special-ops>.<cbn-arg>[("" : String)](
              {
                def $anonfun(): ("" : String) = ""
                closure($anonfun)
              }
            )
          )
          {
            recorderRuntime.resetValues()
            recorderRuntime.recordExpression(
              "                           foo(0) == \"foo\""
            ,
              "Apply(Select(Apply(Ident(\"foo\"), List(Literal(Constant.Int(0)))), \"==\"), List(Literal(Constant.String(\"foo\"))))"
            ,
              recorderRuntime.recordValue[Boolean](
                recorderRuntime.recordValue[String](
                  recorderRuntime.recordValue[(Test.foo : (x: Int): String)](
                    Test.foo
                  , 27)(0)
                , 31).==("foo")
              , 34)
            )
            recorderRuntime.completeRecording()
          }
        }:Unit
      }
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # -1
[info] exception occurred while compiling /src/dotty-issues/i10544/src/test/scala/Test.scala
scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),module Predef),type String) (of class dotty.tools.dotc.core.Types$CachedTypeRef) while compiling /src/dotty-issues/i10544/src/test/scala/Test.scala
[error] ## Exception when compiling 1 sources to /src/dotty-issues/i10544/target/scala-3.0.0-M2/test-classes
[error] scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),module Predef),type String) (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:996)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:779)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:638)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2441)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:779)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:150)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:150)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2653)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)
[error] dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:898)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:902)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:904)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:594)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2476)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] dotty.tools.dotc.typer.Typer.$anonfun$33(Typer.scala:1987)
[error] dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:216)
[error] dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1987)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:893)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2448)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2627)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)
[error] dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2131)
[error] dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2459)
[error] dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2463)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2627)
[error] dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)
[error] dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)
[error] dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2256)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2503)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[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:67)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:210)
[error] dotty.tools.dotc.Run.compileSources(Run.scala:147)
[error] dotty.tools.dotc.Run.compile(Run.scala:129)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
[error] dotty.tools.dotc.Driver.process(Driver.scala:193)
[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.invoke(AnalyzingCompiler.scala:330)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:113)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:186)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:241)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:176)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:157)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:157)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:204)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:573)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:573)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:173)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:171)
[error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:458)
[error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:261)
[error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:413)
[error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:498)
[error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:400)
[error] sbt.internal.inc.Incremental$.apply(Incremental.scala:165)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:573)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:491)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2176)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2133)
[error] sbt.internal.io.Retry$.apply(Retry.scala:40)
[error] sbt.internal.io.Retry$.apply(Retry.scala:23)
[error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2129)
[error] scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] sbt.Execute.work(Execute.scala:291)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] java.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 scala)),module Predef),type String) (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:996)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:779)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:638)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2441)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:779)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.$anonfun$4(Erasure.scala:792)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:149)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:150)
[error] 	at dotty.tools.dotc.core.Decorators$ListDecorator$.zipWithConserve$extension(Decorators.scala:150)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:792)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2471)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2653)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:898)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:902)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:904)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2479)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedTyped(Erasure.scala:594)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2476)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2598)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1631)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:841)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2492)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[error] 	at dotty.tools.dotc.typer.Typer.$anonfun$33(Typer.scala:1987)
[error] 	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:216)
[error] 	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:1987)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:893)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2448)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2627)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)
[error] 	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2131)
[error] 	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$2(Typer.scala:2459)
[error] 	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2463)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2531)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2627)
[error] 	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2676)
[error] 	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:984)
[error] 	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2256)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2503)
[error] 	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2532)
[error] 	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:125)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2601)
[error] 	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2605)
[error] 	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2720)
[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:67)
[error] 	at dotty.tools.dotc.Run.compileUnits(Run.scala:210)
[error] 	at dotty.tools.dotc.Run.compileSources(Run.scala:147)
[error] 	at dotty.tools.dotc.Run.compile(Run.scala:129)
[error] 	at dotty.tools.dotc.Driver.doCompile(Driver.scala:38)
[error] 	at dotty.tools.dotc.Driver.process(Driver.scala:193)
[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.invoke(AnalyzingCompiler.scala:330)
[error] 	at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:113)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:186)
[error] 	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:241)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:176)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:157)
[error] 	at sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:157)
[error] 	at sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:204)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:573)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:573)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:173)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:171)
[error] 	at sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:458)
[error] 	at sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[error] 	at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[error] 	at sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[error] 	at sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:261)
[error] 	at sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:413)
[error] 	at sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:498)
[error] 	at sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:400)
[error] 	at sbt.internal.inc.Incremental$.apply(Incremental.scala:165)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:573)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:491)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)
[error] 	at sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] 	at sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2176)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2133)
[error] 	at sbt.internal.io.Retry$.apply(Retry.scala:40)
[error] 	at sbt.internal.io.Retry$.apply(Retry.scala:23)
[error] 	at sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error] 	at sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2129)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] 	at sbt.Execute.work(Execute.scala:291)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] 	at java.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] (Test / compileIncremental) scala.MatchError: TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class scala)),module Predef),type String) (of class dotty.tools.dotc.core.Types$CachedTypeRef)
[error] Total time: 4 s, completed Nov 28, 2020, 10:14:35 PM

@griggt
Copy link
Contributor

griggt commented Nov 29, 2020

Workaround:

import verify._

object Test extends BasicTestSuite {
  def foo(x: Int): String = "foo"
  def bar(): Unit = {
    val x = foo(0)
    assert(x == "foo")
  }
}

@odersky
Copy link
Contributor

odersky commented Dec 26, 2020

If I should take a look I'd need a standalone minimization. If we have one, please assign to me.

@odersky odersky added the stat:needs minimization Needs a self contained minimization label Dec 26, 2020
@griggt
Copy link
Contributor

griggt commented Dec 26, 2020

A standalone example:

// Lib.scala
import scala.quoted._

class PowerAssert:
  inline def apply(value: Boolean): Unit = ${ Macro.apply('value) }

object PowerAssert:
  def assert: PowerAssert = ???

class Runtime:
  def recordValue[U](value: U): U = ???

class Macro(using Quotes):
  import quotes.reflect._

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

  private def recordExpressions(runtime: Term, recording: Term): List[Term] =
    recordExpression(runtime, recording) :: Nil

  private def recordExpression(runtime: Term, expr: Term): Term =
    recordAllValues(runtime, expr)

  private def recordAllValues(runtime: Term, expr: Term): Term =
    expr match
      case New(_)     => expr
      case Literal(_) => expr
      case Typed(r @ Repeated(xs, y), tpe) => Typed.copy(r)(recordSubValues(runtime, r), tpe)
      case Select(x@This(_), y) if expr.pos.start == x.pos.start => expr
      case _ => recordValue(runtime, recordSubValues(runtime, expr), expr)

  private def recordSubValues(runtime: Term, expr: Term): Term =
    expr match
      case Apply(x, ys) =>
        try Apply(recordAllValues(runtime, x), ys.map(recordAllValues(runtime, _)))
        catch case e: AssertionError => expr
      case TypeApply(x, ys) => TypeApply.copy(expr)(recordSubValues(runtime, x), ys)
      case Select(x, y)     => Select.copy(expr)(recordAllValues(runtime, x), y)
      case Typed(x, tpe)    => Typed.copy(expr)(recordSubValues(runtime, x), tpe)
      case Repeated(xs, y)  => Repeated.copy(expr)(xs.map(recordAllValues(runtime, _)), y)
      case _                => expr

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

  private def recordValue(runtime: Term, expr: Term, origExpr: Term): Term =
    val sel: Term = runtime.select(runtimeSym.memberMethod("recordValue").head)

    def skipIdent(sym: Symbol): Boolean = false
    def skipSelect(sym: Symbol): Boolean = true

    expr match
      case Select(_, _) if skipSelect(expr.symbol) => expr
      case TypeApply(_, _) => expr
      case Ident(_) if skipIdent(expr.symbol) => expr
      case _ =>
        val tapply = sel.appliedToType(expr.tpe)
        Apply.copy(expr)(tapply, List(expr))
end Macro

object Macro:
  def apply[A: Type](x: Expr[A])(using Quotes): Expr[Unit] =
    new Macro().apply(x)
// Test.scala
object Test {
  def foo(x: Int): String = "foo"
  def bar(): Unit = PowerAssert.assert(foo(0) == "foo")
}

@griggt griggt removed the stat:needs minimization Needs a self contained minimization label Dec 26, 2020
@griggt
Copy link
Contributor

griggt commented Dec 26, 2020

Related: #7128

@odersky
Copy link
Contributor

odersky commented Dec 28, 2020

Here's the output with -Ycheck:all after typer:

no sig for TermRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,module class <empty>)),module class Test$)),method foo) because of ()
failure while taking result signature of (value: (Test.foo : (x: Int): String)): (Test.foo : (x: Int): String): (Test.foo : (x: Int): String)
exception while typing runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)(0) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing runtime.recordValue[String](
  runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)(0)
) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing runtime.recordValue[String](
  runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)(0)
).== of class class dotty.tools.dotc.ast.Trees$Select # -1
exception while typing runtime.recordValue[String](
  runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)(0)
).==("foo") of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing runtime.recordValue[Boolean](
  runtime.recordValue[String](
    runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)(0)
  ).==("foo")
) of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing {
  runtime.recordValue[Boolean](
    runtime.recordValue[String](
      runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)(0)
    ).==("foo")
  )
  ()
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing {
  runtime.recordValue[Boolean](
    runtime.recordValue[String](
      runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)(0)
    ).==("foo")
  )
  ()

...

*** error while checking Test.scala after phase typer ***
exception occurred while compiling Test.scala
java.lang.AssertionError: assertion failed: MethodType(List(x), List(TypeRef(ThisType(TypeRef(NoPrefix,module class scala)),class Int)), TypeRef(ThisType(TypeRef(NoPrefix,module class lang)),class String)) while compiling Test.scala

It looks like the problem is that the macro generates a singleton type that points to another TermRef that is a method. That's no related to erasure per se. Maybe @nicolasstucki can shed more light on this.

@eed3si9n
Copy link
Member Author

runtime.recordValue[(Test.foo : (x: Int): String)](Test.foo)

Thanks for the hint. I think I know what's going on.

Verify (which ported power assertion from Expecty) has been skipping method symbols on Select tree https://github.com/scala/nanotest-strawman/blob/ad89b3598437a385cab6b44498fc6c3026d44885/shared/src/main/scala-3/verify/asserts/RecorderMacro.scala#L141-L143

    def skipSelect(sym: Symbol): Boolean = {
      (sym match {
        case sym if sym.isDefDef => sym.signature.paramSigs.nonEmpty

I guess because method types are not first-class types? Maybe in Scala 2, foo(0) would've always resulted in a Select tree, like this.foo(0)?

Here's my PR to Verify to skip Ident tree, which seems to workaround this issue - eed3si9n/verify#120

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants