]> git.proxmox.com Git - rustc.git/blob - tests/ui/proc-macro/macro-namespace-reserved.rs
New upstream version 1.68.2+dfsg1
[rustc.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 }