diff options
| author | bors <bors@rust-lang.org> | 2021-10-24 14:12:10 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-10-24 14:12:10 +0000 |
| commit | 00d5e42e776da900049fe19087bc9b0057ec70cd (patch) | |
| tree | f168b0920764af97f372d7faa608611cd3f09f79 /library/core/src | |
| parent | ed08a67566d7d1d9dd2ad928ff21c23e841a4345 (diff) | |
| parent | eee29fd34c9fdc9afddfc3108d8e36199854f0b3 (diff) | |
| download | rust-00d5e42e776da900049fe19087bc9b0057ec70cd.tar.gz rust-00d5e42e776da900049fe19087bc9b0057ec70cd.zip | |
Auto merge of #90235 - matthiaskrgr:rollup-7pqtevk, r=matthiaskrgr
Rollup of 6 pull requests
Successful merges:
- #89558 (Add rustc lint, warning when iterating over hashmaps)
- #90100 (Skip documentation for tier 2 targets on dist-x86_64-apple-darwin)
- #90155 (Fix alignment of method headings for scannability)
- #90162 (Mark `{array, slice}::{from_ref, from_mut}` as const fn)
- #90221 (Fix ICE when forgetting to `Box` a parameter to a `Self::func` call)
- #90234 (Temporarily turn overflow checks off for rustc-rayon-core)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'library/core/src')
| -rw-r--r-- | library/core/src/array/mod.rs | 6 | ||||
| -rw-r--r-- | library/core/src/lib.rs | 2 | ||||
| -rw-r--r-- | library/core/src/slice/raw.rs | 6 |
3 files changed, 10 insertions, 4 deletions
diff --git a/library/core/src/array/mod.rs b/library/core/src/array/mod.rs index 73340fda2cb..811850af367 100644 --- a/library/core/src/array/mod.rs +++ b/library/core/src/array/mod.rs @@ -85,14 +85,16 @@ where /// Converts a reference to `T` into a reference to an array of length 1 (without copying). #[stable(feature = "array_from_ref", since = "1.53.0")] -pub fn from_ref<T>(s: &T) -> &[T; 1] { +#[rustc_const_unstable(feature = "const_array_from_ref", issue = "90206")] +pub const fn from_ref<T>(s: &T) -> &[T; 1] { // SAFETY: Converting `&T` to `&[T; 1]` is sound. unsafe { &*(s as *const T).cast::<[T; 1]>() } } /// Converts a mutable reference to `T` into a mutable reference to an array of length 1 (without copying). #[stable(feature = "array_from_ref", since = "1.53.0")] -pub fn from_mut<T>(s: &mut T) -> &mut [T; 1] { +#[rustc_const_unstable(feature = "const_array_from_ref", issue = "90206")] +pub const fn from_mut<T>(s: &mut T) -> &mut [T; 1] { // SAFETY: Converting `&mut T` to `&mut [T; 1]` is sound. unsafe { &mut *(s as *mut T).cast::<[T; 1]>() } } diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index 58a170401e7..63c42068aad 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -136,6 +136,8 @@ #![feature(ptr_metadata)] #![feature(slice_ptr_get)] #![feature(variant_count)] +#![feature(const_array_from_ref)] +#![feature(const_slice_from_ref)] // // Language features: #![feature(abi_unadjusted)] diff --git a/library/core/src/slice/raw.rs b/library/core/src/slice/raw.rs index eda50dc287f..ad38aaf9f83 100644 --- a/library/core/src/slice/raw.rs +++ b/library/core/src/slice/raw.rs @@ -138,12 +138,14 @@ pub unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T] /// Converts a reference to T into a slice of length 1 (without copying). #[stable(feature = "from_ref", since = "1.28.0")] -pub fn from_ref<T>(s: &T) -> &[T] { +#[rustc_const_unstable(feature = "const_slice_from_ref", issue = "90206")] +pub const fn from_ref<T>(s: &T) -> &[T] { array::from_ref(s) } /// Converts a reference to T into a slice of length 1 (without copying). #[stable(feature = "from_ref", since = "1.28.0")] -pub fn from_mut<T>(s: &mut T) -> &mut [T] { +#[rustc_const_unstable(feature = "const_slice_from_ref", issue = "90206")] +pub const fn from_mut<T>(s: &mut T) -> &mut [T] { array::from_mut(s) } |
