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

Nonescapable stdlib primitives #2657

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

Conversation

lorentey
Copy link
Member

This document proposes to allow Optional and Result to hold instances of nonescapable types, and continues the work of adding support for noncopyable and nonescapable types throughout the Swift Standard Library.

The proposed variant is much too limited, and it also introduces a new axis of unsafety that may better be expressed with dedicated API.

We do not see any _immediate_ need for bit casting between escapable/nonescapable types, so it seems we can safely defer this work.
@lorentey lorentey marked this pull request as ready for review February 13, 2025 00:13
@rjmccall rjmccall added the LSG Contains topics under the domain of the Language Steering Group label Feb 24, 2025
… edits

- Add generalizations for `==`/`!=` over existential metatypes
- Update ObjectIdentifier.init to use the right definition now that it works
- Take out the generalization of `Optional.unsafelyUnwrapped` due to issues with C++ interop. (I expect we’ll fix this in the next proposal in this series.)
- Add explicit (illustrative) attributes to describe the lifetime semantics of generalized API.
- General copy editing
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