@@ -374,7 +374,7 @@ mod desc {
374
374
pub const parse_number: & str = "a number" ;
375
375
pub const parse_opt_number: & str = parse_number;
376
376
pub const parse_frame_pointer: & str =
377
- "one of `true`/`yes`/`on`, `false`/`no`/`off`, or (with -Zunstable-options) `non-leaf`" ;
377
+ "one of `true`/`yes`/`on`, `false`/`no`/`off`, or (with -Zunstable-options) `non-leaf` or `always` " ;
378
378
pub const parse_threads: & str = parse_number;
379
379
pub const parse_time_passes_format: & str = "`text` (default) or `json`" ;
380
380
pub const parse_passes: & str = "a space-separated list of passes, or `all`" ;
@@ -672,15 +672,15 @@ mod parse {
672
672
}
673
673
674
674
pub ( crate ) fn parse_frame_pointer ( slot : & mut FramePointer , v : Option < & str > ) -> bool {
675
- let mut boolish = false ;
676
- let mut is_parsed = parse_bool ( & mut boolish , v ) ;
677
- if boolish & is_parsed {
678
- * slot = FramePointer :: Always ;
679
- } else if v == Some ( "non-leaf " ) {
680
- is_parsed = true ;
681
- * slot = FramePointer :: NonLeaf ;
682
- } ;
683
- is_parsed
675
+ let mut yes = false ;
676
+ match ( v , was_bool ) {
677
+ Some ( _ ) if parse_bool ( & mut yes , v ) && yes => slot . ratchet ( FramePointer :: Always ) ,
678
+ Some ( _ ) if parse_bool ( & mut yes , v ) => slot . ratchet ( FramePointer :: MayOmit ) ,
679
+ Some ( "always " ) => slot . ratchet ( FramePointer :: Always ) ,
680
+ Some ( "non-leaf" ) => slot . ratchet ( FramePointer :: NonLeaf ) ,
681
+ _ => return false ,
682
+ }
683
+ true
684
684
}
685
685
686
686
pub ( crate ) fn parse_passes ( slot : & mut Passes , v : Option < & str > ) -> bool {
0 commit comments