aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/hardware_tasks.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2021-07-07 21:03:56 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2021-07-07 21:04:31 +0200
commitd7393c5b27fc95f3569d12137ee0c4d03ff7e2ba (patch)
treeb90e094920cb859bb9e401f3acdddcadf675c834 /macros/src/codegen/hardware_tasks.rs
parentef5307d83a1d62df0569d78db75d4006147c927d (diff)
downloadrtic-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.rs31
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;