]> git.lizzy.rs Git - rust.git/blob - src/test/ui/if/if-let.rs
Auto merge of #65838 - estebank:resilient-recovery, r=Centril
[rust.git] / src / test / ui / if / if-let.rs
1 // build-pass (FIXME(62277): could be check-pass?)
2
3 fn macros() {
4     macro_rules! foo{
5         ($p:pat, $e:expr, $b:block) => {{
6             if let $p = $e $b
7             //~^ WARN irrefutable if-let
8             //~| WARN irrefutable if-let
9         }}
10     }
11     macro_rules! bar{
12         ($p:pat, $e:expr, $b:block) => {{
13             foo!($p, $e, $b)
14         }}
15     }
16
17     foo!(a, 1, {
18         println!("irrefutable pattern");
19     });
20     bar!(a, 1, {
21         println!("irrefutable pattern");
22     });
23 }
24
25 pub fn main() {
26     if let a = 1 { //~ WARN irrefutable if-let
27         println!("irrefutable pattern");
28     }
29
30     if let a = 1 { //~ WARN irrefutable if-let
31         println!("irrefutable pattern");
32     } else if true {
33         println!("else-if in irrefutable if-let");
34     } else {
35         println!("else in irrefutable if-let");
36     }
37
38     if let 1 = 2 {
39         println!("refutable pattern");
40     } else if let a = 1 { //~ WARN irrefutable if-let
41         println!("irrefutable pattern");
42     }
43
44     if true {
45         println!("if");
46     } else if let a = 1 { //~ WARN irrefutable if-let
47         println!("irrefutable pattern");
48     }
49 }