Skip to content

manual_exhaustive_pattern #14518

@QuarkNerd

Description

@QuarkNerd

What it does

Detects an exhaustive pattern match and suggests replacing it with _

e.g.
`fn main() {
let b = A::B;

match b { A::B | A::C => println!("Pattern is verbose") } 

}

#[derive(PartialEq)]
enum A {
B, C
}`

In the above case it's a little simple but when doing things with nested tuples something might be missed

Advantage

  • _ is easier to read, epecially in cases of mathicng with nested tuples

Drawbacks

No response

Example

<code> fn main() { let b = A::B; let a = 11; match (a, b) { (10, A::B | A::C) => println!("Pattern is verbose"), _ => println!("Pattern is verbose") } } #[derive(PartialEq)] enum A { B, C }

Could be written as:

<code> fn main() { let b = A::B; let a = 11; match (a, b) { (10, _) => println!("Pattern is verbose"), _ => println!("Pattern is verbose") } } #[derive(PartialEq)] enum A { B, C }

Metadata

Metadata

Assignees

Labels

A-lintArea: New lints

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions