E4183#
Compiler diagnostic name: regex_interpolation_is_not_supported.
この診断は以前の字句パターン形式における補間を説明するものであり、現在のコンパイラでは発生しません。
現在の lexmatch と lexscan のケースは、正規表現の定数式を使います。実行時の文字列補間は正規表現のケースパターンではありません。
Erroneous example#
///|
pub fn match_text(text : String, part : String) -> Unit {
lexmatch text with longest {
("\{part}", _) => ()
_ => ()
}
}
The regex pattern tries to interpolate part.
Suggestion#
正規表現リテラルまたは名前付き正規表現定数を使ってください。動的なマッチには通常の Regex API を使います。
///|
pub fn match_text(text : String) -> Unit {
lexmatch text with longest {
(re"^abc", after=_) => ()
_ => ()
}
}