E0090#
警告名称:unused_lexcase
lexmatch 或 lexscan 的某个分支永远无法被选中。
当较早的分支对后续分支能匹配的每个输入都具有优先权,或该分支的正则无法匹配任何输入时,就会出现此警告。在穷尽的正则分支之后出现不必要的兜底分支,也会产生同一警告。
错误示例#
///|
pub fn classify(text : String) -> String {
lexmatch text {
re"^a.*$" => "starts with a"
re"^ab.*$" => "starts with ab"
_ => "other"
}
}
第一个分支已经处理所有以 "ab" 开头的字符串,因此在首次匹配语义下,第二个分支不可达。
建议#
删除不可达分支,或将更具体的正则移到遮蔽它的分支之前。
///|
pub fn classify(text : String) -> String {
lexmatch text {
re"^ab.*$" => "starts with ab"
re"^a.*$" => "starts with a"
_ => "other"
}
}