rust/tests/ui/lint/unused/issue-74883-unused-paren-baren-yield.rs
Oli Scherer aef0f4024a Error on using yield without also using #[coroutine] on the closure
And suggest adding the `#[coroutine]` to the closure
2024-04-24 08:05:29 +00:00

27 lines
879 B
Rust

#![feature(coroutine_trait)]
#![feature(coroutines, stmt_expr_attributes)]
#![deny(unused_braces, unused_parens)]
use std::ops::Coroutine;
use std::pin::Pin;
fn main() {
let mut x = #[coroutine] |_| {
while let Some(_) = (yield) {}
while let Some(_) = {yield} {}
// Only warn these cases
while let Some(_) = ({yield}) {} //~ ERROR: unnecessary parentheses
while let Some(_) = ((yield)) {} //~ ERROR: unnecessary parentheses
{{yield}}; //~ ERROR: unnecessary braces
{( yield )}; //~ ERROR: unnecessary parentheses
while let Some(_) = {(yield)} {} //~ ERROR: unnecessary parentheses
while let Some(_) = {{yield}} {} //~ ERROR: unnecessary braces
// FIXME: It'd be great if we could also warn them.
((yield));
({ yield });
};
let _ = Pin::new(&mut x).resume(Some(5));
}