Skip to main content

Unsafe unwrap

What it does

Checks for usage of .unwrap()

Why is this bad?

.unwrap() might panic if the result value is an error or None.

Example

// example code where a warning is issued
fn main() {
let result = result_fn().unwrap("error");
}
fn result_fn() -> Result<u8, Error> {
Err(Error::new(ErrorKind::Other, "error"))
}

Use instead:

// example code that does not raise a warning
fn main() {
let result = if let Ok(result) = result_fn() {
result
}
}
fn result_fn() -> Result<u8, Error> {
Err(Error::new(ErrorKind::Other, "error"))
}

Implementation

The detector's implementation can be found at this link.