Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/hir-def/src/resolver.rs4
-rw-r--r--crates/hir/src/lib.rs12
2 files changed, 5 insertions, 11 deletions
diff --git a/crates/hir-def/src/resolver.rs b/crates/hir-def/src/resolver.rs
index 724926f824..63ff384de0 100644
--- a/crates/hir-def/src/resolver.rs
+++ b/crates/hir-def/src/resolver.rs
@@ -1379,7 +1379,7 @@ impl HasResolver for TypeAliasId {
impl HasResolver for ImplId {
fn resolver(self, db: &dyn SourceDatabase) -> Resolver<'_> {
- self.lookup(db).container.resolver(db).push_generic_params_scope(db, self.into())
+ lookup_resolver(db, self).push_generic_params_scope(db, self.into())
}
}
@@ -1450,7 +1450,7 @@ impl HasResolver for ExpressionStoreOwnerId {
impl HasResolver for EnumVariantId {
fn resolver(self, db: &dyn SourceDatabase) -> Resolver<'_> {
- self.lookup(db).parent.resolver(db)
+ lookup_resolver(db, self)
}
}
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index a029ed4031..ab7d88eeef 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -1065,15 +1065,9 @@ impl Module {
db.impl_self_ty_with_diagnostics(impl_id).diagnostics(),
source_map,
);
- push_ty_diagnostics(
- db,
- acc,
- db.impl_trait_with_diagnostics(impl_id)
- .as_ref()
- .map(|it| it.diagnostics())
- .unwrap_or_default(),
- source_map,
- );
+ if let Some(it) = db.impl_trait_with_diagnostics(impl_id) {
+ push_ty_diagnostics(db, acc, it.diagnostics(), source_map);
+ }
for &(_, item) in impl_id.impl_items(db).items.iter() {
AssocItem::from(item).diagnostics(db, acc, style_lints);