E4171#
Compiler diagnostic name: last_regex_case_must_be_catchall.
lexmatch 表达式的最后一个分支必须是兜底模式。
MoonBit 会检查 lexmatch 表达式的穷尽性。当之前所有正则模式都匹配失败时,表达式仍然需要一个可以处理剩余输入的最终分支。
错误示例#
///|
pub fn match_text(text : String) -> Unit {
lexmatch text with longest {
"abc" => ()
}
}
唯一的分支匹配 "abc",因此其他输入没有可执行的分支。
修改建议#
添加最终的 _ 分支,或者用其他方式让最后一个分支匹配所有剩余输入。
///|
pub fn match_text(text : String) -> Unit {
lexmatch text with longest {
"abc" => ()
_ => ()
}
}