Finds nested match or if let expressions where the patterns may be “collapsed” together without adding any branches.
Note that this lint is not intended to find all cases where nested match patterns can be merged, but only cases where merging would most likely make the code more readable.
Why is this bad?
It is unnecessarily verbose and complex.
Example
fn func(opt: Option<Result<u64, felt252>>) {
let n = match opt {
Some(n) => match n {
Ok(n) => n,
_ => return,
}
None => return,
};
}
Use instead:
fn func(opt: Option<Result<u64, felt252>>) {
let n = match opt {
Some(Ok(n)) => n,
_ => return,
};
}
What it does
Finds nested match or if let expressions where the patterns may be “collapsed” together without adding any branches.
Note that this lint is not intended to find all cases where nested match patterns can be merged, but only cases where merging would most likely make the code more readable.
Why is this bad?
It is unnecessarily verbose and complex.
Example
Use instead: