Skip to content

NoClassDefFoundError thrown in dotc.transform.Splicer$Interpretter.getMethod #13516

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
DavidGoodenough opened this issue Sep 13, 2021 · 14 comments · Fixed by #13525
Closed

NoClassDefFoundError thrown in dotc.transform.Splicer$Interpretter.getMethod #13516

DavidGoodenough opened this issue Sep 13, 2021 · 14 comments · Fixed by #13525
Milestone

Comments

@DavidGoodenough
Copy link

DavidGoodenough commented Sep 13, 2021

Compiler version

3.0.1

Minimized code

I am unsure where the error is, but I am using both macros and extensions in the relevant set of source files. If the compiler could tell me what it was trying to do when it fell over, rather than falling over, I might be able to narrow down the problem.

It would seem that at:-

dotty.tools.dotc.transform.Splicer$Interpreter.getMethod(Splicer.scala:414)

At that point in the code only the NoSuchMethodException is checked, not the NoClassDefFoundError. Either NoClassDefFound should have been caught earlier and this code never invoked, or an extra check is needed here.

(Note the current head does not quite match the line number, but I am using 3.0.1 rather than head).

Output (click arrow to expand)

[info] compiling 13 Scala sources to /home/david/src/ScalaUtils/Persist/target/scala-3.0.1/classes ...
java.lang.NoClassDefFoundError: uk/co/dga/persist/Versioned while compiling /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Block.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Database.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Fixup.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/HeaderBlock.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Index.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Jar.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Loader.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/PersistException.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Persistable.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Persistance.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Reference.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/SoiFile.scala, /home/david/src/ScalaUtils/Persist/src/main/scala/uk/co/dga/persist/Versionable.scala
[error] ## Exception when compiling 13 sources to /home/david/src/ScalaUtils/Persist/target/scala-3.0.1/classes
[error] java.lang.NoClassDefFoundError: uk/co/dga/persist/Versioned
[error] java.base/java.lang.ClassLoader.defineClass1(Native Method)
[error] java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
[error] java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
[error] java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
[error] java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
[error] java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
[error] java.base/java.security.AccessController.doPrivileged(Native Method)
[error] java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
[error] java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
[error] java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
[error] java.base/java.lang.Class.getDeclaredMethods0(Native Method)
[error] java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
[error] java.base/java.lang.Class.getMethodsRecursive(Class.java:3307)
[error] java.base/java.lang.Class.getMethod0(Class.java:3293)
[error] java.base/java.lang.Class.getMethod(Class.java:2106)
[error] dotty.tools.dotc.transform.Splicer$Interpreter.getMethod(Splicer.scala:414)
[error] dotty.tools.dotc.transform.Splicer$Interpreter.interpretedStaticMethodCall(Splicer.scala:361)
[error] dotty.tools.dotc.transform.Splicer$Interpreter.interpretTree(Splicer.scala:260)
[error] dotty.tools.dotc.transform.Splicer$Interpreter.interpretTree$$anonfun$2(Splicer.scala:281)
[error] dotty.tools.dotc.transform.Splicer$.$anonfun$2(Splicer.scala:56)
[error] scala.Option.fold(Option.scala:263)
[error] dotty.tools.dotc.transform.Splicer$.splice(Splicer.scala:56)
[error] dotty.tools.dotc.typer.Inliner.dotty$tools$dotc$typer$Inliner$$expandMacro(Inliner.scala:1633)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1414)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error] dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.inlineIfNeeded(Inliner.scala:1490)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1417)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Typer.$anonfun$23(Typer.scala:1775)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.loop$1(Decorators.scala:92)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.mapconserve$extension(Decorators.scala:108)
[error] dotty.tools.dotc.typer.Typer.typedSeqLiteral(Typer.scala:1775)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2716)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$5(ProtoTypes.scala:439)
[error] dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:370)
[error] dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:440)
[error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error] dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:543)
[error] dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:589)
[error] dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:446)
[error] dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:734)
[error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:848)
[error] dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1056)
[error] dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:316)
[error] dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:106)
[error] dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:903)
[error] dotty.tools.dotc.typer.Applications.realApply$5$$anonfun$4(Applications.scala:982)
[error] dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2951)
[error] dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:993)
[error] dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1031)
[error] dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:316)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1410)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2820)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error] dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.inlineIfNeeded(Inliner.scala:1490)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1417)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Typer.$anonfun$23(Typer.scala:1775)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.loop$1(Decorators.scala:92)
[error] dotty.tools.dotc.core.Decorators$ListDecorator$.mapconserve$extension(Decorators.scala:108)
[error] dotty.tools.dotc.typer.Typer.typedSeqLiteral(Typer.scala:1775)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2716)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$5(ProtoTypes.scala:439)
[error] dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:370)
[error] dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:440)
[error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error] dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:543)
[error] dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:589)
[error] dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:446)
[error] dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:734)
[error] dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:848)
[error] dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1056)
[error] dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:316)
[error] dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:106)
[error] dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:903)
[error] dotty.tools.dotc.typer.Applications.realApply$5$$anonfun$4(Applications.scala:982)
[error] dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2951)
[error] dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:993)
[error] dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1031)
[error] dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:316)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1410)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedMatchFinish(Inliner.scala:1468)
[error] dotty.tools.dotc.typer.Typer.typedMatch(Typer.scala:1511)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedMatch(Inliner.scala:1433)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2709)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error] dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error] dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error] dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error] dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error] dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2820)
[error] dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error] dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error] dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:86)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$1(Trees.scala:1437)
[error] scala.collection.immutable.List.mapConserve(List.scala:472)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1437)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1365)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1341)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:82)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$1(Trees.scala:1437)
[error] scala.collection.immutable.List.mapConserve(List.scala:472)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1437)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1333)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1327)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1333)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1347)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:95)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:82)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:103)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:111)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1410)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1421)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error] dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1421)
[error] dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error] dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error] dotty.tools.dotc.transform.Inlining$$anon$2.transform(Inlining.scala:72)
[error] dotty.tools.dotc.transform.MacroTransform.run(MacroTransform.scala:21)
[error] dotty.tools.dotc.transform.Inlining.run(Inlining.scala:44)
[error] dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:303)
[error] scala.collection.immutable.List.map(List.scala:246)
[error] dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:304)
[error] dotty.tools.dotc.transform.Inlining.runOn(Inlining.scala:48)
[error] dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:205)
[error] scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error] scala.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:216)
[error] dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:224)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[error] dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:231)
[error] dotty.tools.dotc.Run.compileUnits(Run.scala:172)
[error] dotty.tools.dotc.Driver.finish(Driver.scala:60)
[error] dotty.tools.dotc.Driver.doCompile(Driver.scala:40)
[error] dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
[error] dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
[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:528)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:174)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:172)
[error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:457)
[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:412)
[error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499)
[error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:399)
[error] sbt.internal.inc.Incremental$.apply(Incremental.scala:166)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:482)
[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:2357)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2314)
[error] sbt.internal.io.Retry$.apply(Retry.scala:46)
[error] sbt.internal.io.Retry$.apply(Retry.scala:28)
[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:2310)
[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:829)
[error]            
[error] java.lang.NoClassDefFoundError: uk/co/dga/persist/Versioned
[error]         at java.base/java.lang.ClassLoader.defineClass1(Native Method)
[error]         at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
[error]         at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
[error]         at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
[error]         at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
[error]         at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
[error]         at java.base/java.security.AccessController.doPrivileged(Native Method)
[error]         at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
[error]         at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
[error]         at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
[error]         at java.base/java.lang.Class.getMethodsRecursive(Class.java:3307)
[error]         at java.base/java.lang.Class.getMethod0(Class.java:3293)
[error]         at java.base/java.lang.Class.getMethod(Class.java:2106)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.getMethod(Splicer.scala:414)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.interpretedStaticMethodCall(Splicer.scala:361)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.interpretTree(Splicer.scala:260)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.interpretTree$$anonfun$2(Splicer.scala:281)
[error]         at dotty.tools.dotc.transform.Splicer$.$anonfun$2(Splicer.scala:56)
[error]         at scala.Option.fold(Option.scala:263)
[error]         at dotty.tools.dotc.transform.Splicer$.splice(Splicer.scala:56)
[error]         at dotty.tools.dotc.typer.Inliner.dotty$tools$dotc$typer$Inliner$$expandMacro(Inliner.scala:1633)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1414)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error]         at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.inlineIfNeeded(Inliner.scala:1490)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1417)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.$anonfun$23(Typer.scala:1775)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.loop$1(Decorators.scala:92)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.mapconserve$extension(Decorators.scala:108)
[error]         at dotty.tools.dotc.typer.Typer.typedSeqLiteral(Typer.scala:1775)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2716)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$5(ProtoTypes.scala:439)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:370)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:440)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:543)
[error]         at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:589)
[error]         at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:446)
[error]         at dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:734)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:848)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1056)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:106)
[error]         at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:903)
[error]         at dotty.tools.dotc.typer.Applications.realApply$5$$anonfun$4(Applications.scala:982)
[error]         at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2951)
[error]         at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:993)
[error]         at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1031)
[error]         at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1410)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2820)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error]         at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.inlineIfNeeded(Inliner.scala:1490)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1417)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.$anonfun$23(Typer.scala:1775)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.loop$1(Decorators.scala:92)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.mapconserve$extension(Decorators.scala:108)
[error]         at dotty.tools.dotc.typer.Typer.typedSeqLiteral(Typer.scala:1775)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2716)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$5(ProtoTypes.scala:439)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:370)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:440)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:543)
[error]         at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:589)
[error]         at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:446)
[error]         at dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:734)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:848)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1056)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:106)
[error]         at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:903)
[error]         at dotty.tools.dotc.typer.Applications.realApply$5$$anonfun$4(Applications.scala:982)
[error]         at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2951)
[error]         at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:993)
[error]         at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1031)
[error]         at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1410)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedMatchFinish(Inliner.scala:1468)
[error]         at dotty.tools.dotc.typer.Typer.typedMatch(Typer.scala:1511)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedMatch(Inliner.scala:1433)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2709)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2820)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error]         at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:86)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$1(Trees.scala:1437)
[error]         at scala.collection.immutable.List.mapConserve(List.scala:472)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1437)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1365)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1341)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:82)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$1(Trees.scala:1437)
[error]         at scala.collection.immutable.List.mapConserve(List.scala:472)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1437)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1333)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1327)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1333)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1347)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:95)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:82)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:103)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:111)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1410)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1421)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1421)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.transform.Inlining$$anon$2.transform(Inlining.scala:72)
[error]         at dotty.tools.dotc.transform.MacroTransform.run(MacroTransform.scala:21)
[error]         at dotty.tools.dotc.transform.Inlining.run(Inlining.scala:44)
[error]         at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:303)
[error]         at scala.collection.immutable.List.map(List.scala:246)
[error]         at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:304)
[error]         at dotty.tools.dotc.transform.Inlining.runOn(Inlining.scala:48)
[error]         at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:205)
[error]         at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error]         at scala.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:216)
[error]         at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:224)
[error]         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[error]         at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
[error]         at dotty.tools.dotc.Run.compileUnits(Run.scala:231)
[error]         at dotty.tools.dotc.Run.compileUnits(Run.scala:172)
[error]         at dotty.tools.dotc.Driver.finish(Driver.scala:60)
[error]         at dotty.tools.dotc.Driver.doCompile(Driver.scala:40)
[error]         at dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
[error]         at dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
[error]         at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
[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:528)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:528)
[error]         at sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:174)
[error]         at sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:172)
[error]         at sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:457)
[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:412)
[error]         at sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499)
[error]         at sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:399)
[error]         at sbt.internal.inc.Incremental$.apply(Incremental.scala:166)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:528)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:482)
[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:2357)
[error]         at sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2314)
[error]         at sbt.internal.io.Retry$.apply(Retry.scala:46)
[error]         at sbt.internal.io.Retry$.apply(Retry.scala:28)
[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:2310)
[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:829)
[error] Caused by: java.lang.ClassNotFoundException: uk.co.dga.persist.Versioned
[error]         at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
[error]         at java.base/java.lang.ClassLoader.defineClass1(Native Method)
[error]         at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
[error]         at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
[error]         at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
[error]         at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
[error]         at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
[error]         at java.base/java.security.AccessController.doPrivileged(Native Method)
[error]         at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
[error]         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
[error]         at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
[error]         at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
[error]         at java.base/java.lang.Class.getMethodsRecursive(Class.java:3307)
[error]         at java.base/java.lang.Class.getMethod0(Class.java:3293)
[error]         at java.base/java.lang.Class.getMethod(Class.java:2106)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.getMethod(Splicer.scala:414)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.interpretedStaticMethodCall(Splicer.scala:361)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.interpretTree(Splicer.scala:260)
[error]         at dotty.tools.dotc.transform.Splicer$Interpreter.interpretTree$$anonfun$2(Splicer.scala:281)
[error]         at dotty.tools.dotc.transform.Splicer$.$anonfun$2(Splicer.scala:56)
[error]         at scala.Option.fold(Option.scala:263)
[error]         at dotty.tools.dotc.transform.Splicer$.splice(Splicer.scala:56)
[error]         at dotty.tools.dotc.typer.Inliner.dotty$tools$dotc$typer$Inliner$$expandMacro(Inliner.scala:1633)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1414)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error]         at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.inlineIfNeeded(Inliner.scala:1490)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1417)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.$anonfun$23(Typer.scala:1775)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.loop$1(Decorators.scala:92)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.mapconserve$extension(Decorators.scala:108)
[error]         at dotty.tools.dotc.typer.Typer.typedSeqLiteral(Typer.scala:1775)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2716)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$5(ProtoTypes.scala:439)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:370)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:440)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:543)
[error]         at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:589)
[error]         at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:446)
[error]         at dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:734)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:848)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1056)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:106)
[error]         at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:903)
[error]         at dotty.tools.dotc.typer.Applications.realApply$5$$anonfun$4(Applications.scala:982)
[error]         at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2951)
[error]         at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:993)
[error]         at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1031)
[error]         at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1410)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2820)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error]         at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.inlineIfNeeded(Inliner.scala:1490)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1417)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.$anonfun$23(Typer.scala:1775)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.loop$1(Decorators.scala:92)
[error]         at dotty.tools.dotc.core.Decorators$ListDecorator$.mapconserve$extension(Decorators.scala:108)
[error]         at dotty.tools.dotc.typer.Typer.typedSeqLiteral(Typer.scala:1775)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2716)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.$anonfun$5(ProtoTypes.scala:439)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.cacheTypedArg(ProtoTypes.scala:370)
[error]         at dotty.tools.dotc.typer.ProtoTypes$FunProto.typedArg(ProtoTypes.scala:440)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.typedArg(Applications.scala:849)
[error]         at dotty.tools.dotc.typer.Applications$Application.addTyped$1(Applications.scala:543)
[error]         at dotty.tools.dotc.typer.Applications$Application.matchArgs(Applications.scala:589)
[error]         at dotty.tools.dotc.typer.Applications$Application.init(Applications.scala:446)
[error]         at dotty.tools.dotc.typer.Applications$TypedApply.<init>(Applications.scala:734)
[error]         at dotty.tools.dotc.typer.Applications$ApplyToUntyped.<init>(Applications.scala:848)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo(Applications.scala:1056)
[error]         at dotty.tools.dotc.typer.Applications.ApplyTo$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Typer.ApplyTo(Typer.scala:106)
[error]         at dotty.tools.dotc.typer.Applications.simpleApply$1(Applications.scala:903)
[error]         at dotty.tools.dotc.typer.Applications.realApply$5$$anonfun$4(Applications.scala:982)
[error]         at dotty.tools.dotc.typer.Typer.tryEither(Typer.scala:2951)
[error]         at dotty.tools.dotc.typer.Applications.realApply$1(Applications.scala:993)
[error]         at dotty.tools.dotc.typer.Applications.typedApply(Applications.scala:1031)
[error]         at dotty.tools.dotc.typer.Applications.typedApply$(Applications.scala:316)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedApply(Inliner.scala:1410)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2695)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedMatchFinish(Inliner.scala:1468)
[error]         at dotty.tools.dotc.typer.Typer.typedMatch(Typer.scala:1511)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedMatch(Inliner.scala:1433)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2709)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:2943)
[error]         at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1029)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2703)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.ReTyper.typedTyped(ReTyper.scala:62)
[error]         at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2700)
[error]         at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2758)
[error]         at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:118)
[error]         at dotty.tools.dotc.typer.Inliner$InlineTyper.typedUnadapted(Inliner.scala:1494)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2823)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2820)
[error]         at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2827)
[error]         at dotty.tools.dotc.typer.Inliner.inlined(Inliner.scala:901)
[error]         at dotty.tools.dotc.typer.Inliner$.inlineCall(Inliner.scala:153)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:86)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$1(Trees.scala:1437)
[error]         at scala.collection.immutable.List.mapConserve(List.scala:472)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1437)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1365)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1341)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:82)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform$$anonfun$1(Trees.scala:1437)
[error]         at scala.collection.immutable.List.mapConserve(List.scala:472)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1437)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1333)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1327)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1333)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1347)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:95)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:82)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:103)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:111)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1410)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:80)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1421)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.traverse$1(TreeMapWithImplicits.scala:53)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transformStats(TreeMapWithImplicits.scala:60)
[error]         at dotty.tools.dotc.ast.Trees$Instance$TreeMap.transform(Trees.scala:1421)
[error]         at dotty.tools.dotc.ast.TreeMapWithImplicits.transform(TreeMapWithImplicits.scala:120)
[error]         at dotty.tools.dotc.transform.Inlining$InliningTreeMap.transform(Inlining.scala:94)
[error]         at dotty.tools.dotc.transform.Inlining$$anon$2.transform(Inlining.scala:72)
[error]         at dotty.tools.dotc.transform.MacroTransform.run(MacroTransform.scala:21)
[error]         at dotty.tools.dotc.transform.Inlining.run(Inlining.scala:44)
[error]         at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:303)
[error]         at scala.collection.immutable.List.map(List.scala:246)
[error]         at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:304)
[error]         at dotty.tools.dotc.transform.Inlining.runOn(Inlining.scala:48)
[error]         at dotty.tools.dotc.Run.runPhases$4$$anonfun$4(Run.scala:205)
[error]         at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
[error]         at scala.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:216)
[error]         at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:224)
[error]         at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
[error]         at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:67)
[error]         at dotty.tools.dotc.Run.compileUnits(Run.scala:231)
[error]         at dotty.tools.dotc.Run.compileUnits(Run.scala:172)
[error]         at dotty.tools.dotc.Driver.finish(Driver.scala:60)
[error]         at dotty.tools.dotc.Driver.doCompile(Driver.scala:40)
[error]         at dotty.tools.xsbt.CompilerBridgeDriver.run(CompilerBridgeDriver.java:88)
[error]         at dotty.tools.xsbt.CompilerBridge.run(CompilerBridge.java:22)
[error]         at sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:91)
[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:528)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:528)
[error]         at sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:174)
[error]         at sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:172)
[error]         at sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:457)
[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:412)
[error]         at sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:499)
[error]         at sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:399)
[error]         at sbt.internal.inc.Incremental$.apply(Incremental.scala:166)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:528)
[error]         at sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:482)
[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:2357)
[error]         at sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2314)
[error]         at sbt.internal.io.Retry$.apply(Retry.scala:46)
[error]         at sbt.internal.io.Retry$.apply(Retry.scala:28)
[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:2310)
[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:829)
[error] (Compile / compileIncremental) java.lang.NoClassDefFoundError: uk/co/dga/persist/Versioned
@Kordyjan
Copy link
Contributor

