]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-44333.rs
Auto merge of #78066 - bugadani:wat, r=jonas-schievink
[rust.git] / src / test / ui / issues / issue-44333.rs
1 // run-pass
2
3 #![warn(pointer_structural_match)]
4
5 type Func = fn(usize, usize) -> usize;
6
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;
16
17 fn main() {
18     match test(std::env::consts::ARCH.len()) {
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
23         _ => unreachable!(),
24     }
25 }