summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui-toml/enum_variant_size
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 18:31:44 +0000
commitc23a457e72abe608715ac76f076f47dc42af07a5 (patch)
tree2772049aaf84b5c9d0ed12ec8d86812f7a7904b6 /src/tools/clippy/tests/ui-toml/enum_variant_size
parentReleasing progress-linux version 1.73.0+dfsg1-1~progress7.99u1. (diff)
downloadrustc-c23a457e72abe608715ac76f076f47dc42af07a5.tar.xz
rustc-c23a457e72abe608715ac76f076f47dc42af07a5.zip
Merging upstream version 1.74.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
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
+