@@ -326,7 +326,7 @@ impl Build {
326
326
let rls_info = channel:: GitInfo :: new ( & config, & src. join ( "src/tools/rls" ) ) ;
327
327
let rustfmt_info = channel:: GitInfo :: new ( & config, & src. join ( "src/tools/rustfmt" ) ) ;
328
328
329
- Build {
329
+ let mut build = Build {
330
330
initial_rustc : config. initial_rustc . clone ( ) ,
331
331
initial_cargo : config. initial_cargo . clone ( ) ,
332
332
local_rebuild : config. local_rebuild ,
@@ -357,7 +357,27 @@ impl Build {
357
357
delayed_failures : RefCell :: new ( Vec :: new ( ) ) ,
358
358
prerelease_version : Cell :: new ( None ) ,
359
359
tool_artifacts : Default :: default ( ) ,
360
+ } ;
361
+
362
+ build. verbose ( "finding compilers" ) ;
363
+ cc_detect:: find ( & mut build) ;
364
+ build. verbose ( "running sanity check" ) ;
365
+ sanity:: check ( & mut build) ;
366
+ // If local-rust is the same major.minor as the current version, then force a local-rebuild
367
+ let local_version_verbose = output (
368
+ Command :: new ( & build. initial_rustc ) . arg ( "--version" ) . arg ( "--verbose" ) ) ;
369
+ let local_release = local_version_verbose
370
+ . lines ( ) . filter ( |x| x. starts_with ( "release:" ) )
371
+ . next ( ) . unwrap ( ) . trim_left_matches ( "release:" ) . trim ( ) ;
372
+ let my_version = channel:: CFG_RELEASE_NUM ;
373
+ if local_release. split ( '.' ) . take ( 2 ) . eq ( my_version. split ( '.' ) . take ( 2 ) ) {
374
+ build. verbose ( & format ! ( "auto-detected local-rebuild {}" , local_release) ) ;
375
+ build. local_rebuild = true ;
360
376
}
377
+ build. verbose ( "learning about cargo" ) ;
378
+ metadata:: build ( & mut build) ;
379
+
380
+ build
361
381
}
362
382
363
383
pub fn build_triple ( & self ) -> & [ Interned < String > ] {
@@ -376,24 +396,6 @@ impl Build {
376
396
return clean:: clean ( self , all) ;
377
397
}
378
398
379
- self . verbose ( "finding compilers" ) ;
380
- cc_detect:: find ( self ) ;
381
- self . verbose ( "running sanity check" ) ;
382
- sanity:: check ( self ) ;
383
- // If local-rust is the same major.minor as the current version, then force a local-rebuild
384
- let local_version_verbose = output (
385
- Command :: new ( & self . initial_rustc ) . arg ( "--version" ) . arg ( "--verbose" ) ) ;
386
- let local_release = local_version_verbose
387
- . lines ( ) . filter ( |x| x. starts_with ( "release:" ) )
388
- . next ( ) . unwrap ( ) . trim_left_matches ( "release:" ) . trim ( ) ;
389
- let my_version = channel:: CFG_RELEASE_NUM ;
390
- if local_release. split ( '.' ) . take ( 2 ) . eq ( my_version. split ( '.' ) . take ( 2 ) ) {
391
- self . verbose ( & format ! ( "auto-detected local-rebuild {}" , local_release) ) ;
392
- self . local_rebuild = true ;
393
- }
394
- self . verbose ( "learning about cargo" ) ;
395
- metadata:: build ( self ) ;
396
-
397
399
let builder = builder:: Builder :: new ( & self ) ;
398
400
if let Some ( path) = builder. paths . get ( 0 ) {
399
401
if path == Path :: new ( "nonexistent/path/to/trigger/cargo/metadata" ) {
0 commit comments