-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit 6af0259
authored
Nonescapable stdlib primitives (#2657)
* Initial version of the pitch text
* Proofreading edits
* Resolve FIXMEs that I left in by accident
* Add link to forum pitch; update TOC
* Dedupe sections on lifetime management
* Remove unsafeBitCast generalization for now
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.
* Reword section on ObjectIdentifier; add note on ==/!= operators over metatypes
* Add metatype comparisons; take back Optional.unsafelyUnwrapped; minor 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
* One more round of updates
- Correct number of SE-0437 (!)
- Provisionally reintroduce `Optional.unsafelyUnwrapped`. (We trust the interop issue can be fixed soon.)
- Add explicit sections in Detailed Design describing inferred lifetime semantics for enum operations
- Reword the introduction of infinite lifetimes
- More copy editing1 parent 28c163d commit 6af0259Copy full SHA for 6af0259
File tree
1 file changed
+892
-0
lines changedFilter options
- proposals
1 file changed
+892
-0
lines changed
0 commit comments