about summary refs log tree commit diff
path: root/tests/coverage/drop_trait.coverage
diff options
context:
space:
mode:
Diffstat (limited to 'tests/coverage/drop_trait.coverage')
-rw-r--r--tests/coverage/drop_trait.coverage34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/coverage/drop_trait.coverage b/tests/coverage/drop_trait.coverage
new file mode 100644
index 00000000000..2c9439a93b1
--- /dev/null
+++ b/tests/coverage/drop_trait.coverage
@@ -0,0 +1,34 @@
+   LL|       |#![allow(unused_assignments)]
+   LL|       |// failure-status: 1
+   LL|       |
+   LL|       |struct Firework {
+   LL|       |    strength: i32,
+   LL|       |}
+   LL|       |
+   LL|       |impl Drop for Firework {
+   LL|      2|    fn drop(&mut self) {
+   LL|      2|        println!("BOOM times {}!!!", self.strength);
+   LL|      2|    }
+   LL|       |}
+   LL|       |
+   LL|      1|fn main() -> Result<(), u8> {
+   LL|      1|    let _firecracker = Firework { strength: 1 };
+   LL|      1|
+   LL|      1|    let _tnt = Firework { strength: 100 };
+   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
+