diff options
| author | Konippi <konippi-114@outlook.jp> | 2024-08-02 23:58:05 +0900 |
|---|---|---|
| committer | Konippi <konippi-114@outlook.jp> | 2024-08-03 11:12:16 +0900 |
| commit | a798e0f4883997907e6a1ffa484071c0ceb2ba85 (patch) | |
| tree | a30df068275f1d1139d54e42d1b15b4f2f7227c0 /library/std/src/panic.rs | |
| parent | 2cec7a85ed4868c90194a2187d2751788e298197 (diff) | |
| download | rust-a798e0f4883997907e6a1ffa484071c0ceb2ba85.tar.gz rust-a798e0f4883997907e6a1ffa484071c0ceb2ba85.zip | |
chore: refactor backtrace style in panic
Diffstat (limited to 'library/std/src/panic.rs')
| -rw-r--r-- | library/std/src/panic.rs | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/library/std/src/panic.rs b/library/std/src/panic.rs index 2ca9256715c..4c496ade81c 100644 --- a/library/std/src/panic.rs +++ b/library/std/src/panic.rs @@ -463,11 +463,10 @@ static SHOULD_CAPTURE: AtomicU8 = AtomicU8::new(0); /// environment variable; see the details in [`get_backtrace_style`]. #[unstable(feature = "panic_backtrace_config", issue = "93346")] pub fn set_backtrace_style(style: BacktraceStyle) { - if !cfg!(feature = "backtrace") { - // If the `backtrace` feature of this crate isn't enabled, skip setting. - return; + if cfg!(feature = "backtrace") { + // If the `backtrace` feature of this crate is enabled, set the backtrace style. + SHOULD_CAPTURE.store(style.as_u8(), Ordering::Release); } - SHOULD_CAPTURE.store(style.as_u8(), Ordering::Release); } /// Checks whether the standard library's panic hook will capture and print a @@ -503,21 +502,13 @@ pub fn get_backtrace_style() -> Option<BacktraceStyle> { return Some(style); } - let format = crate::env::var_os("RUST_BACKTRACE") - .map(|x| { - if &x == "0" { - BacktraceStyle::Off - } else if &x == "full" { - BacktraceStyle::Full - } else { - BacktraceStyle::Short - } - }) - .unwrap_or(if crate::sys::FULL_BACKTRACE_DEFAULT { - BacktraceStyle::Full - } else { - BacktraceStyle::Off - }); + let format = match crate::env::var_os("RUST_BACKTRACE") { + Some(x) if &x == "0" => BacktraceStyle::Off, + Some(x) if &x == "full" => BacktraceStyle::Full, + Some(_) => BacktraceStyle::Short, + None if crate::sys::FULL_BACKTRACE_DEFAULT => BacktraceStyle::Full, + None => BacktraceStyle::Off, + }; set_backtrace_style(format); Some(format) } |
