Xo is experimental. The source code is not public yet; it will be soon. Read the release notes
Menu · XO0303

Docs

XO0303: refutable pattern where an irrefutable one is required

error · reported by the checker

let and for bind every value they get, so their patterns must match every value of the type, such as (a, b) for a tuple or P{x, y} for a struct. A pattern that can fail, such as Some(v), needs a construct that says what happens otherwise: if let, match, ??, or ?. The message names a value that is not covered. See core 3.5.

Example

fn f(o: Int?) -> Int {
  let Some(v) = o
  v
}

Fix

fn f(o: Int?) -> Int {
  if let Some(v) = o { v } else { 0 }
}

Run xo explain XO0303 for this text in a terminal, or see section 10.6 of the specification.