-
Notifications
You must be signed in to change notification settings - Fork 1.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
Consolidate CC #21863
Consolidate CC #21863
Commits on Nov 22, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f5c9eab - Browse repository at this point
Copy the full SHA f5c9eabView commit details -
Configuration menu - View commit details
-
Copy full SHA for bbafb09 - Browse repository at this point
Copy the full SHA bbafb09View commit details -
Previously, we violated that assumption is we too the deep capture set of a capture reference wiht singleton type.
Configuration menu - View commit details
-
Copy full SHA for d33c89a - Browse repository at this point
Copy the full SHA d33c89aView commit details -
Align deep capture sets with reach capabilities
Count in dcs exactly those locations where a cap gets replaced by a reach capability.
Configuration menu - View commit details
-
Copy full SHA for cdd03b7 - Browse repository at this point
Copy the full SHA cdd03b7View commit details -
Refactor handling of applications
Simplify code that handles applications, avoiding adding pieces of mutable state.
Configuration menu - View commit details
-
Copy full SHA for 822550d - Browse repository at this point
Copy the full SHA 822550dView commit details -
Handle reach capabilities correctly in markFree
The correct point to address charging reach capabilities is in markFree itself: When a reach capability goes out of scope, and that capability is not a parameter, we need to continue with the underlying capture set.
Configuration menu - View commit details
-
Copy full SHA for e7c018b - Browse repository at this point
Copy the full SHA e7c018bView commit details -
Configuration menu - View commit details
-
Copy full SHA for fcf4045 - Browse repository at this point
Copy the full SHA fcf4045View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7c2a76b - Browse repository at this point
Copy the full SHA 7c2a76bView commit details -
Drop the scheme where we only charge the last arrow of a curried lambda with elements used in the body. On the one hand, this is unsound without compensation measures (like, restricting to reach capabilities, or taking all capture sets of a named curried function as the underlying reference). On the other hand, this should be generalized to all closures and anonymous functions forming the right hand sides of methods.
Configuration menu - View commit details
-
Copy full SHA for 2747f03 - Browse repository at this point
Copy the full SHA 2747f03View commit details -
Stop markFree at nested methods
Use sets of nested methods are anyway charged on call.
Configuration menu - View commit details
-
Copy full SHA for 17a4a8c - Browse repository at this point
Copy the full SHA 17a4a8cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 02cd565 - Browse repository at this point
Copy the full SHA 02cd565View commit details -
Configuration menu - View commit details
-
Copy full SHA for e6b08de - Browse repository at this point
Copy the full SHA e6b08deView commit details -
Re-enable handleEtaExpansionsSpecially setting
This gives better error messages. Previously we thought this would make reach capabilities unsound, but I don't see an issue with the latest design.
Configuration menu - View commit details
-
Copy full SHA for fd9e895 - Browse repository at this point
Copy the full SHA fd9e895View commit details -
Disable reach capabilities in nested closures appearing without @use
With our current @use scheme, this is unsound. We leave the possibility to re-enable as a Config option which is disabled by default and comes with a warning that enabling it would be unsound.
Configuration menu - View commit details
-
Copy full SHA for 4226a33 - Browse repository at this point
Copy the full SHA 4226a33View commit details -
Check that type parameters of methods and parent traits don't get instantiated with types containing a `cap` anywhere in covariant or invariant position.
Configuration menu - View commit details
-
Copy full SHA for 8f8a15f - Browse repository at this point
Copy the full SHA 8f8a15fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 62b2f1c - Browse repository at this point
Copy the full SHA 62b2f1cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0676450 - Browse repository at this point
Copy the full SHA 0676450View commit details -
Configuration menu - View commit details
-
Copy full SHA for 96d1610 - Browse repository at this point
Copy the full SHA 96d1610View commit details -
Configuration menu - View commit details
-
Copy full SHA for adf6a25 - Browse repository at this point
Copy the full SHA adf6a25View commit details -
Fix dcs for invariant type parameters
Also: add test that reach capabilities are contained inside boxes
Configuration menu - View commit details
-
Copy full SHA for 496c866 - Browse repository at this point
Copy the full SHA 496c866View commit details -
Configuration menu - View commit details
-
Copy full SHA for f4c09e3 - Browse repository at this point
Copy the full SHA f4c09e3View commit details -
Configuration menu - View commit details
-
Copy full SHA for c4c69b0 - Browse repository at this point
Copy the full SHA c4c69b0View commit details -
Be more careful computing underlying types of reach capabilities
We can use the dcs only if there are no type variables.
Configuration menu - View commit details
-
Copy full SHA for 91da9fb - Browse repository at this point
Copy the full SHA 91da9fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 34e947a - Browse repository at this point
Copy the full SHA 34e947aView commit details -
The additional purity in the asInstanceOf target is not needed
Configuration menu - View commit details
-
Copy full SHA for eb0577f - Browse repository at this point
Copy the full SHA eb0577fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b51ee9 - Browse repository at this point
Copy the full SHA 2b51ee9View commit details -
Drop legacy caps.unsafe operations
Retain only caps.unsafe.unsafeAssumePure
Configuration menu - View commit details
-
Copy full SHA for b9d485a - Browse repository at this point
Copy the full SHA b9d485aView commit details -
Don't show redudundant existental wrappers
Don't show an `(ex$n: Exists) ->` if the bound variable does not appear in the result. The full type will be shown under -Ycc-debug. Also, avoid spurious ineffective mappings in widenReach.
Configuration menu - View commit details
-
Copy full SHA for 1e79a2d - Browse repository at this point
Copy the full SHA 1e79a2dView commit details -
Configuration menu - View commit details
-
Copy full SHA for ff73a2f - Browse repository at this point
Copy the full SHA ff73a2fView commit details -
Treat by-name closures specially in recheck
A by-name Closure node, which is produced by phase ElimByName gets a target type to indicate it's a contextual zero parameter closure. But for the purposes of rechecking and capture checking, it needs to be treated like a function. In particular the type of the closure needs to be derived from the result type of the anonymous function. Fixes scala#21920
Configuration menu - View commit details
-
Copy full SHA for a98903c - Browse repository at this point
Copy the full SHA a98903cView commit details -
Configuration menu - View commit details
-
Copy full SHA for d8ea08d - Browse repository at this point
Copy the full SHA d8ea08dView commit details -
Configuration menu - View commit details
-
Copy full SHA for e309d5a - Browse repository at this point
Copy the full SHA e309d5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6f51fc0 - Browse repository at this point
Copy the full SHA 6f51fc0View commit details -
Configuration menu - View commit details
-
Copy full SHA for da14277 - Browse repository at this point
Copy the full SHA da14277View commit details -
Configuration menu - View commit details
-
Copy full SHA for 353f80b - Browse repository at this point
Copy the full SHA 353f80bView commit details