The following code (2015 edition, a subset of [/src/test/ui/imports/duplicate.rs](https://github.com/rust-lang/rust/blob/fdca237d5194bf8a1c9b437ebd2114d1c2ba6195/src/test/ui/imports/duplicate.rs), [playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2015&gist=2ea93b416ad1ddc421e04be07754301b)) compiles: ```rust mod a { pub fn foo() {} } mod b { pub fn foo() {} } mod f { pub use a::*; pub use b::*; } mod g { pub use a::*; pub use f::*; } fn main() { g::foo(); } ``` If you reorder the glob imports in `g`, it does not compile ([playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2015&gist=3c8f81eaa9631599bb796cec5d22283)): ``` error[E0659]: `foo` is ambiguous --> src/main.rs:20:8 | 20 | g::foo(); | ^^^ ambiguous name | = note: ambiguous because of multiple glob imports of a name in the same module note: `foo` could refer to the function imported here --> src/main.rs:10:13 | 10 | pub use a::*; | ^^^^ = help: consider adding an explicit import of `foo` to disambiguate note: `foo` could also refer to the function imported here --> src/main.rs:11:13 | 11 | pub use b::*; | ^^^^ = help: consider adding an explicit import of `foo` to disambiguate ``` Both versions failed to compile prior to 1.32.0. I found this while looking at #97584/#47525, which looks very related, but regressed earlier (1.15) - I have a WIP fix for that issue, but it fails on the linked UI test because it makes this error again. I'm mostly opening this to double-check that this change wasn't deliberate (since [the change to the UI test's output was blessed](https://github.com/rust-lang/rust/pull/57199/files#diff-b63ad8afd26349ed288a7f39c920eb5ee9dd08897934cd0655fb0f5446549163)). @rustbot label C-bug T-compiler A-resolve regression-from-stable-to-stable