OxL Справочник OxL
РусскийEnglish

error non-exhaustive

error Стандарт: [§5.5]

match не охватывает все случаи.

What it means#

A match MUST be exhaustive: every possible value must be covered by some arm (§5.5). For an @open enum used outside its package, an arm _ is required (§4.4).

Example#

oxl✓ проверяется в CI
enum Role { User, Support, Admin }

fn label(r: Role) -> str {
  match r {      // <- non-exhaustive (Admin is not covered)
    Role.User => "user"
    Role.Support => "support"
  }
}
error
non-exhaustive

How to fix#

oxl✓ проверяется в CI
enum Role { User, Support, Admin }

fn label(r: Role) -> str {
  match r {
    Role.User => "user"
    Role.Support => "support"
    Role.Admin => "admin"
  }
}

Add the missing arms, or a wildcard arm _ => .... Prefer listing the cases: a wildcard hides new variants added later.

See also#

OxL 1.0.0-beta · Версия документации 1.0.0-beta© OxwaldLink · сгенерировано из Стандарта, исходников std и руководства