rust/src/test/ui/underscore-imports/hygiene.rs
2021-01-11 23:49:47 +03:00

41 lines
653 B
Rust

// Make sure that underscore imports have the same hygiene considerations as other imports.
// check-pass
#![feature(decl_macro)]
mod x {
pub use std::ops::Deref as _;
}
macro glob_import() {
pub use crate::x::*;
}
macro underscore_import() {
use std::ops::DerefMut as _;
}
mod y {
crate::glob_import!();
crate::underscore_import!();
}
macro create_module($y:ident) {
mod $y {
crate::glob_import!();
crate::underscore_import!();
}
}
create_module!(z);
fn main() {
use crate::y::*;
use crate::z::*;
glob_import!();
underscore_import!();
(&()).deref();
(&mut ()).deref_mut();
}