]> git.lizzy.rs Git - rust.git/blob - src/test/ui/enum/enum-size-variance.rs
Rollup merge of #100479 - compiler-errors:argument-type-error-improvements, r=lcnr
[rust.git] / src / test / ui / enum / enum-size-variance.rs
1 // run-pass
2
3 #![warn(variant_size_differences)]
4 #![allow(dead_code)]
5
6 // Note that the following test works because all fields of the enum variants are of the same size.
7 // If this test is modified and the reordering logic in librustc/ty/layout.rs kicks in, it fails.
8
9 enum Enum1 { }
10
11 enum Enum2 { A, B, C }
12
13 enum Enum3 { D(i64), E, F }
14
15 enum Enum4 { H(i64), I(i64), J }
16
17 enum Enum5 {
18     L(i64, i64, i64, i64), //~ WARNING three times larger
19     M(i64),
20     N
21 }
22
23 enum Enum6<T, U> {
24     O(T),
25     P(U),
26     Q(i64)
27 }
28
29 #[allow(variant_size_differences)]
30 enum Enum7 {
31     R(i64, i64, i64, i64),
32     S(i64),
33     T
34 }
35 pub fn main() { }