• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // `#![derive]` raises errors when it occurs at contexts other than ADT
2 // definitions.
3 
4 #[derive(Debug)]
5 //~^ ERROR `derive` may only be applied to `struct`s, `enum`s and `union`s
6 mod derive {
7     mod inner { #![derive(Debug)] }
8     //~^ ERROR `derive` may only be applied to `struct`s, `enum`s and `union`s
9     //~| ERROR inner macro attributes are unstable
10 
11     #[derive(Debug)]
12     //~^ ERROR `derive` may only be applied to `struct`s, `enum`s and `union`s
derive()13     fn derive() { }
14 
15     #[derive(Copy, Clone)] // (can't derive Debug for unions)
16     union U { f: i32 }
17 
18     #[derive(Debug)]
19     struct S;
20 
21     #[derive(Debug)]
22     enum E { }
23 
24     #[derive(Debug)]
25     //~^ ERROR `derive` may only be applied to `struct`s, `enum`s and `union`s
26     type T = S;
27 
28     #[derive(Debug)]
29     //~^ ERROR `derive` may only be applied to `struct`s, `enum`s and `union`s
30     impl S { }
31 }
32 
main()33 fn main() {}
34