-
Notifications
You must be signed in to change notification settings - Fork 59
2.13: new Scala SHA #1677
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
2.13: new Scala SHA #1677
Conversation
singleton-ops
shapeless
scapegoat
|
Scala merged PRs in this time span:
|
@lrytz @som-snytt I'll take a closer look and maybe do some bisecting... but y'all feel free to look as well :-) |
I did some bisecting and it seems that shapeless and singleton-ops regressed in scala/scala#10352 and scapegoat regressed in some earlier PR. I'll do some more bisecting and investigating when next at keyboard. |
Sorry, I missed this call to arms. I guess by scapegoat, you don't mean me, but a project. |
for Scapegoat, the relevant PR is scala/scala#10414 ("Fold selection of unary ops") |
for Scapegoat, our fork was out of date, but the problem remains reproducible even after refreshing the fork. it's also reproducible outside of dbuild, but you have to publish scalameta 4.7.8 locally for the Scala version you're testing the test in question is
and the failure is
where the missing warnings are "Unnecessary toInt on instance of Int" so, I don't think this is a regression in Scala. it's good that we now constant-fold this. as far as I can see, Scapegoat should adjust. perhaps the compiler plugin ought to run before constant folding? I will exclude the test for now. cc @sksamuel @lolgab @saeltz |
for singleton-ops, the failing test is
it is easily reproducible outside of dbuild (with note that Shapeless is involved ( not obvious to me what's going on. cc @fthomas @milessabin |
for Shapeless, the problem reproduces outside dbuild, but you'll want the changes in milessabin/shapeless#1315, not yet merged (the repo has fatal warnings enabled and 2.13.11 caused new warnings to appear) there are a lot of "implicit not found" errors, it isn't just the sample error I showed above. the full errors are at https://scala-ci.typesafe.com/job/scala-2.13.x-jdk11-integrate-community-build/4577/artifact/logs/shapeless-build.log I have no hypothesis about what's going on here |
I'm afraid I don't have time to work on this. Maybe ask @joroKr21? Eyeballing scala/scala#10352, the changes in shapeless is likely to be very sensitive to this, but I wouldn't be surprised if there's more breakage in the wild. |
I can take a look next week, I'm out for the weekend |
I guess I'm in for the weekend. |
Joyfully, it seems ScalaTest does not support
|
For the shapeless error, scala/scala#10452 Contrary to Miles' conjecture, it was not subtle. However, I haven't investigated yet how it breaks. After creating a minimal test on the shapeless side, I realized reversion was quicker than analysis. But I am motivated to understand it at some future day of leisure. |
@SethTisue, thanks for bringing this up! Could you remind me again in which phase the constant-folding is happening? Scapegoat currently runs after The other way to solve this would be for Scapegoat to only run this inspection for Scala 2.12. |
@saeltz let's discuss on a scapegoat ticket instead of here |
@SethTisue, I created scapegoat-scala/scapegoat#754. |
verified that Som's followup PR fixed shapeless and singleton-ops there is now a scalafmt failure, but I'm going to merge this anyway and deal with that separately (issue: #1680) |
https://scala-ci.typesafe.com/job/scala-2.13.x-jdk11-integrate-community-build/4574/https://scala-ci.typesafe.com/job/scala-2.13.x-jdk11-integrate-community-build/4576/https://scala-ci.typesafe.com/job/scala-2.13.x-jdk11-integrate-community-build/4577/https://scala-ci.typesafe.com/job/scala-2.13.x-jdk11-integrate-community-build/4599/