1
Fork 0

Tests for feature(bind_by_move_pattern_guards).

Apparently copyright notices are no longer necessary apparently.
(See #43498 and #53654.)
This commit is contained in:
Felix S. Klock II 2018-09-07 17:52:49 +02:00
parent 7d844e871c
commit c50884c615
14 changed files with 208 additions and 11 deletions

View file

@ -0,0 +1,40 @@
#![feature(nll)]
#![feature(bind_by_move_pattern_guards)]
// compile-pass
struct A { a: Box<i32> }
impl A {
fn get(&self) -> i32 { *self.a }
}
fn foo(n: i32) {
let x = A { a: Box::new(n) };
let y = match x {
A { a: v } if *v == 42 => v,
_ => Box::new(0),
};
}
fn bar(n: i32) {
let x = A { a: Box::new(n) };
let y = match x {
A { a: v } if x.get() == 42 => v,
_ => Box::new(0),
};
}
fn baz(n: i32) {
let x = A { a: Box::new(n) };
let y = match x {
A { a: v } if *v.clone() == 42 => v,
_ => Box::new(0),
};
}
fn main() {
foo(107);
bar(107);
baz(107);
}