Clippy lints / Suspicious
Clippy lint · Suspicious · checked with Clippy 0.1.99
clippy::possible_missing_else: this looks like an `else {..}` but the `else` is missing
What it meansChecks for an if expression followed by either a block or another if that looks like it should have an else between them. It is in the suspicious group and warns by default.
What you see
warning: this looks like an `else {..}` but the `else` is missing --> main.rs:4:2 | 4 | } { // looks like an `else` is missing here | ^ | = note: to remove this lint, add the missing `else` or add a new line before the next block = help: for further information visit https://rust-lang.github.io/rust-clippy/stable/index.html#possible_missing_else = note: `#[warn(clippy::possible_missing_else)]` on by default
Real output of Clippy 0.1.99 (Rust 1.99) on the example below. Names and line numbers in yours will differ.
Does it matter?
This is probably some refactoring remnant, even if the code is correct, it might look confusing.
Code that is most likely wrong or useless. Warns by default.
How to fix it
Clippy does not fix this one automatically. Change the code by hand:
Flagged
if foo {
} { // looks like an `else` is missing here
}
if foo {
} if bar { // looks like an `else` is missing here
}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::possible_missing_else)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
possible_missing_else = "allow"One run
cargo clippy -- -A clippy::possible-missing-elseThe [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 an if expression followed by either a block or another if that
looks like it should have an else between them.
Why is this bad?
This is probably some refactoring remnant, even if the code is correct, it might look confusing.
Example
if foo {
} { // looks like an `else` is missing here
}
if foo {
} if bar { // looks like an `else` is missing here
}
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- path_ends_with_extLooks for calls to Path::ends_with calls where the argument looks like a file extension. By default, Clippy has a short list of known filenames that start with a dot but aren’t necessarily file extensions (e.g
- permissions_set_readonly_falsecall to `set_readonly` with argument `false`
- pointers_in_nomem_asm_blockpassing pointers to nomem asm block
- print_in_format_impluse of `println!` in `Display` impl
- rc_clone_in_vec_initinitializing a reference-counted pointer in `vec![elem; len]`
- redundant_localsredundant redefinition of a binding `a`
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::path_ends_with_extLooks for calls to Path::ends_with calls where the argument looks like a file extension. By default, Clippy has a short list of known filenames that start with a dot but aren’t necessarily file extensions (e.gRead it next →Did this answer your question?