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: ```compile_fail,E0005 let x = Some(1); let Some(y) = x; // error: refutable pattern in local binding: `None` not covered ``` If 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 } ```