diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs index 590f4e46c1d2f..114e11873da3f 100644 --- a/src/libcore/lib.rs +++ b/src/libcore/lib.rs @@ -74,8 +74,10 @@ #![feature(const_if_match)] #![feature(const_panic)] #![feature(const_fn_union)] +#![feature(const_if_match)] #![feature(const_generics)] #![feature(const_ptr_offset_from)] +#![feature(const_result)] #![feature(const_type_name)] #![feature(custom_inner_attributes)] #![feature(decl_macro)] diff --git a/src/libcore/result.rs b/src/libcore/result.rs index 5628658c5bdf5..5cfc81097dd44 100644 --- a/src/libcore/result.rs +++ b/src/libcore/result.rs @@ -278,9 +278,10 @@ impl Result { /// assert_eq!(x.is_ok(), false); /// ``` #[must_use = "if you intended to assert that this is ok, consider `.unwrap()` instead"] + #[rustc_const_unstable(feature = "const_result", issue = "67520")] #[inline] #[stable(feature = "rust1", since = "1.0.0")] - pub fn is_ok(&self) -> bool { + pub const fn is_ok(&self) -> bool { match *self { Ok(_) => true, Err(_) => false, @@ -303,9 +304,10 @@ impl Result { /// assert_eq!(x.is_err(), true); /// ``` #[must_use = "if you intended to assert that this is err, consider `.unwrap_err()` instead"] + #[rustc_const_unstable(feature = "const_result", issue = "67520")] #[inline] #[stable(feature = "rust1", since = "1.0.0")] - pub fn is_err(&self) -> bool { + pub const fn is_err(&self) -> bool { !self.is_ok() } @@ -446,8 +448,9 @@ impl Result { /// assert_eq!(x.as_ref(), Err(&"Error")); /// ``` #[inline] + #[rustc_const_unstable(feature = "const_result", issue = "67520")] #[stable(feature = "rust1", since = "1.0.0")] - pub fn as_ref(&self) -> Result<&T, &E> { + pub const fn as_ref(&self) -> Result<&T, &E> { match *self { Ok(ref x) => Ok(x), Err(ref x) => Err(x),