aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/resources.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2020-10-05 18:25:15 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2020-10-05 18:25:15 +0200
commiteec0908024d9b4127ed496b4781adc08000cc2c2 (patch)
treef128b3d91ea4ac0f171ab334d4517552a6803d01 /macros/src/codegen/resources.rs
parent9d2598dc071882a94b813ab1d9ddf49092546257 (diff)
parentf493f21359ccb3ab4643d9470f3581532f47593a (diff)
downloadrtic-eec0908024d9b4127ed496b4781adc08000cc2c2.tar.gz
rtic-eec0908024d9b4127ed496b4781adc08000cc2c2.tar.zst
rtic-eec0908024d9b4127ed496b4781adc08000cc2c2.zip
Merge branch 'master' into always_late_resources
Diffstat (limited to 'macros/src/codegen/resources.rs')
-rw-r--r--macros/src/codegen/resources.rs24
1 files changed, 19 insertions, 5 deletions
diff --git a/macros/src/codegen/resources.rs b/macros/src/codegen/resources.rs
index 4196ee7a..38ea5245 100644
--- a/macros/src/codegen/resources.rs
+++ b/macros/src/codegen/resources.rs
@@ -10,13 +10,16 @@ pub fn codegen(
analysis: &Analysis,
extra: &Extra,
) -> (
- // const_app -- the `static [mut]` variables behind the proxies
+ // mod_app -- the `static [mut]` variables behind the proxies
Vec<TokenStream2>,
// mod_resources -- the `resources` module
TokenStream2,
+ // mod_resources_imports -- the `resources` module imports
+ Vec<TokenStream2>,
) {
- let mut const_app = vec![];
+ let mut mod_app = vec![];
let mut mod_resources = vec![];
+ let mut mod_resources_imports = vec![];
for (name, res, expr, _) in app.resources(analysis) {
let cfgs = &res.cfgs;
@@ -39,7 +42,7 @@ pub fn codegen(
};
let attrs = &res.attrs;
- const_app.push(quote!(
+ mod_app.push(quote!(
#[allow(non_upper_case_globals)]
#(#attrs)*
#(#cfgs)*
@@ -82,7 +85,13 @@ pub fn codegen(
)
};
- const_app.push(util::impl_mutex(
+ mod_resources_imports.push(quote!(
+ #[allow(non_camel_case_types)]
+ #(#cfgs)*
+ use super::resources::#name;
+ ));
+
+ mod_app.push(util::impl_mutex(
extra,
cfgs,
true,
@@ -97,6 +106,11 @@ pub fn codegen(
let mod_resources = if mod_resources.is_empty() {
quote!()
} else {
+ // Also import the resource module
+ mod_resources_imports.push(quote!(
+ use super::resources;
+ ));
+
quote!(mod resources {
use rtic::export::Priority;
@@ -104,5 +118,5 @@ pub fn codegen(
})
};
- (const_app, mod_resources)
+ (mod_app, mod_resources, mod_resources_imports)
}