summaryrefslogtreecommitdiffstats
path: root/tests/ui/hygiene/prelude-import-hygiene.rs
blob: 51e7bed6580b35b369281f9a7b4399d33089d3e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Make sure that attribute used when injecting the prelude are resolved
// hygienically.

// check-pass
// aux-build:not-libstd.rs

//revisions: rust2015 rust2018
//[rust2018] edition:2018

// The prelude import shouldn't see these as candidates for when it's trying to
// use the built-in macros.
extern crate core;
use core::prelude::v1::test as prelude_import;
use core::prelude::v1::test as macro_use;

// Should not be used for the prelude import - not a concern in the 2015 edition
// because `std` is already declared in the crate root.
#[cfg(rust2018)]
extern crate not_libstd as std;

#[cfg(rust2018)]
mod x {
    // The extern crate item should override `std` in the extern prelude.
    fn f() {
        std::not_in_lib_std();
    }
}

fn main() {}