@@ -422,7 +422,13 @@ pub fn list_installed_components(toolchain: &Toolchain<'_>) -> Result<()> {
422
422
Ok ( ( ) )
423
423
}
424
424
425
- fn print_toolchain_path ( cfg : & Cfg , toolchain : & str , if_default : & str , verbose : bool ) -> Result < ( ) > {
425
+ fn print_toolchain_path (
426
+ cfg : & Cfg ,
427
+ toolchain : & str ,
428
+ if_default : & str ,
429
+ if_override : & str ,
430
+ verbose : bool ,
431
+ ) -> Result < ( ) > {
426
432
let toolchain_path = {
427
433
let mut t_path = cfg. toolchains_dir . clone ( ) ;
428
434
t_path. push ( & toolchain) ;
@@ -438,27 +444,43 @@ fn print_toolchain_path(cfg: &Cfg, toolchain: &str, if_default: &str, verbose: b
438
444
} else {
439
445
String :: new ( )
440
446
} ;
441
- println ! ( "{}{}{}" , & toolchain, if_default, toolchain_path) ;
447
+ println ! (
448
+ "{}{}{}{}" ,
449
+ & toolchain, if_default, if_override, toolchain_path
450
+ ) ;
442
451
Ok ( ( ) )
443
452
}
444
453
445
454
pub fn list_toolchains ( cfg : & Cfg , verbose : bool ) -> Result < ( ) > {
446
455
let toolchains = cfg. list_toolchains ( ) ?;
447
456
if toolchains. is_empty ( ) {
448
457
println ! ( "no installed toolchains" ) ;
449
- } else if let Ok ( Some ( def_toolchain) ) = cfg. find_default ( ) {
458
+ } else {
459
+ let def_toolchain_name = if let Ok ( Some ( def_toolchain) ) = cfg. find_default ( ) {
460
+ def_toolchain. name ( ) . to_string ( )
461
+ } else {
462
+ String :: new ( )
463
+ } ;
464
+ let cwd = utils:: current_dir ( ) ?;
465
+ let ovr_toolchain_name = if let Ok ( Some ( ( ovr_toolchain, _reason) ) ) = cfg. find_override ( & cwd)
466
+ {
467
+ ovr_toolchain. name ( ) . to_string ( )
468
+ } else {
469
+ String :: new ( )
470
+ } ;
450
471
for toolchain in toolchains {
451
- let if_default = if def_toolchain . name ( ) == & * toolchain {
472
+ let if_default = if def_toolchain_name == & * toolchain {
452
473
" (default)"
453
474
} else {
454
475
""
455
476
} ;
456
- print_toolchain_path ( cfg, & toolchain, if_default, verbose)
457
- . expect ( "Failed to list toolchains' directories" ) ;
458
- }
459
- } else {
460
- for toolchain in toolchains {
461
- print_toolchain_path ( cfg, & toolchain, "" , verbose)
477
+ let if_override = if ovr_toolchain_name == & * toolchain {
478
+ " (override)"
479
+ } else {
480
+ ""
481
+ } ;
482
+
483
+ print_toolchain_path ( cfg, & toolchain, if_default, if_override, verbose)
462
484
. expect ( "Failed to list toolchains' directories" ) ;
463
485
}
464
486
}
0 commit comments