Closed gehnaphore closed 3 years ago
Thanks. I should probably add this important fact to README so people won't try to shade a Scala library.
I've started a PR on this:
I believe this is fixed in 1.1.0
This was fixed in 0.15.0, and 1.1.0 improves on that - https://github.com/sbt/sbt-assembly/releases/tag/v0.15.0
When packages get renamed during shading, no changes are made to any the ScalaSignature annotations in those JARs. The result is that Scala reflection will fail silently.
I imagine the fix would be to read and rewrite the ScalaSignature annotations along with the bytecode changes made by JarJar. It it easy enough to decode the signature using scalap and rewrite the annotation using ASM, but I didn't see any way to modify and re-pickle the signature without extracting pieces of scalac.