@@ -293,17 +293,27 @@ impl Step for Cargo {
293
293
}
294
294
295
295
fn make_run ( run : RunConfig < ' _ > ) {
296
- run. builder . ensure ( Cargo { stage : run. builder . top_stage , host : run. target } ) ;
296
+ // If stage is explicitly set or not lower than 2, keep it. Otherwise, make sure it's at least 2
297
+ // as tests for this step don't work with a lower stage.
298
+ let stage = if run. builder . config . is_explicit_stage ( ) || run. builder . top_stage >= 2 {
299
+ run. builder . top_stage
300
+ } else {
301
+ 2
302
+ } ;
303
+
304
+ run. builder . ensure ( Cargo { stage, host : run. target } ) ;
297
305
}
298
306
299
307
/// Runs `cargo test` for `cargo` packaged with Rust.
300
308
fn run ( self , builder : & Builder < ' _ > ) {
301
- if self . stage < 2 {
302
- eprintln ! ( "WARNING: cargo tests on stage {} may not behave well." , self . stage) ;
309
+ let stage = self . stage ;
310
+
311
+ if stage < 2 {
312
+ eprintln ! ( "WARNING: cargo tests on stage {stage} may not behave well." ) ;
303
313
eprintln ! ( "HELP: consider using stage 2" ) ;
304
314
}
305
315
306
- let compiler = builder. compiler ( self . stage , self . host ) ;
316
+ let compiler = builder. compiler ( stage, self . host ) ;
307
317
308
318
let cargo = builder. ensure ( tool:: Cargo { compiler, target : self . host } ) ;
309
319
let compiler = cargo. build_compiler ;
@@ -340,7 +350,7 @@ impl Step for Cargo {
340
350
crates : vec ! [ "cargo" . into( ) ] ,
341
351
target : self . host . triple . to_string ( ) ,
342
352
host : self . host . triple . to_string ( ) ,
343
- stage : self . stage ,
353
+ stage,
344
354
} ,
345
355
builder,
346
356
) ;
@@ -739,7 +749,15 @@ impl Step for Clippy {
739
749
}
740
750
741
751
fn make_run ( run : RunConfig < ' _ > ) {
742
- run. builder . ensure ( Clippy { stage : run. builder . top_stage , host : run. target } ) ;
752
+ // If stage is explicitly set or not lower than 2, keep it. Otherwise, make sure it's at least 2
753
+ // as tests for this step don't work with a lower stage.
754
+ let stage = if run. builder . config . is_explicit_stage ( ) || run. builder . top_stage >= 2 {
755
+ run. builder . top_stage
756
+ } else {
757
+ 2
758
+ } ;
759
+
760
+ run. builder . ensure ( Clippy { stage, host : run. target } ) ;
743
761
}
744
762
745
763
/// Runs `cargo test` for clippy.
0 commit comments