-
Notifications
You must be signed in to change notification settings - Fork 71
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
Signature checks fail using value classes & upgrading to 2.12.9+ or 2.13.1+ #423
Comments
Yeah, that was a bug fixed in 2.12.9, one that ideally MiMa could recognise and avoid the false positive. |
We have found a similar problem in https://github.com/Banno/vault4s/ between versions
@dwijnand When you say that it was a bug fixed in 2.12.9, would that be the version of the |
The fix was in the compiler (scala/scala#8127). My understanding is that scalap shows you what's in ScalaSignature rather than the (erased) method descriptor or the (Java) (generic) signature, the latter of which is what Harrison fixed |
For context: by default javap shows something that looks like Java code, with generics:
You can get the full details with
MiMa mainly uses the Specifically for the |
If I look at
Though indeed when I check out the tag from git it looks ok:
It looks like the published 5.1.0 artifacts were built with scala <2.12.9 (even though build.sbt asks for 2.12.10)? Summarizing it seems mima correctly flagged incompatible changes to the generic signature, but these were caused by old Scala versions declaring wrong signatures (scala/scala#8127), so in this case we can be sure no-one relied on the old (incorrect) signatures. Not sure if there is a lot we can do about it from the mima side? |
@raboof Just for my ease of mind... if someone writes a In other words, do we have a true positive here between the current jars for |
No, |
@diesalbla no, I think it can be broken down as follows:
|
If you publish this code with Scala 2.12.8:
And then change the Scala version to 2.12.9 (or 10) and run
sbt mimaReportBinaryIssues
, you'll get these errors:The issue seems to be the value class in the synthetic method signatures.
The text was updated successfully, but these errors were encountered: