]> git.lizzy.rs Git - rust.git/blob - tests/ui/large_enum_variant.rs
Auto merge of #3635 - matthiaskrgr:revert_random_state_3603, r=xfix
[rust.git] / tests / ui / large_enum_variant.rs
1 // Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution.
3 //
4 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7 // option. This file may not be copied, modified, or distributed
8 // except according to those terms.
9
10 #![allow(dead_code)]
11 #![allow(unused_variables)]
12 #![warn(clippy::large_enum_variant)]
13
14 enum LargeEnum {
15     A(i32),
16     B([i32; 8000]),
17 }
18
19 enum GenericEnumOk<T> {
20     A(i32),
21     B([T; 8000]),
22 }
23
24 enum GenericEnum2<T> {
25     A(i32),
26     B([i32; 8000]),
27     C(T, [i32; 8000]),
28 }
29
30 trait SomeTrait {
31     type Item;
32 }
33
34 enum LargeEnumGeneric<A: SomeTrait> {
35     Var(A::Item),
36 }
37
38 enum LargeEnum2 {
39     VariantOk(i32, u32),
40     ContainingLargeEnum(LargeEnum),
41 }
42 enum LargeEnum3 {
43     ContainingMoreThanOneField(i32, [i32; 8000], [i32; 9500]),
44     VoidVariant,
45     StructLikeLittle { x: i32, y: i32 },
46 }
47
48 enum LargeEnum4 {
49     VariantOk(i32, u32),
50     StructLikeLarge { x: [i32; 8000], y: i32 },
51 }
52
53 enum LargeEnum5 {
54     VariantOk(i32, u32),
55     StructLikeLarge2 { x: [i32; 8000] },
56 }
57
58 enum LargeEnumOk {
59     LargeA([i32; 8000]),
60     LargeB([i32; 8001]),
61 }
62
63 fn main() {}