CurrentScope,
}
-impl<'a> PartialEq for ModuleOrUniformRoot<'a> {
- fn eq(&self, other: &Self) -> bool {
- match (*self, *other) {
+impl ModuleOrUniformRoot<'_> {
+ fn same_def(lhs: Self, rhs: Self) -> bool {
+ match (lhs, rhs) {
(ModuleOrUniformRoot::Module(lhs),
- ModuleOrUniformRoot::Module(rhs)) => ptr::eq(lhs, rhs),
+ ModuleOrUniformRoot::Module(rhs)) => lhs.def() == rhs.def(),
(ModuleOrUniformRoot::CrateRootAndExternPrelude,
ModuleOrUniformRoot::CrateRootAndExternPrelude) |
(ModuleOrUniformRoot::ExternPrelude, ModuleOrUniformRoot::ExternPrelude) |
PathResult::Module(module) => {
// Consistency checks, analogous to `finalize_current_module_macro_resolutions`.
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");
}
} else {