about summary refs log tree commit diff
path: root/tests/ui/lint/dead-code
diff options
context:
space:
mode:
authorGurinder Singh <gurinder.singh@1e.com>2024-05-13 17:42:44 +0530
committerGurinder Singh <gurinder.singh@1e.com>2024-05-13 17:42:44 +0530
commit012a458dcabc6438ee070c074435860690475370 (patch)
tree995648199b7d2caf21a1a0d78e6486a2f8ef9f70 /tests/ui/lint/dead-code
parent47314eb427e1a9fb4f347cbeb44729486b6dbf53 (diff)
downloadrust-012a458dcabc6438ee070c074435860690475370.tar.gz
rust-012a458dcabc6438ee070c074435860690475370.zip
Suggest removing unused tuple fields if they are the last fields
Diffstat (limited to 'tests/ui/lint/dead-code')
-rw-r--r--tests/ui/lint/dead-code/tuple-struct-field.rs31
-rw-r--r--tests/ui/lint/dead-code/tuple-struct-field.stderr37
2 files changed, 42 insertions, 26 deletions
diff --git a/tests/ui/lint/dead-code/tuple-struct-field.rs b/tests/ui/lint/dead-code/tuple-struct-field.rs
index d13fe029289..ff3da410500 100644
--- a/tests/ui/lint/dead-code/tuple-struct-field.rs
+++ b/tests/ui/lint/dead-code/tuple-struct-field.rs
@@ -5,15 +5,20 @@ use std::marker::PhantomData;
 
 const LEN: usize = 4;
 
-struct SingleUnused(i32, [u8; LEN], String);
-//~^ ERROR: field `1` is never read
+struct UnusedAtTheEnd(i32, f32, [u8; LEN], String, u8);
+//~^ ERROR:fields `1`, `2`, `3`, and `4` are never read
+//~| NOTE: fields in this struct
+//~| HELP: consider removing these fields
+
+struct UnusedJustOneField(i32);
+//~^ ERROR: field `0` is never read
 //~| NOTE: field in this struct
-//~| HELP: consider changing the field to be of unit type
+//~| HELP: consider removing this field
 
-struct MultipleUnused(i32, f32, String, u8);
-//~^ ERROR: fields `0`, `1`, `2`, and `3` are never read
+struct UnusedInTheMiddle(i32, f32, String, u8, u32);
+//~^ ERROR: fields `1`, `2`, and `4` are never read
 //~| NOTE: fields in this struct
-//~| HELP: consider changing the fields to be of unit type
+//~| HELP: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
 
 struct GoodUnit(());
 
@@ -23,15 +28,19 @@ struct Void;
 struct GoodVoid(Void);
 
 fn main() {
-    let w = SingleUnused(42, [0, 1, 2, 3], "abc".to_string());
-    let _ = w.0;
-    let _ = w.2;
+    let u1 = UnusedAtTheEnd(42, 3.14, [0, 1, 2, 3], "def".to_string(), 4u8);
+    let _ = u1.0;
+
+    let _ = UnusedJustOneField(42);
+
+    let u2 = UnusedInTheMiddle(42, 3.14, "def".to_string(), 4u8, 5);
+    let _ = u2.0;
+    let _ = u2.3;
 
-    let m = MultipleUnused(42, 3.14, "def".to_string(), 4u8);
 
     let gu = GoodUnit(());
     let gp = GoodPhantom(PhantomData);
     let gv = GoodVoid(Void);
 
-    let _ = (gu, gp, gv, m);
+    let _ = (gu, gp, gv);
 }
diff --git a/tests/ui/lint/dead-code/tuple-struct-field.stderr b/tests/ui/lint/dead-code/tuple-struct-field.stderr
index 0154d5489f9..434554d7ae5 100644
--- a/tests/ui/lint/dead-code/tuple-struct-field.stderr
+++ b/tests/ui/lint/dead-code/tuple-struct-field.stderr
@@ -1,33 +1,40 @@
-error: field `1` is never read
-  --> $DIR/tuple-struct-field.rs:8:26
+error: fields `1`, `2`, `3`, and `4` are never read
+  --> $DIR/tuple-struct-field.rs:8:28
    |
-LL | struct SingleUnused(i32, [u8; LEN], String);
-   |        ------------      ^^^^^^^^^
+LL | struct UnusedAtTheEnd(i32, f32, [u8; LEN], String, u8);
+   |        --------------      ^^^  ^^^^^^^^^  ^^^^^^  ^^
    |        |
-   |        field in this struct
+   |        fields in this struct
    |
+   = help: consider removing these fields
 note: the lint level is defined here
   --> $DIR/tuple-struct-field.rs:1:9
    |
 LL | #![deny(dead_code)]
    |         ^^^^^^^^^
-help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
+
+error: field `0` is never read
+  --> $DIR/tuple-struct-field.rs:13:27
+   |
+LL | struct UnusedJustOneField(i32);
+   |        ------------------ ^^^
+   |        |
+   |        field in this struct
    |
-LL | struct SingleUnused(i32, (), String);
-   |                          ~~
+   = help: consider removing this field
 
-error: fields `0`, `1`, `2`, and `3` are never read
-  --> $DIR/tuple-struct-field.rs:13:23
+error: fields `1`, `2`, and `4` are never read
+  --> $DIR/tuple-struct-field.rs:18:31
    |
-LL | struct MultipleUnused(i32, f32, String, u8);
-   |        -------------- ^^^  ^^^  ^^^^^^  ^^
+LL | struct UnusedInTheMiddle(i32, f32, String, u8, u32);
+   |        -----------------      ^^^  ^^^^^^      ^^^
    |        |
    |        fields in this struct
    |
 help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
    |
-LL | struct MultipleUnused((), (), (), ());
-   |                       ~~  ~~  ~~  ~~
+LL | struct UnusedInTheMiddle(i32, (), (), u8, ());
+   |                               ~~  ~~      ~~
 
-error: aborting due to 2 previous errors
+error: aborting due to 3 previous errors