| #![feature(plugin)] |
| #![plugin(clippy)] |
| #![deny(clippy,similar_names)] |
| //~^ NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| //~| NOTE: lint level defined here |
| #![allow(unused)] |
| |
| |
| struct Foo { |
| apple: i32, |
| bpple: i32, |
| } |
| |
| fn main() { |
| let specter: i32; |
| let spectre: i32; |
| |
| let apple: i32; //~ NOTE: existing binding defined here |
| //~^ NOTE: existing binding defined here |
| let bpple: i32; //~ ERROR: name is too similar |
| //~| HELP: separate the discriminating character by an underscore like: `b_pple` |
| let cpple: i32; //~ ERROR: name is too similar |
| //~| HELP: separate the discriminating character by an underscore like: `c_pple` |
| |
| 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; //~ NOTE: existing binding defined here |
| let bluby: i32; //~ ERROR: name is too similar |
| //~| HELP: separate the discriminating character by an underscore like: `blub_y` |
| |
| let cake: i32; //~ NOTE: existing binding defined here |
| let cakes: i32; |
| let coke: i32; //~ ERROR: name is too similar |
| |
| 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; //~ NOTE: existing binding defined here |
| let xyz2abc: i32; |
| let xyzeabc: i32; //~ ERROR: name is too similar |
| |
| let parser: i32; //~ NOTE: existing binding defined here |
| let parsed: i32; |
| let parsee: i32; //~ ERROR: name is too similar |
| //~| HELP: separate the discriminating character by an underscore like: `parse_e` |
| |
| let setter: i32; |
| let getter: i32; |
| let tx1: i32; |
| let rx1: i32; |
| let tx_cake: i32; |
| let rx_cake: i32; |
| } |
| |
| fn foo() { |
| let Foo { apple, bpple } = unimplemented!(); |
| let Foo { apple: spring, //~NOTE existing binding defined here |
| bpple: sprang } = unimplemented!(); //~ ERROR: name is too similar |
| } |
| |
| #[derive(Clone, Debug)] |
| enum MaybeInst { |
| Split, |
| Split1(usize), |
| Split2(usize), |
| } |
| |
| struct InstSplit { |
| uiae: usize, |
| } |
| |
| impl MaybeInst { |
| fn fill(&mut self) { |
| let filled = match *self { |
| MaybeInst::Split1(goto1) => panic!(1), |
| MaybeInst::Split2(goto2) => panic!(2), |
| _ => unimplemented!(), |
| }; |
| unimplemented!() |
| } |
| } |
| |
| fn bla() { |
| let a: i32; |
| let (b, c, d): (i32, i64, i16); |
| { |
| { |
| let cdefg: i32; |
| let blar: i32; |
| } |
| { |
| let e: i32; //~ ERROR: 5th binding whose name is just one char |
| } |
| { |
| let e: i32; //~ ERROR: 5th binding whose name is just one char |
| let f: i32; //~ ERROR: 6th binding whose name is just one char |
| } |
| match 5 { |
| 1 => println!(""), |
| e => panic!(), //~ ERROR: 5th binding whose name is just one char |
| } |
| match 5 { |
| 1 => println!(""), |
| _ => panic!(), |
| } |
| } |
| } |