aboutsummaryrefslogtreecommitdiff
path: root/macros/src
diff options
context:
space:
mode:
authorGravatar Ferdia McKeogh <chocol4te@users.noreply.github.com> 2018-06-07 11:45:11 +0100
committerGravatar Ferdia McKeogh <chocol4te@users.noreply.github.com> 2018-06-07 11:45:11 +0100
commit14b18111821d8e1929df149a8782e9b7c761b1ff (patch)
treeafa829e305becf0be98b3dd86fc52c256edf7805 /macros/src
parent53dbbad891e1c223ba5b1939e114b37667011f11 (diff)
downloadrtic-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.rs2
-rw-r--r--macros/src/trans.rs33
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)]