]> git.lizzy.rs Git - rust.git/blob - tests/compile-fail/non_expressive_names.rs
7d0cea70366932f7e1cb7a450c42fb60b7fa4fe5
[rust.git] / tests / compile-fail / non_expressive_names.rs
1 #![feature(plugin)]
2 #![plugin(clippy)]
3 #![deny(clippy)]
4 //~^ NOTE: lint level defined here
5 //~| NOTE: lint level defined here
6 //~| NOTE: lint level defined here
7 //~| NOTE: lint level defined here
8 //~| NOTE: lint level defined here
9 //~| NOTE: lint level defined here
10 //~| NOTE: lint level defined here
11 //~| NOTE: lint level defined here
12 //~| NOTE: lint level defined here
13 //~| NOTE: lint level defined here
14 #![allow(unused)]
15
16 fn main() {
17     let specter: i32;
18     let spectre: i32;
19
20     let apple: i32; //~ NOTE: existing binding defined here
21     //~^ NOTE: existing binding defined here
22     let bpple: i32; //~ ERROR: name is too similar
23     //~| HELP: separate the discriminating character by an underscore like: `b_pple`
24     //~| HELP: for further information visit
25     let cpple: i32; //~ ERROR: name is too similar
26     //~| HELP: separate the discriminating character by an underscore like: `c_pple`
27     //~| HELP: for further information visit
28
29     let a_bar: i32;
30     let b_bar: i32;
31     let c_bar: i32;
32
33     let items = [5];
34     for item in &items {
35         loop {}
36     }
37
38     let foo_x: i32;
39     let foo_y: i32;
40
41     let rhs: i32;
42     let lhs: i32;
43
44     let bla_rhs: i32;
45     let bla_lhs: i32;
46
47     let blubrhs: i32; //~ NOTE: existing binding defined here
48     let blublhs: i32; //~ ERROR: name is too similar
49     //~| HELP: for further information visit
50
51     let blubx: i32; //~ NOTE: existing binding defined here
52     let bluby: i32; //~ ERROR: name is too similar
53     //~| HELP: for further information visit
54     //~| HELP: separate the discriminating character by an underscore like: `blub_y`
55
56     let cake: i32; //~ NOTE: existing binding defined here
57     let cakes: i32;
58     let coke: i32; //~ ERROR: name is too similar
59     //~| HELP: for further information visit
60
61     match 5 {
62         cheese @ 1 => {},
63         rabbit => panic!(),
64     }
65     let cheese: i32;
66     match (42, 43) {
67         (cheese1, 1) => {},
68         (cheese2, 2) => panic!(),
69         _ => println!(""),
70     }
71     let ipv4: i32;
72     let ipv6: i32;
73     let abcd1: i32;
74     let abdc2: i32;
75     let xyz1abc: i32; //~ NOTE: existing binding defined here
76     let xyz2abc: i32;
77     let xyzeabc: i32; //~ ERROR: name is too similar
78     //~| HELP: for further information visit
79 }
80
81 #[derive(Clone, Debug)]
82 enum MaybeInst {
83     Split,
84     Split1(usize),
85     Split2(usize),
86 }
87
88 struct InstSplit {
89     uiae: usize,
90 }
91
92 impl MaybeInst {
93     fn fill(&mut self) {
94         let filled = match *self {
95             MaybeInst::Split1(goto1) => panic!(1),
96             MaybeInst::Split2(goto2) => panic!(2),
97             _ => unimplemented!(),
98         };
99         unimplemented!()
100     }
101 }
102
103 fn bla() {
104     let a: i32;
105     let (b, c, d): (i32, i64, i16);
106     {
107         {
108             let cdefg: i32;
109             let blar: i32;
110         }
111         {
112             let e: i32; //~ ERROR: 5th binding whose name is just one char
113             //~| HELP: for further information visit
114         }
115         {
116             let e: i32; //~ ERROR: 5th binding whose name is just one char
117             //~| HELP: for further information visit
118             let f: i32; //~ ERROR: 6th binding whose name is just one char
119             //~| HELP: for further information visit
120         }
121         match 5 {
122             1 => println!(""),
123             e => panic!(), //~ ERROR: 5th binding whose name is just one char
124             //~| HELP: for further information visit
125         }
126         match 5 {
127             1 => println!(""),
128             _ => panic!(),
129         }
130     }
131 }