]>
Commit | Line | Data |
---|---|---|
5869c6ff XL |
1 | // force-host |
2 | // no-prefer-dynamic | |
3 | ||
4 | #![crate_type = "proc-macro"] | |
5 | #![feature(proc_macro_quote)] | |
6 | ||
7 | extern crate proc_macro; | |
8 | use proc_macro::{TokenStream, quote}; | |
9 | ||
10 | #[proc_macro_attribute] | |
11 | pub fn first_attr(_: TokenStream, input: TokenStream) -> TokenStream { | |
12 | let recollected: TokenStream = input.into_iter().collect(); | |
cdc7bbd5 | 13 | println!("First recollected: {:#?}", recollected); |
5869c6ff XL |
14 | quote! { |
15 | #[second_attr] | |
16 | $recollected | |
17 | } | |
18 | } | |
19 | ||
20 | #[proc_macro_attribute] | |
21 | pub fn second_attr(_: TokenStream, input: TokenStream) -> TokenStream { | |
cdc7bbd5 XL |
22 | let recollected: TokenStream = input.into_iter().collect(); |
23 | println!("Second recollected: {:#?}", recollected); | |
5869c6ff XL |
24 | TokenStream::new() |
25 | } |