E4226#
编译器诊断名称:constr_any_pattern_scrutinee_not_error。
通配构造器模式 Type::_ 正在匹配一个类型并非 Error 的值。
在匹配开放的 Error 类型时,Type::_ 会选择属于某个 suberror 类型的所有构造器。它并不是对一个已经具有该 suberror 类型的值进行普通穷尽匹配的另一种写法。
错误示例#
///|
priv suberror ParseError {
InvalidSyntax
}
///|
pub fn is_parse_error(error : ParseError) -> Bool {
match error {
ParseError::_ => true
}
}
建议#
请在匹配 Error 时使用 Type::_,并保留最后的 _ 分支来处理其他 suberror 类型。如果被匹配的值已经具有具体的 suberror 类型,请正常列出其构造器。
///|
priv suberror ParseError {
InvalidSyntax
}
///|
pub fn is_parse_error(error : Error) -> Bool {
match error {
ParseError::_ => true
_ => false
}
}