]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | // run-pass |
1b1a35ee XL |
2 | |
3 | #![warn(pointer_structural_match)] | |
4 | ||
94b46f34 | 5 | type Func = fn(usize, usize) -> usize; |
83c7162d | 6 | |
94b46f34 XL |
7 | fn foo(a: usize, b: usize) -> usize { a + b } |
8 | fn bar(a: usize, b: usize) -> usize { a * b } | |
9 | fn test(x: usize) -> Func { | |
10 | if x % 2 == 0 { foo } | |
11 | else { bar } | |
12 | } | |
13 | ||
14 | const FOO: Func = foo; | |
15 | const BAR: Func = bar; | |
041b39d2 | 16 | |
7453a54e | 17 | fn main() { |
94b46f34 | 18 | match test(std::env::consts::ARCH.len()) { |
1b1a35ee XL |
19 | FOO => println!("foo"), //~ WARN pointers in patterns behave unpredictably |
20 | //~^ WARN will become a hard error | |
21 | BAR => println!("bar"), //~ WARN pointers in patterns behave unpredictably | |
22 | //~^ WARN will become a hard error | |
94b46f34 XL |
23 | _ => unreachable!(), |
24 | } | |
223e47cc | 25 | } |