Is a code that gives you this crash a publicly available one? Having at least the way to reproduce the error would greatly improve the chances of this getting fixed.

@nicolasstucki
Copy link
Contributor

@DavidGoodenough could you try it on 3.0.2? This issue might already be fixed.

@DavidGoodenough
Copy link
Author

Will do, I keep missing compiler updates as dependencyUpdates does not report them with scala-3 (yes I have put in feature request for that)

@nicolasstucki
Copy link
Contributor

We released that one last week. I believe there I believe that there is a bug with the dependency updates that is being looked at or fixed.

@DavidGoodenough
Copy link
Author

No, 3.0.2 does not fix the problem. Is it worth trying 3.1.0-RC1? Or should I continue trying to minimize the problem to give you something to test against?

@nicolasstucki
Copy link
Contributor

Then we will need a self-contained example (ideally minimized).

@DavidGoodenough
Copy link
Author

DavidGoodenough commented Sep 13, 2021

OK, I have a set of 4 .scala files (and its build.sbt) which I can upload or email somewhere. Where would you like it sent?

I have also identified the problem. It is in code that I am actually not going to be using any more (it is from an old version) I have left it in place so that the compiler crash can be squashed. The problem is in the the file Persistable.scala, in the serialize and deserialize methods, which take Persistance objects as arguments or generic types. This introduces a dependency loop, but nothing in the error messages with any dotty up to and including 3.0.2 is helpful in diagnosing that as the problem.

