diff options
Diffstat (limited to 'src/test/ui/uniform-paths/basic.rs')
-rw-r--r-- | src/test/ui/uniform-paths/basic.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/test/ui/uniform-paths/basic.rs b/src/test/ui/uniform-paths/basic.rs new file mode 100644 index 000000000..ce611a7ca --- /dev/null +++ b/src/test/ui/uniform-paths/basic.rs @@ -0,0 +1,33 @@ +// run-pass +// edition:2018 + +#![allow(unused_imports)] +#![allow(non_camel_case_types)] + +// Test that ambiguity errors are not emitted between `self::test` and +// `::test`, assuming the latter (crate) is not in `extern_prelude`. +mod test { + pub struct Foo(pub ()); +} +use test::Foo; + +// Test that qualified paths can refer to both the external crate and local item. +mod std { + pub struct io(pub ()); +} +use ::std::io as std_io; +use self::std::io as local_io; + +fn main() { + Foo(()); + let _ = std_io::stdout(); + local_io(()); + + { + // Test that having `std_io` in a module scope and a non-module + // scope is allowed, when both resolve to the same definition. + use ::std::io as std_io; + use std_io::stdout; + let _ = stdout(); + } +} |