]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/large_enum_variant.rs
Auto merge of #8374 - Alexendoo:bless-revisions, r=camsteffen
[rust.git] / tests / ui / large_enum_variant.rs
index 26ba883b1baa6051c801d3af7ddb3ca1ea06725f..b45cc849eaec42b5796e35d196f55aee7d312e46 100644 (file)
@@ -1,15 +1,15 @@
-#![feature(plugin)]
-#![plugin(clippy)]
+// aux-build:macro_rules.rs
 
 #![allow(dead_code)]
 #![allow(unused_variables)]
-#![deny(large_enum_variant)]
+#![warn(clippy::large_enum_variant)]
+
+#[macro_use]
+extern crate macro_rules;
 
 enum LargeEnum {
     A(i32),
-    B([i32; 8000]), //~ ERROR large size difference between variants
-    //~^ HELP consider boxing the large fields to reduce the total size of the enum
-    //~| SUGGESTION Box<[i32; 8000]>
+    B([i32; 8000]),
 }
 
 enum GenericEnumOk<T> {
@@ -20,8 +20,7 @@ enum GenericEnumOk<T> {
 enum GenericEnum2<T> {
     A(i32),
     B([i32; 8000]),
-    C(T, [i32; 8000]), //~ ERROR large size difference between variants
-    //~^ HELP consider boxing the large fields to reduce the total size of the enum
+    C(T, [i32; 8000]),
 }
 
 trait SomeTrait {
@@ -29,35 +28,28 @@ trait SomeTrait {
 }
 
 enum LargeEnumGeneric<A: SomeTrait> {
-    Var(A::Item), // regression test, this used to ICE
+    Var(A::Item),
 }
 
 enum LargeEnum2 {
     VariantOk(i32, u32),
-    ContainingLargeEnum(LargeEnum), //~ ERROR large size difference between variants
-    //~^ HELP consider boxing the large fields to reduce the total size of the enum
-    //~| SUGGESTION Box<LargeEnum>
+    ContainingLargeEnum(LargeEnum),
 }
+
 enum LargeEnum3 {
-    ContainingMoreThanOneField(i32, [i32; 8000], [i32; 9500]), //~ ERROR large size difference between variants
-    //~^ HELP consider boxing the large fields to reduce the total size of the enum
+    ContainingMoreThanOneField(i32, [i32; 8000], [i32; 9500]),
     VoidVariant,
     StructLikeLittle { x: i32, y: i32 },
 }
 
 enum LargeEnum4 {
     VariantOk(i32, u32),
-    StructLikeLarge { x: [i32; 8000], y: i32 }, //~ ERROR large size difference between variants
-    //~^ HELP consider boxing the large fields to reduce the total size of the enum
+    StructLikeLarge { x: [i32; 8000], y: i32 },
 }
 
 enum LargeEnum5 {
     VariantOk(i32, u32),
-    StructLikeLarge2 { //~ ERROR large size difference between variants
-        x:
-        [i32; 8000] //~ SUGGESTION Box<[i32; 8000]>
-        //~^ HELP consider boxing the large fields to reduce the total size of the enum
-    },
+    StructLikeLarge2 { x: [i32; 8000] },
 }
 
 enum LargeEnumOk {
@@ -65,6 +57,23 @@ enum LargeEnumOk {
     LargeB([i32; 8001]),
 }
 
-fn main() {
+enum LargeEnum6 {
+    A,
+    B([u8; 255]),
+    C([u8; 200]),
+}
 
+enum LargeEnum7 {
+    A,
+    B([u8; 1255]),
+    C([u8; 200]),
+}
+
+enum LargeEnum8 {
+    VariantOk(i32, u32),
+    ContainingMoreThanOneField([i32; 8000], [i32; 2], [i32; 9500], [i32; 30]),
+}
+
+fn main() {
+    large_enum_variant!();
 }