|  | // ignore-tidy-tab | 
|  | //@ run-rustfix | 
|  |  | 
|  | #![warn(unused_mut, unused_parens)] // UI tests pass `-A unused`—see Issue #43896 | 
|  |  | 
|  | #[no_mangle] pub static DISCOVERY: usize = 1; | 
|  | //~^ ERROR const items should never be `#[no_mangle]` | 
|  | //~| HELP try a static value | 
|  |  | 
|  | //~^ HELP remove this attribute | 
|  | pub fn defiant<T>(_t: T) {} | 
|  | //~^ WARN functions generic over types or consts must be mangled | 
|  |  | 
|  | #[no_mangle] | 
|  | fn rio_grande() {} | 
|  |  | 
|  | mod badlands { | 
|  | // The private-no-mangle lints shouldn't suggest inserting `pub` when the | 
|  | // item is already `pub` (but triggered the lint because, e.g., it's in a | 
|  | // private module). (Issue #47383) | 
|  | #[no_mangle] pub static DAUNTLESS: bool = true; | 
|  | //~^ ERROR const items should never be `#[no_mangle]` | 
|  | //~| HELP try a static value | 
|  | #[allow(dead_code)] // for rustfix | 
|  | pub fn val_jean<T>() {} | 
|  | //~^ WARN functions generic over types or consts must be mangled | 
|  | //~| HELP remove this attribute | 
|  |  | 
|  | // ... but we can suggest just-`pub` instead of restricted | 
|  | #[no_mangle] pub static VETAR: bool = true; | 
|  | //~^ ERROR const items should never be `#[no_mangle]` | 
|  | //~| HELP try a static value | 
|  | #[allow(dead_code)] // for rustfix | 
|  | pub(crate) fn crossfield<T>() {} | 
|  | //~^ WARN functions generic over types or consts must be mangled | 
|  | //~| HELP remove this attribute | 
|  | } | 
|  |  | 
|  | struct Equinox { | 
|  | warp_factor: f32, | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | loop { | 
|  | //~^ WARN denote infinite loops | 
|  | //~| HELP use `loop` | 
|  | let registry_no = format!("NX-{}", 74205); | 
|  | //~^ WARN does not need to be mutable | 
|  | //~| HELP remove this `mut` | 
|  | //~| WARN unnecessary parentheses | 
|  | //~| HELP remove these parentheses | 
|  | // the line after `mut` has a `\t` at the beginning, this is on purpose | 
|  | let b = 1; | 
|  | //~^^ WARN does not need to be mutable | 
|  | //~| HELP remove this `mut` | 
|  | let d = Equinox { warp_factor: 9.975 }; | 
|  | match d { | 
|  | #[allow(unused_variables)] // for rustfix | 
|  | Equinox { warp_factor } => {} | 
|  | //~^ WARN this pattern is redundant | 
|  | //~| HELP use shorthand field pattern | 
|  | } | 
|  | println!("{} {}", registry_no, b); | 
|  | } | 
|  | } |