aboutsummaryrefslogtreecommitdiffstats
path: root/tests/compile-fail
diff options
context:
space:
mode:
authorBrian Cully <bjc@kublai.com>2019-05-10 11:50:53 -0400
committerBrian Cully <bjc@kublai.com>2019-06-03 09:23:29 -0400
commit5781e9391fe3d7d3dabec620cb782d38f5f9cb9e (patch)
tree9ed0b09fd40f128733e8441fc63f91a9ee17d3f6 /tests/compile-fail
parentf12811a0a5e15b596a0cc06c095832a6b795172b (diff)
downloadclint-5781e9391fe3d7d3dabec620cb782d38f5f9cb9e.tar.gz
clint-5781e9391fe3d7d3dabec620cb782d38f5f9cb9e.zip
Update to 0.2.0: Add HandlerArray type.v0.2.0
* Create HandlerArray as a safe wrapper around Handler. * Add Cargo features for HandlerArray size. * Move Handler into sub-module. * Add CriticalSection sub-module for architecture dependent support of interrupt-free contexts. * Add build rules to pull in cortex-m support for CriticalSection automatically.
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);