1f9353ae2c
Some of these tests use non-standard formatting that we can simulate by strategically adding `//` line comments. One contains `where` clauses that would be split across multiple lines, which we can keep on one line by moving the bounds to the generic type instead.
68 lines
2.4 KiB
Plaintext
68 lines
2.4 KiB
Plaintext
LL| |#![allow(unused_assignments)]
|
|
LL| |// failure-status: 1
|
|
LL| |
|
|
LL| |struct Firework<T: Copy + std::fmt::Display> {
|
|
LL| | strength: T,
|
|
LL| |}
|
|
LL| |
|
|
LL| |impl<T: Copy + std::fmt::Display> Firework<T> {
|
|
LL| | #[inline(always)]
|
|
LL| 3| fn set_strength(&mut self, new_strength: T) {
|
|
LL| 3| self.strength = new_strength;
|
|
LL| 3| }
|
|
------------------
|
|
| <generics::Firework<f64>>::set_strength:
|
|
| LL| 2| fn set_strength(&mut self, new_strength: T) {
|
|
| LL| 2| self.strength = new_strength;
|
|
| LL| 2| }
|
|
------------------
|
|
| <generics::Firework<i32>>::set_strength:
|
|
| LL| 1| fn set_strength(&mut self, new_strength: T) {
|
|
| LL| 1| self.strength = new_strength;
|
|
| LL| 1| }
|
|
------------------
|
|
LL| |}
|
|
LL| |
|
|
LL| |impl<T: Copy + std::fmt::Display> Drop for Firework<T> {
|
|
LL| | #[inline(always)]
|
|
LL| 2| fn drop(&mut self) {
|
|
LL| 2| println!("BOOM times {}!!!", self.strength);
|
|
LL| 2| }
|
|
------------------
|
|
| <generics::Firework<f64> as core::ops::drop::Drop>::drop:
|
|
| LL| 1| fn drop(&mut self) {
|
|
| LL| 1| println!("BOOM times {}!!!", self.strength);
|
|
| LL| 1| }
|
|
------------------
|
|
| <generics::Firework<i32> as core::ops::drop::Drop>::drop:
|
|
| LL| 1| fn drop(&mut self) {
|
|
| LL| 1| println!("BOOM times {}!!!", self.strength);
|
|
| LL| 1| }
|
|
------------------
|
|
LL| |}
|
|
LL| |
|
|
LL| 1|fn main() -> Result<(), u8> {
|
|
LL| 1| let mut firecracker = Firework { strength: 1 };
|
|
LL| 1| firecracker.set_strength(2);
|
|
LL| 1|
|
|
LL| 1| let mut tnt = Firework { strength: 100.1 };
|
|
LL| 1| tnt.set_strength(200.1);
|
|
LL| 1| tnt.set_strength(300.3);
|
|
LL| 1|
|
|
LL| 1| if true {
|
|
LL| 1| println!("Exiting with error...");
|
|
LL| 1| return Err(1);
|
|
LL| 0| }
|
|
LL| 0|
|
|
LL| 0| let _ = Firework { strength: 1000 };
|
|
LL| 0|
|
|
LL| 0| Ok(())
|
|
LL| 1|}
|
|
LL| |
|
|
LL| |// Expected program output:
|
|
LL| |// Exiting with error...
|
|
LL| |// BOOM times 100!!!
|
|
LL| |// BOOM times 1!!!
|
|
LL| |// Error: 1
|
|
|