-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[CS] A couple of CSApply cleanups #76485
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@swift-ci please test source compatibility |
59cb282
to
41f824d
Compare
Hrm looks like we can't add the assertion in 59cb282 quite yet, dropped it. |
`rewriteTarget` already calls `setExprTypes` for expressions, so these are redundant.
Pass this instead of a function for rewriting targets.
Delay `typeCheckDecl` for local decls until the end of CSApply. This replaces the existing logic for delaying type-checking for local functions.
We ought to be able to apply the solution to them immediately now.
The cases where CSApply fails should be fairly limited these days, and there doesn't seem to be any reason we shouldn't run these on failure anyway.
This is now no longer needed.
This hit an assertion I was trying to add to make sure we don't try to recursively type-check when type-checking a closure. Currently we can end up type-checking the initializer for `x` while generating constraints for the closure due to the fact that we eagerly compute the interface type for the backing lazy storage var. We ought to make that computation lazy, but in the mean time, add this test case.
41f824d
to
59885c4
Compare
@swift-ci please test |
xedin
approved these changes
Sep 17, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Generalize the delayed type-checking of local decls, factor out an abstract base class for target rewriting, and rip out the delaying logic for multi-statement closures.