@@ -7,20 +7,26 @@ use crate::tool::{prepare_tool_cargo, SourceType};
7
7
use crate :: INTERNER ;
8
8
use crate :: {
9
9
builder:: { Builder , Kind , RunConfig , ShouldRun , Step } ,
10
- Subcommand ,
11
10
} ;
12
- use crate :: { Compiler , Mode } ;
11
+ use crate :: { Compiler , Mode , Subcommand } ;
13
12
use std:: path:: PathBuf ;
14
13
15
14
#[ derive( Debug , Copy , Clone , PartialEq , Eq , Hash ) ]
16
15
pub struct Std {
17
16
pub target : TargetSelection ,
18
17
}
19
18
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 ! [ ]
24
30
}
25
31
}
26
32
@@ -62,7 +68,7 @@ impl Step for Std {
62
68
run_cargo (
63
69
builder,
64
70
cargo,
65
- args ( builder. kind ) ,
71
+ args ( builder) ,
66
72
& libstd_stamp ( builder, compiler, target) ,
67
73
vec ! [ ] ,
68
74
true ,
@@ -104,7 +110,7 @@ impl Step for Std {
104
110
run_cargo (
105
111
builder,
106
112
cargo,
107
- args ( builder. kind ) ,
113
+ args ( builder) ,
108
114
& libstd_test_stamp ( builder, compiler, target) ,
109
115
vec ! [ ] ,
110
116
true ,
@@ -165,7 +171,7 @@ impl Step for Rustc {
165
171
run_cargo (
166
172
builder,
167
173
cargo,
168
- args ( builder. kind ) ,
174
+ args ( builder) ,
169
175
& librustc_stamp ( builder, compiler, target) ,
170
176
vec ! [ ] ,
171
177
true ,
@@ -220,7 +226,7 @@ impl Step for CodegenBackend {
220
226
run_cargo (
221
227
builder,
222
228
cargo,
223
- args ( builder. kind ) ,
229
+ args ( builder) ,
224
230
& codegen_backend_stamp ( builder, compiler, target, backend) ,
225
231
vec ! [ ] ,
226
232
true ,
@@ -278,7 +284,7 @@ macro_rules! tool_check_step {
278
284
run_cargo(
279
285
builder,
280
286
cargo,
281
- args( builder. kind ) ,
287
+ args( builder) ,
282
288
& stamp( builder, compiler, target) ,
283
289
vec![ ] ,
284
290
true ,
0 commit comments