XO0301: match does not cover every case
A match must cover every value of its subject. The message lists example patterns that are missing (such as C, Some(Err(_)), [_], or _ for integers and strings). Guarded arms (if ...) do not count toward coverage. A match on target.os must name every OS, so a missing platform fails on every host. Add the missing arms. For an enum declared in the same module, list the variants rather than adding _ (XO0305). See core 2.3 and 3.5.
Example
enum E { A, B, C }
fn f(e: E) -> Int {
match e {
A => 1
B => 2
}
}Fix
enum E { A, B, C }
fn f(e: E) -> Int {
match e {
A => 1
B | C => 2
}
}Run xo explain XO0301 for this text in a terminal, or see
section 10.6 of the specification.