From 66a98d2658997ad8ede2939e68222bd4df626718 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Wed, 28 Mar 2018 11:50:17 +0200 Subject: [PATCH] Use cargo check instead of cargo rustc --- src/driver.rs | 5 ++++- src/main.rs | 18 +++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/driver.rs b/src/driver.rs index 78bccb74ab9c..73746798601d 100644 --- a/src/driver.rs +++ b/src/driver.rs @@ -186,10 +186,13 @@ pub fn main() { let clippy_enabled = env::var("CLIPPY_TESTS") .ok() .map_or(false, |val| val == "true") - || orig_args.iter().any(|s| s == "--emit=metadata"); + || orig_args.iter().any(|s| s == "--emit=dep-info,metadata"); if clippy_enabled { args.extend_from_slice(&["--cfg".to_owned(), r#"feature="cargo-clippy""#.to_owned()]); + if let Ok(extra_args) = env::var("CLIPPY_ARGS") { + args.extend(extra_args.split("__CLIPPY_HACKERY__").filter(|s| !s.is_empty()).map(str::to_owned)); + } } let mut ccc = ClippyCompilerCalls::new(clippy_enabled); diff --git a/src/main.rs b/src/main.rs index 98201af7e277..598d129dec2b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -175,23 +175,22 @@ pub fn main() { } } -fn process(old_args: I) -> Result<(), i32> +fn process(mut old_args: I) -> Result<(), i32> where I: Iterator, { - let mut args = vec!["rustc".to_owned()]; + let mut args = vec!["check".to_owned()]; let mut found_dashes = false; - for arg in old_args { + for arg in old_args.by_ref() { found_dashes |= arg == "--"; + if found_dashes { + break; + } args.push(arg); } - if !found_dashes { - args.push("--".to_owned()); - } - args.push("--emit=metadata".to_owned()); - args.push("--cfg".to_owned()); - args.push(r#"feature="cargo-clippy""#.to_owned()); + + let clippy_args: String = old_args.map(|arg| format!("{}__CLIPPY_HACKERY__", arg)).collect(); let mut path = std::env::current_exe() .expect("current executable path invalid") @@ -202,6 +201,7 @@ where let exit_status = std::process::Command::new("cargo") .args(&args) .env("RUSTC_WRAPPER", path) + .env("CLIPPY_ARGS", clippy_args) .spawn() .expect("could not run cargo") .wait()