Warn about unused expressions with closure or generator type. This follows
existing precedence of must use annotations present on `FnOnce`, `FnMut`, `Fn`
traits, which already indirectly apply to closures in some cases, e.g.,:
```rust
fn f() -> impl FnOnce() {
|| {}
}
fn main() {
// an existing warning: unused implementer of `std::ops::FnOnce` that must be used:
f();
// a new warning: unused closure that must be used:
|| {};
}
```
17 lines
401 B
Rust
17 lines
401 B
Rust
// run-pass
|
|
|
|
#![feature(generators)]
|
|
|
|
fn main() {
|
|
static || { //~ WARN unused generator that must be used
|
|
loop {
|
|
// Test that `opt` is not live across the yield, even when borrowed in a loop
|
|
// See https://github.com/rust-lang/rust/issues/52792
|
|
let opt = {
|
|
yield;
|
|
true
|
|
};
|
|
&opt;
|
|
}
|
|
};
|
|
}
|