about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-05-19 14:50:08 +0000
committerbors <bors@rust-lang.org>2022-05-19 14:50:08 +0000
commiteba26af9f1af8566755f97259124e0c8d78b6c85 (patch)
tree8470fa4dcc5d26dc54662f9873d36f2c1dd98ec1
parent46b5483055524fc491affe01ae1b3283c881a760 (diff)
parentb2779111b499c32ffc2bd8c1ef907556b48190e4 (diff)
downloadrust-eba26af9f1af8566755f97259124e0c8d78b6c85.tar.gz
rust-eba26af9f1af8566755f97259124e0c8d78b6c85.zip
Auto merge of #12314 - jonas-schievink:proc-macro-load, r=jonas-schievink
minor: simplify
-rw-r--r--crates/project-model/src/tests.rs2
-rw-r--r--crates/project-model/src/workspace.rs6
-rw-r--r--crates/rust-analyzer/src/cli/load_cargo.rs3
-rw-r--r--crates/rust-analyzer/src/reload.rs15
4 files changed, 11 insertions, 15 deletions
diff --git a/crates/project-model/src/tests.rs b/crates/project-model/src/tests.rs
index 3d089b61b5a..e72903e55fe 100644
--- a/crates/project-model/src/tests.rs
+++ b/crates/project-model/src/tests.rs
@@ -88,7 +88,7 @@ fn rooted_project_json(data: ProjectJsonData) -> ProjectJson {
 }
 
 fn to_crate_graph(project_workspace: ProjectWorkspace) -> CrateGraph {
-    project_workspace.to_crate_graph(&Default::default(), &mut |_, _| Vec::new(), &mut {
+    project_workspace.to_crate_graph(&mut |_, _| Vec::new(), &mut {
         let mut counter = 0;
         move |_path| {
             counter += 1;
diff --git a/crates/project-model/src/workspace.rs b/crates/project-model/src/workspace.rs
index 93255705be4..ace1d455c46 100644
--- a/crates/project-model/src/workspace.rs
+++ b/crates/project-model/src/workspace.rs
@@ -389,14 +389,10 @@ impl ProjectWorkspace {
 
     pub fn to_crate_graph(
         &self,
-        dummy_replace: &FxHashMap<Box<str>, Box<[Box<str>]>>,
-        load_proc_macro: &mut dyn FnMut(&AbsPath, &[Box<str>]) -> Vec<ProcMacro>,
+        load_proc_macro: &mut dyn FnMut(&str, &AbsPath) -> Vec<ProcMacro>,
         load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
     ) -> CrateGraph {
         let _p = profile::span("ProjectWorkspace::to_crate_graph");
-        let load_proc_macro = &mut |crate_name: &_, path: &_| {
-            load_proc_macro(path, dummy_replace.get(crate_name).map(|it| &**it).unwrap_or_default())
-        };
 
         let mut crate_graph = match self {
             ProjectWorkspace::Json { project, sysroot, rustc_cfg } => project_json_to_crate_graph(
diff --git a/crates/rust-analyzer/src/cli/load_cargo.rs b/crates/rust-analyzer/src/cli/load_cargo.rs
index 490aef50f3e..4243af25ff1 100644
--- a/crates/rust-analyzer/src/cli/load_cargo.rs
+++ b/crates/rust-analyzer/src/cli/load_cargo.rs
@@ -66,8 +66,7 @@ pub fn load_workspace(
     };
 
     let crate_graph = ws.to_crate_graph(
-        &Default::default(),
-        &mut |path: &AbsPath, _| load_proc_macro(proc_macro_client.as_ref(), path, &[]),
+        &mut |_, path: &AbsPath| load_proc_macro(proc_macro_client.as_ref(), path, &[]),
         &mut |path: &AbsPath| {
             let contents = loader.load_sync(path);
             let path = vfs::VfsPath::from(path.to_path_buf());
diff --git a/crates/rust-analyzer/src/reload.rs b/crates/rust-analyzer/src/reload.rs
index c2a521bbf54..ed8c24acd1c 100644
--- a/crates/rust-analyzer/src/reload.rs
+++ b/crates/rust-analyzer/src/reload.rs
@@ -319,8 +319,13 @@ impl GlobalState {
         // Create crate graph from all the workspaces
         let crate_graph = {
             let proc_macro_client = self.proc_macro_client.as_ref();
-            let mut load_proc_macro = move |path: &AbsPath, dummy_replace: &_| {
-                load_proc_macro(proc_macro_client, path, dummy_replace)
+            let dummy_replacements = self.config.dummy_replacements();
+            let mut load_proc_macro = move |crate_name: &str, path: &AbsPath| {
+                load_proc_macro(
+                    proc_macro_client,
+                    path,
+                    dummy_replacements.get(crate_name).map(|v| &**v).unwrap_or_default(),
+                )
             };
 
             let vfs = &mut self.vfs.write().0;
@@ -342,11 +347,7 @@ impl GlobalState {
 
             let mut crate_graph = CrateGraph::default();
             for ws in self.workspaces.iter() {
-                crate_graph.extend(ws.to_crate_graph(
-                    self.config.dummy_replacements(),
-                    &mut load_proc_macro,
-                    &mut load,
-                ));
+                crate_graph.extend(ws.to_crate_graph(&mut load_proc_macro, &mut load));
             }
             crate_graph
         };