| // Unused `pub` fields in non-`pub` structs should also trigger dead code warnings. | |
| //@ check-pass | |
| #![warn(dead_code)] | |
| struct Foo { | |
| a: i32, //~ WARNING: fields `a` and `b` are never read | |
| pub b: i32, | |
| } | |
| struct Bar; | |
| impl Bar { | |
| fn a(&self) -> i32 { 5 } //~ WARNING: methods `a` and `b` are never used [dead_code] | |
| pub fn b(&self) -> i32 { 6 } | |
| } | |
| pub(crate) struct Foo1 { | |
| a: i32, //~ WARNING: fields `a` and `b` are never read | |
| pub b: i32, | |
| } | |
| pub(crate) struct Bar1; | |
| impl Bar1 { | |
| fn a(&self) -> i32 { 5 } //~ WARNING: methods `a` and `b` are never used [dead_code] | |
| pub fn b(&self) -> i32 { 6 } | |
| } | |
| pub(crate) struct Foo2 { | |
| a: i32, //~ WARNING: fields `a` and `b` are never read | |
| pub b: i32, | |
| } | |
| pub(crate) struct Bar2; | |
| impl Bar2 { | |
| fn a(&self) -> i32 { 5 } //~ WARNING: methods `a` and `b` are never used [dead_code] | |
| pub fn b(&self) -> i32 { 6 } | |
| } | |
| fn main() { | |
| let _ = Foo { a: 1, b: 2 }; | |
| let _ = Bar; | |
| let _ = Foo1 { a: 1, b: 2 }; | |
| let _ = Bar1; | |
| let _ = Foo2 { a: 1, b: 2 }; | |
| let _ = Bar2; | |
| } |