Skip to content

[6.2][concurrency] Implement protocol witness thunking in SILGen for @execution(caller)/@execution(concurrent). #80748

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 1 commit into from
Apr 16, 2025

Conversation

gottesmm
Copy link
Contributor

@gottesmm gottesmm commented Apr 10, 2025

Explanation: This involved cleaning up and generalizing the work from f245389. I followed the same approach: hide the implicit parameter while we run things through translateArgument and friends and then put it back in manually.
Scope: Affects pattern matching
Issue: rdar://148785846
Original PR: #80622
Risk: Low. Very targeted tweak to protocol witness thunking. We avoided changing the large machinery that is used for processing generalized parameters and instead did manual adjustment to insert/remove the value as appropriate.
Testing: Added tests to test suite
Reviewer: @xedin @rjmccall

…ution(caller)/@execution(concurrent).

This involved cleaning up and generalizing the work from
f245389. I followed the same approach: hide the
implicit parameter while we run things through translateArgument and friends and
then put it back in manually.

As an additional benefit, I think I found a good place to put FunctionIsolation
onto lowered AnyFunctionTypes that will not cause cycles in the evaluator since
it is done in TypeLowering.

rdar://148785846
(cherry picked from commit 04b845c)
@gottesmm gottesmm requested a review from a team as a code owner April 10, 2025 22:38
@gottesmm
Copy link
Contributor Author

@swift-ci test

@gottesmm gottesmm changed the title [concurrency] Implement protocol witness thunking in SILGen for @execution(caller)/@execution(concurrent). [6.2][concurrency] Implement protocol witness thunking in SILGen for @execution(caller)/@execution(concurrent). Apr 10, 2025
Copy link
Contributor

@rjmccall rjmccall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like how this works out, thanks!

@gottesmm gottesmm merged commit b7d9f0f into swiftlang:release/6.2 Apr 16, 2025
5 checks passed
@gottesmm gottesmm deleted the release/6.2-148785846 branch April 16, 2025 16:31
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.

3 participants