-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Sema] Corrections for for-await-in syntax to prevent specific bad code-gen scenarios and improve diagnostics #35761
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
DougGregor
merged 3 commits into
swiftlang:main
from
phausler:async_sequence_conformance_fixes
Feb 6, 2021
Merged
[Sema] Corrections for for-await-in syntax to prevent specific bad code-gen scenarios and improve diagnostics #35761
DougGregor
merged 3 commits into
swiftlang:main
from
phausler:async_sequence_conformance_fixes
Feb 6, 2021
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
…de-gen scenarios and improve diagnostics SILGen verification crash when no other async functions are called in a function body not marked as async when a for-await-in syntax is used. This corrects the diagnostics to ensure that the type check effects sees the proper async call that the for-await-in syntax infers. for-await-in syntax was missing a diagnistic hint for inserting a try when the protocol conformance of the sequence shows a potential of throwing. (also there was a superfluous check for the nominal type in that type check (which was removed). for-await-in syntax and for-try-await-in syntax did not infer async or throwing to closure constraints, both were added to properly identify the asyncy-ness/throwy-ness of the iteration.
@swift-ci please smoke test |
ooh that is a fun error from windows:
network failure? |
Mac failure is:
|
@swift-ci please smoke test |
@swift-ci please smoke test |
DougGregor
approved these changes
Feb 5, 2021
…throwing behavior of async sequences
@swift-ci Please Build Toolchain macOS Platform |
@swift-ci please smoke test |
Toolchain build had a strange error:
|
@swift-ci Please Build Toolchain macOS Platform |
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.
SILGen verification crash when no other async functions are called in a function body not marked as async when a for-await-in syntax is used. This corrects the diagnostics to ensure that the type check effects sees the proper async call that the for-await-in syntax infers.
for-await-in syntax was missing a diagnistic hint for inserting a try when the protocol conformance of the sequence shows a potential of throwing. (also there was a superfluous check for the nominal type in that type check (which was removed).
for-await-in syntax and for-try-await-in syntax did not infer async or throwing to closure constraints, both were added to properly identify the asyncy-ness/throwy-ness of the iteration.
Resolves:
rdar://73952786
rdar://73883058
rdar://73953266
rdar://73995416
rdar://74008250