4 #![feature(decl_macro)]
5 #![crate_type = "proc-macro"]
7 extern crate proc_macro;
11 pub fn my_macro(input: TokenStream) -> TokenStream {
15 #[proc_macro_attribute]
16 pub fn my_macro_attr(input: TokenStream, _: TokenStream) -> TokenStream {
20 #[proc_macro_derive(MyTrait)]
21 pub fn my_macro_derive(input: TokenStream) -> TokenStream {
25 macro my_macro() {} //~ ERROR the name `my_macro` is defined multiple times
26 macro my_macro_attr() {} //~ ERROR the name `my_macro_attr` is defined multiple times
27 macro MyTrait() {} //~ ERROR the name `MyTrait` is defined multiple times
29 #[proc_macro_derive(SameName)]
30 pub fn foo(input: TokenStream) -> TokenStream {
35 pub fn SameName(input: TokenStream) -> TokenStream {
36 //~^ ERROR the name `SameName` is defined multiple times