Skip to content

Commit 8debf0b

Browse files
bors[bot]Chocol4tejaparic
committed
Merge #80
80: Fix "Could not find `Op` in `proc_macro`" r=japaric a=chocol4te Fixes nightly error with `proc-macro2`. Should not be merged until rtic-rs/rtic-syntax#8 is merged and new `rtfm-syntax` version is published. Co-authored-by: Ferdia McKeogh <[email protected]> Co-authored-by: Jorge Aparicio <[email protected]>
2 parents 53dbbad + 9e7ed17 commit 8debf0b

File tree

5 files changed

+21
-24
lines changed

5 files changed

+21
-24
lines changed

macros/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ version = "0.3.1"
1111

1212
[dependencies]
1313
failure = "0.1.1"
14-
proc-macro2 = "0.3.6"
15-
quote = "0.5.1"
16-
rtfm-syntax = "0.3.0"
17-
syn = "0.13.1"
14+
proc-macro2 = "0.4.6"
15+
quote = "0.6.3"
16+
rtfm-syntax = "0.3.4"
17+
syn = "0.14.2"
1818

1919
[lib]
2020
proc-macro = true

macros/src/check.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ pub fn app(app: check::App) -> Result<App> {
6161
tasks: app.tasks
6262
.into_iter()
6363
.map(|(k, v)| {
64-
let v = ::check::task(k.as_ref(), v)?;
64+
let v = ::check::task(&k.to_string(), v)?;
6565

6666
Ok((k, v))
6767
})

macros/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
//! Procedural macros of the `cortex-m-rtfm` crate
22
// #![deny(warnings)]
3-
#![feature(proc_macro)]
43
#![recursion_limit = "128"]
54

65
#[macro_use]

macros/src/trans.rs

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
use proc_macro2::Span;
2-
use quote::Tokens;
1+
use proc_macro2::{TokenStream, Span};
32
use syn::{Ident, LitStr};
43

54
use analyze::Ownerships;
65
use check::{App, Kind};
76

87
fn krate() -> Ident {
9-
Ident::from("rtfm")
8+
Ident::new("rtfm", Span::call_site())
109
}
1110

12-
pub fn app(app: &App, ownerships: &Ownerships) -> Tokens {
11+
pub fn app(app: &App, ownerships: &Ownerships) -> TokenStream {
1312
let mut root = vec![];
1413
let mut main = vec![quote!(#![allow(path_statements)])];
1514

@@ -28,7 +27,7 @@ pub fn app(app: &App, ownerships: &Ownerships) -> Tokens {
2827
quote!(#(#root)*)
2928
}
3029

31-
fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
30+
fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<TokenStream>, root: &mut Vec<TokenStream>) {
3231
let krate = krate();
3332

3433
let mut mod_items = vec![];
@@ -54,7 +53,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V
5453
let super_ = if needs_reexport {
5554
None
5655
} else {
57-
Some(Ident::from("super"))
56+
Some(Ident::new("super", Span::call_site()))
5857
};
5958
let mut rexprs = vec![];
6059
let mut rfields = vec![];
@@ -70,7 +69,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V
7069
pub #name: &'static mut #ty,
7170
});
7271

73-
let _name = Ident::from(format!("_{}", name.as_ref()));
72+
let _name = Ident::new(&name.to_string(), Span::call_site());
7473
rexprs.push(if resource.expr.is_some() {
7574
quote! {
7675
#name: &mut #super_::#_name,
@@ -136,7 +135,7 @@ fn idle(app: &App, ownerships: &Ownerships, main: &mut Vec<Tokens>, root: &mut V
136135
continue;
137136
}
138137

139-
let _name = Ident::from(format!("_{}", name.as_ref()));
138+
let _name = Ident::new(&name.to_string(), Span::call_site());
140139
let resource = app.resources
141140
.get(name)
142141
.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
224223
});
225224
}
226225

227-
fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
226+
fn init(app: &App, main: &mut Vec<TokenStream>, root: &mut Vec<TokenStream>) {
228227
let device = &app.device;
229228
let krate = krate();
230229

@@ -263,7 +262,7 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
263262
&mut #name
264263
},));
265264
} else {
266-
let _name = Ident::from(format!("_{}", name.as_ref()));
265+
let _name = Ident::new(&name.to_string(), Span::call_site());
267266
lifetime = Some(quote!('a));
268267

269268
fields.push(quote! {
@@ -310,7 +309,7 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
310309
let mut fields = vec![];
311310

312311
for (name, resource) in late_resources {
313-
let _name = Ident::from(format!("_{}", name.as_ref()));
312+
let _name = Ident::new(&name.to_string(), Span::call_site());
314313

315314
let ty = &resource.ty;
316315

@@ -415,11 +414,11 @@ fn init(app: &App, main: &mut Vec<Tokens>, root: &mut Vec<Tokens>) {
415414
});
416415
}
417416

418-
fn resources(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>) {
417+
fn resources(app: &App, ownerships: &Ownerships, root: &mut Vec<TokenStream>) {
419418
let krate = krate();
420419

421420
for name in ownerships.keys() {
422-
let _name = Ident::from(format!("_{}", name.as_ref()));
421+
let _name = Ident::new(&name.to_string(), Span::call_site());
423422

424423
// Declare the static that holds the resource
425424
let resource = app.resources
@@ -442,7 +441,7 @@ fn resources(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>) {
442441
}
443442
}
444443

445-
fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut Vec<Tokens>) {
444+
fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<TokenStream>, main: &mut Vec<TokenStream>) {
446445
let device = &app.device;
447446
let krate = krate();
448447

@@ -456,7 +455,7 @@ fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut
456455
if has_resources {
457456
for rname in &task.resources {
458457
let ceiling = ownerships[rname].ceiling();
459-
let _rname = Ident::from(format!("_{}", rname.as_ref()));
458+
let _rname = Ident::new(&rname.to_string(), Span::call_site());
460459
let resource = app.resources
461460
.get(rname)
462461
.expect(&format!("BUG: resource {} has no definition", rname));
@@ -594,8 +593,8 @@ fn tasks(app: &App, ownerships: &Ownerships, root: &mut Vec<Tokens>, main: &mut
594593
}
595594

596595
let path = &task.path;
597-
let _tname = Ident::from(format!("_{}", tname));
598-
let export_name = LitStr::new(tname.as_ref(), Span::call_site());
596+
let _tname = Ident::new(&tname.to_string(), Span::call_site());
597+
let export_name = LitStr::new(&tname.to_string(), Span::call_site());
599598
root.push(quote! {
600599
#[allow(non_snake_case)]
601600
#[allow(unsafe_code)]

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@
7979
//! [rtfm]: http://www.diva-portal.org/smash/get/diva2:1005680/FULLTEXT01.pdf
8080
#![deny(missing_docs)]
8181
#![deny(warnings)]
82-
#![feature(proc_macro)]
8382
#![no_std]
8483

8584
extern crate cortex_m;

0 commit comments

Comments
 (0)