@nicolasstucki
Copy link
Contributor

You can paste the 4 files here if you want.

@DavidGoodenough
Copy link
Author

build.sbt:

lazy val root = project.in(file("."))
  .settings(

    // Name of the project
    name := "Persist",
    organization := "uk.co.dga",

    // Project version
    version := "1.2-SNAPSHOT",

    // Version of Scala used by the project
    // scalaVersion := "2.13.5"
    scalaVersion := "3.0.2",

    scalacOptions --= Seq("-explain-types","-explain"),
    scalacOptions ++= Seq("-no-indent"),

    // Add dependency on ScalaFX library
    libraryDependencies += "com.lihaoyi" % "scalatags_2.13" % "0.9.4",
    libraryDependencies += "io.jvm.uuid" % "scala-uuid_2.13" % "0.3.1",
    libraryDependencies += "uk.co.dga" %% "formfx" % "2.0-SNAPSHOT",
    libraryDependencies += "org.postgresql" % "postgresql" % "42.2.23",
    libraryDependencies += "org.apache.bcel" % "bcel" % "6.5.0",
    libraryDependencies += "com.h2database" % "h2-mvstore" % "1.4.200",

    // Temp while is falls over if present with NullPointerException
    Compile / packageDoc / publishArtifact := false,

    resolvers += Resolver.sonatypeRepo("snapshots"),

    // Fork a new JVM for 'run' and 'test:run', to avoid JavaFX double initialization problems
    fork := true,

    assembly / assemblyMergeStrategy := {
      case PathList("module-info.class") => MergeStrategy.discard
      case PathList("module-info.java") => MergeStrategy.discard
      case x =>
        val oldStrategy = (assembly / assemblyMergeStrategy).value
        oldStrategy(x)
      },
      
    assembly / assemblyJarName := "persist.jar",
    assembly / mainClass := Some("uk.co.dga.persist.Loader")
  )

