about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorJane Lusby <jlusby@yaah.dev>2020-02-10 21:07:36 -0800
committerJane Lusby <jlusby@yaah.dev>2020-02-10 21:07:36 -0800
commit7064a0ec59005f1e67e89a794ff70d687d2d7041 (patch)
treecc4865f54768fba703c1f71e8dc71d4728eff564 /src/libstd
parent192b10391784de14e8cc672314e3b68e9c450fce (diff)
downloadrust-7064a0ec59005f1e67e89a794ff70d687d2d7041.tar.gz
rust-7064a0ec59005f1e67e89a794ff70d687d2d7041.zip
maximum alternative consistency!
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/backtrace.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libstd/backtrace.rs b/src/libstd/backtrace.rs
index b82a44350cc..448b988d99c 100644
--- a/src/libstd/backtrace.rs
+++ b/src/libstd/backtrace.rs
@@ -168,11 +168,17 @@ impl fmt::Debug for Backtrace {
         };
         capture.resolve();
 
+        let frames = if fmt.alternate() {
+            &capture.frames[..]
+        } else {
+            &capture.frames[capture.actual_start..]
+        };
+
         write!(fmt, "Backtrace ")?;
 
         let mut dbg = fmt.debug_list();
 
-        for frame in &capture.frames {
+        for frame in frames {
             if frame.frame.ip().is_null() {
                 continue;
             }
@@ -215,7 +221,7 @@ impl fmt::Debug for BytesOrWide {
                 BytesOrWide::Bytes(w) => BytesOrWideString::Bytes(w),
                 BytesOrWide::Wide(w) => BytesOrWideString::Wide(w),
             },
-            backtrace::PrintFmt::Full,
+            if fmt.alternate() { backtrace::PrintFmt::Full } else { backtrace::PrintFmt::Short },
             crate::env::current_dir().as_ref().ok(),
         )
     }
@@ -419,6 +425,7 @@ mod tests {
         let bt = Backtrace::force_capture();
         eprintln!("captured: {:?}", bt);
         eprintln!("display print: {}", bt);
+        eprintln!("display print alt: {:#}", bt);
         eprintln!("resolved: {:?}", bt);
         eprintln!("resolved alt: {:#?}", bt);
         unimplemented!();