diff options
author | 2018-10-09 21:20:57 +0100 | |
---|---|---|
committer | 2018-10-09 21:20:57 +0100 | |
commit | 7e583e2abf261910ed1a7778b07b72c1a7d97e3b (patch) | |
tree | 1c21d49626d101f90fe9a89b48a2a0220b05d5e2 /cortex-m-rt/macros/src/lib.rs | |
parent | 879ae3c6296d19888bc00a18e50668f981deb7bb (diff) | |
parent | 0423076f192a07d1aeba2721d549c4359ff283ae (diff) | |
download | cortex-m-7e583e2abf261910ed1a7778b07b72c1a7d97e3b.tar.gz cortex-m-7e583e2abf261910ed1a7778b07b72c1a7d97e3b.tar.zst cortex-m-7e583e2abf261910ed1a7778b07b72c1a7d97e3b.zip |
Merge branch 'master' into interrupt
Diffstat (limited to 'cortex-m-rt/macros/src/lib.rs')
-rw-r--r-- | cortex-m-rt/macros/src/lib.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/cortex-m-rt/macros/src/lib.rs b/cortex-m-rt/macros/src/lib.rs index 8721010..56ec88c 100644 --- a/cortex-m-rt/macros/src/lib.rs +++ b/cortex-m-rt/macros/src/lib.rs @@ -6,6 +6,7 @@ extern crate rand; extern crate quote; extern crate core; extern crate proc_macro2; +#[macro_use] extern crate syn; use proc_macro2::Span; @@ -77,7 +78,7 @@ use proc_macro::TokenStream; /// ``` #[proc_macro_attribute] pub fn entry(args: TokenStream, input: TokenStream) -> TokenStream { - let f: ItemFn = syn::parse(input).expect("`#[entry]` must be applied to a function"); + let f = parse_macro_input!(input as ItemFn); // check the function signature assert!( @@ -253,7 +254,7 @@ pub fn entry(args: TokenStream, input: TokenStream) -> TokenStream { /// ``` #[proc_macro_attribute] pub fn exception(args: TokenStream, input: TokenStream) -> TokenStream { - let f: ItemFn = syn::parse(input).expect("`#[exception]` must be applied to a function"); + let f = parse_macro_input!(input as ItemFn); assert!( args.to_string() == "", @@ -599,7 +600,7 @@ pub fn interrupt(args: TokenStream, input: TokenStream) -> TokenStream { /// ``` #[proc_macro_attribute] pub fn pre_init(args: TokenStream, input: TokenStream) -> TokenStream { - let f: ItemFn = syn::parse(input).expect("`#[pre_init]` must be applied to a function"); + let f = parse_macro_input!(input as ItemFn); // check the function signature assert!( |