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; // ... }