rust/tests/ui/lint/unused/unused-closure.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

36 lines
879 B
Rust

// Test that closures and coroutines are "must use" types.
//@ edition:2018
#![feature(async_closure)]
#![feature(coroutines, stmt_expr_attributes)]
#![deny(unused_must_use)]
fn unused() {
|| { //~ ERROR unused closure that must be used
println!("Hello!");
};
async {}; //~ ERROR unused implementer of `Future` that must be used
|| async {}; //~ ERROR unused closure that must be used
async || {}; //~ ERROR unused closure that must be used
[Box::new([|| {}; 10]); 1]; //~ ERROR unused array of boxed arrays of closures that must be used
vec![|| "a"].pop().unwrap(); //~ ERROR unused closure that must be used
let b = false;
|| true; //~ ERROR unused closure that must be used
println!("{}", b);
}
fn ignored() {
let _ = || {};
let _ = #[coroutine] || yield 42;
}
fn main() {
unused();
ignored();
}