diff options
author | 2020-10-05 08:40:19 +0000 | |
---|---|---|
committer | 2020-10-05 08:40:19 +0000 | |
commit | dbf9a7f2983fb00aee130305fec0019c12eaef76 (patch) | |
tree | 0422a3712af398436cebfa9f8e6ac422de65dde1 /macros/src/codegen/resources.rs | |
parent | 04d415c3c6cce7f763decdf02104d827f2e4de7c (diff) | |
parent | 95503b6bdff3f392450d1972b0c499b79a9c2092 (diff) | |
download | rtic-dbf9a7f2983fb00aee130305fec0019c12eaef76.tar.gz rtic-dbf9a7f2983fb00aee130305fec0019c12eaef76.tar.zst rtic-dbf9a7f2983fb00aee130305fec0019c12eaef76.zip |
Merge #368
368: Mod over const r=korken89 a=AfoHT
Related [RFC](https://github.com/rtic-rs/rfcs/pull/34)
Dependent on [rtic-syntax-PR30](https://github.com/rtic-rs/rtic-syntax/pull/30)
~~Currently using my own dev-branch~~
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
Diffstat (limited to 'macros/src/codegen/resources.rs')
-rw-r--r-- | macros/src/codegen/resources.rs | 24 |
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) } |