File tree 1 file changed +6
-7
lines changed
1 file changed +6
-7
lines changed Original file line number Diff line number Diff line change @@ -580,14 +580,15 @@ impl Cfg {
580
580
dir : & Path ,
581
581
settings : & Settings ,
582
582
) -> Result < Option < ( OverrideFile , OverrideReason ) > > {
583
+ let mut override_ = None ;
584
+
583
585
let notify = self . notify_handler . as_ref ( ) ;
584
- let mut dir = Some ( dir) ;
585
586
586
- while let Some ( d ) = dir {
587
+ for d in std :: iter :: successors ( Some ( dir ) , |d| d . parent ( ) ) {
587
588
// First check the override database
588
589
if let Some ( name) = settings. dir_override ( d, notify) {
589
590
let reason = OverrideReason :: OverrideDB ( d. to_owned ( ) ) ;
590
- return Ok ( Some ( ( name. into ( ) , reason) ) ) ;
591
+ update_override ( & mut override_ , name. into ( ) , reason) ;
591
592
}
592
593
593
594
// Then look for 'rust-toolchain' or 'rust-toolchain.toml'
@@ -662,13 +663,11 @@ impl Cfg {
662
663
}
663
664
664
665
let reason = OverrideReason :: ToolchainFile ( toolchain_file) ;
665
- return Ok ( Some ( ( override_file, reason) ) ) ;
666
+ update_override ( & mut override_ , override_file, reason) ;
666
667
}
667
-
668
- dir = d. parent ( ) ;
669
668
}
670
669
671
- Ok ( None )
670
+ Ok ( override_ )
672
671
}
673
672
674
673
fn parse_override_file < S : AsRef < str > > (
You can’t perform that action at this time.
0 commit comments