aboutsummaryrefslogtreecommitdiffstats
path: root/tests/compile-fail
diff options
context:
space:
mode:
Diffstat (limited to 'tests/compile-fail')
-rw-r--r--tests/compile-fail/array.rs14
-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);