// force-host // no-prefer-dynamic #![crate_type = "proc-macro"] #![feature(proc_macro_quote)] extern crate proc_macro; use proc_macro::*; #[proc_macro_attribute] pub fn attr_tru(_attr: TokenStream, item: TokenStream) -> TokenStream { let name = item.into_iter().nth(1).unwrap(); quote!(fn $name() -> bool { true }) } #[proc_macro_attribute] pub fn attr_identity(_attr: TokenStream, item: TokenStream) -> TokenStream { quote!($item) } #[proc_macro] pub fn tru(_ts: TokenStream) -> TokenStream { quote!(true) } #[proc_macro] pub fn ret_tru(_ts: TokenStream) -> TokenStream { quote!(return true;) } #[proc_macro] pub fn identity(ts: TokenStream) -> TokenStream { quote!($ts) }