-#![feature(plugin)]
-#![plugin(clippy)]
-
#![allow(dead_code)]
#![allow(unused_variables)]
-#![deny(large_enum_variant)]
+#![warn(clippy::large_enum_variant)]
enum LargeEnum {
A(i32),
- B([i32; 8000]), //~ ERROR large enum variant found
- //~^ HELP consider boxing the large fields to reduce the total size of the enum
- //~| SUGGESTION Box<[i32; 8000]>
+ B([i32; 8000]),
+}
+
+enum GenericEnumOk<T> {
+ A(i32),
+ B([T; 8000]),
}
-enum GenericEnum<T> {
+enum GenericEnum2<T> {
A(i32),
- B([i32; 8000]), //~ ERROR large enum variant found
- //~^ HELP consider boxing the large fields to reduce the total size of the enum
- //~| SUGGESTION Box<[i32; 8000]>
- C([T; 8000]),
- D(T, [i32; 8000]), //~ ERROR large enum variant found
- //~^ HELP consider boxing the large fields to reduce the total size of the enum
+ B([i32; 8000]),
+ C(T, [i32; 8000]),
}
trait SomeTrait {
}
enum LargeEnumGeneric<A: SomeTrait> {
- Var(A::Item), // regression test, this used to ICE
+ Var(A::Item),
}
-enum AnotherLargeEnum {
+enum LargeEnum2 {
VariantOk(i32, u32),
- ContainingLargeEnum(LargeEnum), //~ ERROR large enum variant found
- //~^ HELP consider boxing the large fields to reduce the total size of the enum
- //~| SUGGESTION Box<LargeEnum>
- ContainingMoreThanOneField(i32, [i32; 8000], [i32; 9500]), //~ ERROR large enum variant found
- //~^ HELP consider boxing the large fields to reduce the total size of the enum
+ ContainingLargeEnum(LargeEnum),
+}
+enum LargeEnum3 {
+ ContainingMoreThanOneField(i32, [i32; 8000], [i32; 9500]),
VoidVariant,
StructLikeLittle { x: i32, y: i32 },
- StructLikeLarge { x: [i32; 8000], y: i32 }, //~ ERROR large enum variant found
- //~^ HELP consider boxing the large fields to reduce the total size of the enum
- StructLikeLarge2 { //~ ERROR large enum variant found
- x:
- [i32; 8000] //~ SUGGESTION Box<[i32; 8000]>
- //~^ HELP consider boxing the large fields to reduce the total size of the enum
- },
}
-fn main() {
+enum LargeEnum4 {
+ VariantOk(i32, u32),
+ StructLikeLarge { x: [i32; 8000], y: i32 },
+}
+enum LargeEnum5 {
+ VariantOk(i32, u32),
+ StructLikeLarge2 { x: [i32; 8000] },
}
+
+enum LargeEnumOk {
+ LargeA([i32; 8000]),
+ LargeB([i32; 8001]),
+}
+
+fn main() {}