-
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
Add captureset levels (draft) #18348
Closed
Closed
Commits on Aug 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7176548 - Browse repository at this point
Copy the full SHA 7176548View commit details -
This demonstrates currently unsoundness when it comes to assignments via setters
Configuration menu - View commit details
-
Copy full SHA for 0bf6a25 - Browse repository at this point
Copy the full SHA 0bf6a25View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8205ae9 - Browse repository at this point
Copy the full SHA 8205ae9View commit details
Commits on Aug 10, 2023
-
There was a corner case in installAfter where - A denotation valid in a single phase got replaced by another one - Immediately after, the symbol's denotation would be forced in a previous phase This somehow landed on a wrong denotation. The problem got apparent when more symbols underwent a Recheck.updateInfoBetween. The flags field installed by a previous update somehow was not recognized anymore. Specifically, the following was observed in order: 1. For a parameter getter (xs in LazyList, file pos-custeom-args/captures/lazylists1.scala) the Private flag was suppressed via transformInfo at phase cc. 2. The denotation of the getter v which was valid in the single phase cc+1 was updated at at cc by updateInfoInBetween in Recheck so that the Private flag was re-asserted in cc+1. 3. Immediately afterwards, the getter's flags was demanded at phase cc. 4. The Private flag was present, even though it should not be. The problem was fixed by demanding the denotation of the getter as part of isntallAfter.
Configuration menu - View commit details
-
Copy full SHA for 6339276 - Browse repository at this point
Copy the full SHA 6339276View commit details
Commits on Aug 11, 2023
-
Constrain closure parameters and result from expected type before rechecking the closure's body. This gives more precise types and avoids the spurious duplication of some variables. It also avoids the unmotivated special case that we needed before to make tests pass.
Configuration menu - View commit details
-
Copy full SHA for c4aefa1 - Browse repository at this point
Copy the full SHA c4aefa1View commit details -
Previously, the result of a map could contain duplicates. I verified that with the current code base this could cause problems only for capture checking.
Configuration menu - View commit details
-
Copy full SHA for 77aa78f - Browse repository at this point
Copy the full SHA 77aa78fView commit details -
Use a BiTypeMap for substitutions when possible
This reduces the chance of information loss in capture set propagation for applications.
Configuration menu - View commit details
-
Copy full SHA for 9fa253d - Browse repository at this point
Copy the full SHA 9fa253dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b3007a - Browse repository at this point
Copy the full SHA 2b3007aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4290e61 - Browse repository at this point
Copy the full SHA 4290e61View commit details
Commits on Aug 12, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 1051563 - Browse repository at this point
Copy the full SHA 1051563View commit details
Commits on Aug 14, 2023
-
Handle levels in constraint solving
- Define a notion of ccNestingLevel, which corresponds to the nesting level of so called "level owners" relative to each other. - The outermost level owner is _root_. - Other level owners are classes that are not staticOwners and methods that are not constructors. - The ccNestingLevel of any symbol is the ccNestingLevel of its closest enclosing level owner, or -1 for NoSymbol. - Capture set variables are created with a level owner. - Capture set variables cannot include elements with higher ccNestingLevels than the variable's owner. - If level-incorrect elements are attempted to be added to a capture set variable, they are instead widened to the underlying capture set.
Configuration menu - View commit details
-
Copy full SHA for 63b6aae - Browse repository at this point
Copy the full SHA 63b6aaeView commit details
Commits on Aug 15, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 874837a - Browse repository at this point
Copy the full SHA 874837aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f6da2ac - Browse repository at this point
Copy the full SHA f6da2acView commit details -
Configuration menu - View commit details
-
Copy full SHA for cd67244 - Browse repository at this point
Copy the full SHA cd67244View commit details -
Configuration menu - View commit details
-
Copy full SHA for 91135fb - Browse repository at this point
Copy the full SHA 91135fbView commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.