Auto merge of #126736 - matthiaskrgr:rollup-rb20oe3, r=matthiaskrgr · model-checking/verify-rust-std@b4e2e4a (original) (raw)
`@@ -797,7 +797,8 @@ impl Option {
`
797
797
`#[inline]
`
798
798
`#[must_use]
`
799
799
`#[stable(feature = "option_as_slice", since = "1.75.0")]
`
800
``
`-
pub fn as_slice(&self) -> &[T] {
`
``
800
`+
#[rustc_const_unstable(feature = "const_option_ext", issue = "91930")]
`
``
801
`+
pub const fn as_slice(&self) -> &[T] {
`
801
802
`` // SAFETY: When the Option
is Some
, we're using the actual pointer
``
802
803
`// to the payload, with a length of 1, so this is equivalent to
`
803
804
`` // slice::from_ref
, and thus is safe.
``
`@@ -811,7 +812,7 @@ impl Option {
`
811
812
`unsafe {
`
812
813
` slice::from_raw_parts(
`
813
814
`(self as *const Self).byte_add(core::mem::offset_of!(Self, Some.0)).cast(),
`
814
``
`-
usize::from(self.is_some()),
`
``
815
`+
self.is_some() as usize,
`
815
816
`)
`
816
817
`}
`
817
818
`}
`
`@@ -851,7 +852,8 @@ impl Option {
`
851
852
`#[inline]
`
852
853
`#[must_use]
`
853
854
`#[stable(feature = "option_as_slice", since = "1.75.0")]
`
854
``
`-
pub fn as_mut_slice(&mut self) -> &mut [T] {
`
``
855
`+
#[rustc_const_unstable(feature = "const_option_ext", issue = "91930")]
`
``
856
`+
pub const fn as_mut_slice(&mut self) -> &mut [T] {
`
855
857
`` // SAFETY: When the Option
is Some
, we're using the actual pointer
``
856
858
`// to the payload, with a length of 1, so this is equivalent to
`
857
859
`` // slice::from_mut
, and thus is safe.
``
`@@ -867,7 +869,7 @@ impl Option {
`
867
869
`unsafe {
`
868
870
` slice::from_raw_parts_mut(
`
869
871
`(self as *mut Self).byte_add(core::mem::offset_of!(Self, Some.0)).cast(),
`
870
``
`-
usize::from(self.is_some()),
`
``
872
`+
self.is_some() as usize,
`
871
873
`)
`
872
874
`}
`
873
875
`}
`