@@ -463,11 +463,10 @@ static SHOULD_CAPTURE: AtomicU8 = AtomicU8::new(0);
463
463
/// environment variable; see the details in [`get_backtrace_style`].
464
464
#[ unstable( feature = "panic_backtrace_config" , issue = "93346" ) ]
465
465
pub fn set_backtrace_style ( style : BacktraceStyle ) {
466
- if ! cfg ! ( feature = "backtrace" ) {
467
- // If the `backtrace` feature of this crate isn't enabled, skip setting .
468
- return ;
466
+ if cfg ! ( feature = "backtrace" ) {
467
+ // If the `backtrace` feature of this crate is enabled, set the backtrace style .
468
+ SHOULD_CAPTURE . store ( style . as_u8 ( ) , Ordering :: Release ) ;
469
469
}
470
- SHOULD_CAPTURE . store ( style. as_u8 ( ) , Ordering :: Release ) ;
471
470
}
472
471
473
472
/// Checks whether the standard library's panic hook will capture and print a
@@ -499,27 +498,28 @@ pub fn get_backtrace_style() -> Option<BacktraceStyle> {
499
498
// to optimize away callers.
500
499
return None ;
501
500
}
502
- if let Some ( style) = BacktraceStyle :: from_u8 ( SHOULD_CAPTURE . load ( Ordering :: Acquire ) ) {
503
- return Some ( style) ;
504
- }
505
-
506
- let format = crate :: env:: var_os ( "RUST_BACKTRACE" )
507
- . map ( |x| {
508
- if & x == "0" {
509
- BacktraceStyle :: Off
510
- } else if & x == "full" {
511
- BacktraceStyle :: Full
512
- } else {
513
- BacktraceStyle :: Short
514
- }
515
- } )
516
- . unwrap_or ( if crate :: sys:: FULL_BACKTRACE_DEFAULT {
517
- BacktraceStyle :: Full
518
- } else {
519
- BacktraceStyle :: Off
501
+ return BacktraceStyle :: from_u8 ( SHOULD_CAPTURE . load ( Ordering :: Acquire ) )
502
+ . map ( Some )
503
+ . unwrap_or_else ( || {
504
+ let env_var = crate :: env:: var_os ( "RUST_BACKTRACE" ) ;
505
+ let style = env_var
506
+ . and_then ( |var| {
507
+ var. to_str ( ) . map ( |s| match s {
508
+ "0" => BacktraceStyle :: Off ,
509
+ "full" => BacktraceStyle :: Full ,
510
+ _ => BacktraceStyle :: Short ,
511
+ } )
512
+ } )
513
+ . unwrap_or_else ( || {
514
+ if crate :: sys:: FULL_BACKTRACE_DEFAULT {
515
+ BacktraceStyle :: Full
516
+ } else {
517
+ BacktraceStyle :: Short
518
+ }
519
+ } ) ;
520
+ set_backtrace_style ( style) ;
521
+ Some ( style)
520
522
} ) ;
521
- set_backtrace_style ( format) ;
522
- Some ( format)
523
523
}
524
524
525
525
#[ cfg( test) ]
0 commit comments