| #![allow(unused_assignments, unused_variables, while_true)] | |
| // This test confirms that (1) unexecuted infinite loops are handled correctly by the | |
| // InstrumentCoverage MIR pass; and (2) Counter Expressions that subtract from zero can be dropped. | |
| struct DebugTest; | |
| impl std::fmt::Debug for DebugTest { | |
| fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | |
| if true { | |
| if false { | |
| while true {} | |
| } | |
| write!(f, "cool")?; | |
| } else { | |
| } | |
| for i in 0..10 { | |
| if true { | |
| if false { | |
| while true {} | |
| } | |
| write!(f, "cool")?; | |
| } else { | |
| } | |
| } | |
| Ok(()) | |
| } | |
| } | |
| struct DisplayTest; | |
| impl std::fmt::Display for DisplayTest { | |
| fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | |
| if false { | |
| } else { | |
| if false { | |
| while true {} | |
| } | |
| write!(f, "cool")?; | |
| } | |
| for i in 0..10 { | |
| if false { | |
| } else { | |
| if false { | |
| while true {} | |
| } | |
| write!(f, "cool")?; | |
| } | |
| } | |
| Ok(()) | |
| } | |
| } | |
| fn main() { | |
| let debug_test = DebugTest; | |
| println!("{:?}", debug_test); | |
| let display_test = DisplayTest; | |
| println!("{}", display_test); | |
| } |