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