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.

All error codes