Next four files all in src/main/scala/uk/co/dga/persist

Persistable.scala:

package uk.co.dga.persist

import io.jvm.uuid._
import uk.co.dga.formfx.FormApp
import scala.util.Try
import java.lang.reflect.Modifier
import scala.annotation.unused
import scala.language.implicitConversions

/**
 * This is the base class for all persistable classes, or rather for the root objects
 * that are persistable and which are references by Reference objects or lists of
 * Reference objects.
 * This class must be explicitly given a SerialVersionUID
 * as DatabaseHeader (which extends this) is loaded from the JAR not the database
 */
class Persistable private[persist] (private[persist] val uuid:UUID) extends Versioned {
  private[persist] var lastUpdated:Long = 0L // Mark this persistable as never saved, once saved it will have a real time here
  override def serialize:String = {
    Seq(
      serial(lastUpdated)
      ).mkString(s""""${getClass.getCanonicalName}" : {""",",\n","}")
    }
  override def restore(rhs:NodeRhs) = {
    lastUpdated = rhs.get[Long]("lastUpdated")
    }  
  }
object Persistable {
  val persistCls = (new Persistable(UUID(0L,0L))).getClass
  }

Persistance.scala:-

package uk.co.dga.persist

import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.ObjectOutputStream
import java.io.ObjectInputStream
import java.io.ObjectStreamClass
import scala.quoted.Expr
import scala.quoted.Quotes

