@@ -7,20 +7,26 @@ use crate::tool::{prepare_tool_cargo, SourceType};
77use crate :: INTERNER ;
88use crate :: {
99 builder:: { Builder , Kind , RunConfig , ShouldRun , Step } ,
10- Subcommand ,
1110} ;
12- use crate :: { Compiler , Mode } ;
11+ use crate :: { Compiler , Mode , Subcommand } ;
1312use std:: path:: PathBuf ;
1413
1514#[ derive( Debug , Copy , Clone , PartialEq , Eq , Hash ) ]
1615pub struct Std {
1716 pub target : TargetSelection ,
1817}
1918
20- fn args ( kind : Kind ) -> Vec < String > {
21- match kind {
22- Kind :: Clippy => vec ! [ "--" . to_owned( ) , "--cap-lints" . to_owned( ) , "warn" . to_owned( ) ] ,
23- _ => Vec :: new ( ) ,
19+ /// Returns args for the subcommand itself (not for cargo)
20+ fn args ( builder : & Builder < ' _ > ) -> Vec < String > {
21+ if let Subcommand :: Clippy { fix, .. } = builder. config . cmd {
22+ let mut args = vec ! [ "--" . to_owned( ) , "--cap-lints" . to_owned( ) , "warn" . to_owned( ) ] ;
23+ if fix {
24+ args. insert ( 0 , "--fix" . to_owned ( ) ) ;
25+ args. insert ( 0 , "-Zunstable-options" . to_owned ( ) ) ;
26+ }
27+ args
28+ } else {
29+ vec ! [ ]
2430 }
2531}
2632
@@ -62,7 +68,7 @@ impl Step for Std {
6268 run_cargo (
6369 builder,
6470 cargo,
65- args ( builder. kind ) ,
71+ args ( builder) ,
6672 & libstd_stamp ( builder, compiler, target) ,
6773 vec ! [ ] ,
6874 true ,
@@ -104,7 +110,7 @@ impl Step for Std {
104110 run_cargo (
105111 builder,
106112 cargo,
107- args ( builder. kind ) ,
113+ args ( builder) ,
108114 & libstd_test_stamp ( builder, compiler, target) ,
109115 vec ! [ ] ,
110116 true ,
@@ -165,7 +171,7 @@ impl Step for Rustc {
165171 run_cargo (
166172 builder,
167173 cargo,
168- args ( builder. kind ) ,
174+ args ( builder) ,
169175 & librustc_stamp ( builder, compiler, target) ,
170176 vec ! [ ] ,
171177 true ,
@@ -220,7 +226,7 @@ impl Step for CodegenBackend {
220226 run_cargo (
221227 builder,
222228 cargo,
223- args ( builder. kind ) ,
229+ args ( builder) ,
224230 & codegen_backend_stamp ( builder, compiler, target, backend) ,
225231 vec ! [ ] ,
226232 true ,
@@ -278,7 +284,7 @@ macro_rules! tool_check_step {
278284 run_cargo(
279285 builder,
280286 cargo,
281- args( builder. kind ) ,
287+ args( builder) ,
282288 & stamp( builder, compiler, target) ,
283289 vec![ ] ,
284290 true ,
0 commit comments