about summary refs log tree commit diff
path: root/library/std/src/panic.rs
diff options
context:
space:
mode:
authorKonippi <konippi-114@outlook.jp>2024-08-02 23:58:05 +0900
committerKonippi <konippi-114@outlook.jp>2024-08-03 11:12:16 +0900
commita798e0f4883997907e6a1ffa484071c0ceb2ba85 (patch)
treea30df068275f1d1139d54e42d1b15b4f2f7227c0 /library/std/src/panic.rs
parent2cec7a85ed4868c90194a2187d2751788e298197 (diff)
downloadrust-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.rs29
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)
 }