diff options
-rw-r--r-- | Cargo.lock | 6 | ||||
-rw-r--r-- | crates/ra_assists/Cargo.toml | 3 | ||||
-rw-r--r-- | crates/ra_assists/src/assists/move_bounds.rs | 2 | ||||
-rw-r--r-- | crates/ra_batch/src/lib.rs | 10 | ||||
-rw-r--r-- | crates/ra_cli/src/analysis_stats.rs | 29 | ||||
-rw-r--r-- | crates/ra_hir/src/code_model.rs | 8 | ||||
-rw-r--r-- | crates/ra_ide_api/src/db.rs | 2 | ||||
-rw-r--r-- | crates/ra_lsp_server/Cargo.toml | 2 | ||||
-rw-r--r-- | crates/ra_mbe/Cargo.toml | 1 | ||||
-rw-r--r-- | crates/ra_syntax/Cargo.toml | 1 | ||||
-rw-r--r-- | crates/ra_tt/Cargo.toml | 4 |
11 files changed, 32 insertions, 36 deletions
diff --git a/Cargo.lock b/Cargo.lock index 965d5aaa0..0826b056a 100644 --- a/Cargo.lock +++ b/Cargo.lock | |||
@@ -891,17 +891,14 @@ version = "0.1.0" | |||
891 | name = "ra_assists" | 891 | name = "ra_assists" |
892 | version = "0.1.0" | 892 | version = "0.1.0" |
893 | dependencies = [ | 893 | dependencies = [ |
894 | "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", | ||
895 | "format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", | 894 | "format-buf 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", |
896 | "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", | 895 | "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", |
897 | "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", | 896 | "join_to_string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", |
898 | "once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
899 | "ra_db 0.1.0", | 897 | "ra_db 0.1.0", |
900 | "ra_fmt 0.1.0", | 898 | "ra_fmt 0.1.0", |
901 | "ra_hir 0.1.0", | 899 | "ra_hir 0.1.0", |
902 | "ra_syntax 0.1.0", | 900 | "ra_syntax 0.1.0", |
903 | "ra_text_edit 0.1.0", | 901 | "ra_text_edit 0.1.0", |
904 | "rustc-hash 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
905 | "rustc_lexer 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | 902 | "rustc_lexer 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", |
906 | "test_utils 0.1.0", | 903 | "test_utils 0.1.0", |
907 | ] | 904 | ] |
@@ -1031,8 +1028,6 @@ dependencies = [ | |||
1031 | "lsp-server 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1028 | "lsp-server 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1032 | "lsp-types 0.61.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1029 | "lsp-types 0.61.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1033 | "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", | 1030 | "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", |
1034 | "ra_cfg 0.1.0", | ||
1035 | "ra_db 0.1.0", | ||
1036 | "ra_ide_api 0.1.0", | 1031 | "ra_ide_api 0.1.0", |
1037 | "ra_prof 0.1.0", | 1032 | "ra_prof 0.1.0", |
1038 | "ra_project_model 0.1.0", | 1033 | "ra_project_model 0.1.0", |
@@ -1053,7 +1048,6 @@ dependencies = [ | |||
1053 | name = "ra_mbe" | 1048 | name = "ra_mbe" |
1054 | version = "0.1.0" | 1049 | version = "0.1.0" |
1055 | dependencies = [ | 1050 | dependencies = [ |
1056 | "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1057 | "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", | 1051 | "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", |
1058 | "ra_parser 0.1.0", | 1052 | "ra_parser 0.1.0", |
1059 | "ra_syntax 0.1.0", | 1053 | "ra_syntax 0.1.0", |
diff --git a/crates/ra_assists/Cargo.toml b/crates/ra_assists/Cargo.toml index d3b6aeb36..beebccbd9 100644 --- a/crates/ra_assists/Cargo.toml +++ b/crates/ra_assists/Cargo.toml | |||
@@ -6,11 +6,8 @@ authors = ["rust-analyzer developers"] | |||
6 | 6 | ||
7 | [dependencies] | 7 | [dependencies] |
8 | format-buf = "1.0.0" | 8 | format-buf = "1.0.0" |
9 | once_cell = "1.0.1" | ||
10 | join_to_string = "0.1.3" | 9 | join_to_string = "0.1.3" |
11 | itertools = "0.8.0" | 10 | itertools = "0.8.0" |
12 | arrayvec = "0.4.10" | ||
13 | rustc-hash = "1.0.1" | ||
14 | rustc_lexer = "0.1.0" | 11 | rustc_lexer = "0.1.0" |
15 | 12 | ||
16 | ra_syntax = { path = "../ra_syntax" } | 13 | ra_syntax = { path = "../ra_syntax" } |
diff --git a/crates/ra_assists/src/assists/move_bounds.rs b/crates/ra_assists/src/assists/move_bounds.rs index f791d22b0..d2444b6b9 100644 --- a/crates/ra_assists/src/assists/move_bounds.rs +++ b/crates/ra_assists/src/assists/move_bounds.rs | |||
@@ -18,7 +18,7 @@ pub(crate) fn move_bounds_to_where_clause(mut ctx: AssistCtx<impl HirDatabase>) | |||
18 | } | 18 | } |
19 | 19 | ||
20 | let parent = type_param_list.syntax().parent()?; | 20 | let parent = type_param_list.syntax().parent()?; |
21 | if parent.children_with_tokens().find(|it| it.kind() == WHERE_CLAUSE).is_some() { | 21 | if parent.children_with_tokens().any(|it| it.kind() == WHERE_CLAUSE) { |
22 | return None; | 22 | return None; |
23 | } | 23 | } |
24 | 24 | ||
diff --git a/crates/ra_batch/src/lib.rs b/crates/ra_batch/src/lib.rs index 602beb439..df49eb13d 100644 --- a/crates/ra_batch/src/lib.rs +++ b/crates/ra_batch/src/lib.rs | |||
@@ -141,14 +141,8 @@ mod tests { | |||
141 | #[test] | 141 | #[test] |
142 | fn test_loading_rust_analyzer() { | 142 | fn test_loading_rust_analyzer() { |
143 | let path = Path::new(env!("CARGO_MANIFEST_DIR")).parent().unwrap().parent().unwrap(); | 143 | let path = Path::new(env!("CARGO_MANIFEST_DIR")).parent().unwrap().parent().unwrap(); |
144 | let (host, roots) = load_cargo(path).unwrap(); | 144 | let (host, _roots) = load_cargo(path).unwrap(); |
145 | let mut n_crates = 0; | 145 | let n_crates = Crate::all(host.raw_database()).len(); |
146 | for (root, _) in roots { | ||
147 | for _krate in Crate::source_root_crates(host.raw_database(), root) { | ||
148 | n_crates += 1; | ||
149 | } | ||
150 | } | ||
151 | |||
152 | // RA has quite a few crates, but the exact count doesn't matter | 146 | // RA has quite a few crates, but the exact count doesn't matter |
153 | assert!(n_crates > 20); | 147 | assert!(n_crates > 20); |
154 | } | 148 | } |
diff --git a/crates/ra_cli/src/analysis_stats.rs b/crates/ra_cli/src/analysis_stats.rs index a8a110bd9..fe4f57dcd 100644 --- a/crates/ra_cli/src/analysis_stats.rs +++ b/crates/ra_cli/src/analysis_stats.rs | |||
@@ -22,16 +22,29 @@ pub fn run( | |||
22 | let mut num_crates = 0; | 22 | let mut num_crates = 0; |
23 | let mut visited_modules = HashSet::new(); | 23 | let mut visited_modules = HashSet::new(); |
24 | let mut visit_queue = Vec::new(); | 24 | let mut visit_queue = Vec::new(); |
25 | for (source_root_id, project_root) in roots { | 25 | |
26 | if project_root.is_member() { | 26 | let members = roots |
27 | for krate in Crate::source_root_crates(db, source_root_id) { | 27 | .into_iter() |
28 | num_crates += 1; | 28 | .filter_map( |
29 | let module = | 29 | |(source_root_id, project_root)| { |
30 | krate.root_module(db).expect("crate in source root without root module"); | 30 | if project_root.is_member() { |
31 | visit_queue.push(module); | 31 | Some(source_root_id) |
32 | } | 32 | } else { |
33 | None | ||
34 | } | ||
35 | }, | ||
36 | ) | ||
37 | .collect::<HashSet<_>>(); | ||
38 | |||
39 | for krate in Crate::all(db) { | ||
40 | let module = krate.root_module(db).expect("crate without root module"); | ||
41 | let file_id = module.definition_source(db).file_id; | ||
42 | if members.contains(&db.file_source_root(file_id.original_file(db))) { | ||
43 | num_crates += 1; | ||
44 | visit_queue.push(module); | ||
33 | } | 45 | } |
34 | } | 46 | } |
47 | |||
35 | println!("Crates in this dir: {}", num_crates); | 48 | println!("Crates in this dir: {}", num_crates); |
36 | let mut num_decls = 0; | 49 | let mut num_decls = 0; |
37 | let mut funcs = Vec::new(); | 50 | let mut funcs = Vec::new(); |
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index 8055a07db..8eb3c577d 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -5,7 +5,7 @@ pub(crate) mod docs; | |||
5 | 5 | ||
6 | use std::sync::Arc; | 6 | use std::sync::Arc; |
7 | 7 | ||
8 | use ra_db::{CrateId, Edition, FileId, SourceRootId}; | 8 | use ra_db::{CrateId, Edition, FileId}; |
9 | use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner}; | 9 | use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner}; |
10 | 10 | ||
11 | use crate::{ | 11 | use crate::{ |
@@ -76,10 +76,8 @@ impl Crate { | |||
76 | crate_graph.edition(self.crate_id) | 76 | crate_graph.edition(self.crate_id) |
77 | } | 77 | } |
78 | 78 | ||
79 | // FIXME: should this be in source_binder? | 79 | pub fn all(db: &impl DefDatabase) -> Vec<Crate> { |
80 | pub fn source_root_crates(db: &impl DefDatabase, source_root: SourceRootId) -> Vec<Crate> { | 80 | db.crate_graph().iter().map(|crate_id| Crate { crate_id }).collect() |
81 | let crate_ids = db.source_root_crates(source_root); | ||
82 | crate_ids.iter().map(|&crate_id| Crate { crate_id }).collect() | ||
83 | } | 81 | } |
84 | } | 82 | } |
85 | 83 | ||
diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index ea0714add..f9ee13573 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs | |||
@@ -104,7 +104,7 @@ pub(crate) trait LineIndexDatabase: ra_db::SourceDatabase + CheckCanceled { | |||
104 | fn line_index(&self, file_id: FileId) -> Arc<LineIndex>; | 104 | fn line_index(&self, file_id: FileId) -> Arc<LineIndex>; |
105 | } | 105 | } |
106 | 106 | ||
107 | fn line_index(db: &impl ra_db::SourceDatabase, file_id: FileId) -> Arc<LineIndex> { | 107 | fn line_index(db: &impl LineIndexDatabase, file_id: FileId) -> Arc<LineIndex> { |
108 | let text = db.file_text(file_id); | 108 | let text = db.file_text(file_id); |
109 | Arc::new(LineIndex::new(&*text)) | 109 | Arc::new(LineIndex::new(&*text)) |
110 | } | 110 | } |
diff --git a/crates/ra_lsp_server/Cargo.toml b/crates/ra_lsp_server/Cargo.toml index aedc55a95..46a0f958c 100644 --- a/crates/ra_lsp_server/Cargo.toml +++ b/crates/ra_lsp_server/Cargo.toml | |||
@@ -18,8 +18,6 @@ parking_lot = "0.9.0" | |||
18 | jod-thread = "0.1.0" | 18 | jod-thread = "0.1.0" |
19 | ra_vfs = "0.4.0" | 19 | ra_vfs = "0.4.0" |
20 | ra_syntax = { path = "../ra_syntax" } | 20 | ra_syntax = { path = "../ra_syntax" } |
21 | ra_db = { path = "../ra_db" } | ||
22 | ra_cfg = { path = "../ra_cfg" } | ||
23 | ra_text_edit = { path = "../ra_text_edit" } | 21 | ra_text_edit = { path = "../ra_text_edit" } |
24 | ra_ide_api = { path = "../ra_ide_api" } | 22 | ra_ide_api = { path = "../ra_ide_api" } |
25 | lsp-server = "0.2.0" | 23 | lsp-server = "0.2.0" |
diff --git a/crates/ra_mbe/Cargo.toml b/crates/ra_mbe/Cargo.toml index b058dde91..e8ef2457b 100644 --- a/crates/ra_mbe/Cargo.toml +++ b/crates/ra_mbe/Cargo.toml | |||
@@ -8,7 +8,6 @@ authors = ["rust-analyzer developers"] | |||
8 | ra_syntax = { path = "../ra_syntax" } | 8 | ra_syntax = { path = "../ra_syntax" } |
9 | ra_parser = { path = "../ra_parser" } | 9 | ra_parser = { path = "../ra_parser" } |
10 | tt = { path = "../ra_tt", package = "ra_tt" } | 10 | tt = { path = "../ra_tt", package = "ra_tt" } |
11 | itertools = "0.8.0" | ||
12 | rustc-hash = "1.0.0" | 11 | rustc-hash = "1.0.0" |
13 | smallvec = "0.6.9" | 12 | smallvec = "0.6.9" |
14 | log = "0.4.5" | 13 | log = "0.4.5" |
diff --git a/crates/ra_syntax/Cargo.toml b/crates/ra_syntax/Cargo.toml index 9bc85404a..68c594202 100644 --- a/crates/ra_syntax/Cargo.toml +++ b/crates/ra_syntax/Cargo.toml | |||
@@ -15,6 +15,7 @@ rustc-hash = "1.0.1" | |||
15 | arrayvec = "0.4.10" | 15 | arrayvec = "0.4.10" |
16 | once_cell = "1.2.0" | 16 | once_cell = "1.2.0" |
17 | 17 | ||
18 | # This crate transitively depends on `smol_str` via `rowan`. | ||
18 | # ideally, `serde` should be enabled by `ra_lsp_server`, but we enable it here | 19 | # ideally, `serde` should be enabled by `ra_lsp_server`, but we enable it here |
19 | # to reduce number of compilations | 20 | # to reduce number of compilations |
20 | smol_str = { version = "0.1.12", features = ["serde"] } | 21 | smol_str = { version = "0.1.12", features = ["serde"] } |
diff --git a/crates/ra_tt/Cargo.toml b/crates/ra_tt/Cargo.toml index 3328d312f..3fcc7f085 100644 --- a/crates/ra_tt/Cargo.toml +++ b/crates/ra_tt/Cargo.toml | |||
@@ -5,4 +5,6 @@ version = "0.1.0" | |||
5 | authors = ["rust-analyzer developers"] | 5 | authors = ["rust-analyzer developers"] |
6 | 6 | ||
7 | [dependencies] | 7 | [dependencies] |
8 | smol_str = "0.1.9" | 8 | # ideally, `serde` should be enabled by `ra_lsp_server`, but we enable it here |
9 | # to reduce number of compilations | ||
10 | smol_str = { version = "0.1.12", features = ["serde"] } | ||