blob: 13db797341435803a94bbd5786c718e1b87b3f99 [file] [log] [blame]
// skip-filecheck
// unit-test: MatchBranchSimplification
// EMIT_MIR matches_reduce_branches.foo.MatchBranchSimplification.diff
// EMIT_MIR matches_reduce_branches.bar.MatchBranchSimplification.diff
// EMIT_MIR matches_reduce_branches.match_nested_if.MatchBranchSimplification.diff
fn foo(bar: Option<()>) {
if matches!(bar, None) {
()
}
}
fn bar(i: i32) -> (bool, bool, bool, bool) {
let a;
let b;
let c;
let d;
match i {
7 => {
a = false;
b = true;
c = false;
d = true;
()
}
_ => {
a = true;
b = false;
c = false;
d = true;
()
}
};
(a, b, c, d)
}
fn match_nested_if() -> bool {
let val = match () {
() if if if if true { true } else { false } { true } else { false } {
true
} else {
false
} =>
{
true
}
_ => false,
};
val
}
fn main() {
let _ = foo(None);
let _ = foo(Some(()));
let _ = bar(0);
let _ = match_nested_if();
}