@@ -1540,9 +1540,6 @@ impl Config {
15401540 }
15411541 }
15421542
1543- let file_content = t ! ( fs:: read_to_string( config. src. join( "src/ci/channel" ) ) ) ;
1544- let ci_channel = file_content. trim_end ( ) ;
1545-
15461543 // Give a hard error if `--config` or `RUST_BOOTSTRAP_CONFIG` are set to a missing path,
15471544 // but not if `bootstrap.toml` hasn't been created.
15481545 let mut toml = if !using_default_path || toml_path. exists ( ) {
@@ -1847,17 +1844,21 @@ impl Config {
18471844 let mut lld_enabled = None ;
18481845 let mut std_features = None ;
18491846
1850- let is_user_configured_rust_channel =
1851- if let Some ( channel ) = toml . rust . as_ref ( ) . and_then ( |r| r . channel . clone ( ) ) {
1852- if channel == "auto-detect" {
1853- config . channel = ci_channel . into ( ) ;
1854- } else {
1855- config . channel = channel ;
1856- }
1847+ let file_content = t ! ( fs :: read_to_string ( config . src . join ( "src/ci/channel" ) ) ) ;
1848+ let ci_channel = file_content . trim_end ( ) ;
1849+
1850+ let toml_channel = toml . rust . as_ref ( ) . and_then ( |r| r . channel . clone ( ) ) ;
1851+ let is_user_configured_rust_channel = match toml_channel {
1852+ Some ( channel ) if channel == "auto-detect" => {
1853+ config . channel = ci_channel . into ( ) ;
18571854 true
1858- } else {
1859- false
1860- } ;
1855+ }
1856+ Some ( channel) => {
1857+ config. channel = channel;
1858+ true
1859+ }
1860+ None => false ,
1861+ } ;
18611862
18621863 let default = config. channel == "dev" ;
18631864 config. omit_git_hash = toml. rust . as_ref ( ) . and_then ( |r| r. omit_git_hash ) . unwrap_or ( default) ;
@@ -1882,6 +1883,10 @@ impl Config {
18821883 && config. src . join ( ".cargo/config.toml" ) . exists ( ) ,
18831884 ) ;
18841885
1886+ if !is_user_configured_rust_channel && config. rust_info . is_from_tarball ( ) {
1887+ config. channel = ci_channel. into ( ) ;
1888+ }
1889+
18851890 if let Some ( rust) = toml. rust {
18861891 let Rust {
18871892 optimize : optimize_toml,
@@ -2085,8 +2090,6 @@ impl Config {
20852090
20862091 config. channel = channel;
20872092 }
2088- } else if config. rust_info . is_from_tarball ( ) && !is_user_configured_rust_channel {
2089- ci_channel. clone_into ( & mut config. channel ) ;
20902093 }
20912094
20922095 if let Some ( llvm) = toml. llvm {
0 commit comments