E4225

E4225#

编译器诊断名称:constr_any_pattern_not_suberror

通配构造器模式 Type::_ 指定的不是可用的 suberror 类型。

该模式代表某个 suberror 类型的所有可见构造器。因此,指定的类型必须是至少包含一个构造器的 suberror,并且在模式使用处必须能看到这些构造器。它不能是普通枚举、结构体、内置类型、空的 suberror,或构造器不可见的不透明 suberror。

错误示例#

///|
enum Status {
  Ready
  Busy
}

///|
pub fn is_status(error : Error) -> Bool {
  match error {
    Status::_ => true
    _ => false
  }
}

建议#

请指定一个可见且非空的 suberror 类型。如果该值不是错误,请改用该类型的普通模式。

///|
priv suberror StatusError {
  NotReady
  Busy
}

///|
pub fn is_status_error(error : Error) -> Bool {
  match error {
    StatusError::_ => true
    _ => false
  }
}