Skip to content

Commit 44c8ddf

Browse files
committed
make indexing parallel again
1 parent b636d23 commit 44c8ddf

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

crates/ra_analysis/src/roots.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::{sync::Arc};
33
use ra_editor::LineIndex;
44
use ra_syntax::File;
55
use rustc_hash::FxHashSet;
6+
use rayon::prelude::*;
67
use salsa::Database;
78

89
use crate::{
@@ -105,8 +106,8 @@ impl ReadonlySourceRoot {
105106
.set((), Arc::new(db::FileSet { files: file_ids, resolver }));
106107
let file_set = db.file_set();
107108
let symbol_index =
108-
SymbolIndex::for_files(file_set.files.iter() // TODO: par iter
109-
.map(|&file_id| (file_id, db.file_syntax(file_id))));
109+
SymbolIndex::for_files(file_set.files.par_iter()
110+
.map_with(db.clone(), |db, &file_id| (file_id, db.file_syntax(file_id))));
110111

111112
ReadonlySourceRoot { db, symbol_index: Arc::new(symbol_index) }
112113
}

crates/ra_analysis/src/symbol_index.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl Hash for SymbolIndex {
3434
}
3535

3636
impl SymbolIndex {
37-
pub(crate) fn for_files(files: impl Iterator<Item = (FileId, File)>) -> SymbolIndex {
37+
pub(crate) fn for_files(files: impl ParallelIterator<Item = (FileId, File)>) -> SymbolIndex {
3838
let mut symbols = files
3939
.flat_map(|(file_id, file)| {
4040
file_symbols(&file)
@@ -52,7 +52,7 @@ impl SymbolIndex {
5252
}
5353

5454
pub(crate) fn for_file(file_id: FileId, file: File) -> SymbolIndex {
55-
SymbolIndex::for_files(::std::iter::once((file_id, file)))
55+
SymbolIndex::for_files(rayon::iter::once((file_id, file)))
5656
}
5757
}
5858

0 commit comments

Comments
 (0)