The statement-level resolver in GDStatementsResolver only accumulates char.IsLetter characters when building the keyword detection sequence. When an identifier contains _ or digits after a keyword prefix (e.g., match_id, var_name, for_each), the _ terminates the sequence and the accumulated string matches a keyword.
func _init(p_match_id: String = "") -> void:
match_id = p_match_id
match_id = p_match_id is parsed as a GDMatchStatement with value _id = p_match_id instead of a GDExpressionStatement assignment.
The statement-level resolver in GDStatementsResolver only accumulates char.IsLetter characters when building the keyword detection sequence. When an identifier contains _ or digits after a keyword prefix (e.g., match_id, var_name, for_each), the _ terminates the sequence and the accumulated string matches a keyword.
match_id = p_match_idis parsed as a GDMatchStatement with value_id = p_match_idinstead of a GDExpressionStatement assignment.