Clippy lints / Correctness
Clippy lint · Correctness · checked with Clippy 0.1.99
clippy::panicking_unwrap: Checks for calls of unwrap[_err]() that will always fail
What it meansChecks for calls of unwrap[_err]() that will always fail. It is in the correctness group and denied by default (the build fails).
Does it matter?
If panicking is desired, an explicit panic!() should be used.
Code that is almost certainly wrong. Denied by default: the build fails until you fix it or allow it.
How to fix it
Clippy does not fix this one automatically. Change the code by hand:
Flagged
if option.is_none() {
do_something_with(option.unwrap())
}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::panicking_unwrap)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
panicking_unwrap = "allow"One run
cargo clippy -- -A clippy::panicking-unwrapThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Checks for calls of unwrap[_err]() that will always fail.
Why is this bad?
If panicking is desired, an explicit panic!() should be used.
Known problems
This lint only checks if conditions not assignments.
So something like let x: Option<()> = None; x.unwrap(); will not be recognized.
Example
if option.is_none() {
do_something_with(option.unwrap())
}
This code will always panic. The if condition should probably be inverted.
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- option_env_unwrapthis will panic at run-time if the environment variable doesn't exist at compile-time
- out_of_bounds_indexingindex is out of bounds
- panicking_overflow_checksDetects C-style underflow/overflow checks
- possible_missing_commapossibly missing a comma here
- read_line_without_trimcalling `.parse()` on a string without trimming the trailing newline character
- recursive_format_implusing `self.to_string` in `fmt::Display` implementation will cause infinite recursion
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::option_env_unwrapthis will panic at run-time if the environment variable doesn't exist at compile-timeRead it next →Did this answer your question?