You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
unnecessary_unwrap: should not trigger if the is_some is just part of the conditional #4530
unnecessary_unwrap recommends that foo.is_some() in a conditional followed by foo.unwrap() should be replaced by an if let. That is usually good advice, however, if the is_some is just part of the conditional, then the only way to use if let is with nested ifs.
E.g.,
if some_condition && foo.is_some() {
let foo = foo.unwrap();
...
}
can only be rewritten as
if some_condition {
if let Some(foo) = foo {
...
}
}
which is not much of an improvement (and arguably no improvement at all). (In this case, using match might be better, but in some more complex examples it is not possible).
I would much prefer is unnecessary_unwrap only triggered when it was possible to rewrite exactly using a single if let or match.
Reacted by Behnam Esfahbod, David, Tobias Rapp, Thomas Tay, booleancoercion, Yerkebulan Tulibergenov and Owen Law
Activity
oli-obk commentedon Sep 10, 2019
Since chaining if lets in a condition already works on nightly, we can just wait until that hits stable and suggest the chained condition instead.
But until then this seems like an OK fix
matthiaskrgr commentedon Mar 21, 2020
triage: it seems the
let_chainsfeature has not been stabilized yet.Minor code clean-up
yerke commentedon Jul 22, 2022
let_chainsis riding the train to stable and is expected to be in Rust 1.64 🚀 : rust-lang/rust#94927DanielT commentedon Aug 22, 2023
I just ran into this issue.
let-chainsgot reverted from Rust 1.64 and as far as I can tell there is no timeline for stabilizationSince let chains have not landed in 4 years, could this be fixed in clippy after all?
Minor code clean-up