diff --git a/library/core/src/str/converts.rs b/library/core/src/str/converts.rs index 81b1db4ac6fed..b0c55ca4f5139 100644 --- a/library/core/src/str/converts.rs +++ b/library/core/src/str/converts.rs @@ -82,9 +82,10 @@ use super::Utf8Error; /// assert_eq!("💖", sparkle_heart); /// ``` #[stable(feature = "rust1", since = "1.0.0")] -#[rustc_const_unstable(feature = "const_str_from_utf8", issue = "91006")] +#[rustc_const_stable(feature = "const_str_from_utf8_shared", since = "1.63.0")] +#[rustc_allow_const_fn_unstable(str_internals)] pub const fn from_utf8(v: &[u8]) -> Result<&str, Utf8Error> { - // This should use `?` again, once it's `const` + // FIXME: This should use `?` again, once it's `const` match run_utf8_validation(v) { Ok(_) => { // SAFETY: validation succeeded. diff --git a/library/core/src/str/error.rs b/library/core/src/str/error.rs index a127dd57eee0e..4e569fcc866b6 100644 --- a/library/core/src/str/error.rs +++ b/library/core/src/str/error.rs @@ -72,7 +72,7 @@ impl Utf8Error { /// assert_eq!(1, error.valid_up_to()); /// ``` #[stable(feature = "utf8_error", since = "1.5.0")] - #[rustc_const_unstable(feature = "const_str_from_utf8", issue = "91006")] + #[rustc_const_stable(feature = "const_str_from_utf8_shared", since = "1.63.0")] #[must_use] #[inline] pub const fn valid_up_to(&self) -> usize { @@ -95,11 +95,11 @@ impl Utf8Error { /// /// [U+FFFD]: ../../std/char/constant.REPLACEMENT_CHARACTER.html #[stable(feature = "utf8_error_error_len", since = "1.20.0")] - #[rustc_const_unstable(feature = "const_str_from_utf8", issue = "91006")] + #[rustc_const_stable(feature = "const_str_from_utf8_shared", since = "1.63.0")] #[must_use] #[inline] pub const fn error_len(&self) -> Option { - // This should become `map` again, once it's `const` + // FIXME: This should become `map` again, once it's `const` match self.error_len { Some(len) => Some(len as usize), None => None,