From ff7f220a431e1405a791d865f84e98143fd8af0e Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Mon, 17 Jul 2017 14:49:19 +0200 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20create=20NonZero(0)=20in=20test?= =?UTF-8?q?/ui/print=5Ftype=5Fsizes/nullable.rs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/ui/print_type_sizes/nullable.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/test/ui/print_type_sizes/nullable.rs b/src/test/ui/print_type_sizes/nullable.rs index df5c53daf7e1..a8f07d8d9556 100644 --- a/src/test/ui/print_type_sizes/nullable.rs +++ b/src/test/ui/print_type_sizes/nullable.rs @@ -42,7 +42,7 @@ impl Default for EmbeddedDiscr { } #[derive(Default)] -pub struct IndirectNonZero { +pub struct IndirectNonZero { pre: u8, nested: NestedNonZero, post: u16, @@ -54,14 +54,22 @@ pub struct NestedNonZero { post: u16, } -impl Default for NestedNonZero { +impl Default for NestedNonZero { fn default() -> Self { unsafe { - NestedNonZero { pre: 0, val: NonZero::new_unchecked(Default::default()), post: 0 } + NestedNonZero { pre: 0, val: NonZero::new_unchecked(T::one()), post: 0 } } } } +pub trait One { + fn one() -> Self; +} + +impl One for u32 { + fn one() -> Self { 1 } +} + pub fn main() { let _x: MyOption> = Default::default(); let _y: EmbeddedDiscr = Default::default();