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

Docs

XO0207: method chain on the right of `??` starts at a literal

warning · reported by the vet

Reported by xo vet, not xo check. A method call binds tighter than ?? (core 15 precedence), so in x ?? [].f() the call .f() applies only to the default [], not to the unwrapped x. That is rarely what was meant when the chain starts at a literal. If the chain should apply to both, parenthesize the coalesce: (x ?? []).f(). If it really is only for the default, bind the default to a name to make that clear.

Example

fn names(xs: List[Str]?) -> List[Str] {
  xs ?? [].reverse()
}

Fix

fn names(xs: List[Str]?) -> List[Str] {
  (xs ?? []).reverse()
}

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