Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/apply_change.rs')
-rw-r--r--crates/ide-db/src/apply_change.rs371
1 files changed, 185 insertions, 186 deletions
diff --git a/crates/ide-db/src/apply_change.rs b/crates/ide-db/src/apply_change.rs
index 46ff4fbf9e..008b6fdbe2 100644
--- a/crates/ide-db/src/apply_change.rs
+++ b/crates/ide-db/src/apply_change.rs
@@ -1,17 +1,12 @@
//! Applies changes to the IDE state transactionally.
-use base_db::{
- ra_salsa::{
- debug::{DebugQueryTable, TableEntry},
- Database, Durability, Query, QueryTable,
- },
- SourceRootId,
-};
-use profile::{memory_usage, Bytes};
+use base_db::SourceRootId;
+use profile::Bytes;
use rustc_hash::FxHashSet;
+use salsa::{Database as _, Durability};
use triomphe::Arc;
-use crate::{symbol_index::SymbolsDatabase, ChangeWithProcMacros, RootDatabase};
+use crate::{ChangeWithProcMacros, RootDatabase, symbol_index::SymbolsDatabase};
impl RootDatabase {
pub fn request_cancellation(&mut self) {
@@ -34,8 +29,8 @@ impl RootDatabase {
local_roots.insert(root_id);
}
}
- self.set_local_roots_with_durability(Arc::new(local_roots), Durability::HIGH);
- self.set_library_roots_with_durability(Arc::new(library_roots), Durability::HIGH);
+ self.set_local_roots_with_durability(Arc::new(local_roots), Durability::MEDIUM);
+ self.set_library_roots_with_durability(Arc::new(library_roots), Durability::MEDIUM);
}
change.apply(self);
}
@@ -52,23 +47,23 @@ impl RootDatabase {
pub fn per_query_memory_usage(&mut self) -> Vec<(String, Bytes, usize)> {
let mut acc: Vec<(String, Bytes, usize)> = vec![];
- fn collect_query_count<'q, Q>(table: &QueryTable<'q, Q>) -> usize
- where
- QueryTable<'q, Q>: DebugQueryTable,
- Q: Query,
- <Q as Query>::Storage: 'q,
- {
- struct EntryCounter(usize);
- impl<K, V> FromIterator<TableEntry<K, V>> for EntryCounter {
- fn from_iter<T>(iter: T) -> EntryCounter
- where
- T: IntoIterator<Item = TableEntry<K, V>>,
- {
- EntryCounter(iter.into_iter().count())
- }
- }
- table.entries::<EntryCounter>().0
- }
+ // fn collect_query_count<'q, Q>(table: &QueryTable<'q, Q>) -> usize
+ // where
+ // QueryTable<'q, Q>: DebugQueryTable,
+ // Q: Query,
+ // <Q as Query>::Storage: 'q,
+ // {
+ // struct EntryCounter(usize);
+ // impl<K, V> FromIterator<TableEntry<K, V>> for EntryCounter {
+ // fn from_iter<T>(iter: T) -> EntryCounter
+ // where
+ // T: IntoIterator<Item = TableEntry<K, V>>,
+ // {
+ // EntryCounter(iter.into_iter().count())
+ // }
+ // }
+ // table.entries::<EntryCounter>().0
+ // }
macro_rules! purge_each_query {
($($q:path)*) => {$(
@@ -83,170 +78,174 @@ impl RootDatabase {
)*}
}
purge_each_query![
- // SymbolsDatabase
- crate::symbol_index::ModuleSymbolsQuery
- crate::symbol_index::LibrarySymbolsQuery
- crate::symbol_index::LocalRootsQuery
- crate::symbol_index::LibraryRootsQuery
- // HirDatabase
- hir::db::AdtDatumQuery
- hir::db::AdtVarianceQuery
- hir::db::AssociatedTyDataQuery
- hir::db::AssociatedTyValueQuery
- hir::db::BorrowckQuery
- hir::db::CallableItemSignatureQuery
- hir::db::ConstEvalDiscriminantQuery
- hir::db::ConstEvalQuery
- hir::db::ConstEvalStaticQuery
- hir::db::ConstParamTyQuery
- hir::db::DynCompatibilityOfTraitQuery
- hir::db::FieldTypesQuery
- hir::db::FnDefDatumQuery
- hir::db::FnDefVarianceQuery
- hir::db::GenericDefaultsQuery
- hir::db::GenericPredicatesForParamQuery
- hir::db::GenericPredicatesQuery
- hir::db::GenericPredicatesWithoutParentQuery
- hir::db::ImplDatumQuery
- hir::db::ImplSelfTyQuery
- hir::db::ImplTraitQuery
- hir::db::IncoherentInherentImplCratesQuery
- hir::db::InferQuery
- hir::db::InherentImplsInBlockQuery
- hir::db::InherentImplsInCrateQuery
- hir::db::InternCallableDefQuery
- hir::db::InternClosureQuery
- hir::db::InternCoroutineQuery
- hir::db::InternImplTraitIdQuery
- hir::db::InternLifetimeParamIdQuery
- hir::db::InternTypeOrConstParamIdQuery
- hir::db::LayoutOfAdtQuery
- hir::db::LayoutOfTyQuery
- hir::db::LookupImplMethodQuery
- hir::db::MirBodyForClosureQuery
- hir::db::MirBodyQuery
- hir::db::MonomorphizedMirBodyForClosureQuery
- hir::db::MonomorphizedMirBodyQuery
- hir::db::ProgramClausesForChalkEnvQuery
- hir::db::ReturnTypeImplTraitsQuery
- hir::db::TargetDataLayoutQuery
- hir::db::TraitDatumQuery
- hir::db::TraitEnvironmentQuery
- hir::db::TraitImplsInBlockQuery
- hir::db::TraitImplsInCrateQuery
- hir::db::TraitImplsInDepsQuery
- hir::db::TraitSolveQuery
- hir::db::TyQuery
- hir::db::TypeAliasImplTraitsQuery
- hir::db::ValueTyQuery
+ // // SymbolsDatabase
+ // crate::symbol_index::ModuleSymbolsQuery
+ // crate::symbol_index::LibrarySymbolsQuery
+ // crate::symbol_index::LocalRootsQuery
+ // crate::symbol_index::LibraryRootsQuery
+ // // HirDatabase
+ // hir::db::AdtDatumQuery
+ // hir::db::AdtVarianceQuery
+ // hir::db::AssociatedTyDataQuery
+ // hir::db::AssociatedTyValueQuery
+ // hir::db::BorrowckQuery
+ // hir::db::CallableItemSignatureQuery
+ // hir::db::ConstEvalDiscriminantQuery
+ // hir::db::ConstEvalQuery
+ // hir::db::ConstEvalStaticQuery
+ // hir::db::ConstParamTyQuery
+ // hir::db::DynCompatibilityOfTraitQuery
+ // hir::db::FieldTypesQuery
+ // hir::db::FnDefDatumQuery
+ // hir::db::FnDefVarianceQuery
+ // hir::db::GenericDefaultsQuery
+ // hir::db::GenericPredicatesForParamQuery
+ // hir::db::GenericPredicatesQuery
+ // hir::db::GenericPredicatesWithoutParentQuery
+ // hir::db::ImplDatumQuery
+ // hir::db::ImplSelfTyQuery
+ // hir::db::ImplTraitQuery
+ // hir::db::IncoherentInherentImplCratesQuery
+ // hir::db::InferQuery
+ // hir::db::InherentImplsInBlockQuery
+ // hir::db::InherentImplsInCrateQuery
+ // hir::db::InternCallableDefQuery
+ // hir::db::InternClosureQuery
+ // hir::db::InternCoroutineQuery
+ // hir::db::InternImplTraitIdQuery
+ // hir::db::InternLifetimeParamIdQuery
+ // hir::db::InternTypeOrConstParamIdQuery
+ // hir::db::LayoutOfAdtQuery
+ // hir::db::LayoutOfTyQuery
+ // hir::db::LookupImplMethodQuery
+ // hir::db::MirBodyForClosureQuery
+ // hir::db::MirBodyQuery
+ // hir::db::MonomorphizedMirBodyForClosureQuery
+ // hir::db::MonomorphizedMirBodyQuery
+ // hir::db::ProgramClausesForChalkEnvQuery
+ // hir::db::ReturnTypeImplTraitsQuery
+ // hir::db::TargetDataLayoutQuery
+ // hir::db::TraitDatumQuery
+ // hir::db::TraitEnvironmentQuery
+ // hir::db::TraitImplsInBlockQuery
+ // hir::db::TraitImplsInCrateQuery
+ // hir::db::TraitImplsInDepsQuery
+ // hir::db::TraitSolveQuery
+ // hir::db::TyQuery
+ // hir::db::TypeAliasImplTraitsQuery
+ // hir::db::ValueTyQuery
- // DefDatabase
- hir::db::AttrsQuery
- hir::db::BlockDefMapQuery
- hir::db::BlockItemTreeQuery
- hir::db::BlockItemTreeWithSourceMapQuery
- hir::db::BodyQuery
- hir::db::BodyWithSourceMapQuery
- hir::db::ConstDataQuery
- hir::db::ConstVisibilityQuery
- hir::db::CrateDefMapQuery
- hir::db::CrateLangItemsQuery
- hir::db::CrateNotableTraitsQuery
- hir::db::CrateSupportsNoStdQuery
- hir::db::EnumDataQuery
- hir::db::EnumVariantDataWithDiagnosticsQuery
- hir::db::ExpandProcAttrMacrosQuery
- hir::db::ExprScopesQuery
- hir::db::ExternCrateDeclDataQuery
- hir::db::FieldVisibilitiesQuery
- hir::db::FieldsAttrsQuery
- hir::db::FieldsAttrsSourceMapQuery
- hir::db::FileItemTreeQuery
- hir::db::FileItemTreeWithSourceMapQuery
- hir::db::FunctionDataQuery
- hir::db::FunctionVisibilityQuery
- hir::db::GenericParamsQuery
- hir::db::GenericParamsWithSourceMapQuery
- hir::db::ImplDataWithDiagnosticsQuery
- hir::db::ImportMapQuery
- hir::db::IncludeMacroInvocQuery
- hir::db::InternAnonymousConstQuery
- hir::db::InternBlockQuery
- hir::db::InternConstQuery
- hir::db::InternEnumQuery
- hir::db::InternExternBlockQuery
- hir::db::InternExternCrateQuery
- hir::db::InternFunctionQuery
- hir::db::InternImplQuery
- hir::db::InternInTypeConstQuery
- hir::db::InternMacro2Query
- hir::db::InternMacroRulesQuery
- hir::db::InternProcMacroQuery
- hir::db::InternStaticQuery
- hir::db::InternStructQuery
- hir::db::InternTraitAliasQuery
- hir::db::InternTraitQuery
- hir::db::InternTypeAliasQuery
- hir::db::InternUnionQuery
- hir::db::InternUseQuery
- hir::db::LangItemQuery
- hir::db::Macro2DataQuery
- hir::db::MacroDefQuery
- hir::db::MacroRulesDataQuery
- hir::db::NotableTraitsInDepsQuery
- hir::db::ProcMacroDataQuery
- hir::db::StaticDataQuery
- hir::db::StructDataWithDiagnosticsQuery
- hir::db::TraitAliasDataQuery
- hir::db::TraitDataWithDiagnosticsQuery
- hir::db::TypeAliasDataQuery
- hir::db::UnionDataWithDiagnosticsQuery
+ // // DefDatabase
+ // hir::db::AttrsQuery
+ // hir::db::BlockDefMapQuery
+ // hir::db::BlockItemTreeQuery
+ // hir::db::BlockItemTreeWithSourceMapQuery
+ // hir::db::BodyQuery
+ // hir::db::BodyWithSourceMapQuery
+ // hir::db::ConstDataQuery
+ // hir::db::ConstVisibilityQuery
+ // hir::db::CrateDefMapQuery
+ // hir::db::CrateLangItemsQuery
+ // hir::db::CrateNotableTraitsQuery
+ // hir::db::CrateSupportsNoStdQuery
+ // hir::db::EnumDataQuery
+ // hir::db::ExpandProcAttrMacrosQuery
+ // hir::db::ExprScopesQuery
+ // hir::db::ExternCrateDeclDataQuery
+ // hir::db::FieldVisibilitiesQuery
+ // hir::db::FieldsAttrsQuery
+ // hir::db::FieldsAttrsSourceMapQuery
+ // hir::db::FileItemTreeQuery
+ // hir::db::FileItemTreeWithSourceMapQuery
+ // hir::db::FunctionDataQuery
+ // hir::db::FunctionVisibilityQuery
+ // hir::db::GenericParamsQuery
+ // hir::db::GenericParamsWithSourceMapQuery
+ // hir::db::ImplItemsWithDiagnosticsQuery
+ // hir::db::ImportMapQuery
+ // hir::db::IncludeMacroInvocQuery
+ // hir::db::InternAnonymousConstQuery
+ // hir::db::InternBlockQuery
+ // hir::db::InternConstQuery
+ // hir::db::InternEnumQuery
+ // hir::db::InternExternBlockQuery
+ // hir::db::InternExternCrateQuery
+ // hir::db::InternFunctionQuery
+ // hir::db::InternImplQuery
+ // hir::db::InternInTypeConstQuery
+ // hir::db::InternMacro2Query
+ // hir::db::InternMacroRulesQuery
+ // hir::db::InternProcMacroQuery
+ // hir::db::InternStaticQuery
+ // hir::db::InternStructQuery
+ // hir::db::InternTraitAliasQuery
+ // hir::db::InternTraitQuery
+ // hir::db::InternTypeAliasQuery
+ // hir::db::InternUnionQuery
+ // hir::db::InternUseQuery
+ // hir::db::LangItemQuery
+ // hir::db::Macro2DataQuery
+ // hir::db::MacroDefQuery
+ // hir::db::MacroRulesDataQuery
+ // hir::db::NotableTraitsInDepsQuery
+ // hir::db::ProcMacroDataQuery
+ // hir::db::StaticDataQuery
+ // hir::db::TraitAliasDataQuery
+ // hir::db::TraitItemsWithDiagnosticsQuery
+ // hir::db::TypeAliasDataQuery
+ // hir::db::VariantDataWithDiagnosticsQuery
- // InternDatabase
- hir::db::InternFunctionQuery
- hir::db::InternStructQuery
- hir::db::InternUnionQuery
- hir::db::InternEnumQuery
- hir::db::InternConstQuery
- hir::db::InternStaticQuery
- hir::db::InternTraitQuery
- hir::db::InternTraitAliasQuery
- hir::db::InternTypeAliasQuery
- hir::db::InternImplQuery
- hir::db::InternExternBlockQuery
- hir::db::InternBlockQuery
- hir::db::InternMacro2Query
- hir::db::InternProcMacroQuery
- hir::db::InternMacroRulesQuery
+ // // InternDatabase
+ // hir::db::InternFunctionQuery
+ // hir::db::InternStructQuery
+ // hir::db::InternUnionQuery
+ // hir::db::InternEnumQuery
+ // hir::db::InternConstQuery
+ // hir::db::InternStaticQuery
+ // hir::db::InternTraitQuery
+ // hir::db::InternTraitAliasQuery
+ // hir::db::InternTypeAliasQuery
+ // hir::db::InternImplQuery
+ // hir::db::InternExternBlockQuery
+ // hir::db::InternBlockQuery
+ // hir::db::InternMacro2Query
+ // hir::db::InternProcMacroQuery
+ // hir::db::InternMacroRulesQuery
- // ExpandDatabase
- hir::db::AstIdMapQuery
- hir::db::DeclMacroExpanderQuery
- hir::db::ExpandProcMacroQuery
- hir::db::InternMacroCallQuery
- hir::db::InternSyntaxContextQuery
- hir::db::MacroArgQuery
- hir::db::ParseMacroExpansionErrorQuery
- hir::db::ParseMacroExpansionQuery
- hir::db::ProcMacroSpanQuery
- hir::db::ProcMacrosQuery
- hir::db::RealSpanMapQuery
+ // // ExpandDatabase
+ // hir::db::AstIdMapQuery
+ // hir::db::DeclMacroExpanderQuery
+ // hir::db::ExpandProcMacroQuery
+ // hir::db::InternMacroCallQuery
+ // hir::db::InternSyntaxContextQuery
+ // hir::db::MacroArgQuery
+ // hir::db::ParseMacroExpansionErrorQuery
+ // hir::db::ParseMacroExpansionQuery
+ // hir::db::ProcMacroSpanQuery
+ // hir::db::ProcMacrosQuery
+ // hir::db::RealSpanMapQuery
- // LineIndexDatabase
- crate::LineIndexQuery
+ // // LineIndexDatabase
+ // crate::LineIndexQuery
- // SourceDatabase
- base_db::ParseQuery
- base_db::ParseErrorsQuery
- base_db::CrateGraphQuery
- base_db::CrateWorkspaceDataQuery
+ // // SourceDatabase
+ // base_db::ParseQuery
+ // base_db::ParseErrorsQuery
+ // base_db::AllCratesQuery
+ // base_db::InternUniqueCrateDataQuery
+ // base_db::InternUniqueCrateDataLookupQuery
+ // base_db::CrateDataQuery
+ // base_db::ExtraCrateDataQuery
+ // base_db::CrateCfgQuery
+ // base_db::CrateEnvQuery
+ // base_db::CrateWorkspaceDataQuery
- // SourceDatabaseExt
- base_db::FileTextQuery
- base_db::CompressedFileTextQuery
- base_db::FileSourceRootQuery
- base_db::SourceRootQuery
- base_db::SourceRootCratesQuery
+ // // SourceDatabaseExt
+ // base_db::FileTextQuery
+ // base_db::CompressedFileTextQuery
+ // base_db::FileSourceRootQuery
+ // base_db::SourceRootQuery
+ // base_db::SourceRootCratesQuery
];
acc.sort_by_key(|it| std::cmp::Reverse(it.1));