| #![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); |
| } |