Clippy lints / Suspicious
Clippy lint · Suspicious · checked with Clippy 0.1.99
clippy::suspicious_else_formatting: this is an `else {..}` but the formatting might hide it
What it meansChecks for formatting of else. It lints if the else is followed immediately by a newline or the else seems to be missing. It is in the suspicious group and warns by default.
What you see
warning: this is an `else {..}` but the formatting might hide it --> main.rs:12:2 | 12 | } else | __^ 13 | | 14 | | { // this is the `else` block of the previous `if`, but should it be? | |_^ | = note: to remove this lint, remove the `else` or remove the new line between `else` and `{..}` = help: for further information visit https://rust-lang.github.io/rust-clippy/stable/index.html#suspicious_else_formatting = note: `#[warn(clippy::suspicious_else_formatting)]` 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
}
if foo {
} else
{ // this is the `else` block of the previous `if`, but should it be?
}
if foo {
} else
if bar { // this is the `else` block of the previous `if`, but should it be?
}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::suspicious_else_formatting)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
suspicious_else_formatting = "allow"One run
cargo clippy -- -A clippy::suspicious-else-formattingThe [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 formatting of else. It lints if the else
is followed immediately by a newline or the else seems to be missing.
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
}
if foo {
} else
{ // this is the `else` block of the previous `if`, but should it be?
}
if foo {
} else
if bar { // this is the `else` block of the previous `if`, but should it be?
}
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- suspicious_assignment_formattingthis looks like you are trying to use `.. -= ..`, but you really are doing `.. = (- ..)`
- suspicious_command_arg_spacesingle argument that looks like it should be multiple arguments
- suspicious_doc_commentsthis is an outer doc comment and does not apply to the parent module or crate
- suspicious_mapthis call to `map()` won't have an effect on the call to `count()`
- suspicious_op_assign_implLints for suspicious operations in impls of OpAssign, e.g. subtracting elements in an AddAssign impl
- suspicious_open_optionsChecks for the suspicious use of OpenOptions::create() without an explicit OpenOptions::truncate()
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::suspicious_assignment_formattingthis looks like you are trying to use `.. -= ..`, but you really are doing `.. = (- ..)`Read it next →Did this answer your question?