E0253
A match that is not exhaustive, checked with the pattern-usefulness algorithm through nested constructor patterns. Guarded arms never count. Int and String matches need a _ or binding arm. Spans the scrutinee; the message lists the missing patterns.
Machine-applicable fix: Add an arm for each missing pattern after the last arm, with todo() as its body.
Example
This program fails with E0253.
fn count(x: Option<Int>) -> Int {
match x {
Some(n) => n
}
}
Fixed
The same program, fixed.
fn count(x: Option<Int>) -> Int {
match x {
Some(n) => n
None => 0
}
}
Listed in the checker notes. oskac explain E0253 prints this entry offline.