E4182#
Compiler diagnostic name: regex_constant_ref_in_lex_is_not_supported.
この診断は以前の字句パターン形式の制限を説明するものであり、現在のコンパイラでは発生しません。
現在の lexmatch と lexscan のケースは、名前付き const 値を含む正規表現の定数式を受け付けます。
Erroneous example#
次の過去の例では、古いパターン形式を使っています:
///|
const WORD = re"[A-Za-z]+"
///|
pub fn match_word(input : String) -> Unit {
lexmatch input with longest {
(WORD, _) => ()
_ => ()
}
}
現在のコードでは、代わりに正規表現定数をケースパターンとして使います。
Suggestion#
正規表現定数をケースパターンとして直接使ってください:
///|
const WORD = re"^[A-Za-z]+$"
///|
pub fn match_word(input : String) -> Unit {
lexmatch input with longest {
WORD => ()
_ => ()
}
}