Patterns used to bind names must be irrefutable, that is, they must guarantee that a name will be extracted in all cases.
Erroneous code example:
let x = Some(1);
let Some(y) = x;
// error: refutable pattern in local binding: `None` not covered
RunIf you encounter this error you probably need to use a match
or if let
to
deal with the possibility of failure. Example:
let x = Some(1);
match x {
Some(y) => {
// do something
},
None => {}
}
// or:
if let Some(y) = x {
// do something
}
Run