// run-pass // needs-unwind #![feature(internal_output_capture)] use std::fmt; use std::fmt::{Display, Formatter}; use std::io::set_output_capture; use std::sync::{Arc, Mutex}; pub struct A; impl Display for A { fn fmt(&self, _f: &mut Formatter<'_>) -> fmt::Result { panic!(); } } fn main() { set_output_capture(Some(Arc::new(Mutex::new(Vec::new())))); assert!(std::panic::catch_unwind(|| { eprintln!("{}", A); }) .is_err()); }