# Static rustc_lint_defs::builtin::IRREFUTABLE_LET_PATTERNS

source ·

    pub static IRREFUTABLE_LET_PATTERNS: &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.