rust/tests/ui/hygiene/prelude-import-hygiene.rs

30 lines
764 B
Rust

// 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() {}