rust/src/test/run-pass/guards.rs
Marijn Haverbeke 7d08678b74 Implement pattern guards
The syntax is

    alt x {
        mypat where mycond { ... }
    }

The condition may refer to any of the variables bound by the pattern.
When a guard fails, pattern-matching continues with the next pattern.

Closes #857
2011-08-22 17:49:31 +02:00

16 lines
307 B
Rust

fn main() {
let a = alt 10 {
x when x < 7 { 1 }
x when x < 11 { 2 }
10 { 3 }
_ { 4 }
};
assert a == 2;
let b = alt {x: 10, y: 20} {
x when x.x < 5 && x.y < 5 { 1 }
{x, y} when x == 10 && y == 20 { 2 }
{x, y} { 3 }
};
assert b == 2;
}