-
Notifications
You must be signed in to change notification settings - Fork 14
Description
well, this one is a bit complicated, with three different failures in play... (UPDATE: four! see comments)
Confounding failure (already resolved)
first of all, scala-commons wasn't compiling for a while because it contains a custom subclass of Future
, and we temporarily added an abstract method to Future
for a while before changing our minds.
so to use git bisect
to see what's going on here, we have to eliminate the Future
issue by patching scala-commons a bit so that it compiles regardless of whether the Scala version we're testing against has the Future
change or not. I've pushed that version of scala-commons here: https://github.com/scalacommunitybuild/scala-commons/tree/community-build-2.13
but even with that out of the way, the build still fails, and it fails in two different ways depending on where we look in the scala/scala version history since 2.13.16
both regressions are easily observable outside of dbuild
First regression (back end)
when @sjrd's scala/scala#10993 landed, compilation begins failing in the back end, with:
[error] Error while emitting CodecTestData.scala
[error] key not found: value $outer
[error] one error found
[error] (commons-core / Test / compileIncremental) Compilation failed
Second regression (macro)
but then since @lrytz's scala/scala#10976 landed, we don't even get to commons-core/Test/compile
(test sources), because it now fails sooner during commons-core/compile
(main sources), with:
[error] java.lang.NullPointerException: Cannot invoke "scala.reflect.api.Symbols$SymbolApi.isSynthetic()" because the return value of "scala.reflect.api.Trees$TreeApi.symbol()" is null
[error] at com.avsystem.commons.macros.MacroCommons$Annot$$anonfun$findArg$5.applyOrElse(MacroCommons.scala:286)
[error] at com.avsystem.commons.macros.MacroCommons$Annot$$anonfun$findArg$5.applyOrElse(MacroCommons.scala:283)
[error] at scala.collection.IterableOnceOps.collectFirst(IterableOnce.scala:1256)
[error] at scala.collection.IterableOnceOps.collectFirst$(IterableOnce.scala:1248)
[error] at scala.collection.AbstractIterable.collectFirst(Iterable.scala:935)
[error] at com.avsystem.commons.macros.MacroCommons$Annot.findArg(MacroCommons.scala:283)
[error] at com.avsystem.commons.macros.meta.MacroSymbols$TagMatchingSymbol.$anonfun$requiredTags$6(MacroSymbols.scala:319)
I've shortened the stack trace; a full stack trace is at https://gist.github.com/SethTisue/5c9df05d473dbf477f48c5cd450c15d3
Summary
so it appears we have two different regressions here
a back end regression caused by 10993, and something about macros caused by 10976
since macros are in play, we can't rule out that a buggy macro is the true cause and our changes in scala/scala just uncovered that bugginess
@sjrd @lrytz I'm kicking this to you guys first, before attempting to isolate or minimize either problem. if you can't tell what's going on, you could ask for me help trying to minimize this/these