]> git.lizzy.rs Git - rust.git/commitdiff
Profile import_assets better
authorKirill Bulatov <mail4score@gmail.com>
Mon, 1 Mar 2021 12:27:07 +0000 (14:27 +0200)
committerKirill Bulatov <mail4score@gmail.com>
Mon, 8 Mar 2021 21:59:20 +0000 (23:59 +0200)
crates/ide_db/src/helpers/import_assets.rs

index 4e352d546faba7492d6e71195add22873f9297b9..a30a4dd9debe980246f8e3ea65edb9a9d3dddc34 100644 (file)
@@ -244,6 +244,7 @@ fn applicable_defs(
         prefixed: Option<PrefixKind>,
         defs_for_candidate_name: impl Iterator<Item = Either<ModuleDef, MacroDef>>,
     ) -> FxHashSet<LocatedImport> {
+        let _p = profile::span("import_assets::applicable_defs");
         let current_crate = self.module_with_candidate.krate();
 
         let mod_path = |item| get_mod_path(db, item, &self.module_with_candidate, prefixed);
@@ -278,6 +279,8 @@ fn path_applicable_imports(
     mod_path: impl Fn(ItemInNs) -> Option<ModPath> + Copy,
     defs_for_candidate_name: impl Iterator<Item = Either<ModuleDef, MacroDef>>,
 ) -> FxHashSet<LocatedImport> {
+    let _p = profile::span("import_assets::path_applicable_imports");
+
     let items_for_candidate_name =
         defs_for_candidate_name.map(|def| def.either(ItemInNs::from, ItemInNs::from));
 
@@ -306,6 +309,7 @@ fn import_for_item(
     unresolved_qualifier: &str,
     original_item: ItemInNs,
 ) -> Option<LocatedImport> {
+    let _p = profile::span("import_assets::import_for_item");
     let (item_candidate, trait_to_import) = match original_item.as_module_def_id() {
         Some(module_def_id) => {
             match ModuleDef::from(module_def_id).as_assoc_item(db).map(|assoc| assoc.container(db))
@@ -397,6 +401,7 @@ fn trait_applicable_items(
     mod_path: impl Fn(ItemInNs) -> Option<ModPath>,
     defs_for_candidate_name: impl Iterator<Item = Either<ModuleDef, MacroDef>>,
 ) -> FxHashSet<LocatedImport> {
+    let _p = profile::span("import_assets::trait_applicable_items");
     let mut required_assoc_items = FxHashSet::default();
 
     let trait_candidates = defs_for_candidate_name