rust/tests/ui/lint/suggestions.fixed

66 lines
2.1 KiB
Rust

// 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);
}
}