File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed
src/test/ui/print_type_sizes Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ impl Default for EmbeddedDiscr {
42
42
}
43
43
44
44
#[ derive( Default ) ]
45
- pub struct IndirectNonZero < T : Zeroable > {
45
+ pub struct IndirectNonZero < T : Zeroable + One > {
46
46
pre : u8 ,
47
47
nested : NestedNonZero < T > ,
48
48
post : u16 ,
@@ -54,14 +54,22 @@ pub struct NestedNonZero<T: Zeroable> {
54
54
post : u16 ,
55
55
}
56
56
57
- impl < T : Zeroable +Default > Default for NestedNonZero < T > {
57
+ impl < T : Zeroable +One > Default for NestedNonZero < T > {
58
58
fn default ( ) -> Self {
59
59
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 }
61
61
}
62
62
}
63
63
}
64
64
65
+ pub trait One {
66
+ fn one ( ) -> Self ;
67
+ }
68
+
69
+ impl One for u32 {
70
+ fn one ( ) -> Self { 1 }
71
+ }
72
+
65
73
pub fn main ( ) {
66
74
let _x: MyOption < NonZero < u32 > > = Default :: default ( ) ;
67
75
let _y: EmbeddedDiscr = Default :: default ( ) ;
You can’t perform that action at this time.
0 commit comments