diff options
| author | David Barsky <me@davidbarsky.com> | 2025-01-27 17:20:11 -0500 |
|---|---|---|
| committer | David Barsky <me@davidbarsky.com> | 2025-01-27 17:30:34 -0500 |
| commit | 9c1a7ab5d88b9f374554dfd550c5ba2fe5b8acf1 (patch) | |
| tree | 0030909371a14bff89351c17b5eb1f4c1b772888 | |
| parent | f22e331a408f32111cbb7c7743b65b5eba95baa6 (diff) | |
| download | rust-9c1a7ab5d88b9f374554dfd550c5ba2fe5b8acf1.tar.gz rust-9c1a7ab5d88b9f374554dfd550c5ba2fe5b8acf1.zip | |
Back out "Implement `HasResolver` and `HasModule` for `FieldId`"
This backs out commit ce9da9063097c26006886b3f403a0c50790c285a.
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-def/src/lib.rs | 12 | ||||
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-def/src/resolver.rs | 27 |
2 files changed, 19 insertions, 20 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-def/src/lib.rs b/src/tools/rust-analyzer/crates/hir-def/src/lib.rs index cf97d27fd1f..1f06331783d 100644 --- a/src/tools/rust-analyzer/crates/hir-def/src/lib.rs +++ b/src/tools/rust-analyzer/crates/hir-def/src/lib.rs @@ -1357,12 +1357,6 @@ impl HasModule for VariantId { } } -impl HasModule for FieldId { - fn module(&self, db: &dyn DefDatabase) -> ModuleId { - self.parent.module(db) - } -} - impl HasModule for MacroId { fn module(&self, db: &dyn DefDatabase) -> ModuleId { match *self { @@ -1386,7 +1380,11 @@ impl HasModule for TypeOwnerId { TypeOwnerId::ImplId(it) => it.module(db), TypeOwnerId::EnumVariantId(it) => it.module(db), TypeOwnerId::InTypeConstId(it) => it.lookup(db).owner.module(db), - TypeOwnerId::FieldId(it) => it.module(db), + TypeOwnerId::FieldId(it) => match it.parent { + VariantId::EnumVariantId(it) => it.module(db), + VariantId::StructId(it) => it.module(db), + VariantId::UnionId(it) => it.module(db), + }, } } } diff --git a/src/tools/rust-analyzer/crates/hir-def/src/resolver.rs b/src/tools/rust-analyzer/crates/hir-def/src/resolver.rs index b415efafa6f..52998942965 100644 --- a/src/tools/rust-analyzer/crates/hir-def/src/resolver.rs +++ b/src/tools/rust-analyzer/crates/hir-def/src/resolver.rs @@ -27,11 +27,10 @@ use crate::{ type_ref::{LifetimeRef, TypesMap}, visibility::{RawVisibility, Visibility}, AdtId, ConstId, ConstParamId, CrateRootModuleId, DefWithBodyId, EnumId, EnumVariantId, - ExternBlockId, ExternCrateId, FieldId, FunctionId, FxIndexMap, GenericDefId, GenericParamId, - HasModule, ImplId, ItemContainerId, ItemTreeLoc, LifetimeParamId, LocalModuleId, Lookup, - Macro2Id, MacroId, MacroRulesId, ModuleDefId, ModuleId, ProcMacroId, StaticId, StructId, - TraitAliasId, TraitId, TypeAliasId, TypeOrConstParamId, TypeOwnerId, TypeParamId, UseId, - VariantId, + ExternBlockId, ExternCrateId, FunctionId, FxIndexMap, GenericDefId, GenericParamId, HasModule, + ImplId, ItemContainerId, ItemTreeLoc, LifetimeParamId, LocalModuleId, Lookup, Macro2Id, + MacroId, MacroRulesId, ModuleDefId, ModuleId, ProcMacroId, StaticId, StructId, TraitAliasId, + TraitId, TypeAliasId, TypeOrConstParamId, TypeOwnerId, TypeParamId, UseId, VariantId, }; #[derive(Debug, Clone)] @@ -1228,7 +1227,11 @@ impl HasResolver for TypeOwnerId { TypeOwnerId::TypeAliasId(it) => it.resolver(db), TypeOwnerId::ImplId(it) => it.resolver(db), TypeOwnerId::EnumVariantId(it) => it.resolver(db), - TypeOwnerId::FieldId(it) => it.resolver(db), + TypeOwnerId::FieldId(it) => match it.parent { + VariantId::EnumVariantId(it) => it.resolver(db), + VariantId::StructId(it) => it.resolver(db), + VariantId::UnionId(it) => it.resolver(db), + }, } } } @@ -1241,7 +1244,11 @@ impl HasResolver for DefWithBodyId { DefWithBodyId::StaticId(s) => s.resolver(db), DefWithBodyId::VariantId(v) => v.resolver(db), DefWithBodyId::InTypeConstId(c) => c.lookup(db).owner.resolver(db), - DefWithBodyId::FieldId(f) => f.resolver(db), + DefWithBodyId::FieldId(f) => match f.parent { + VariantId::EnumVariantId(it) => it.resolver(db), + VariantId::StructId(it) => it.resolver(db), + VariantId::UnionId(it) => it.resolver(db), + }, } } } @@ -1288,12 +1295,6 @@ impl HasResolver for VariantId { } } -impl HasResolver for FieldId { - fn resolver(self, db: &dyn DefDatabase) -> Resolver { - self.parent.resolver(db) - } -} - impl HasResolver for MacroId { fn resolver(self, db: &dyn DefDatabase) -> Resolver { match self { |
