2 #![allow(unused_variables)]
3 #![allow(non_camel_case_types)]
4 #![allow(non_upper_case_globals)]
12 pub struct Bar; //~ ERROR: struct `Bar` is never constructed
19 pub static pub_static: isize = 0;
20 static priv_static: isize = 0; //~ ERROR: static `priv_static` is never used
21 const used_static: isize = 0;
22 pub static used_static2: isize = used_static;
23 const USED_STATIC: isize = 0;
24 const STATIC_USED_IN_ENUM_DISCRIMINANT: isize = 10;
26 pub const pub_const: isize = 0;
27 const priv_const: isize = 0; //~ ERROR: constant `priv_const` is never used
28 const used_const: isize = 0;
29 pub const used_const2: isize = used_const;
30 const USED_CONST: isize = 1;
31 const CONST_USED_IN_ENUM_DISCRIMINANT: isize = 11;
33 pub type typ = *const UsedStruct4;
35 struct PrivStruct; //~ ERROR: struct `PrivStruct` is never constructed
40 struct UsedStruct2(isize);
42 pub struct UsedStruct4;
43 // this struct is never used directly, but its method is, so we don't want
45 struct SemiUsedStruct;
49 struct StructUsedAsField;
50 pub struct StructUsedInEnum;
51 struct StructUsedInGeneric;
52 pub struct PubStruct2 {
54 struct_used_as_field: *const StructUsedAsField
57 pub enum pub_enum { foo1, bar1 }
58 pub enum pub_enum2 { a(*const StructUsedInEnum) }
60 Foo = STATIC_USED_IN_ENUM_DISCRIMINANT,
61 Bar = CONST_USED_IN_ENUM_DISCRIMINANT,
64 enum priv_enum { foo2, bar2 } //~ ERROR: enum `priv_enum` is never used
67 bar3 //~ ERROR variant `bar3` is never constructed
74 let used_struct1 = UsedStruct1 { x: 1 };
75 let used_struct2 = UsedStruct2(1);
76 let used_struct3 = UsedStruct3;
77 let e = used_enum::foo3;
78 SemiUsedStruct::la_la_la();
86 f::<StructUsedInGeneric>();
88 fn priv_fn() { //~ ERROR: function `priv_fn` is never used
89 let unused_struct = PrivStruct;
93 fn foo() { //~ ERROR: function `foo` is never used
95 let unused_enum = priv_enum::foo2;
98 fn bar() { //~ ERROR: function `bar` is never used
102 fn baz() -> impl Copy { //~ ERROR: function `baz` is never used
106 // Code with #[allow(dead_code)] should be marked live (and thus anything it
107 // calls is marked live)