]> git.proxmox.com Git - rustc.git/blame - src/test/mir-opt/matches_reduce_branches.rs
New upstream version 1.52.0~beta.3+dfsg1
[rustc.git] / src / test / mir-opt / matches_reduce_branches.rs
CommitLineData
3dfed10e
XL
1// EMIT_MIR_FOR_EACH_BIT_WIDTH
2// EMIT_MIR matches_reduce_branches.foo.MatchBranchSimplification.diff
6a06907d 3// EMIT_MIR matches_reduce_branches.foo.PreCodegen.before.mir
3dfed10e 4// EMIT_MIR matches_reduce_branches.bar.MatchBranchSimplification.diff
29967ef6 5// EMIT_MIR matches_reduce_branches.match_nested_if.MatchBranchSimplification.diff
3dfed10e
XL
6
7fn foo(bar: Option<()>) {
8 if matches!(bar, None) {
6a06907d 9 ()
3dfed10e
XL
10 }
11}
12
13fn bar(i: i32) -> (bool, bool, bool, bool) {
14 let a;
15 let b;
16 let c;
17 let d;
18
19 match i {
20 7 => {
21 a = false;
22 b = true;
23 c = false;
24 d = true;
25 ()
26 }
27 _ => {
28 a = true;
29 b = false;
30 c = false;
31 d = true;
32 ()
33 }
34 };
35
36 (a, b, c, d)
37}
38
29967ef6
XL
39fn match_nested_if() -> bool {
40 let val = match () {
6a06907d
XL
41 () if if if if true { true } else { false } { true } else { false } {
42 true
43 } else {
44 false
45 } =>
46 {
47 true
48 }
29967ef6
XL
49 _ => false,
50 };
51 val
52}
3dfed10e
XL
53
54fn main() {
6a06907d
XL
55 let _ = foo(None);
56 let _ = foo(Some(()));
57 let _ = bar(0);
58 let _ = match_nested_if();
3dfed10e 59}