Rollup merge of #90269 - woppopo:const_option_expect, r=yaahc

Make `Option::expect` unstably const

Tracking issue: #67441
This commit is contained in:
Matthias Krüger 2021-12-03 06:24:11 +01:00 committed by GitHub
commit 94cd0259f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -703,7 +703,8 @@ pub fn as_pin_mut(self: Pin<&mut Self>) -> Option<Pin<&mut T>> {
#[inline]
#[track_caller]
#[stable(feature = "rust1", since = "1.0.0")]
pub fn expect(self, msg: &str) -> T {
#[rustc_const_unstable(feature = "const_option", issue = "67441")]
pub const fn expect(self, msg: &str) -> T {
match self {
Some(val) => val,
None => expect_failed(msg),
@ -1658,7 +1659,7 @@ pub const fn transpose(self) -> Result<Option<T>, E> {
#[inline(never)]
#[cold]
#[track_caller]
fn expect_failed(msg: &str) -> ! {
const fn expect_failed(msg: &str) -> ! {
panic!("{}", msg)
}