diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/compile-fail/array.rs | 14 | ||||
-rw-r--r-- | tests/compile-fail/handler.rs (renamed from tests/compile-fail/mutable.rs) | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/tests/compile-fail/array.rs b/tests/compile-fail/array.rs new file mode 100644 index 0000000..c5492e8 --- /dev/null +++ b/tests/compile-fail/array.rs @@ -0,0 +1,14 @@ +extern crate clint; + +use clint::cs::Locker; +use clint::HandlerArray; + +fn main() { + let mut hs = HandlerArray::new(); + hs.with_overrides(|new_hs| nested(new_hs)); +} + +fn nested(hs: &HandlerArray) { + let mut c = || println!("Short-lived closure."); + hs.register(0, &mut c) //~ ERROR `c` does not live long enough +} diff --git a/tests/compile-fail/mutable.rs b/tests/compile-fail/handler.rs index e888503..fdc464a 100644 --- a/tests/compile-fail/mutable.rs +++ b/tests/compile-fail/handler.rs @@ -13,8 +13,7 @@ fn main() { fn need_move() { let x = vec![1, 2, 3]; let c = || { - //~^ ERROR closure may outlive - println!("x(h-c): {:?}", x); + println!("x(h-c): {:?}", x); //~ ERROR does not live long enough }; unsafe { HANDLER.replace(&c); |