IRREFUTABLE_LET_PATTERNS in rustc_lint::builtin - Rust
Description: The `irrefutable_let_patterns` lint detects irrefutable patterns in `if let`s, `while let`s, and `if let` guards.

Skip to main content

## IRREFUTABLE_LET_PATTERNS

# Static IRREFUTABLE_LET_PATTERNS

Source

    pub static IRREFUTABLE_LET_PATTERNS: &'static Lint

Expand description

The `irrefutable_let_patterns` lint detects irrefutable patterns in `if let`s, `while let`s, and `if let` guards.

#### §Example

    if let _ = 123 {
        println!("always runs!");
    }

{{produces}}

#### §Explanation

There usually isn’t a reason to have an irrefutable pattern in an `if let` or `while let` statement, because the pattern will always match successfully. A `let` or `loop` statement will suffice. However, when generating code with a macro, forbidding irrefutable patterns would require awkward workarounds in situations where the macro doesn’t know if the pattern is refutable or not. This lint allows macros to accept this form, while alerting for a possibly incorrect use in normal code.

See RFC 2086 for more details.