diff options
| author | fee1-dead <ent3rm4n@gmail.com> | 2022-09-25 22:06:40 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-25 22:06:40 +0800 |
| commit | 69aa41b000dacbc4f73a2cfdcbc7e1a8a14e03ca (patch) | |
| tree | 8c78da16e7a1a191aee35559d1016f70af9faec4 | |
| parent | b7d9de72ac8834357224216e7a5b84d7894b57c9 (diff) | |
| parent | 449326aaad21ad6e0d104d506d6d1e197e6b9719 (diff) | |
| download | rust-69aa41b000dacbc4f73a2cfdcbc7e1a8a14e03ca.tar.gz rust-69aa41b000dacbc4f73a2cfdcbc7e1a8a14e03ca.zip | |
Rollup merge of #102200 - ink-feather-org:const_default_impls, r=fee1-dead
Constify Default impl's for Arrays and Tuples. Allows to create arrays and tuples in const Context using the ~const Default implementation of the inner type.
| -rw-r--r-- | library/core/src/array/mod.rs | 3 | ||||
| -rw-r--r-- | library/core/src/tuple.rs | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/library/core/src/array/mod.rs b/library/core/src/array/mod.rs index 165b9d24d93..36e89a95fd2 100644 --- a/library/core/src/array/mod.rs +++ b/library/core/src/array/mod.rs @@ -434,7 +434,8 @@ impl<T: Copy> SpecArrayClone for T { macro_rules! array_impl_default { {$n:expr, $t:ident $($ts:ident)*} => { #[stable(since = "1.4.0", feature = "array_default")] - impl<T> Default for [T; $n] where T: Default { + #[rustc_const_unstable(feature = "const_default_impls", issue = "87864")] + impl<T> const Default for [T; $n] where T: ~const Default { fn default() -> [T; $n] { [$t::default(), $($ts::default()),*] } diff --git a/library/core/src/tuple.rs b/library/core/src/tuple.rs index aa8a2425bf4..fc91fe468cc 100644 --- a/library/core/src/tuple.rs +++ b/library/core/src/tuple.rs @@ -93,7 +93,8 @@ macro_rules! tuple_impls { maybe_tuple_doc! { $($T)+ @ #[stable(feature = "rust1", since = "1.0.0")] - impl<$($T:Default),+> Default for ($($T,)+) { + #[rustc_const_unstable(feature = "const_default_impls", issue = "87864")] + impl<$($T: ~const Default),+> const Default for ($($T,)+) { #[inline] fn default() -> ($($T,)+) { ($({ let x: $T = Default::default(); x},)+) |
