Clippy lints / Correctness
Clippy lint · Correctness · checked with Clippy 0.1.99
clippy::match_str_case_mismatch: Checks for match expressions modifying the case of a string with non-compliant arms
What it meansChecks for match expressions modifying the case of a string with non-compliant arms It is in the correctness group and denied by default (the build fails).
Does it matter?
The arm is unreachable, which is likely a mistake
Code that is almost certainly wrong. Denied by default: the build fails until you fix it or allow it.
How to fix it
Clippy can fix this one for you: run cargo clippy --fix (add --allow-dirty if you have uncommitted changes). Review the diff before you commit.
Flagged
match &*text.to_ascii_lowercase() {
"foo" => {},
"Bar" => {},
_ => {},
}
Write this instead
match &*text.to_ascii_lowercase() {
"foo" => {},
"bar" => {},
_ => {},
}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::match_str_case_mismatch)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
match_str_case_mismatch = "allow"One run
cargo clippy -- -A clippy::match-str-case-mismatchThe [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 match expressions modifying the case of a string with non-compliant arms
Why is this bad?
The arm is unreachable, which is likely a mistake
Example
match &*text.to_ascii_lowercase() {
"foo" => {},
"Bar" => {},
_ => {},
}
Use instead:
match &*text.to_ascii_lowercase() {
"foo" => {},
"bar" => {},
_ => {},
}
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- iterator_step_by_zero`Iterator::step_by(0)` will panic at runtime
- let_underscore_lockChecks for let _ = sync_lock
- lint_groups_priorityChecks for lint groups with the same priority as lints in the Cargo.toml [lints] table. This lint will be removed once cargo#12918 is resolved
- mem_replace_with_uninitChecks for mem::replace(&mut _, mem::uninitialized()) and mem::replace(&mut _, mem::zeroed())
- min_maxChecks for expressions where std::cmp::min and max are used to clamp values, but switched so that the result is constant
- mistyped_literal_suffixesWarns for mistyped suffix in literals
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::iterator_step_by_zero`Iterator::step_by(0)` will panic at runtimeRead it next →Did this answer your question?