# Error code E0165

#### Note: this error code is no longer emitted by the compiler.

A `while let` pattern attempts to match the pattern, and enters the body if the match was successful. If the match is irrefutable (when it cannot fail to match), use a regular `let`-binding inside a `loop` instead. For instance:

    struct Irrefutable(i32);
    let irr = Irrefutable(0);

    // This fails to compile because the match is irrefutable.
    while let Irrefutable(x) = irr {
        // ...
    }

Try this instead:

    struct Irrefutable(i32);
    let irr = Irrefutable(0);

    loop {
        let Irrefutable(x) = irr;
        // ...
    }