about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Holk <ericholk@microsoft.com>2022-08-17 16:58:49 -0700
committerEric Holk <ericholk@microsoft.com>2022-09-12 16:55:58 -0700
commitef7062dad6300a42b8a13e86ff5743a1d926a5d9 (patch)
treed92ff25a83caa706d9ada004072cde348ca118f4
parent48e7f248042b392b7ab324f74f52abef8f6675d0 (diff)
downloadrust-ef7062dad6300a42b8a13e86ff5743a1d926a5d9.tar.gz
rust-ef7062dad6300a42b8a13e86ff5743a1d926a5d9.zip
Add test to make sure we run custom destructors
-rw-r--r--src/test/ui/async-await/dyn-star-trait-drop.rs22
-rw-r--r--src/test/ui/async-await/dyn-star-trait-drop.run.stdout1
2 files changed, 23 insertions, 0 deletions
diff --git a/src/test/ui/async-await/dyn-star-trait-drop.rs b/src/test/ui/async-await/dyn-star-trait-drop.rs
new file mode 100644
index 00000000000..b1c987351fc
--- /dev/null
+++ b/src/test/ui/async-await/dyn-star-trait-drop.rs
@@ -0,0 +1,22 @@
+// run-pass
+// check-run-results
+#![feature(async_fn_in_traits)]
+
+use std::fmt::Debug;
+
+#[derive(Debug)]
+struct Foo(usize);
+
+impl Drop for Foo {
+    fn drop(&mut self) {
+        println!("destructor called");
+    }
+}
+
+fn make_dyn_star(i: Foo) {
+    let _dyn_i: dyn* Debug = i as dyn* Debug;
+}
+
+fn main() {
+    make_dyn_star(Foo(42));
+}
diff --git a/src/test/ui/async-await/dyn-star-trait-drop.run.stdout b/src/test/ui/async-await/dyn-star-trait-drop.run.stdout
new file mode 100644
index 00000000000..dadb33ccf3a
--- /dev/null
+++ b/src/test/ui/async-await/dyn-star-trait-drop.run.stdout
@@ -0,0 +1 @@
+destructor called