diff --git a/tests/ui/async-await/issue-96084.rs b/tests/ui/async-await/issue-96084.rs new file mode 100644 index 0000000000000..7e84c155330a3 --- /dev/null +++ b/tests/ui/async-await/issue-96084.rs @@ -0,0 +1,33 @@ +// run-pass +// edition:2018 + +use std::mem; + +async fn foo() { + let x = [0u8; 100]; + async {}.await; + println!("{}", x.len()); +} + +async fn a() { + let fut = foo(); + let fut = fut; + fut.await; +} + +async fn b() { + let fut = foo(); + println!("{}", mem::size_of_val(&fut)); + let fut = fut; + fut.await; +} + +fn main() { + assert_eq!(mem::size_of_val(&foo()), 102); + + // 1 + sizeof(foo) + assert_eq!(mem::size_of_val(&a()), 103); + + // 1 + (sizeof(foo) * 2) + assert_eq!(mem::size_of_val(&b()), 103); +}