about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Holk <ericholk@microsoft.com>2022-06-09 16:07:36 -0700
committerEric Holk <ericholk@microsoft.com>2022-07-29 15:59:26 -0700
commitbdfc68855861ecea26844a66c38c53f496386b7d (patch)
tree7a819685d14acd6b1ef25725687e0b8cc90e7ddd
parent3924dac7bb29bc8eb348059c901e8f912399c857 (diff)
downloadrust-bdfc68855861ecea26844a66c38c53f496386b7d.tar.gz
rust-bdfc68855861ecea26844a66c38c53f496386b7d.zip
Add drop tracking version of must_not_suspend ref test
-rw-r--r--src/test/ui/lint/must_not_suspend/ref-drop-tracking.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/lint/must_not_suspend/ref-drop-tracking.rs b/src/test/ui/lint/must_not_suspend/ref-drop-tracking.rs
new file mode 100644
index 00000000000..1bc4a381257
--- /dev/null
+++ b/src/test/ui/lint/must_not_suspend/ref-drop-tracking.rs
@@ -0,0 +1,30 @@
+// edition:2018
+// compile-flags: -Zdrop-tracking
+#![feature(must_not_suspend)]
+#![deny(must_not_suspend)]
+
+#[must_not_suspend = "You gotta use Umm's, ya know?"]
+struct Umm {
+    i: i64
+}
+
+struct Bar {
+    u: Umm,
+}
+
+async fn other() {}
+
+impl Bar {
+    async fn uhoh(&mut self) {
+        let guard = &mut self.u; //~ ERROR `Umm` held across
+
+        other().await;
+
+        *guard = Umm {
+            i: 2
+        }
+    }
+}
+
+fn main() {
+}