For example,
mod foo {
mod bar {
pub fn f() { println!("foo"); }
}
pub use self::bar::f;
}
pub use foo::*;
pub fn f() { println!("baz"); }
fn main() {
f(); // Prints "baz"
}
Also, considering the above example as a crate, the glob import used to shadow the item from the perspective of users of the crate before #30843. After #30843, the item shadows the glob import both inside and outside the crate. I can easily revert that breaking change if desired (crater found no breakage in practice).
Finally, in the generated documentation for the crate, f is listed twice, both times as the glob imported version, i.e. the glob import still shadows the item in the crate documentation.
For example,
Also, considering the above example as a crate, the glob import used to shadow the item from the perspective of users of the crate before #30843. After #30843, the item shadows the glob import both inside and outside the crate. I can easily revert that breaking change if desired (crater found no breakage in practice).
Finally, in the generated documentation for the crate,
fis listed twice, both times as the glob imported version, i.e. the glob import still shadows the item in the crate documentation.