1 macro_rules! m {
2     ($pat: pat) => {
3         trait Tr {
4             fn trait_method($pat: u8);
5         }
6 
7         type A = fn($pat: u8);
8 
9         extern "C" {
10             fn foreign_fn($pat: u8);
11         }
12     };
13 }
14 
15 mod good_pat {
16     m!(good_pat); // OK
17 }
18 
19 mod bad_pat {
20     m!((bad, pat));
21     //~^ ERROR patterns aren't allowed in function pointer types
22     //~| ERROR patterns aren't allowed in foreign function declarations
23     //~| ERROR patterns aren't allowed in functions without bodies
24 }
25 
main()26 fn main() {}
27