about summary refs log tree commit diff
diff options
context:
space:
mode:
-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