-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Add support for generic tuples #4938
Commits on Sep 6, 2018
-
These types are injected as parents of Tuple1,...,Tuple22, but are eliminated again at erasure. To support them properly before full dotty bootstrap we needed a @`rewrite` annotation that erases the annotated method (unlike `@forceInline`, which generates code).
Configuration menu - View commit details
-
Copy full SHA for f080a39 - Browse repository at this point
Copy the full SHA f080a39View commit details -
Add version-specific source directories in the library
And replace Tuple.scala with a Scala 2 implementation and a Scala 3 implementation. The Scala 2 implementaion of Tuple.scala is not strictly necessary but could be useful if non-version-specific library sources end up referencing scala.Tuple.
Configuration menu - View commit details
-
Copy full SHA for 84baabb - Browse repository at this point
Copy the full SHA 84baabbView commit details -
Fix Inlined abbreviation in erased code
Erased code does not keep full Inlined trees. The previous version converted the Inlined tree back to the call, but this can expose leaks (since calls are not traversed for references). We now keep the Inlined node, so that its call part can be subsequently simplified.
Configuration menu - View commit details
-
Copy full SHA for 4e550ab - Browse repository at this point
Copy the full SHA 4e550abView commit details -
Remove rewrite annotation again
With the Scala 2/3 split, we don't need it anymore.
Configuration menu - View commit details
-
Copy full SHA for 6dde9ea - Browse repository at this point
Copy the full SHA 6dde9eaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 75729c8 - Browse repository at this point
Copy the full SHA 75729c8View commit details -
Does not rely anymore on `deep`, which is dropped in Scala 2.14.
Configuration menu - View commit details
-
Copy full SHA for 0a24170 - Browse repository at this point
Copy the full SHA 0a24170View commit details -
Configuration menu - View commit details
-
Copy full SHA for b9f3ab7 - Browse repository at this point
Copy the full SHA b9f3ab7View commit details -
Was erased to Object before, but this loses precision and breaks binary compatibility with Scala 2.
Configuration menu - View commit details
-
Copy full SHA for 26f0d75 - Browse repository at this point
Copy the full SHA 26f0d75View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2d1427d - Browse repository at this point
Copy the full SHA 2d1427dView commit details -
Configuration menu - View commit details
-
Copy full SHA for bc08290 - Browse repository at this point
Copy the full SHA bc08290View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0378bb4 - Browse repository at this point
Copy the full SHA 0378bb4View commit details -
Whitelist some Scala-2 classes as pure
Currently, this is not exploited but some rewrites might become more effective that way in the future.
Configuration menu - View commit details
-
Copy full SHA for 79ca51c - Browse repository at this point
Copy the full SHA 79ca51cView commit details -
Fix side-effect handling in reduceProjection
There's a difference to be made between projections of instance creations in a preceding val on the one hand and instance creations in a def or directly written creations on the other hand.
Configuration menu - View commit details
-
Copy full SHA for 0285243 - Browse repository at this point
Copy the full SHA 0285243View commit details -
Support a limited form of rewrite unapplys
Currently only unapplys that return a tuple are supported.
Configuration menu - View commit details
-
Copy full SHA for 0996a4a - Browse repository at this point
Copy the full SHA 0996a4aView commit details -
Enforce implementation restrictions
- no nested rewrites - calls to rewrite unapplys only in rewrite code
Configuration menu - View commit details
-
Copy full SHA for 3d48ff3 - Browse repository at this point
Copy the full SHA 3d48ff3View commit details -
Configuration menu - View commit details
-
Copy full SHA for a160063 - Browse repository at this point
Copy the full SHA a160063View commit details -
Add failing pickling test to blacklist
tuples1.scala is explainable and harmless. The other two (i4758 and t7426) give a stale symbol but in my setup they do that already on master. I wonder how they slipped through the CI.
Configuration menu - View commit details
-
Copy full SHA for 42a5a9d - Browse repository at this point
Copy the full SHA 42a5a9dView commit details