Skip to content

Commit c7463fe

Browse files
committed
Implement HasResolver and HasModule for FieldId
1 parent faeaf4a commit c7463fe

File tree

2 files changed

+20
-19
lines changed

2 files changed

+20
-19
lines changed

src/tools/rust-analyzer/crates/hir-def/src/lib.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1357,6 +1357,12 @@ impl HasModule for VariantId {
13571357
}
13581358
}
13591359

1360+
impl HasModule for FieldId {
1361+
fn module(&self, db: &dyn DefDatabase) -> ModuleId {
1362+
self.parent.module(db)
1363+
}
1364+
}
1365+
13601366
impl HasModule for MacroId {
13611367
fn module(&self, db: &dyn DefDatabase) -> ModuleId {
13621368
match *self {
@@ -1380,11 +1386,7 @@ impl HasModule for TypeOwnerId {
13801386
TypeOwnerId::ImplId(it) => it.module(db),
13811387
TypeOwnerId::EnumVariantId(it) => it.module(db),
13821388
TypeOwnerId::InTypeConstId(it) => it.lookup(db).owner.module(db),
1383-
TypeOwnerId::FieldId(it) => match it.parent {
1384-
VariantId::EnumVariantId(it) => it.module(db),
1385-
VariantId::StructId(it) => it.module(db),
1386-
VariantId::UnionId(it) => it.module(db),
1387-
},
1389+
TypeOwnerId::FieldId(it) => it.module(db),
13881390
}
13891391
}
13901392
}

src/tools/rust-analyzer/crates/hir-def/src/resolver.rs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ use crate::{
2727
type_ref::{LifetimeRef, TypesMap},
2828
visibility::{RawVisibility, Visibility},
2929
AdtId, ConstId, ConstParamId, CrateRootModuleId, DefWithBodyId, EnumId, EnumVariantId,
30-
ExternBlockId, ExternCrateId, FunctionId, FxIndexMap, GenericDefId, GenericParamId, HasModule,
31-
ImplId, ItemContainerId, ItemTreeLoc, LifetimeParamId, LocalModuleId, Lookup, Macro2Id,
32-
MacroId, MacroRulesId, ModuleDefId, ModuleId, ProcMacroId, StaticId, StructId, TraitAliasId,
33-
TraitId, TypeAliasId, TypeOrConstParamId, TypeOwnerId, TypeParamId, UseId, VariantId,
30+
ExternBlockId, ExternCrateId, FieldId, FunctionId, FxIndexMap, GenericDefId, GenericParamId,
31+
HasModule, ImplId, ItemContainerId, ItemTreeLoc, LifetimeParamId, LocalModuleId, Lookup,
32+
Macro2Id, MacroId, MacroRulesId, ModuleDefId, ModuleId, ProcMacroId, StaticId, StructId,
33+
TraitAliasId, TraitId, TypeAliasId, TypeOrConstParamId, TypeOwnerId, TypeParamId, UseId,
34+
VariantId,
3435
};
3536

3637
#[derive(Debug, Clone)]
@@ -1227,11 +1228,7 @@ impl HasResolver for TypeOwnerId {
12271228
TypeOwnerId::TypeAliasId(it) => it.resolver(db),
12281229
TypeOwnerId::ImplId(it) => it.resolver(db),
12291230
TypeOwnerId::EnumVariantId(it) => it.resolver(db),
1230-
TypeOwnerId::FieldId(it) => match it.parent {
1231-
VariantId::EnumVariantId(it) => it.resolver(db),
1232-
VariantId::StructId(it) => it.resolver(db),
1233-
VariantId::UnionId(it) => it.resolver(db),
1234-
},
1231+
TypeOwnerId::FieldId(it) => it.resolver(db),
12351232
}
12361233
}
12371234
}
@@ -1244,11 +1241,7 @@ impl HasResolver for DefWithBodyId {
12441241
DefWithBodyId::StaticId(s) => s.resolver(db),
12451242
DefWithBodyId::VariantId(v) => v.resolver(db),
12461243
DefWithBodyId::InTypeConstId(c) => c.lookup(db).owner.resolver(db),
1247-
DefWithBodyId::FieldId(f) => match f.parent {
1248-
VariantId::EnumVariantId(it) => it.resolver(db),
1249-
VariantId::StructId(it) => it.resolver(db),
1250-
VariantId::UnionId(it) => it.resolver(db),
1251-
},
1244+
DefWithBodyId::FieldId(f) => f.resolver(db),
12521245
}
12531246
}
12541247
}
@@ -1295,6 +1288,12 @@ impl HasResolver for VariantId {
12951288
}
12961289
}
12971290

1291+
impl HasResolver for FieldId {
1292+
fn resolver(self, db: &dyn DefDatabase) -> Resolver {
1293+
self.parent.resolver(db)
1294+
}
1295+
}
1296+
12981297
impl HasResolver for MacroId {
12991298
fn resolver(self, db: &dyn DefDatabase) -> Resolver {
13001299
match self {

0 commit comments

Comments
 (0)