Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_db/src/helpers.rs')
-rw-r--r--crates/ide_db/src/helpers.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/crates/ide_db/src/helpers.rs b/crates/ide_db/src/helpers.rs
index 5c5dbdfb5f..aae1fba6e9 100644
--- a/crates/ide_db/src/helpers.rs
+++ b/crates/ide_db/src/helpers.rs
@@ -10,7 +10,6 @@ pub mod rust_doc;
use std::{collections::VecDeque, iter};
use base_db::FileId;
-use either::Either;
use hir::{ItemInNs, MacroDef, ModuleDef, Name, PathResolution, Semantics};
use itertools::Itertools;
use syntax::{
@@ -19,7 +18,7 @@ use syntax::{
T,
};
-use crate::RootDatabase;
+use crate::{defs::Definition, RootDatabase};
pub use self::famous_defs::FamousDefs;
@@ -122,7 +121,7 @@ pub fn mod_path_to_ast(path: &hir::ModPath) -> ast::Path {
pub fn visit_file_defs(
sema: &Semantics<RootDatabase>,
file_id: FileId,
- cb: &mut dyn FnMut(Either<hir::ModuleDef, hir::Impl>),
+ cb: &mut dyn FnMut(Definition),
) {
let db = sema.db;
let module = match sema.to_module_def(file_id) {
@@ -134,12 +133,12 @@ pub fn visit_file_defs(
if let ModuleDef::Module(submodule) = def {
if let hir::ModuleSource::Module(_) = submodule.definition_source(db).value {
defs.extend(submodule.declarations(db));
- submodule.impl_defs(db).into_iter().for_each(|impl_| cb(Either::Right(impl_)));
+ submodule.impl_defs(db).into_iter().for_each(|impl_| cb(impl_.into()));
}
}
- cb(Either::Left(def));
+ cb(def.into());
}
- module.impl_defs(db).into_iter().for_each(|impl_| cb(Either::Right(impl_)));
+ module.impl_defs(db).into_iter().for_each(|impl_| cb(impl_.into()));
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]