@@ -17,8 +17,7 @@ use crate::ptr;
1717use crate :: raw;
1818use crate :: sys:: stdio:: panic_output;
1919use crate :: sys_common:: rwlock:: RWLock ;
20- use crate :: sys_common:: thread_info;
21- use crate :: sys_common:: util;
20+ use crate :: sys_common:: { thread_info, util, backtrace} ;
2221use crate :: thread;
2322
2423#[ cfg( not( test) ) ]
@@ -157,20 +156,18 @@ pub fn take_hook() -> Box<dyn Fn(&PanicInfo<'_>) + 'static + Sync + Send> {
157156}
158157
159158fn default_hook ( info : & PanicInfo < ' _ > ) {
160- #[ cfg( feature = "backtrace" ) ]
161- use crate :: sys_common:: { backtrace as backtrace_mod} ;
162-
163159 // If this is a double panic, make sure that we print a backtrace
164160 // for this panic. Otherwise only print it if logging is enabled.
165- #[ cfg( feature = "backtrace" ) ]
166- let log_backtrace = {
161+ let log_backtrace = if cfg ! ( feature = "backtrace" ) {
167162 let panics = update_panic_count ( 0 ) ;
168163
169164 if panics >= 2 {
170165 Some ( backtrace_rs:: PrintFmt :: Full )
171166 } else {
172- backtrace_mod :: log_enabled ( )
167+ backtrace :: log_enabled ( )
173168 }
169+ } else {
170+ None
174171 } ;
175172
176173 // The current implementation always returns `Some`.
@@ -190,14 +187,13 @@ fn default_hook(info: &PanicInfo<'_>) {
190187 let _ = writeln ! ( err, "thread '{}' panicked at '{}', {}" ,
191188 name, msg, location) ;
192189
193- #[ cfg( feature = "backtrace" ) ]
194- {
190+ if cfg ! ( feature = "backtrace" ) {
195191 use crate :: sync:: atomic:: { AtomicBool , Ordering } ;
196192
197193 static FIRST_PANIC : AtomicBool = AtomicBool :: new ( true ) ;
198194
199195 if let Some ( format) = log_backtrace {
200- let _ = backtrace_mod :: print ( err, format) ;
196+ let _ = backtrace :: print ( err, format) ;
201197 } else if FIRST_PANIC . compare_and_swap ( true , false , Ordering :: SeqCst ) {
202198 let _ = writeln ! ( err, "note: run with `RUST_BACKTRACE=1` \
203199 environment variable to display a backtrace.") ;
0 commit comments