From 1fd18f020dcf01a441925ac0a368a31f3ddf4047 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 25 Jan 2019 23:27:16 +0300 Subject: :arrow_up: salsa --- crates/ra_db/Cargo.toml | 3 ++- crates/ra_db/src/lib.rs | 4 ++-- crates/ra_hir/Cargo.toml | 1 - crates/ra_hir/src/db.rs | 2 +- crates/ra_hir/src/mock.rs | 8 ++++++-- crates/ra_ide_api/Cargo.toml | 1 - crates/ra_ide_api/src/db.rs | 12 ++++++------ crates/ra_ide_api/src/imp.rs | 10 +++++----- crates/ra_ide_api/src/symbol_index.rs | 2 +- 9 files changed, 23 insertions(+), 20 deletions(-) (limited to 'crates') diff --git a/crates/ra_db/Cargo.toml b/crates/ra_db/Cargo.toml index 3568da905..9aa77f72e 100644 --- a/crates/ra_db/Cargo.toml +++ b/crates/ra_db/Cargo.toml @@ -6,9 +6,10 @@ authors = ["Aleksey Kladov "] [dependencies] relative-path = "0.4.0" -salsa = "0.10.0-alpha3" +salsa = "0.10.0-alpha4" rustc-hash = "1.0" parking_lot = "0.7.0" + ra_arena = { path = "../ra_arena" } ra_syntax = { path = "../ra_syntax" } test_utils = { path = "../test_utils" } diff --git a/crates/ra_db/src/lib.rs b/crates/ra_db/src/lib.rs index 7e13f70bc..3a0aa7d24 100644 --- a/crates/ra_db/src/lib.rs +++ b/crates/ra_db/src/lib.rs @@ -63,7 +63,7 @@ pub struct FileRange { pub range: TextRange, } -#[salsa::query_group] +#[salsa::query_group(FilesDatabaseStorage)] pub trait FilesDatabase: salsa::Database { /// Text of the file. #[salsa::input] @@ -102,7 +102,7 @@ fn source_root_crates(db: &impl FilesDatabase, id: SourceRootId) -> Arc TreeArc; } diff --git a/crates/ra_hir/Cargo.toml b/crates/ra_hir/Cargo.toml index 3d802ade4..57a4b155b 100644 --- a/crates/ra_hir/Cargo.toml +++ b/crates/ra_hir/Cargo.toml @@ -12,7 +12,6 @@ rustc-hash = "1.0" parking_lot = "0.7.0" ena = "0.11" join_to_string = "0.1.3" -salsa = "0.10.0-alpha3" ra_syntax = { path = "../ra_syntax" } ra_arena = { path = "../ra_arena" } diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index 3c82262a2..dfbf41bd6 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs @@ -18,7 +18,7 @@ use crate::{ generics::{GenericParams, GenericDef}, }; -#[salsa::query_group] +#[salsa::query_group(HirDatabaseStorage)] pub trait HirDatabase: SyntaxDatabase + AsRef { #[salsa::invoke(HirFileId::hir_source_file)] fn hir_source_file(&self, file_id: HirFileId) -> TreeArc; diff --git a/crates/ra_hir/src/mock.rs b/crates/ra_hir/src/mock.rs index 36b174cd6..2dc252b1e 100644 --- a/crates/ra_hir/src/mock.rs +++ b/crates/ra_hir/src/mock.rs @@ -2,7 +2,7 @@ use std::{sync::Arc, panic}; use parking_lot::Mutex; use ra_db::{ - BaseDatabase, FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId, FilesDatabase, + BaseDatabase, FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId, FilesDatabase, salsa, }; use relative_path::RelativePathBuf; use test_utils::{parse_fixture, CURSOR_MARKER, extract_offset}; @@ -11,7 +11,11 @@ use crate::{db, HirInterner}; pub const WORKSPACE: SourceRootId = SourceRootId(0); -#[salsa::database(ra_db::FilesDatabase, ra_db::SyntaxDatabase, db::HirDatabase)] +#[salsa::database( + ra_db::FilesDatabaseStorage, + ra_db::SyntaxDatabaseStorage, + db::HirDatabaseStorage +)] #[derive(Debug)] pub(crate) struct MockDatabase { events: Mutex>>>, diff --git a/crates/ra_ide_api/Cargo.toml b/crates/ra_ide_api/Cargo.toml index dfdddea50..79e473463 100644 --- a/crates/ra_ide_api/Cargo.toml +++ b/crates/ra_ide_api/Cargo.toml @@ -14,7 +14,6 @@ fst = "0.3.1" rustc-hash = "1.0" parking_lot = "0.7.0" unicase = "2.2.0" -salsa = "0.10.0-alpha3" ra_syntax = { path = "../ra_syntax" } ra_ide_api_light = { path = "../ra_ide_api_light" } diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index f0190ae51..30891aed4 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs @@ -8,11 +8,11 @@ use ra_db::{ use crate::{symbol_index, LineIndex}; #[salsa::database( - ra_db::FilesDatabase, - ra_db::SyntaxDatabase, - LineIndexDatabase, - symbol_index::SymbolsDatabase, - hir::db::HirDatabase + ra_db::FilesDatabaseStorage, + ra_db::SyntaxDatabaseStorage, + LineIndexDatabaseStorage, + symbol_index::SymbolsDatabaseStorage, + hir::db::HirDatabaseStorage )] #[derive(Debug)] pub(crate) struct RootDatabase { @@ -62,7 +62,7 @@ impl AsRef for RootDatabase { } } -#[salsa::query_group] +#[salsa::query_group(LineIndexDatabaseStorage)] pub(crate) trait LineIndexDatabase: ra_db::FilesDatabase + BaseDatabase { fn line_index(&self, file_id: FileId) -> Arc; } diff --git a/crates/ra_ide_api/src/imp.rs b/crates/ra_ide_api/src/imp.rs index 961f7b230..bd9e3f1e3 100644 --- a/crates/ra_ide_api/src/imp.rs +++ b/crates/ra_ide_api/src/imp.rs @@ -5,7 +5,7 @@ use hir::{ }; use ra_db::{ FilesDatabase, SourceRoot, SourceRootId, SyntaxDatabase, - salsa::Database, + salsa::{Database, SweepStrategy}, }; use ra_ide_api_light::{self, assists, LocalEdit, Severity}; use ra_syntax::{ @@ -77,13 +77,13 @@ impl db::RootDatabase { /// for some reason. Needs investigation. pub(crate) fn collect_garbage(&mut self) { self.query(ra_db::SourceFileQuery) - .sweep(salsa::SweepStrategy::default().discard_values()); + .sweep(SweepStrategy::default().discard_values()); self.query(hir::db::HirSourceFileQuery) - .sweep(salsa::SweepStrategy::default().discard_values()); + .sweep(SweepStrategy::default().discard_values()); self.query(hir::db::FileItemsQuery) - .sweep(salsa::SweepStrategy::default().discard_values()); + .sweep(SweepStrategy::default().discard_values()); self.query(hir::db::FileItemQuery) - .sweep(salsa::SweepStrategy::default().discard_values()); + .sweep(SweepStrategy::default().discard_values()); } } diff --git a/crates/ra_ide_api/src/symbol_index.rs b/crates/ra_ide_api/src/symbol_index.rs index 6184ad3ec..e073a349e 100644 --- a/crates/ra_ide_api/src/symbol_index.rs +++ b/crates/ra_ide_api/src/symbol_index.rs @@ -44,7 +44,7 @@ use crate::{ db::RootDatabase, }; -#[salsa::query_group] +#[salsa::query_group(SymbolsDatabaseStorage)] pub(crate) trait SymbolsDatabase: hir::db::HirDatabase { fn file_symbols(&self, file_id: FileId) -> Arc; #[salsa::input] -- cgit v1.2.3