// Test that we don't allow yielding from a coroutine while a local is partially // initialized. #![feature(coroutines, stmt_expr_attributes)] struct S { x: i32, y: i32 } struct T(i32, i32); fn test_tuple() { let _ = #[coroutine] || { let mut t: (i32, i32); t.0 = 42; //~ ERROR E0381 yield; t.1 = 88; let _ = t; }; } fn test_tuple_struct() { let _ = #[coroutine] || { let mut t: T; t.0 = 42; //~ ERROR E0381 yield; t.1 = 88; let _ = t; }; } fn test_struct() { let _ = #[coroutine] || { let mut t: S; t.x = 42; //~ ERROR E0381 yield; t.y = 88; let _ = t; }; } fn main() { test_tuple(); test_tuple_struct(); test_struct(); }