mirror of
https://github.com/github/codeql.git
synced 2026-06-25 14:47:04 +02:00
Coerce pattern_element.key to be an identifier
This commit is contained in:
@@ -283,7 +283,7 @@ fn translation_rules() -> Vec<yeast::Rule> {
|
||||
// `directly_assignable_expression` is just a wrapper; unwrap it
|
||||
rule!((directly_assignable_expression expr: @inner) => {inner}),
|
||||
// tuple_pattern_item → pattern_element (preserves optional name/key)
|
||||
rule!((tuple_pattern_item name: _? @key pattern: @pat) => (pattern_element key: {..key} pattern: {pat})),
|
||||
rule!((tuple_pattern_item name: @key pattern: @pat) => (pattern_element key: (identifier #{key}) pattern: {pat})),
|
||||
rule!((tuple_pattern_item pattern: @pat) => (pattern_element pattern: {pat})),
|
||||
// Pattern with 'let' or 'var' binding: extract the inner pattern
|
||||
// TODO: Names in a pattern need to be translated to expr_equality_pattern if not under a 'var/let' but we lack a way to pass down context to do this.
|
||||
|
||||
@@ -843,9 +843,7 @@ top_level
|
||||
constructor_pattern
|
||||
element:
|
||||
pattern_element
|
||||
key:
|
||||
name_expr <-- ERROR: The field pattern_element.key should contain identifier, but got name_expr
|
||||
identifier: identifier "isAcknowledged"
|
||||
key: identifier "isAcknowledged"
|
||||
pattern: tuple_pattern "false"
|
||||
constructor:
|
||||
member_access_expr
|
||||
@@ -868,9 +866,7 @@ top_level
|
||||
constructor_pattern
|
||||
element:
|
||||
pattern_element
|
||||
key:
|
||||
name_expr <-- ERROR: The field pattern_element.key should contain identifier, but got name_expr
|
||||
identifier: identifier "threadRowId"
|
||||
key: identifier "threadRowId"
|
||||
pattern: tuple_pattern "_"
|
||||
pattern_element
|
||||
pattern:
|
||||
|
||||
Reference in New Issue
Block a user