]> git.proxmox.com Git - rustc.git/blame - src/test/ui/run-pass/uniform-paths/macros.rs
New upstream version 1.30.0+dfsg1
[rustc.git] / src / test / ui / run-pass / uniform-paths / macros.rs
CommitLineData
b7449926
XL
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// run-pass
12#![allow(non_camel_case_types)]
13
14// edition:2018
15
16#![feature(uniform_paths)]
17
18// This test is similar to `basic.rs`, but with macros defining local items.
19
20// Test that ambiguity errors are not emitted between `self::test` and
21// `::test`, assuming the latter (crate) is not in `extern_prelude`.
22macro_rules! m1 {
23 () => {
24 mod test {
25 pub struct Foo(pub ());
26 }
27 }
28}
29use test::Foo;
30m1!();
31
32// Test that qualified paths can refer to both the external crate and local item.
33macro_rules! m2 {
34 () => {
35 mod std {
36 pub struct io(pub ());
37 }
38 }
39}
40use ::std::io as std_io;
41use self::std::io as local_io;
42m2!();
43
44fn main() {
45 Foo(());
46 std_io::stdout();
47 local_io(());
48}