mirror of https://github.com/rust-lang/rust.git
27 lines
493 B
Rust
27 lines
493 B
Rust
|
// run-pass
|
||
|
#![allow(unused)]
|
||
|
|
||
|
fn foo<F>(f: F)
|
||
|
where F: FnOnce()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
// Test that this closure is inferred to `FnOnce`
|
||
|
// because it moves from `y.as<Option::Some>.0`:
|
||
|
let x = Some(vec![1, 2, 3]);
|
||
|
foo(|| {
|
||
|
match x {
|
||
|
Some(y) => { }
|
||
|
None => { }
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Test that this closure is inferred to `FnOnce`
|
||
|
// because it moves from `y.0`:
|
||
|
let y = (vec![1, 2, 3], 0);
|
||
|
foo(|| {
|
||
|
let x = y.0;
|
||
|
});
|
||
|
}
|