Error code E0162
Note: this error code is no longer emitted by the compiler.
An if 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 instead. For instance:
#![allow(unused)] fn main() { struct Irrefutable(i32); let irr = Irrefutable(0); // This fails to compile because the match is irrefutable. if let Irrefutable(x) = irr { // This body will always be executed. // ... } }
Try this instead:
#![allow(unused)] fn main() { struct Irrefutable(i32); let irr = Irrefutable(0); let Irrefutable(x) = irr; println!("{}", x); }