-
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
base: main
Are you sure you want to change the base?
Consolidate CC #21863
Commits on Oct 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 5fc498a - Browse repository at this point
Copy the full SHA 5fc498aView commit details -
Configuration menu - View commit details
-
Copy full SHA for e130c05 - Browse repository at this point
Copy the full SHA e130c05View 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 8516e12 - Browse repository at this point
Copy the full SHA 8516e12View 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 e1b31c1 - Browse repository at this point
Copy the full SHA e1b31c1View 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 f6f178b - Browse repository at this point
Copy the full SHA f6f178bView 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 913c5bb - Browse repository at this point
Copy the full SHA 913c5bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for ca0a6f9 - Browse repository at this point
Copy the full SHA ca0a6f9View commit details -
Configuration menu - View commit details
-
Copy full SHA for fc46e5c - Browse repository at this point
Copy the full SHA fc46e5cView 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 70af983 - Browse repository at this point
Copy the full SHA 70af983View commit details
Commits on Oct 31, 2024
-
Stop markFree at nested methods
Use sets of nested methods are anyway charged on call.
Configuration menu - View commit details
-
Copy full SHA for f54d0fa - Browse repository at this point
Copy the full SHA f54d0faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a781b2 - Browse repository at this point
Copy the full SHA 1a781b2View commit details -
Configuration menu - View commit details
-
Copy full SHA for a90c32a - Browse repository at this point
Copy the full SHA a90c32aView 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 3df2b56 - Browse repository at this point
Copy the full SHA 3df2b56View 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 308ab14 - Browse repository at this point
Copy the full SHA 308ab14View commit details
Commits on Nov 1, 2024
-
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 128a2d7 - Browse repository at this point
Copy the full SHA 128a2d7View commit details
Commits on Nov 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 735506b - Browse repository at this point
Copy the full SHA 735506bView commit details -
Configuration menu - View commit details
-
Copy full SHA for f5229fd - Browse repository at this point
Copy the full SHA f5229fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 60c0960 - Browse repository at this point
Copy the full SHA 60c0960View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8c82d37 - Browse repository at this point
Copy the full SHA 8c82d37View commit details
Commits on Nov 3, 2024
-
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 0c5573a - Browse repository at this point
Copy the full SHA 0c5573aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 571119a - Browse repository at this point
Copy the full SHA 571119aView commit details
Commits on Nov 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for ce3c01d - Browse repository at this point
Copy the full SHA ce3c01dView 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 ac06cb5 - Browse repository at this point
Copy the full SHA ac06cb5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 60f0233 - Browse repository at this point
Copy the full SHA 60f0233View commit details
Commits on Nov 8, 2024
-
The additional purity in the asInstanceOf target is not needed
Configuration menu - View commit details
-
Copy full SHA for 7449641 - Browse repository at this point
Copy the full SHA 7449641View commit details -
Configuration menu - View commit details
-
Copy full SHA for 37a8794 - Browse repository at this point
Copy the full SHA 37a8794View commit details -
Drop legacy caps.unsafe operations
Retain only caps.unsafe.unsafeAssumePure
Configuration menu - View commit details
-
Copy full SHA for 986c57d - Browse repository at this point
Copy the full SHA 986c57dView 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 40b06a8 - Browse repository at this point
Copy the full SHA 40b06a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c8bd42 - Browse repository at this point
Copy the full SHA 4c8bd42View commit details
Commits on Nov 11, 2024
-
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 e3c91f3 - Browse repository at this point
Copy the full SHA e3c91f3View commit details
Commits on Nov 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 34972d8 - Browse repository at this point
Copy the full SHA 34972d8View commit details