-
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
Drop @capability annotations #20396
Drop @capability annotations #20396
Commits on May 27, 2024
-
Distinguish maximal from root capabilities
A maximal capability is one that derives from `caps.Cap`. Also: drop the given caps.Cap. It's not clear why there needs to be a given for it.
Configuration menu - View commit details
-
Copy full SHA for 0268185 - Browse repository at this point
Copy the full SHA 0268185View commit details -
Handle tracked class parameters
The current handling of class type refinements is unsound. We cannot simply use a variable for the capture set of a class argument. What we need to do instead is treat class arguments as tracked. In this commit we at least allow explicitly declared tracked arguments. This needed two modifications: - Don't additionally add a capture set for tracked arguments - Handle the case where a capture reference is of a singleton type which is another capture reference. As a next step we should treat all class arguments as implicitly tracked.
Configuration menu - View commit details
-
Copy full SHA for 0c1394f - Browse repository at this point
Copy the full SHA 0c1394fView commit details -
Replace with references that inherit trait `Capability`.
Configuration menu - View commit details
-
Copy full SHA for b76bc3e - Browse repository at this point
Copy the full SHA b76bc3eView commit details -
Drop convention on classes inheriting from universal capturing types
Drop convention that classes inheriting from universal capturing types are capability classes. Capture sets of parents are instead ignored. The convention led to algebraic anomalies. For instance if class C extends A => B, Serializable then C <: (A => B) & Serializable, which has an empty capture set. Yet we treat every occurrence of C as implicitly carrying `cap`.
Configuration menu - View commit details
-
Copy full SHA for 6baff2d - Browse repository at this point
Copy the full SHA 6baff2dView commit details -
Add fewer parameter refinements.
Only enrich classes with capture refinements for a parameter if the deep capture set of the parameter's type is nonempty.
Configuration menu - View commit details
-
Copy full SHA for 08557a1 - Browse repository at this point
Copy the full SHA 08557a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for f02b5fb - Browse repository at this point
Copy the full SHA f02b5fbView commit details -
Turn nested environment capture sets into constants at the end of box…
… adaptation This change lets more ref trees with underlying function types keep their singleton types.
Configuration menu - View commit details
-
Copy full SHA for 0177576 - Browse repository at this point
Copy the full SHA 0177576View commit details -
Two fixes to make tests pass as before
- Avoid creating capture sets of untrackable references - Refine disallowRootCapability to consider only explicit captures
Configuration menu - View commit details
-
Copy full SHA for 4487eeb - Browse repository at this point
Copy the full SHA 4487eebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 999be5e - Browse repository at this point
Copy the full SHA 999be5eView commit details -
Make capture sets of expressions deriving Capability explicit
When an expression has a type that derives from caps.Capability, add an explicit capture set. Also: Address other review comments
Configuration menu - View commit details
-
Copy full SHA for 81cf8d8 - Browse repository at this point
Copy the full SHA 81cf8d8View commit details