From 271df39bdba0690ea7ba77a6ff5d8d7edb9b8036 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio 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 a6dcf8abed..c65aaa522e 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) { - if !app.resources.is_empty() { - main.push(quote! { - fn is_send() 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 c70528f0de..f7879f493c 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 d10b82b24c..38e878683b 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 = 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 {} }