]> git.lizzy.rs Git - rust.git/blob - src/test/ui/macros/macro-path-prelude-shadowing.rs
Auto merge of #54624 - arielb1:evaluate-outlives, r=nikomatsakis
[rust.git] / src / test / ui / macros / macro-path-prelude-shadowing.rs
1 // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 // aux-build:macro-in-other-crate.rs
12
13 #![feature(decl_macro, extern_prelude)]
14
15 macro_rules! add_macro_expanded_things_to_macro_prelude {() => {
16     #[macro_use]
17     extern crate macro_in_other_crate;
18 }}
19
20 add_macro_expanded_things_to_macro_prelude!();
21
22 mod m1 {
23     fn check() {
24         inline!(); // OK. Theoretically ambiguous, but we do not consider built-in attributes
25                    // as candidates for non-attribute macro invocations to avoid regressions
26                    // on stable channel
27     }
28 }
29
30 mod m2 {
31     pub mod std {
32         pub macro panic() {}
33     }
34 }
35
36 mod m3 {
37     use m2::*; // glob-import user-defined `std`
38     fn check() {
39         std::panic!(); //~ ERROR `std` is ambiguous
40     }
41 }
42
43 fn main() {}