diff options
author | 2021-07-06 22:47:48 +0200 | |
---|---|---|
committer | 2021-07-06 22:47:48 +0200 | |
commit | ef5307d83a1d62df0569d78db75d4006147c927d (patch) | |
tree | 542ff46adf7600cbd7f908cb62ac3a44e1bfa683 /macros/src/codegen/idle.rs | |
parent | 3f85cb5caf1ae930e6551e139978ceec859a2348 (diff) | |
download | rtic-ef5307d83a1d62df0569d78db75d4006147c927d.tar.gz rtic-ef5307d83a1d62df0569d78db75d4006147c927d.tar.zst rtic-ef5307d83a1d62df0569d78db75d4006147c927d.zip |
Minimal app now compiles
Diffstat (limited to 'macros/src/codegen/idle.rs')
-rw-r--r-- | macros/src/codegen/idle.rs | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/macros/src/codegen/idle.rs b/macros/src/codegen/idle.rs index 4bc41c13..9c8a5f76 100644 --- a/macros/src/codegen/idle.rs +++ b/macros/src/codegen/idle.rs @@ -5,7 +5,7 @@ use rtic_syntax::{ast::App, Context}; use crate::{ analyze::Analysis, check::Extra, - codegen::{locals, module, resources_struct}, + codegen::{local_resources_struct, module, shared_resources_struct}, }; /// Generates support code for `#[idle]` functions @@ -26,30 +26,28 @@ pub fn codegen( // call_idle TokenStream2, ) { - if !app.idles.is_empty() { - let idle = &app.idles.first().unwrap(); + if let Some(idle) = &app.idle { let mut needs_lt = false; let mut mod_app = None; let mut root_idle = vec![]; - let mut locals_pat = None; - let mut locals_new = None; let name = &idle.name; - if !idle.args.resources.is_empty() { - let (item, constructor) = resources_struct::codegen(Context::Idle, &mut needs_lt, app); + if !idle.args.shared_resources.is_empty() { + let (item, constructor) = shared_resources_struct::codegen(Context::Idle, &mut needs_lt, app); root_idle.push(item); mod_app = Some(constructor); } - if !idle.locals.is_empty() { - let (locals, pat) = locals::codegen(Context::Idle, &idle.locals, app); + // TODO: Fix locals + // if !idle.locals.is_empty() { + // let (locals, pat) = locals::codegen(Context::Idle, &idle.locals, app); - locals_new = Some(quote!(#name::Locals::new())); - locals_pat = Some(pat); - root_idle.push(locals); - } + // locals_new = Some(quote!(#name::Locals::new())); + // locals_pat = Some(pat); + // root_idle.push(locals); + // } root_idle.push(module::codegen( Context::Idle, @@ -62,11 +60,10 @@ pub fn codegen( let attrs = &idle.attrs; let context = &idle.context; let stmts = &idle.stmts; - let locals_pat = locals_pat.iter(); let user_idle = Some(quote!( #(#attrs)* #[allow(non_snake_case)] - fn #name(#(#locals_pat,)* #context: #name::Context) -> ! { + fn #name(#context: #name::Context) -> ! { use rtic::Mutex as _; use rtic::mutex_prelude::*; @@ -74,9 +71,7 @@ pub fn codegen( } )); - let locals_new = locals_new.iter(); let call_idle = quote!(#name( - #(#locals_new,)* #name::Context::new(&rtic::export::Priority::new(0)) )); |