Change:
the code i tried: noticed there was a typo, fixed it, still getting an ICE i expected: cargo-generate/pull/135, to not compile and give an error about typo cargo-generate/pull/136, to compile (and no longer display 2018 warnings about path clarity) instead, what happened: system info:
i also get this on stable and earlier nightlies, if that is at all useful.
(also please feel free to let me know if i can provide any more info- this is my first time filing a compiler bug! thanks for all your hardwork and help <3)
Nominating -- we should keep focus on Rust 2018-related bugs like this, I think.
Did you? I mean, there is a typo, right? Do you mean, you expected a controller error? Specifically I see this in the diff: and I think it should be ?
I guess you are saying you get the same ICE from , which has a fix... did you try a cargo clean? (I'm wondering if it is related to incremental compilation.)
yeah, so i noticed the typo, and then fixed it (hence the 2 PRs- i included both on the offchance that there were 2 issues.) i expected the 2nd one to compile, and the first one (after i noticed the typo, to not compile but give an error re: the typo). i will run a cargo clean and see if it helps!
OK, thanks for the clarification.
just ran and then and have the same error message.
Fixed in

Discussion:
self.set_binding_parent_module(binding, module); self.update_resolution(module, ident, ns, |this, resolution| { if let Some(old_binding) = resolution.binding { <ins> if binding.def() == Def::Err { // Do not override real bindings with `Def::Err`s from error recovery. return Ok(()); } </ins> match (old_binding.is_glob_import(), binding.is_glob_import()) { (true, true) => { if binding.def() != old_binding.def() {

fn main() { e::foo(); f::foo(); //~ ERROR `foo` is ambiguous <del> g::foo(); //~ ERROR `foo` is ambiguous </del> <ins> g::foo(); </ins> } mod ambiguous_module_errors {

= help: consider adding an explicit import of `foo` to disambiguate error[E0659]: `foo` is ambiguous (glob import vs glob import in the same module) <del> --> $DIR/duplicate.rs:36:8 | LL |     g::foo(); //~ ERROR `foo` is ambiguous |        ^^^ ambiguous name | note: `foo` could refer to the function imported here --> $DIR/duplicate.rs:29:13 | LL |     pub use a::*; |             ^^^^ = help: consider adding an explicit import of `foo` to disambiguate note: `foo` could also refer to the unresolved item imported here --> $DIR/duplicate.rs:30:13 | LL |     pub use f::*; |             ^^^^ = help: consider adding an explicit import of `foo` to disambiguate error[E0659]: `foo` is ambiguous (glob import vs glob import in the same module) </del> --> $DIR/duplicate.rs:49:9 | LL |         foo::bar(); //~ ERROR `foo` is ambiguous

|         ^^^^^^^^^^^ = help: consider adding an explicit import of `foo` to disambiguate <del> error: aborting due to 5 previous errors </del> <ins> error: aborting due to 4 previous errors </ins> Some errors occurred: E0252, E0659. For more information about an error, try `rustc --explain E0252`.

| = note: `issue_56125` could refer to an extern crate passed with `--extern` = help: use `::issue_56125` to refer to this extern crate unambiguously <del> note: `issue_56125` could also refer to the unresolved item imported here --> $DIR/issue-56125.rs:19:9 </del> <ins> note: `issue_56125` could also refer to the module imported here --> $DIR/issue-56125.rs:20:9 </ins> | <del> LL |     use empty::issue_56125; //~ ERROR unresolved import `empty::issue_56125` |         ^^^^^^^^^^^^^^^^^^ = help: use `self::issue_56125` to refer to this unresolved item unambiguously </del> <ins> LL |     use issue_56125::*; //~ ERROR `issue_56125` is ambiguous |         ^^^^^^^^^^^^^^ = help: use `self::issue_56125` to refer to this module unambiguously </ins> error: aborting due to 4 previous errors

<ins> mod glob_ok { pub mod something { pub mod something_else {} } } mod single_err {} use glob_ok::*; // glob_ok::something use single_err::something; //~ ERROR unresolved import `single_err::something` use something::something_else; fn main() {} </ins>

<ins> error[E0432]: unresolved import `single_err::something` --> $DIR/issue-57015.rs:10:5 | LL | use single_err::something; //~ ERROR unresolved import `single_err::something` |     ^^^^^^^^^^^^^^^^^^^^^ no `something` in `single_err` error: aborting due to previous error For more information about this error, try `rustc --explain E0432`. </ins>