Fix post-rebase issues

This commit is contained in:
Kirill Bulatov 2020-02-12 17:18:29 +02:00
parent acf5f43639
commit afc1d18ff3
2 changed files with 25 additions and 25 deletions

View File

@ -4,8 +4,8 @@ use crate::{
};
use hir::{
db::{DefDatabase, HirDatabase},
AssocContainerId, AssocItem, Crate, Function, ModPath, Module, ModuleDef, PathResolution,
SourceAnalyzer, Trait, Type,
AsAssocItem, AssocItem, AssocItemContainer, Crate, Function, ModPath, Module, ModuleDef,
PathResolution, SourceAnalyzer, Trait, Type,
};
use ra_ide_db::{imports_locator::ImportsLocator, RootDatabase};
use ra_prof::profile;
@ -157,13 +157,12 @@ impl AutoImportAssets {
&trait_candidates,
None,
|_, assoc| {
if let AssocContainerId::TraitId(trait_id) = assoc.container(db)
if let AssocItemContainer::Trait(appropriate_trait) =
assoc.container(db)
{
applicable_traits.push(
self.module_with_name_to_import.find_use_path(
db,
ModuleDef::Trait(trait_id.into()),
),
self.module_with_name_to_import
.find_use_path(db, appropriate_trait.into()),
);
};
None::<()>
@ -187,15 +186,15 @@ impl AutoImportAssets {
current_crate,
&trait_candidates,
None,
|_, funciton| {
if let AssocContainerId::TraitId(trait_id) =
funciton.container(db)
|_, function| {
if let AssocItemContainer::Trait(appropriate_trait) = function
.as_assoc_item(db)
.expect("Function is an assoc item")
.container(db)
{
applicable_traits.push(
self.module_with_name_to_import.find_use_path(
db,
ModuleDef::Trait(trait_id.into()),
),
self.module_with_name_to_import
.find_use_path(db, appropriate_trait.into()),
);
};
None::<()>

View File

@ -123,7 +123,7 @@ impl_froms!(
);
pub use hir_def::{
attr::Attrs, item_scope::ItemInNs, visibility::Visibility, AssocContainerId, AssocItemId,
attr::Attrs, item_scope::ItemInNs, visibility::Visibility, AssocItemId, AssocItemLoc,
};
use rustc_hash::FxHashSet;
@ -548,10 +548,6 @@ impl Function {
let mut validator = ExprValidator::new(self.id, infer, sink);
validator.validate_body(db);
}
pub fn container(self, db: &impl DefDatabase) -> AssocContainerId {
self.id.lookup(db).container
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
@ -701,11 +697,16 @@ impl AssocItem {
}
}
pub fn container(self, db: &impl DefDatabase) -> AssocContainerId {
match self {
AssocItem::Function(f) => f.container(db),
AssocItem::Const(c) => c.id.lookup(db).container,
AssocItem::TypeAlias(t) => t.id.lookup(db).container,
pub fn container(self, db: &impl DefDatabase) -> AssocItemContainer {
let container = match self {
AssocItem::Function(it) => it.id.lookup(db).container,
AssocItem::Const(it) => it.id.lookup(db).container,
AssocItem::TypeAlias(it) => it.id.lookup(db).container,
};
match container {
AssocContainerId::TraitId(id) => AssocItemContainer::Trait(id.into()),
AssocContainerId::ImplId(id) => AssocItemContainer::ImplBlock(id.into()),
AssocContainerId::ContainerId(_) => panic!("invalid AssocItem"),
}
}
}
@ -818,7 +819,7 @@ impl TypeParam {
}
}
// FIXME: rename to `ImplBlock`
// FIXME: rename from `ImplBlock` to `Impl`
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct ImplBlock {
pub(crate) id: ImplId,