diff options
author | 2018-06-07 11:45:11 +0100 | |
---|---|---|
committer | 2018-06-07 11:45:11 +0100 | |
commit | 14b18111821d8e1929df149a8782e9b7c761b1ff (patch) | |
tree | afa829e305becf0be98b3dd86fc52c256edf7805 /macros/src | |
parent | 53dbbad891e1c223ba5b1939e114b37667011f11 (diff) | |
download | rtic-14b18111821d8e1929df149a8782e9b7c761b1ff.tar.gz rtic-14b18111821d8e1929df149a8782e9b7c761b1ff.tar.zst rtic-14b18111821d8e1929df149a8782e9b7c761b1ff.zip |
Fix "Could not find `Op` in `proc_macro`"
Diffstat (limited to 'macros/src')
-rw-r--r-- | macros/src/check.rs | 2 | ||||
-rw-r--r-- | macros/src/trans.rs | 33 |
2 files changed, 17 insertions, 18 deletions
diff --git a/macros/src/check.rs b/macros/src/check.rs index 4defb46d..b81fc4d4 100644 --- a/macros/src/check.rs +++ b/macros/src/check.rs @@ -61,7 +61,7 @@ pub fn app(app: check::App) -> Result<App> { tasks: app.tasks .into_iter() .map(|(k, v)| { - let v = ::check::task(k.as_ref(), v)?; + let v = ::check::task(&k.to_string(), v)?; Ok((k, v)) }) diff --git a/macros/src/trans.rs b/macros/src/trans.rs index 964b1a30..3da1e3ef 100644 --- a/macros/src/trans.rs +++ b/macros/src/trans.rs @@ -1,15 +1,14 @@ -use proc_macro2::Span; -use quote::Tokens; +use proc_macro2::{TokenStream, Span}; use syn::{Ident, LitStr}; use analyze::Ownerships; use check::{App, Kind}; fn krate() -> Ident { - Ident::from("rtfm") + Ident::new("rtfm", Span::call_site()) } -pub fn app(app: &App, ownerships: &Ownerships) -> Tokens { +pub fn app(app: &App, ownerships: &Ownerships) -> TokenStream { let mut root = vec![]; let mut main = vec![quote!(#![allow(path_statements)])]; @@ -28,7 +27,7 @@ pub fn app(app: &App, ownerships: &Ownerships) -> Tokens { quote!(#(#root)*) } -fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) { +fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<TokenStream>, root: &mut Vec<TokenStream>) { let krate = krate(); let mut mod_items = vec![]; @@ -54,7 +53,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V let super_ = if needs_reexport { None } else { - Some(Ident::from("super")) + Some(Ident::new("super", Span::call_site())) }; let mut rexprs = vec![]; let mut rfields = vec![]; @@ -70,7 +69,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V pub #name: &'static mut #ty, }); - let _name = Ident::from(format!("_{}", name.as_ref())); + let _name = Ident::new(&name.to_string(), Span::call_site()); rexprs.push(if resource.expr.is_some() { quote! { #name: &mut #super_::#_name, @@ -136,7 +135,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V continue; } - let _name = Ident::from(format!("_{}", name.as_ref())); + let _name = Ident::new(&name.to_string(), Span::call_site()); let resource = app.resources .get(name) .expect(&format!("BUG: resource {} has no definition", name)); @@ -224,7 +223,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V }); } -fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) { +fn init(app: &App, main: &mut Vec<TokenStream>, root: &mut Vec<TokenStream>) { let device = &app.device; let krate = krate(); @@ -263,7 +262,7 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) { &mut #name },)); } else { - let _name = Ident::from(format!("_{}", name.as_ref())); + let _name = Ident::new(&name.to_string(), Span::call_site()); lifetime = Some(quote!('a)); fields.push(quote! { @@ -310,7 +309,7 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) { let mut fields = vec![]; for (name, resource) in late_resources { - let _name = Ident::from(format!("_{}", name.as_ref())); + let _name = Ident::new(&name.to_string(), Span::call_site()); let ty = &resource.ty; @@ -415,11 +414,11 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) { }); } -fn resources(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>) { +fn resources(app: &App, ownerships: &Ownerships, root: &mut Vec<TokenStream>) { let krate = krate(); for name in ownerships.keys() { - let _name = Ident::from(format!("_{}", name.as_ref())); + let _name = Ident::new(&name.to_string(), Span::call_site()); // Declare the static that holds the resource let resource = app.resources @@ -442,7 +441,7 @@ fn resources(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>) { } } -fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut Vec<Tokens>) { +fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<TokenStream>, main: &mut Vec<TokenStream>) { let device = &app.device; let krate = krate(); @@ -456,7 +455,7 @@ fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut if has_resources { for rname in &task.resources { let ceiling = ownerships[rname].ceiling(); - let _rname = Ident::from(format!("_{}", rname.as_ref())); + let _rname = Ident::new(&rname.to_string(), Span::call_site()); let resource = app.resources .get(rname) .expect(&format!("BUG: resource {} has no definition", rname)); @@ -594,8 +593,8 @@ fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut } let path = &task.path; - let _tname = Ident::from(format!("_{}", tname)); - let export_name = LitStr::new(tname.as_ref(), Span::call_site()); + let _tname = Ident::new(&tname.to_string(), Span::call_site()); + let export_name = LitStr::new(&tname.to_string(), Span::call_site()); root.push(quote! { #[allow(non_snake_case)] #[allow(unsafe_code)] |