private[persist] object Persistance {
  inline def nameOf(inline expr:Any):String = ${nameOfImpl('expr)}
  private def nameOfImpl(expr:Expr[Any])(using q:Quotes):Expr[String] = {
    import q.reflect.*
    import q.* 
    var name = s"""${expr.show.split('.').last}"""
    Expr(name)
    }
  inline def tagOf(inline expr:Any):String = {
    s""""${nameOf(expr)}:expr.getClass.getCanonicalName""""
    }
  def serialize(any:Persistable):Array[Byte] = {
    ???
    }
  def deserialize[T<:Persistable](in:Array[Byte],loader:ClassLoader):T = {
    ???
    }
  }

PersistException.scala:-

package uk.co.dga.persist

case class PersistException(msg:String) extends Exception { }

Versionable.scala

package uk.co.dga.persist

import java.nio.charset.StandardCharsets
import java.text.ParseException
import io.jvm.uuid._
import scala.BufferedIterator
import scala.util.chaining.*
import scala.annotation.tailrec
import scala.language.implicitConversions
import scala.collection.mutable.HashMap
import scala.collection.mutable.Buffer
import java.time.LocalDate
import scala.quoted.*
import scala.language.implicitConversions
import scala.annotation.compileTimeOnly
import Persistance.{nameOf,tagOf}
import scalatags.generic.TypedTag
import scala.util.Try
/**
  * All Persistable class and any class that changed should extend this class.  You
  * should override the upgrade method to modify the stored data ready to be loaded
  * into the new instances coping for any changes that are made.  The version can be 
  * checked using the savedVersion field.  If the version has not changed or is compatible
  * simply return old from upgrade
  */
class Versioned {
  def version = 1
  private var savedVersion = version
  inline def serial[T](inline t:T):String = {
    inline t match {
      case v:Versioned => s""""${tagOf(t)}" : ${compiletime.summonInline[Conversion[T,String]].apply(v)}"""
      case bv:Buffer[Versioned] => s""""${tagOf(t)}" : ${compiletime.summonInline[Conversion[T,String]].apply(_)}.mkString("[ { "," },\n{ ","} ]")}"""
      case s:String => s""""${tagOf(t)}" : $s"""
      case os:Option[String] => os match {
        case Some(s) => s""""${tagOf(t)}" : $s"""
        case None => "" // do nothing for optional nones
        }
      case i:Int => s"""${tagOf(t)} : ${i.toString}"""     
      case l:Long => s"""${tagOf(t)} : ${l.toString}"""
      case u:UUID => s"""${tagOf(t)} : ${u.toString}"""
      case ld:LocalDate => s"""${tagOf(t)} : ${ld.toString}"""
      case as:Array[String] => s"""${tagOf(t)} : ${as.mkString("[ \"","\",\n\"","\"")}"""
      }
    }
  inline def serial[T](inline ot:Option[T]):String = {
    ot match {
      case Some(t) => serial(t)
      case None => ""
      }
    }
  def serialize:String = {
    Seq(
      serial(savedVersion)
      ).mkString(s""""${getClass.getCanonicalName}" : {""",",\n","}")
    }
  def restore(rhs:NodeRhs) = {
    savedVersion = rhs.get[Int]("savedVersion")
    }
  }
/**
 * Each object derived from Versioned and that is instantiated in its own right
 * MUST have an apply method, taking a single argument, a NodeRhs.  If the class 
 * has internal state then the restore method should be called, passing the NodeRhs
 * as its arguement.  Any arguments to the class constructor can be pulled from the
 * NodeRhs using the get method, passing the devvclared type of the argument as the generic 
 * argument to get.
 */
object Versioned {
  def apply(rhs:NodeRhs):Versioned = {
    new Versioned {
      restore(rhs)
      }
    }
  def upgrade(old:Rhs):Rhs = {
    old
    }
  }
class Lhs(val lhs:String) {
  val (name,desc,num) = parse(lhs)
  def parse(lhs:String) = {
    val a = lhs.split(":")
    if(a.size != 2) throw PersistException(s"Unable to parse LHS $lhs")
    val n = a(0)
    val a2 = a(1).split("#")
    a2.size match {
      case 1 => (n,a2(0),0)
      case 2 => (n,a2(0),a2(1))
      case _ => throw PersistException(s"Unable to parse LHS $lhs")
      }
    }
  }
trait Rhs { }
class StringRhs(val lhs:Lhs,val value:String) extends Rhs {
  lazy val obj = Try(
    lhs.desc match {
      case "scala.Int" => value.toInt
      case "scala.Short" => value.toShort
      case "scala.Long" => value.toLong
      case "scala.Double" => value.toDouble
      case "scala.Float" => value.toFloat
      case "scala.math.BigDecimal" => BigDecimal(value)
      case "scala.math.BigInt" => BigInt(value)
      case "java.util.UUID" => UUID.fromString(value)
      case "java.time.LocalDate" => LocalDate.parse(value)
      case u => throw PersistException(s"Invalid type ${lhs.desc} for ${lhs.name} with $value")
      }).getOrElse(throw PersistException(s"Invalid value $value for ${lhs.name}"))
  def get[T](name:String):T = {
    obj.asInstanceOf[T]
    }
  }
class NodeRhs(val lhs:Lhs,val value:Map[String,Rhs]) {
  lazy val obj = (Try{
    val cls = getClass.getClassLoader.loadClass(lhs.desc) 
    val companion = cls.getField("MODULE$").get(cls)
    val applyMethod = cls.getMethod("apply",getClass)
    applyMethod.invoke(cls,this)
    }).getOrElse(throw PersistException(s"Invalid value $value for ${lhs.name}")) 
  def get[T](name:String):T = obj.asInstanceOf[T]
  }
  class SeqRhs(val lhs:Lhs,var value:Seq[Rhs]) {
  // We are not storing tuples, so we know the elements are all of the same (base) type(T).
  transparent inline def get[T](name:String)(using t:Type[T])(using Quotes):Any ={
    ???
    }
  }
object Versionable {
  type NodeField = VersionNode | String | Null
  }
extension(bi:scala.collection.BufferedIterator[Char]) {
  @tailrec def foldUntil[A](initial:A)(proc:(A,Char)=>A)(check:(A,Char)=>Boolean):A = {
    if(!bi.hasNext) initial
    else {
      val next = bi.next
      if(!check(initial,next)) initial 
      else foldUntil(proc(initial,next))(proc)(check)
      }
    }
  }
/**
  * This class represents one level of the saved VersionTree.  
  * 
  * The top level object must be a Persistable, and thus contain a uuid, but that is
  * not enforced here but rather when persistance happens.  The object does not have a 
  * name as it is not retrieved by name, and it is the only place where the deserializing
  * code does not know the receiving class.  So the name in that case is the fully qualified
  * name of the class of the object.
  * 
  * The saved version has the name on the left followed by its ID "field"#n and on the right
  * it is either a reference to an already stored object (#n), a value (a String we know how to 
  * store, such as a String, Numeric, dates and times etc) "value", a class which is a list of fields
  * enclosed in {field} or an array of fields [value] where value is a primitive in "" or a class in {},
  * separated by \n.  
  *
  * @param V the expected type of this object
  * @param name the variable name
  * @param saved the external form of the value, but decoded 
  * @param value the contructed value of this object
  */
class VersionNode(val name:String,val values:Map[String,Versionable.NodeField]) {
  def optString(name:String):Option[String] = values.get(name) match {
    case Some(s) => Some(s.toString)
    case None => None
    }
  }
object VersionNode {
  val refMap = collection.mutable.HashMap[Int,Rhs]()
  import VersionablePersistance._
  def loadRhs(lhs:Lhs,bi:BufferedIterator[Char]):Rhs = {
    nextLead(bi) match {
      case '[' => loadArray(lhs,bi)
      case '{' => loadNode(lhs,bi)
      case '"' => StringRhs(lhs,getString(bi)).asInstanceOf[Rhs]
      case '#' => refMap.get(getRef(bi).toInt).getOrElse(throw new PersistException(s"No referrence value at ${bi.toString}"))
      case unknown => throw PersistException(s"""Unknown lead character $unknown, expecting [{" or # before ${bi.toString}""")
      }
    }
  def loadArray(lhs:Lhs,bi:BufferedIterator[Char]):Rhs = { // Could be array of objects or strings or nodes or arrays
    SeqRhs(lhs,bi.foldUntil(Seq[Rhs]()){(s,c)=> s :+ loadRhs(lhs,bi)}{(_,c)=>c match {
      case ',' => false
      case ']' => true
      case unknown => throw PersistException(s"Expected ']' or ',' found '$unknown' before ${bi.toString}") 
      }}).asInstanceOf[Rhs]
    }
  /**
   * Read in the next object, which should be a sequence of name : rhs pairs ending in a }
   */
  def loadNode(lhs:Lhs,bi:BufferedIterator[Char]):Rhs = {
    NodeRhs(lhs,bi.foldUntil(Map[String,Rhs]()){(s,c)=>
      s + loadField(bi)
      }{(_,c)=>c match {
        case ',' => false
        case '}' => true
        case unknown => throw PersistException(s"Expected '}' or ',' found '$unknown' before ${bi.toString}") 
        }}).asInstanceOf[Rhs]
    }
  def loadField(bi:BufferedIterator[Char]):(String,Rhs) = {
    val v = getString(bi)
    nextLead(bi) match {
      case ':' =>
        (v , loadRhs(Lhs(v),bi))
      case unknown => throw PersistException(s"Unexpected character $unknown expecting ':' rest ${bi.toString}")
      }
    }
  }
/**
 * A ResolvedVersionTree is like a VersionTree but includes the resolved value of the object.
 */
class ResolvedVersionNode[V](name:String,value:V,saved:Versionable.NodeField*) {

  }

object VersionablePersistance {
  def getString(iterator:BufferedIterator[Char]):String = {
    val sb = StringBuilder()
    var more = true
    while(more) {
      getChar(iterator) match {
        case '\\' => sb.append(getChar(iterator)) // escapes
        case '"' => more = false // end of string
        case c => sb.append(c) // more token, append
        }
      }
    sb.toString
    }
  def nextLead(iterator:BufferedIterator[Char]):Char = {
    // step over leading whitespace
    while(iterator.head.isWhitespace) { getChar(iterator) } // throw away leading strings
    getChar(iterator)
    }
  def getRef(iterator:BufferedIterator[Char]):Int = {
    var more = true
    var result = 0
    while(more) {
      if(iterator.head.isDigit) result = (result * 10) + iterator.next - '0'
      }
    result
    }
  // If we hit the end before we expect then scream, we can not recover.
  def getChar(iterator:BufferedIterator[Char]):Char = {
    if(iterator.hasNext) iterator.next
    throw PersistException("Premature end of string")
    }
  }

@griggt
Copy link
Contributor

griggt commented Sep 14, 2021

Minimized to:

class Versioned:
  def serialize: String = Persistance.nameOf(0)
import scala.quoted.*
object Persistance:
  inline def nameOf(inline e: Any): String = ${ nameOfImpl('e) }
  private def nameOfImpl(e: Expr[Any])(using Quotes): Expr[String] = Expr("")
  def foo(p: Versioned): Unit = {}

@griggt griggt removed the stat:needs minimization Needs a self contained minimization label Sep 14, 2021
@DavidGoodenough
Copy link
Author

That minimization is really odd. I got rid of the crash by removing the serialize and deserialize methods in Persistance.scala, so all the macros were still there and it compiled cleanly. And the serialize and deserialize methods do introduce a dependency loop (so I know they are wrong), but that should give a message saying there is a loop (and hopefully itemising it) rather than crashing.

If the macro is causing an extra problem then perhaps we have two bugs.

@nicolasstucki
Copy link
Contributor

The minimized code shows that there is cyclic dependency when expanding the macro.

  • To compile Persistance.nameOf(0) we to load the compiled class for Persistance
  • To load Persistance we also need to load the compiled class of Versioned (because of def foo)

@nicolasstucki
Copy link
Contributor

The same cycle exists in the original code due to inheritance.

class Persistable private[persist] (private[persist] val uuid:UUID) extends Versioned

@DavidGoodenough
Copy link
Author

True, but as serialize and deserialize do not reference nameOf, why does simply removing these two method definitions also solve the problem? I am not suggesting that the nameOf problem does not exist, and quite possibly the fix to one dependency problem might fix the other, but as I understand it macros and type resolution happen at different times in the compiler, so there might be two problems, or do both use the same resolution mechanism?

olsdavis pushed a commit to olsdavis/dotty that referenced this issue Apr 4, 2022
@Kordyjan Kordyjan added this to the 3.1.1 milestone Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants