]> git.lizzy.rs Git - rust.git/blob - tests/ui/large_enum_variant.rs
Merge pull request #3265 from mikerite/fix-export
[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
11 #![feature(tool_lints)]
12
13
14 #![allow(dead_code)]
15 #![allow(unused_variables)]
16 #![warn(clippy::large_enum_variant)]
17
18 enum LargeEnum {
19     A(i32),
20     B([i32; 8000]),
21 }
22
23 enum GenericEnumOk<T> {
24     A(i32),
25     B([T; 8000]),
26 }
27
28 enum GenericEnum2<T> {
29     A(i32),
30     B([i32; 8000]),
31     C(T, [i32; 8000]),
32 }
33
34 trait SomeTrait {
35     type Item;
36 }
37
38 enum LargeEnumGeneric<A: SomeTrait> {
39     Var(A::Item),
40 }
41
42 enum LargeEnum2 {
43     VariantOk(i32, u32),
44     ContainingLargeEnum(LargeEnum),
45 }
46 enum LargeEnum3 {
47     ContainingMoreThanOneField(i32, [i32; 8000], [i32; 9500]),
48     VoidVariant,
49     StructLikeLittle { x: i32, y: i32 },
50 }
51
52 enum LargeEnum4 {
53     VariantOk(i32, u32),
54     StructLikeLarge { x: [i32; 8000], y: i32 },
55 }
56
57 enum LargeEnum5 {
58     VariantOk(i32, u32),
59     StructLikeLarge2 { x: [i32; 8000] },
60 }
61
62 enum LargeEnumOk {
63     LargeA([i32; 8000]),
64     LargeB([i32; 8001]),
65 }
66
67 fn main() {}