| //@ force-host |
| //@ no-prefer-dynamic |
| |
| #![crate_type = "proc-macro"] |
| #![feature(proc_macro_quote)] |
| |
| extern crate proc_macro; |
| |
| use proc_macro::{quote, TokenStream}; |
| |
| #[proc_macro_derive(AnotherMacro, attributes(pointee))] |
| pub fn derive(_input: TokenStream) -> TokenStream { |
| quote! { |
| const _: () = { |
| const ANOTHER_MACRO_DERIVED: () = (); |
| }; |
| } |
| .into() |
| } |
| |
| #[proc_macro_attribute] |
| pub fn pointee( |
| _attr: proc_macro::TokenStream, |
| _item: proc_macro::TokenStream, |
| ) -> proc_macro::TokenStream { |
| quote! { |
| const _: () = { |
| const POINTEE_MACRO_ATTR_DERIVED: () = (); |
| }; |
| } |
| .into() |
| } |
| |
| #[proc_macro_attribute] |
| pub fn default( |
| _attr: proc_macro::TokenStream, |
| _item: proc_macro::TokenStream, |
| ) -> proc_macro::TokenStream { |
| quote! { |
| const _: () = { |
| const DEFAULT_MACRO_ATTR_DERIVED: () = (); |
| }; |
| } |
| .into() |
| } |