Skip to content

Commit 6af0259

Browse files
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 editing
1 parent 28c163d commit 6af0259

File tree

1 file changed

+892
-0
lines changed

1 file changed

+892
-0
lines changed

0 commit comments

Comments
 (0)