-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: