summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui-toml/enum_variant_size
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui-toml/enum_variant_size')
-rw-r--r--src/tools/clippy/tests/ui-toml/enum_variant_size/clippy.toml1
-rw-r--r--src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.fixed11
-rw-r--r--src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.rs11
-rw-r--r--src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.stderr21
4 files changed, 44 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui-toml/enum_variant_size/clippy.toml b/src/tools/clippy/tests/ui-toml/enum_variant_size/clippy.toml
new file mode 100644
index 000000000..64a8017fe
--- /dev/null
+++ b/src/tools/clippy/tests/ui-toml/enum_variant_size/clippy.toml
@@ -0,0 +1 @@
+enum-variant-size-threshold = 500
diff --git a/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.fixed b/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.fixed
new file mode 100644
index 000000000..9ae760ae4
--- /dev/null
+++ b/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.fixed
@@ -0,0 +1,11 @@
+enum Fine {
+ A(()),
+ B([u8; 500]),
+}
+enum Bad {
+ //~^ ERROR: large size difference between variants
+ A(()),
+ B(Box<[u8; 501]>),
+}
+
+fn main() {}
diff --git a/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.rs b/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.rs
new file mode 100644
index 000000000..cf7f432bf
--- /dev/null
+++ b/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.rs
@@ -0,0 +1,11 @@
+enum Fine {
+ A(()),
+ B([u8; 500]),
+}
+enum Bad {
+ //~^ ERROR: large size difference between variants
+ A(()),
+ B([u8; 501]),
+}
+
+fn main() {}
diff --git a/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.stderr b/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.stderr
new file mode 100644
index 000000000..4d9bc9d48
--- /dev/null
+++ b/src/tools/clippy/tests/ui-toml/enum_variant_size/enum_variant_size.stderr
@@ -0,0 +1,21 @@
+error: large size difference between variants
+ --> $DIR/enum_variant_size.rs:5:1
+ |
+LL | / enum Bad {
+LL | |
+LL | | A(()),
+ | | ----- the second-largest variant contains at least 0 bytes
+LL | | B([u8; 501]),
+ | | ------------ the largest variant contains at least 501 bytes
+LL | | }
+ | |_^ the entire enum is at least 502 bytes
+ |
+ = note: `-D clippy::large-enum-variant` implied by `-D warnings`
+ = help: to override `-D warnings` add `#[allow(clippy::large_enum_variant)]`
+help: consider boxing the large fields to reduce the total size of the enum
+ |
+LL | B(Box<[u8; 501]>),
+ | ~~~~~~~~~~~~~~
+
+error: aborting due to previous error
+