resolve: Fix another ICE in import validation
This commit is contained in:
parent
3cda631ea4
commit
2af1d6f4dd
4 changed files with 17 additions and 5 deletions
|
@ -1014,11 +1014,11 @@ enum ModuleOrUniformRoot<'a> {
|
||||||
CurrentScope,
|
CurrentScope,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> PartialEq for ModuleOrUniformRoot<'a> {
|
impl ModuleOrUniformRoot<'_> {
|
||||||
fn eq(&self, other: &Self) -> bool {
|
fn same_def(lhs: Self, rhs: Self) -> bool {
|
||||||
match (*self, *other) {
|
match (lhs, rhs) {
|
||||||
(ModuleOrUniformRoot::Module(lhs),
|
(ModuleOrUniformRoot::Module(lhs),
|
||||||
ModuleOrUniformRoot::Module(rhs)) => ptr::eq(lhs, rhs),
|
ModuleOrUniformRoot::Module(rhs)) => lhs.def() == rhs.def(),
|
||||||
(ModuleOrUniformRoot::CrateRootAndExternPrelude,
|
(ModuleOrUniformRoot::CrateRootAndExternPrelude,
|
||||||
ModuleOrUniformRoot::CrateRootAndExternPrelude) |
|
ModuleOrUniformRoot::CrateRootAndExternPrelude) |
|
||||||
(ModuleOrUniformRoot::ExternPrelude, ModuleOrUniformRoot::ExternPrelude) |
|
(ModuleOrUniformRoot::ExternPrelude, ModuleOrUniformRoot::ExternPrelude) |
|
||||||
|
|
|
@ -842,7 +842,7 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> {
|
||||||
PathResult::Module(module) => {
|
PathResult::Module(module) => {
|
||||||
// Consistency checks, analogous to `finalize_current_module_macro_resolutions`.
|
// Consistency checks, analogous to `finalize_current_module_macro_resolutions`.
|
||||||
if let Some(initial_module) = directive.imported_module.get() {
|
if let Some(initial_module) = directive.imported_module.get() {
|
||||||
if module != initial_module && no_ambiguity {
|
if !ModuleOrUniformRoot::same_def(module, initial_module) && no_ambiguity {
|
||||||
span_bug!(directive.span, "inconsistent resolution for an import");
|
span_bug!(directive.span, "inconsistent resolution for an import");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
pub extern crate core;
|
11
src/test/ui/rust-2018/uniform-paths/issue-56596-2.rs
Normal file
11
src/test/ui/rust-2018/uniform-paths/issue-56596-2.rs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
// compile-pass
|
||||||
|
// edition:2018
|
||||||
|
// compile-flags: --extern issue_56596_2
|
||||||
|
// aux-build:issue-56596-2.rs
|
||||||
|
|
||||||
|
mod m {
|
||||||
|
use core::any;
|
||||||
|
pub use issue_56596_2::*;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
Loading…
Add table
Add a link
Reference in a new issue