str: make as_mut_ptr and as_bytes_mut unstably const ยท qinheping/verify-rust-std@3a53537
@@ -338,9 +338,10 @@ impl str {
338338 /// assert_eq!("๐โ๐", s);
339339 /// ```
340340 #[stable(feature = "str_mut_extras", since = "1.20.0")]
341+#[rustc_const_unstable(feature = "const_str_as_mut", issue = "130086")]
341342#[must_use]
342343#[inline(always)]
343-pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8] {
344+pub const unsafe fn as_bytes_mut(&mut self) -> &mut [u8] {
344345// SAFETY: the cast from `&str` to `&[u8]` is safe since `str`
345346// has the same layout as `&[u8]` (only std can make this guarantee).
346347// The pointer dereference is safe since it comes from a mutable reference which
@@ -383,10 +384,11 @@ impl str {
383384 /// It is your responsibility to make sure that the string slice only gets
384385 /// modified in a way that it remains valid UTF-8.
385386 #[stable(feature = "str_as_mut_ptr", since = "1.36.0")]
387+#[rustc_const_unstable(feature = "const_str_as_mut", issue = "130086")]
386388#[rustc_never_returns_null_ptr]
387389#[must_use]
388390#[inline(always)]
389-pub fn as_mut_ptr(&mut self) -> *mut u8 {
391+pub const fn as_mut_ptr(&mut self) -> *mut u8 {
390392self as *mut str as *mut u8
391393}
392394