error: fields `1`, `2`, `3`, and `4` are never read
  --> $DIR/tuple-struct-field.rs:8:28
   |
LL | struct UnusedAtTheEnd(i32, f32, [u8; LEN], String, u8);
   |        --------------      ^^^  ^^^^^^^^^  ^^^^^^  ^^
   |        |
   |        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)]
   |         ^^^^^^^^^

error: field `0` is never read
  --> $DIR/tuple-struct-field.rs:13:27
   |
LL | struct UnusedJustOneField(i32);
   |        ------------------ ^^^
   |        |
   |        field in this struct
   |
   = help: consider removing this field

error: fields `1`, `2`, and `4` are never read
  --> $DIR/tuple-struct-field.rs:18:31
   |
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 UnusedInTheMiddle(i32, (), (), u8, ());
   |                               ~~  ~~      ~~

error: aborting due to 3 previous errors

