Rollup merge of #90162 - WaffleLapkin:const_array_slice_from_ref_mut, r=oli-obk
Mark `{array, slice}::{from_ref, from_mut}` as const fn This PR marks the following APIs as `const`: ```rust // core::array pub const fn from_ref<T>(s: &T) -> &[T; 1]; pub const fn from_mut<T>(s: &mut T) -> &mut [T; 1]; // core::slice pub const fn from_ref<T>(s: &T) -> &[T]; pub const fn from_mut<T>(s: &mut T) -> &mut [T]; ``` Note that `from_ref` methods require `const_raw_ptr_deref` feature (which seems totally fine, since it's being stabilized, see #89551), `from_mut` methods require `const_mut_refs` (which seems fine too since this PR marks `from_mut` functions as const unstable). r? ````@oli-obk````
This commit is contained in:
commit
c16ee19dd4
6 changed files with 25 additions and 4 deletions
|
@ -7,6 +7,11 @@ fn array_from_ref() {
|
|||
let value: String = "Hello World!".into();
|
||||
let arr: &[String; 1] = array::from_ref(&value);
|
||||
assert_eq!(&[value.clone()], arr);
|
||||
|
||||
const VALUE: &&str = &"Hello World!";
|
||||
const ARR: &[&str; 1] = array::from_ref(VALUE);
|
||||
assert_eq!(&[*VALUE], ARR);
|
||||
assert!(core::ptr::eq(VALUE, &ARR[0]));
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue