| // Test that we don't allow awaiting from an async fn while a local is partially |
| // initialized. |
| |
| //@ edition:2018 |
| |
| struct S { x: i32, y: i32 } |
| struct T(i32, i32); |
| |
| async fn noop() {} |
| |
| async fn test_tuple() { |
| let mut t: (i32, i32); |
| t.0 = 42; //~ ERROR E0381 |
| noop().await; |
| t.1 = 88; |
| let _ = t; |
| } |
| |
| async fn test_tuple_struct() { |
| let mut t: T; |
| t.0 = 42; //~ ERROR E0381 |
| noop().await; |
| t.1 = 88; |
| let _ = t; |
| } |
| |
| async fn test_struct() { |
| let mut t: S; |
| t.x = 42; //~ ERROR E0381 |
| noop().await; |
| t.y = 88; |
| let _ = t; |
| } |
| |
| fn main() { |
| let _ = test_tuple(); |
| let _ = test_tuple_struct(); |
| let _ = test_struct(); |
| } |