RS.CLIPPY.SAME_FUNCTIONS_IN_IF_CONDITION

Consecutive `if`s with the same function call

This checker is a Clippy lint created by The Rust Project Contributors. The documentation shown here is a copy of the original documentation for: same_functions_in_if_condition. Copyright ©2025 The Rust Team. All rights reserved.

What it does

Checks for consecutive ifs with the same function call.

Why is this bad?

This is probably a copy & paste error. Despite the fact that function can have side effects and if works as intended, such an approach is implicit and can be considered a "code smell".

Example

if foo() == bar {
    ...
} else if foo() == bar {
    ...
}

This probably should be:

if foo() == bar {
    ...
} else if foo() == baz {
    ...
}

or if the original code was not a typo and called function mutates a state, consider move the mutation out of the if condition to avoid similarity to a copy & paste error:

let first = foo();
if first == bar {
    ...
} else {
    let second = foo();
    if second == bar {
    ...
    }
}