rust-clippy/tests/ui/similar_names.rs

126 lines
2.7 KiB
Rust

#![warn(clippy::similar_names)]
#![allow(
unused,
clippy::println_empty_string,
clippy::empty_loop,
clippy::never_loop,
clippy::diverging_sub_expression,
clippy::let_unit_value
)]
struct Foo {
apple: i32,
bpple: i32,
}
fn main() {
let specter: i32;
let spectre: i32;
// ok; first letter is different enough
let apple: i32;
let bpple: i32;
let cpple: i32;
let a_bar: i32;
let b_bar: i32;
let c_bar: i32;
let items = [5];
for item in &items {
loop {}
}
let foo_x: i32;
let foo_y: i32;
let rhs: i32;
let lhs: i32;
let bla_rhs: i32;
let bla_lhs: i32;
let blubrhs: i32;
let blublhs: i32;
let blubx: i32;
let bluby: i32;
//~^ ERROR: binding's name is too similar to existing binding
let cake: i32;
let cakes: i32;
let coke: i32;
//~^ ERROR: binding's name is too similar to existing binding
match 5 {
cheese @ 1 => {},
rabbit => panic!(),
}
let cheese: i32;
match (42, 43) {
(cheese1, 1) => {},
(cheese2, 2) => panic!(),
_ => println!(""),
}
let ipv4: i32;
let ipv6: i32;
let abcd1: i32;
let abdc2: i32;
let xyz1abc: i32;
let xyz2abc: i32;
let xyzeabc: i32;
//~^ ERROR: binding's name is too similar to existing binding
let parser: i32;
let parsed: i32;
let parsee: i32;
//~^ ERROR: binding's name is too similar to existing binding
let setter: i32;
let getter: i32;
let tx1: i32;
let rx1: i32;
let tx_cake: i32;
let rx_cake: i32;
// names often used in win32 code (for example WindowProc)
let wparam: i32;
let lparam: i32;
let iter: i32;
let item: i32;
}
fn foo() {
let Foo { apple, bpple } = unimplemented!();
let Foo {
apple: spring,
bpple: sprang,
//~^ ERROR: binding's name is too similar to existing binding
} = unimplemented!();
}
// false positive similar_names (#3057, #2651)
// clippy claimed total_reg_src_size and total_size and
// numb_reg_src_checkouts and total_bin_size were similar
#[derive(Debug, Clone)]
pub(crate) struct DirSizes {
pub(crate) total_size: u64,
pub(crate) numb_bins: u64,
pub(crate) total_bin_size: u64,
pub(crate) total_reg_size: u64,
pub(crate) total_git_db_size: u64,
pub(crate) total_git_repos_bare_size: u64,
pub(crate) numb_git_repos_bare_repos: u64,
pub(crate) numb_git_checkouts: u64,
pub(crate) total_git_chk_size: u64,
pub(crate) total_reg_cache_size: u64,
pub(crate) total_reg_src_size: u64,
pub(crate) numb_reg_cache_entries: u64,
pub(crate) numb_reg_src_checkouts: u64,
}
fn ignore_underscore_prefix() {
let hello: ();
let _hello: ();
}