about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2020-10-29 03:22:02 +0100
committerMatthias Krüger <matthias.krueger@famsik.de>2020-10-29 03:22:02 +0100
commit7f3462aa89b3ba570334fe9274a467be03367c59 (patch)
tree1b9ce67edc20d14af2bc3b1b06e2f3e0d0322e6e
parent4f1240fd9424d4db0de5071a3b1bebd02c42387a (diff)
downloadrust-7f3462aa89b3ba570334fe9274a467be03367c59.tar.gz
rust-7f3462aa89b3ba570334fe9274a467be03367c59.zip
cargo dev ra-setup: don't inject deps multiple times if we have already done so
Fixes #6220
-rw-r--r--clippy_dev/src/ra_setup.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/clippy_dev/src/ra_setup.rs b/clippy_dev/src/ra_setup.rs
index c67efc10f15..9d9e836cc08 100644
--- a/clippy_dev/src/ra_setup.rs
+++ b/clippy_dev/src/ra_setup.rs
@@ -11,7 +11,7 @@ use std::path::PathBuf;
 // code. See https://github.com/rust-analyzer/rust-analyzer/issues/3517 and https://github.com/rust-lang/rust-clippy/issues/5514 for details
 
 pub fn run(rustc_path: Option<&str>) {
-    // we can unwrap here because the arg is required here
+    // we can unwrap here because the arg is required by clap
     let rustc_path = PathBuf::from(rustc_path.unwrap());
     assert!(rustc_path.is_dir(), "path is not a directory");
     let rustc_source_basedir = rustc_path.join("compiler");
@@ -49,6 +49,15 @@ fn inject_deps_into_manifest(
     cargo_toml: &str,
     lib_rs: &str,
 ) -> std::io::Result<()> {
+    // do not inject deps if we have aleady done so
+    if cargo_toml.contains("[target.'cfg(NOT_A_PLATFORM)'.dependencies]") {
+        eprintln!(
+            "cargo dev ra-setup: warning: deps already found inside {}, doing nothing.",
+            manifest_path
+        );
+        return Ok(());
+    }
+
     let extern_crates = lib_rs
         .lines()
         // get the deps