Stop using ContainerId
in AssocContainerId
This commit is contained in:
parent
12f6bdcfd9
commit
a430549aa6
@ -1157,7 +1157,7 @@ fn as_assoc_item<ID, DEF, CTOR, AST>(db: &dyn HirDatabase, ctor: CTOR, id: ID) -
|
||||
{
|
||||
match id.lookup(db.upcast()).container {
|
||||
AssocContainerId::TraitId(_) | AssocContainerId::ImplId(_) => Some(ctor(DEF::from(id))),
|
||||
AssocContainerId::ContainerId(_) => None,
|
||||
AssocContainerId::ModuleId(_) => None,
|
||||
}
|
||||
}
|
||||
|
||||
@ -1185,7 +1185,7 @@ pub fn container(self, db: &dyn HirDatabase) -> AssocItemContainer {
|
||||
match container {
|
||||
AssocContainerId::TraitId(id) => AssocItemContainer::Trait(id.into()),
|
||||
AssocContainerId::ImplId(id) => AssocItemContainer::Impl(id.into()),
|
||||
AssocContainerId::ContainerId(_) => panic!("invalid AssocItem"),
|
||||
AssocContainerId::ModuleId(_) => panic!("invalid AssocItem"),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -286,11 +286,11 @@ pub enum ContainerId {
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||
pub enum AssocContainerId {
|
||||
ContainerId(ContainerId),
|
||||
ModuleId(ModuleId),
|
||||
ImplId(ImplId),
|
||||
TraitId(TraitId),
|
||||
}
|
||||
impl_from!(ContainerId for AssocContainerId);
|
||||
impl_from!(ModuleId for AssocContainerId);
|
||||
|
||||
/// A Data Type
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
|
||||
@ -459,7 +459,7 @@ fn module(&self, db: &dyn db::DefDatabase) -> ModuleId {
|
||||
impl HasModule for AssocContainerId {
|
||||
fn module(&self, db: &dyn db::DefDatabase) -> ModuleId {
|
||||
match *self {
|
||||
AssocContainerId::ContainerId(it) => it.module(db),
|
||||
AssocContainerId::ModuleId(it) => it,
|
||||
AssocContainerId::ImplId(it) => it.lookup(db).container.module(db),
|
||||
AssocContainerId::TraitId(it) => it.lookup(db).container.module(db),
|
||||
}
|
||||
|
@ -1121,7 +1121,7 @@ fn collect(&mut self, items: &[ModItem]) {
|
||||
|
||||
def = Some(DefData {
|
||||
id: FunctionLoc {
|
||||
container: container.into(),
|
||||
container: module.into(),
|
||||
id: ItemTreeId::new(self.file_id, id),
|
||||
}
|
||||
.intern(self.def_collector.db)
|
||||
@ -1188,7 +1188,7 @@ fn collect(&mut self, items: &[ModItem]) {
|
||||
if let Some(name) = &it.name {
|
||||
def = Some(DefData {
|
||||
id: ConstLoc {
|
||||
container: container.into(),
|
||||
container: module.into(),
|
||||
id: ItemTreeId::new(self.file_id, id),
|
||||
}
|
||||
.intern(self.def_collector.db)
|
||||
@ -1228,7 +1228,7 @@ fn collect(&mut self, items: &[ModItem]) {
|
||||
|
||||
def = Some(DefData {
|
||||
id: TypeAliasLoc {
|
||||
container: container.into(),
|
||||
container: module.into(),
|
||||
id: ItemTreeId::new(self.file_id, id),
|
||||
}
|
||||
.intern(self.def_collector.db)
|
||||
|
@ -700,7 +700,7 @@ fn resolver(self, db: &dyn DefDatabase) -> Resolver {
|
||||
impl HasResolver for AssocContainerId {
|
||||
fn resolver(self, db: &dyn DefDatabase) -> Resolver {
|
||||
match self {
|
||||
AssocContainerId::ContainerId(it) => it.resolver(db),
|
||||
AssocContainerId::ModuleId(it) => it.resolver(db),
|
||||
AssocContainerId::TraitId(it) => it.resolver(db),
|
||||
AssocContainerId::ImplId(it) => it.resolver(db),
|
||||
}
|
||||
|
@ -260,7 +260,7 @@ fn resolve_ty_assoc_item(
|
||||
}));
|
||||
Some(trait_substs)
|
||||
}
|
||||
AssocContainerId::ContainerId(_) => None,
|
||||
AssocContainerId::ModuleId(_) => None,
|
||||
};
|
||||
|
||||
self.write_assoc_resolution(id, item);
|
||||
|
@ -715,7 +715,7 @@ fn transform_receiver_ty(
|
||||
.fill_with_unknown()
|
||||
.build()
|
||||
}
|
||||
AssocContainerId::ContainerId(_) => unreachable!(),
|
||||
AssocContainerId::ModuleId(_) => unreachable!(),
|
||||
};
|
||||
let sig = db.callable_item_signature(function_id.into());
|
||||
Some(sig.value.params()[0].clone().subst_bound_vars(&substs))
|
||||
|
@ -259,6 +259,6 @@ fn parent_generic_def(db: &dyn DefDatabase, def: GenericDefId) -> Option<Generic
|
||||
match container {
|
||||
AssocContainerId::ImplId(it) => Some(it.into()),
|
||||
AssocContainerId::TraitId(it) => Some(it.into()),
|
||||
AssocContainerId::ContainerId(_) => None,
|
||||
AssocContainerId::ModuleId(_) => None,
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user