Skip to content

Commit ff7f220

Browse files
committed
Don’t create NonZero(0) in test/ui/print_type_sizes/nullable.rs
1 parent f732911 commit ff7f220

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/test/ui/print_type_sizes/nullable.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ impl Default for EmbeddedDiscr {
4242
}
4343

4444
#[derive(Default)]
45-
pub struct IndirectNonZero<T: Zeroable> {
45+
pub struct IndirectNonZero<T: Zeroable + One> {
4646
pre: u8,
4747
nested: NestedNonZero<T>,
4848
post: u16,
@@ -54,14 +54,22 @@ pub struct NestedNonZero<T: Zeroable> {
5454
post: u16,
5555
}
5656

57-
impl<T: Zeroable+Default> Default for NestedNonZero<T> {
57+
impl<T: Zeroable+One> Default for NestedNonZero<T> {
5858
fn default() -> Self {
5959
unsafe {
60-
NestedNonZero { pre: 0, val: NonZero::new_unchecked(Default::default()), post: 0 }
60+
NestedNonZero { pre: 0, val: NonZero::new_unchecked(T::one()), post: 0 }
6161
}
6262
}
6363
}
6464

65+
pub trait One {
66+
fn one() -> Self;
67+
}
68+
69+
impl One for u32 {
70+
fn one() -> Self { 1 }
71+
}
72+
6573
pub fn main() {
6674
let _x: MyOption<NonZero<u32>> = Default::default();
6775
let _y: EmbeddedDiscr = Default::default();

0 commit comments

Comments
 (0)