Skip to content

Community build: multiple post-2.13.16 regressions #893

@SethTisue

Description

@SethTisue

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

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions