From 271df39bdba0690ea7ba77a6ff5d8d7edb9b8036 Mon Sep 17 00:00:00 2001
From: Jorge Aparicio <jorge@japaric.io>
Date: Thu, 27 Jul 2017 21:30:24 -0500
Subject: [PATCH] `Send`-ness check is now in rtfm-core

---
 macros/src/trans.rs           | 20 --------------------
 tests/cfail/interrupt.rs      |  6 +++++-
 tests/cfail/token-transfer.rs |  7 +++++--
 3 files changed, 10 insertions(+), 23 deletions(-)

diff --git a/macros/src/trans.rs b/macros/src/trans.rs
index a6dcf8a..c65aaa5 100644
--- a/macros/src/trans.rs
+++ b/macros/src/trans.rs
@@ -12,7 +12,6 @@ pub fn app(app: &App, ownerships: &Ownerships) -> Tokens {
     let mut root = vec![];
     let mut main = vec![];
 
-    ::trans::check(app, &mut main);
     ::trans::init(app, &mut main, &mut root);
     ::trans::idle(app, ownerships, &mut main, &mut root);
     ::trans::resources(app, ownerships, &mut root);
@@ -28,25 +27,6 @@ pub fn app(app: &App, ownerships: &Ownerships) -> Tokens {
     quote!(#(#root)*)
 }
 
-// Checks that the resource types are valid
-// Sadly we can't do this test at expansion time. Instead we'll generate some
-// code that won't compile if the types don't meet the requirements
-fn check(app: &App, main: &mut Vec<Tokens>) {
-    if !app.resources.is_empty() {
-        main.push(quote! {
-            fn is_send<T>() where T: Send {}
-        });
-    }
-
-    for resource in app.resources.values() {
-        let ty = &resource.ty;
-
-        main.push(quote! {
-            is_send::<#ty>();
-        });
-    }
-}
-
 fn idle(
     app: &App,
     ownerships: &Ownerships,
diff --git a/tests/cfail/interrupt.rs b/tests/cfail/interrupt.rs
index c70528f..f7879f4 100644
--- a/tests/cfail/interrupt.rs
+++ b/tests/cfail/interrupt.rs
@@ -14,7 +14,9 @@ app! {
 
     tasks: {
         // ERROR this interrupt doesn't exist
-        EXTI33: {},
+        EXTI33: {
+            path: exti33,
+        },
     },
 }
 
@@ -23,3 +25,5 @@ fn init(_p: init::Peripherals) {}
 fn idle() -> ! {
     loop {}
 }
+
+fn exti33() {}
diff --git a/tests/cfail/token-transfer.rs b/tests/cfail/token-transfer.rs
index d10b82b..38e8786 100644
--- a/tests/cfail/token-transfer.rs
+++ b/tests/cfail/token-transfer.rs
@@ -15,10 +15,13 @@ app! { //~ error bound `rtfm::Threshold: core::marker::Send` is not satisfied
         static TOKEN: Option<Threshold> = None;
     },
 
+    idle: {
+        resources: [TOKEN],
+    },
+
     tasks: {
         EXTI0: {
             path: exti0,
-            priority: 1,
             resources: [TOKEN],
         },
     }
@@ -26,7 +29,7 @@ app! { //~ error bound `rtfm::Threshold: core::marker::Send` is not satisfied
 
 fn init(_p: init::Peripherals, _r: init::Resources) {}
 
-fn idle() -> ! {
+fn idle(_t: &mut Threshold, _r: idle::Resources) -> ! {
     loop {}
 }
 
-- 
GitLab