20 ms·
You don't want the safety of your program to depend on whether the compiler emits a warning or not. And turning warnings into errors just encourages people to
by phicoh 3y ago
You don't want the safety of your program to depend on whether the compiler emits a warning or not.
And turning warnings into errors just encourages people to write 'let _ = ...' to get rid of the error.
- veber-alex 3y agoThis has nothing to do with safety, just correctness. > And turning warnings into errors just encourages people to write 'let _ = ...' to get rid of the error. No? writing `let _ = make_future()` will clearly not await the future, why would you do it instead of just adding `.await` ? Using `let _ = ...` is sometimes fine for Result if you really sure you don't care about the potential error you got but it's a no go with futures.
- estebank 3y agoNote that the lint for un-awaited Future doesn't mention the way to silence them by assigning to _: warning: unused implementer of `Future` that must be used --> src/main.rs:9:5 | 9 | foo(); | ^^^^^ | = note: futures do nothing unless you `.await` or poll them = note: `#[warn(unused_must_use)]` on by default