@@ -326,7 +326,7 @@ impl Build {
326326 let rls_info = channel:: GitInfo :: new ( & config, & src. join ( "src/tools/rls" ) ) ;
327327 let rustfmt_info = channel:: GitInfo :: new ( & config, & src. join ( "src/tools/rustfmt" ) ) ;
328328
329- Build {
329+ let mut build = Build {
330330 initial_rustc : config. initial_rustc . clone ( ) ,
331331 initial_cargo : config. initial_cargo . clone ( ) ,
332332 local_rebuild : config. local_rebuild ,
@@ -357,7 +357,27 @@ impl Build {
357357 delayed_failures : RefCell :: new ( Vec :: new ( ) ) ,
358358 prerelease_version : Cell :: new ( None ) ,
359359 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 ;
360376 }
377+ build. verbose ( "learning about cargo" ) ;
378+ metadata:: build ( & mut build) ;
379+
380+ build
361381 }
362382
363383 pub fn build_triple ( & self ) -> & [ Interned < String > ] {
@@ -376,24 +396,6 @@ impl Build {
376396 return clean:: clean ( self , all) ;
377397 }
378398
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-
397399 let builder = builder:: Builder :: new ( & self ) ;
398400 if let Some ( path) = builder. paths . get ( 0 ) {
399401 if path == Path :: new ( "nonexistent/path/to/trigger/cargo/metadata" ) {
0 commit comments