rust/src/test/compile-fail/regions-escape-via-trait-or-not.rs

26 lines
455 B
Rust
Raw Normal View History

trait deref {
fn get() -> int;
}
2012-08-07 20:10:06 -05:00
impl &int: deref {
fn get() -> int {
*self
}
}
fn with<R: deref>(f: fn(x: &int) -> R) -> int {
f(&3).get()
}
fn return_it() -> int {
with(|o| o)
//~^ ERROR reference is not valid outside of its lifetime
//~^^ ERROR reference is not valid outside of its lifetime
//~^^^ ERROR cannot infer an appropriate lifetime
}
fn main() {
let x = return_it();
2012-08-22 19:24:52 -05:00
debug!("foo=%d", x);
}