mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
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.
This commit is contained in:
commit
69aa41b000
@ -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()),*]
|
||||
}
|
||||
|
@ -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},)+)
|
||||
|
Loading…
Reference in New Issue
Block a user