mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-24 13:43:17 +00:00
Auto merge of #6687 - ehuss:stabilize-wrapper, r=flip1995
Stabilize workspace wrapper. This fixes it so that `cargo clippy` doesn't share the same cache artifacts as `cargo check`. The Cargo side was stabilized a while ago (https://github.com/rust-lang/cargo/pull/8976), so this should be ready to go. I'm not aware of any blockers or concerns. Closes #4612 --- changelog: `cargo clippy` no longer shares the same build cache as `cargo check`.
This commit is contained in:
commit
9c0ae2a5ab
1 changed files with 1 additions and 23 deletions
24
src/main.rs
24
src/main.rs
|
@ -59,7 +59,6 @@ pub fn main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ClippyCmd {
|
struct ClippyCmd {
|
||||||
unstable_options: bool,
|
|
||||||
cargo_subcommand: &'static str,
|
cargo_subcommand: &'static str,
|
||||||
args: Vec<String>,
|
args: Vec<String>,
|
||||||
clippy_args: Vec<String>,
|
clippy_args: Vec<String>,
|
||||||
|
@ -105,21 +104,12 @@ impl ClippyCmd {
|
||||||
}
|
}
|
||||||
|
|
||||||
ClippyCmd {
|
ClippyCmd {
|
||||||
unstable_options,
|
|
||||||
cargo_subcommand,
|
cargo_subcommand,
|
||||||
args,
|
args,
|
||||||
clippy_args,
|
clippy_args,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn path_env(&self) -> &'static str {
|
|
||||||
if self.unstable_options {
|
|
||||||
"RUSTC_WORKSPACE_WRAPPER"
|
|
||||||
} else {
|
|
||||||
"RUSTC_WRAPPER"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn path() -> PathBuf {
|
fn path() -> PathBuf {
|
||||||
let mut path = env::current_exe()
|
let mut path = env::current_exe()
|
||||||
.expect("current executable path invalid")
|
.expect("current executable path invalid")
|
||||||
|
@ -156,7 +146,7 @@ impl ClippyCmd {
|
||||||
.map(|arg| format!("{}__CLIPPY_HACKERY__", arg))
|
.map(|arg| format!("{}__CLIPPY_HACKERY__", arg))
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
cmd.env(self.path_env(), Self::path())
|
cmd.env("RUSTC_WORKSPACE_WRAPPER", Self::path())
|
||||||
.envs(ClippyCmd::target_dir())
|
.envs(ClippyCmd::target_dir())
|
||||||
.env("CLIPPY_ARGS", clippy_args)
|
.env("CLIPPY_ARGS", clippy_args)
|
||||||
.arg(self.cargo_subcommand)
|
.arg(self.cargo_subcommand)
|
||||||
|
@ -205,7 +195,6 @@ mod tests {
|
||||||
.map(ToString::to_string);
|
.map(ToString::to_string);
|
||||||
let cmd = ClippyCmd::new(args);
|
let cmd = ClippyCmd::new(args);
|
||||||
assert_eq!("fix", cmd.cargo_subcommand);
|
assert_eq!("fix", cmd.cargo_subcommand);
|
||||||
assert_eq!("RUSTC_WORKSPACE_WRAPPER", cmd.path_env());
|
|
||||||
assert!(cmd.args.iter().any(|arg| arg.ends_with("unstable-options")));
|
assert!(cmd.args.iter().any(|arg| arg.ends_with("unstable-options")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,16 +221,5 @@ mod tests {
|
||||||
let args = "cargo clippy".split_whitespace().map(ToString::to_string);
|
let args = "cargo clippy".split_whitespace().map(ToString::to_string);
|
||||||
let cmd = ClippyCmd::new(args);
|
let cmd = ClippyCmd::new(args);
|
||||||
assert_eq!("check", cmd.cargo_subcommand);
|
assert_eq!("check", cmd.cargo_subcommand);
|
||||||
assert_eq!("RUSTC_WRAPPER", cmd.path_env());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn check_unstable() {
|
|
||||||
let args = "cargo clippy -Zunstable-options"
|
|
||||||
.split_whitespace()
|
|
||||||
.map(ToString::to_string);
|
|
||||||
let cmd = ClippyCmd::new(args);
|
|
||||||
assert_eq!("check", cmd.cargo_subcommand);
|
|
||||||
assert_eq!("RUSTC_WORKSPACE_WRAPPER", cmd.path_env());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue