Perché questo modello di corrispondenza non è raggiungibile quando si utilizzano pattern non letterali?

Il seguente codice ( parco giochi )

let max_column = 7; edge = match current_column { 0 => Edge::Left, max_column => Edge::Right, _ => Edge::NotAnEdge }; 

risultati nel seguente errore:

 error[E0001]: unreachable pattern --> :10:9 | 10 | _ => Edge::NotAnEdge | ^ this is an unreachable pattern | note: this pattern matches any value --> :9:9 | 9 | max_column => Edge::Right, | ^^^^^^^^^^ 

Sostituire la variabile max_column con il letterale funziona bene:

 let max_column = 7; edge = match current_column { 0 => Edge::Left, 7 => Edge::Right, _ => Edge::NotAnEdge }; 

Perché _ non è raggiungibile nel primo esempio quando può essere raggiunto per qualsiasi valore dove current_column != max_column ?