about summary refs log tree commit diff
path: root/library/alloc/src
diff options
context:
space:
mode:
authorTrevor Gross <t.gross35@gmail.com>2024-10-12 21:38:35 -0500
committerGitHub <noreply@github.com>2024-10-12 21:38:35 -0500
commitc8b2f7e458a23511ec6bcdac5c88faed2034b81b (patch)
tree6074ce8be99f67853e2807b26d59e3d0beb728eb /library/alloc/src
parentef4e8259b5016d85e261587b605028b2ff06c13d (diff)
parent19f6c17df486c5f70c1000ecada39c62b9c93550 (diff)
downloadrust-c8b2f7e458a23511ec6bcdac5c88faed2034b81b.tar.gz
rust-c8b2f7e458a23511ec6bcdac5c88faed2034b81b.zip
Rollup merge of #131120 - tgross35:stabilize-const_option, r=RalfJung
Stabilize `const_option`

This makes the following API stable in const contexts:

```rust
impl<T> Option<T> {
    pub const fn as_mut(&mut self) -> Option<&mut T>;
    pub const fn expect(self, msg: &str) -> T;
    pub const fn unwrap(self) -> T;
    pub const unsafe fn unwrap_unchecked(self) -> T;
    pub const fn take(&mut self) -> Option<T>;
    pub const fn replace(&mut self, value: T) -> Option<T>;
}

impl<T> Option<&T> {
    pub const fn copied(self) -> Option<T>
    where T: Copy;
}

impl<T> Option<&mut T> {
    pub const fn copied(self) -> Option<T>
    where T: Copy;
}

impl<T, E> Option<Result<T, E>> {
    pub const fn transpose(self) -> Result<Option<T>, E>
}

impl<T> Option<Option<T>> {
    pub const fn flatten(self) -> Option<T>;
}
```

The following functions make use of the unstable `const_precise_live_drops` feature:

- `expect`
- `unwrap`
- `unwrap_unchecked`
- `transpose`
- `flatten`

Fixes: <https://github.com/rust-lang/rust/issues/67441>
Diffstat (limited to 'library/alloc/src')
-rw-r--r--library/alloc/src/lib.rs1
1 files changed, 0 insertions, 1 deletions
diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs
index 72b3dda1c26..50bf385d671 100644
--- a/library/alloc/src/lib.rs
+++ b/library/alloc/src/lib.rs
@@ -111,7 +111,6 @@
 #![feature(const_eval_select)]
 #![feature(const_heap)]
 #![feature(const_maybe_uninit_write)]
-#![feature(const_option)]
 #![feature(const_pin)]
 #![feature(const_size_of_val)]
 #![feature(const_vec_string_slice)]