1| |#![allow(unused_assignments)] 2| |// expect-exit-status-1 3| | 4| |struct Firework where T: Copy + std::fmt::Display { 5| | strength: T, 6| |} 7| | 8| |impl Firework where T: Copy + std::fmt::Display { 9| | #[inline(always)] 10| 3| fn set_strength(&mut self, new_strength: T) { 11| 3| self.strength = new_strength; 12| 3| } ------------------ | >::set_strength: | 10| 1| fn set_strength(&mut self, new_strength: T) { | 11| 1| self.strength = new_strength; | 12| 1| } ------------------ | >::set_strength: | 10| 2| fn set_strength(&mut self, new_strength: T) { | 11| 2| self.strength = new_strength; | 12| 2| } ------------------ 13| |} 14| | 15| |impl Drop for Firework where T: Copy + std::fmt::Display { 16| | #[inline(always)] 17| 2| fn drop(&mut self) { 18| 2| println!("BOOM times {}!!!", self.strength); 19| 2| } ------------------ | as core::ops::drop::Drop>::drop: | 17| 1| fn drop(&mut self) { | 18| 1| println!("BOOM times {}!!!", self.strength); | 19| 1| } ------------------ | as core::ops::drop::Drop>::drop: | 17| 1| fn drop(&mut self) { | 18| 1| println!("BOOM times {}!!!", self.strength); | 19| 1| } ------------------ 20| |} 21| | 22| 1|fn main() -> Result<(),u8> { 23| 1| let mut firecracker = Firework { strength: 1 }; 24| 1| firecracker.set_strength(2); 25| 1| 26| 1| let mut tnt = Firework { strength: 100.1 }; 27| 1| tnt.set_strength(200.1); 28| 1| tnt.set_strength(300.3); 29| 1| 30| 1| if true { 31| 1| println!("Exiting with error..."); 32| 1| return Err(1); 33| 0| } 34| 0| 35| 0| 36| 0| 37| 0| 38| 0| 39| 0| let _ = Firework { strength: 1000 }; 40| 0| 41| 0| Ok(()) 42| 1|} 43| | 44| |// Expected program output: 45| |// Exiting with error... 46| |// BOOM times 100!!! 47| |// BOOM times 1!!! 48| |// Error: 1