Skip to content
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

Isolated conformances #2720

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

DougGregor
Copy link
Member

No description provided.

@xwu xwu self-assigned this Mar 4, 2025
@rjmccall rjmccall added the LSG Contains topics under the domain of the Language Steering Group label Mar 10, 2025
Instead of using `isolated P` for an isolated conformance, we could
use the global actor spelling. Document it.
This was rewritten and moved in an earlier iteration.
I've gotten a bunch of feedback that `isolated P` is confusing, and
`@MainActor P` is both clearer and more extensible. Rework the proposal
to use this new syntax, and bring in a few future directions that
are enabled by it.
This was in future work, but make this an official part of the proposal
now that SE-0466 is in review.
The proposed solution describes the basic shape of isolated conformances and how they interact with the type system. This section goes into more detail on the data-race safety issues that arise from the introduction of isolated conformances into the language. Then it details three rules that, together, ensure freedom from data race safety issues in the presence of isolated conformances:

1. An isolated conformance can only be used within its isolation domain.
2. When an isolated conformance is used to satisfy a generic constraint `T: P`, the generic signature must not include either of the following constraints: `T: Sendable` or `T.Type: Sendable`.
Copy link
Member

Choose a reason for hiding this comment

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

I think this is leftover from an earlier iteration that used T.Type: Sendable rather than T: SendableMetatype

Suggested change
2. When an isolated conformance is used to satisfy a generic constraint `T: P`, the generic signature must not include either of the following constraints: `T: Sendable` or `T.Type: Sendable`.
2. When an isolated conformance is used to satisfy a generic constraint `T: P`, the generic signature must not include either of the following constraints: `T: Sendable` or `T: SendableMetatype`.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
LSG Contains topics under the domain of the Language Steering Group
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants