30 lines
764 B
Rust
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() {}
|