Skip to content

[6.2][SwiftParser] Implement nonisolated(nonsending) specifier #3055

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 7 commits into from
Apr 17, 2025

Conversation

xedin
Copy link
Contributor

@xedin xedin commented Apr 15, 2025

  • Explanation:

    This is part of SE-0461 proposal where nonisolated has to be
    marked as nonsending in type context to indicate that the
    function type it's attached to is caller isolated.

  • Main Branch PR: [SwiftParser] Implement nonisolated(nonsending) specifier #3047

  • Risk: Low (The only risk here is related to nonisolated keyword expansion to accept nonsending modifier, this could cause a source break if there exists a function which such a name an an argument with name nonsending, which seems like a very low probability).

  • Reviewed By: @hamishknight @ahoppen @bnbarham

  • Testing: Added new tests to the test suite.

xedin added 7 commits April 15, 2025 00:11
…ng` argument

This is part of SE-0461 proposal where `nonisolated` has to be
marked as `nonsending` in type context to indicate that the
function type it's attached to is caller isolated.
…suming '('

It's possible that `(nonsending)` was omitted and instead we are
at the parameter list of a function type. Checking ahead allows
for a better diagnostics and recovery.
…odifiers while skipping

Otherwise in situations like `nonisolated()` `canParseType` would
return `true` because `()` is valid type.
@xedin
Copy link
Contributor Author

xedin commented Apr 15, 2025

swiftlang/swift#80807
@swift-ci please test

@xedin xedin merged commit 71e6dc8 into swiftlang:release/6.2 Apr 17, 2025
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants