diff options
Diffstat (limited to 'tests/ui/lint/must_not_suspend/ref.rs')
-rw-r--r-- | tests/ui/lint/must_not_suspend/ref.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/lint/must_not_suspend/ref.rs b/tests/ui/lint/must_not_suspend/ref.rs new file mode 100644 index 000000000..f6b23746f --- /dev/null +++ b/tests/ui/lint/must_not_suspend/ref.rs @@ -0,0 +1,29 @@ +// edition:2018 +// revisions: no_drop_tracking drop_tracking +// [drop_tracking] compile-flags: -Zdrop-tracking=yes +// [no_drop_tracking] compile-flags: -Zdrop-tracking=no +#![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() {} |