Clippy lints / Correctness
Clippy lint · Correctness · checked with Clippy 0.1.99
clippy::unit_cmp: Checks for comparisons to unit
What it meansChecks for comparisons to unit. This includes all binary comparisons (like == and <) and asserts. It is in the correctness group and denied by default (the build fails).
Does it matter?
Unit is always equal to itself, and thus is just a clumsily written constant. Mostly this happens when someone accidentally adds semicolons at the end of the operands.
Code that is almost certainly wrong. Denied by default: the build fails until you fix it or allow it.
How to fix it
Clippy does not fix this one automatically. Change the code by hand:
Flagged
if {
foo();
} == {
bar();
} {
baz();
}
Write this instead
{
foo();
bar();
baz();
}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::unit_cmp)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
unit_cmp = "allow"One run
cargo clippy -- -A clippy::unit-cmpThe [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 comparisons to unit. This includes all binary
comparisons (like == and <) and asserts.
Why is this bad?
Unit is always equal to itself, and thus is just a clumsily written constant. Mostly this happens when someone accidentally adds semicolons at the end of the operands.
Example
if {
foo();
} == {
bar();
} {
baz();
}
is equal to
{
foo();
bar();
baz();
}
For asserts:
assert_eq!({ foo(); }, { bar(); });
will always succeed
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- transmuting_nulltransmuting a known null pointer into a reference
- uninit_assumed_initthis call for this type may be undefined behavior
- uninit_vecChecks for set_len() call that creates Vec with uninitialized elements. This is commonly caused by calling set_len() right after allocating or reserving a buffer with new(), default(), with_capacity(), or reserve()
- unit_hashDetects ().hash(_)
- unit_return_expecting_ordthis closure returns the unit type which also implements Ord
- unsound_collection_transmutetransmute from `std::vec::Vec<u16>` to `std::vec::Vec<u32>` with mismatched layout is unsound
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::transmuting_nulltransmuting a known null pointer into a referenceRead it next →Did this answer your question?