diff options
Diffstat (limited to 'tests/ui/imports/duplicate.rs')
-rw-r--r-- | tests/ui/imports/duplicate.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/ui/imports/duplicate.rs b/tests/ui/imports/duplicate.rs new file mode 100644 index 000000000..db6538969 --- /dev/null +++ b/tests/ui/imports/duplicate.rs @@ -0,0 +1,51 @@ +mod a { + pub fn foo() {} +} + +mod b { + pub fn foo() {} +} + +mod c { + pub use a::foo; +} + +mod d { + use a::foo; + use a::foo; //~ ERROR the name `foo` is defined multiple times +} + +mod e { + pub use a::*; + pub use c::*; // ok +} + +mod f { + pub use a::*; + pub use b::*; +} + +mod g { + pub use a::*; + pub use f::*; +} + +fn main() { + e::foo(); + f::foo(); //~ ERROR `foo` is ambiguous + g::foo(); +} + +mod ambiguous_module_errors { + pub mod m1 { pub use super::m1 as foo; pub fn bar() {} } + pub mod m2 { pub use super::m2 as foo; } + + use self::m1::*; + use self::m2::*; + + use self::foo::bar; //~ ERROR `foo` is ambiguous + + fn f() { + foo::bar(); //~ ERROR `foo` is ambiguous + } +} |