Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/shuffle_crate_graph.rs')
-rw-r--r--crates/ide/src/shuffle_crate_graph.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/crates/ide/src/shuffle_crate_graph.rs b/crates/ide/src/shuffle_crate_graph.rs
index e606072a82..f85700daf1 100644
--- a/crates/ide/src/shuffle_crate_graph.rs
+++ b/crates/ide/src/shuffle_crate_graph.rs
@@ -1,9 +1,8 @@
-use std::sync::Arc;
-
use ide_db::{
- base_db::{salsa::Durability, CrateGraph, SourceDatabase},
+ base_db::{salsa::Durability, CrateGraph, ProcMacros, SourceDatabase},
FxHashMap, RootDatabase,
};
+use triomphe::Arc;
// Feature: Shuffle Crate Graph
//
@@ -16,6 +15,7 @@ use ide_db::{
// |===
pub(crate) fn shuffle_crate_graph(db: &mut RootDatabase) {
let crate_graph = db.crate_graph();
+ let proc_macros = db.proc_macros();
let mut shuffled_ids = crate_graph.iter().collect::<Vec<_>>();
@@ -23,6 +23,7 @@ pub(crate) fn shuffle_crate_graph(db: &mut RootDatabase) {
stdx::rand::shuffle(&mut shuffled_ids, |i| rng.rand_range(0..i as u32) as usize);
let mut new_graph = CrateGraph::default();
+ let mut new_proc_macros = ProcMacros::default();
let mut map = FxHashMap::default();
for old_id in shuffled_ids.iter().copied() {
@@ -35,11 +36,12 @@ pub(crate) fn shuffle_crate_graph(db: &mut RootDatabase) {
data.cfg_options.clone(),
data.potential_cfg_options.clone(),
data.env.clone(),
- data.proc_macro.clone(),
data.is_proc_macro,
data.origin.clone(),
data.target_layout.clone(),
+ data.channel,
);
+ new_proc_macros.insert(new_id, proc_macros[&old_id].clone());
map.insert(old_id, new_id);
}
@@ -53,4 +55,5 @@ pub(crate) fn shuffle_crate_graph(db: &mut RootDatabase) {
}
db.set_crate_graph_with_durability(Arc::new(new_graph), Durability::HIGH);
+ db.set_proc_macros_with_durability(Arc::new(new_proc_macros), Durability::HIGH);
}