1 // aux-build:two_macros.rs
2 
3 mod foo {
4     extern crate two_macros;
5     pub use self::two_macros::m as panic;
6 }
7 
8 mod m1 {
9     use foo::panic; // ok
f()10     fn f() { panic!(); }
11 }
12 
13 mod m2 {
14     use foo::*;
f()15     fn f() { panic!(); } //~ ERROR ambiguous
16 }
17 
18 mod m3 {
19     ::two_macros::m!(use foo::panic;);
f()20     fn f() { panic!(); } //~ ERROR ambiguous
21 }
22 
23 mod m4 {
24     macro_rules! panic { () => {} } // ok
25     panic!();
26 }
27 
28 mod m5 {
29     macro_rules! m { () => {
30         macro_rules! panic { () => {} }
31     } }
32     m!();
33     panic!(); //~ ERROR `panic` is ambiguous
34 }
35 
36 #[macro_use(n)]
37 extern crate two_macros;
38 mod bar {
39     pub use two_macros::m as n;
40 }
41 
42 mod m6 {
43     use bar::n; // ok
44     n!();
45 }
46 
47 mod m7 {
48     use bar::*;
49     n!(); //~ ERROR ambiguous
50 }
51 
main()52 fn main() {}
53