diff options
author | 2021-07-07 21:03:56 +0200 | |
---|---|---|
committer | 2021-07-07 21:04:31 +0200 | |
commit | d7393c5b27fc95f3569d12137ee0c4d03ff7e2ba (patch) | |
tree | b90e094920cb859bb9e401f3acdddcadf675c834 /macros/src/codegen/hardware_tasks.rs | |
parent | ef5307d83a1d62df0569d78db75d4006147c927d (diff) | |
download | rtic-d7393c5b27fc95f3569d12137ee0c4d03ff7e2ba.tar.gz rtic-d7393c5b27fc95f3569d12137ee0c4d03ff7e2ba.tar.zst rtic-d7393c5b27fc95f3569d12137ee0c4d03ff7e2ba.zip |
Full local resource syntax working
Diffstat (limited to 'macros/src/codegen/hardware_tasks.rs')
-rw-r--r-- | macros/src/codegen/hardware_tasks.rs | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/macros/src/codegen/hardware_tasks.rs b/macros/src/codegen/hardware_tasks.rs index a69f9c9b..c7f3e7d9 100644 --- a/macros/src/codegen/hardware_tasks.rs +++ b/macros/src/codegen/hardware_tasks.rs @@ -57,13 +57,17 @@ pub fn codegen( } )); - let mut needs_lt = false; + let mut shared_needs_lt = false; + let mut local_needs_lt = false; // TODO: Fix locals // `${task}Locals` if !task.args.local_resources.is_empty() { - let (item, constructor) = - local_resources_struct::codegen(Context::HardwareTask(name), &mut needs_lt, app); + let (item, constructor) = local_resources_struct::codegen( + Context::HardwareTask(name), + &mut local_needs_lt, + app, + ); root.push(item); @@ -72,8 +76,11 @@ pub fn codegen( // `${task}Resources` if !task.args.shared_resources.is_empty() { - let (item, constructor) = - shared_resources_struct::codegen(Context::HardwareTask(name), &mut needs_lt, app); + let (item, constructor) = shared_resources_struct::codegen( + Context::HardwareTask(name), + &mut shared_needs_lt, + app, + ); root.push(item); @@ -82,23 +89,13 @@ pub fn codegen( root.push(module::codegen( Context::HardwareTask(name), - needs_lt, + shared_needs_lt, + local_needs_lt, app, analysis, extra, )); - // TODO: Fix locals - // // `${task}Locals` - // let mut locals_pat = None; - // if !task.locals.is_empty() { - // let (struct_, pat) = - // local_resources_struct::codegen(Context::HardwareTask(name), &task.locals, app); - - // root.push(struct_); - // locals_pat = Some(pat); - // } - if !task.is_extern { let attrs = &task.attrs; let context = &task.context; |