]> git.lizzy.rs Git - rust.git/blob - tests/ui/proc-macro/macro-namespace-reserved.rs
Rollup merge of #106788 - estebank:elaborate_pred_E0599, r=compiler-errors
[rust.git] / tests / ui / proc-macro / macro-namespace-reserved.rs
1 // force-host
2 // no-prefer-dynamic
3
4 #![feature(decl_macro)]
5 #![crate_type = "proc-macro"]
6
7 extern crate proc_macro;
8 use proc_macro::*;
9
10 #[proc_macro]
11 pub fn my_macro(input: TokenStream) -> TokenStream {
12     input
13 }
14
15 #[proc_macro_attribute]
16 pub fn my_macro_attr(input: TokenStream, _: TokenStream) -> TokenStream {
17     input
18 }
19
20 #[proc_macro_derive(MyTrait)]
21 pub fn my_macro_derive(input: TokenStream) -> TokenStream {
22     input
23 }
24
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
28
29 #[proc_macro_derive(SameName)]
30 pub fn foo(input: TokenStream) -> TokenStream {
31     input
32 }
33
34 #[proc_macro]
35 pub fn SameName(input: TokenStream) -> TokenStream {
36 //~^ ERROR the name `SameName` is defined multiple times
37     input
38 }