-
Notifications
You must be signed in to change notification settings - Fork 32
/
resolve-inconsistent-names.rs
39 lines (33 loc) · 1.18 KB
/
resolve-inconsistent-names.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#![allow(non_camel_case_types)]
enum E { A, B, c }
pub mod m {
const CONST1: usize = 10;
pub const Const2: usize = 20;
}
fn main() {
let y = 1;
match y {
a | b => {} //~ ERROR variable `a` is not bound in all patterns
//~| ERROR variable `b` is not bound in all patterns
}
let x = (E::A, E::B);
match x {
(A, B) | (ref B, c) | (c, A) => ()
//~^ ERROR variable `A` is not bound in all patterns
//~| ERROR variable `B` is not bound in all patterns
//~| ERROR variable `B` is bound inconsistently
//~| ERROR mismatched types
//~| ERROR variable `c` is not bound in all patterns
//~| HELP if you meant to match on unit variant `E::A`, use the full path in the pattern
//~| HELP consider removing `ref`
}
let z = (10, 20);
match z {
(CONST1, _) | (_, Const2) => ()
//~^ ERROR variable `CONST1` is not bound in all patterns
//~| ERROR variable `Const2` is not bound in all patterns
//~| HELP if you meant to match on constant `m::Const2`, use the full path in the pattern
}
}
// ferrocene-annotations: fls_e5td0fa92fay
// Match Expressions