summaryrefslogtreecommitdiff
path: root/prism
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2024-02-25 13:04:42 +0100
committergit <svn-admin@ruby-lang.org>2024-02-28 18:30:43 +0000
commitea2cb002501425fe9a76859ac30e83dcf2fff46b (patch)
tree24d066ac5c32e1226c6f768283bd0936ed3a7f99 /prism
parent567d4ee79e7f9847c8a5c3ee53d382f80480fe89 (diff)
[ruby/prism] Give a kind to all node[] fields which can have one more specific than "any Node"
* Fixes https://github.com/ruby/prism/issues/2058 https://github.com/ruby/prism/commit/f3e3310b5e
Diffstat (limited to 'prism')
-rw-r--r--prism/config.yml76
1 files changed, 76 insertions, 0 deletions
diff --git a/prism/config.yml b/prism/config.yml
index a89052d769..4357663d48 100644
--- a/prism/config.yml
+++ b/prism/config.yml
@@ -1556,6 +1556,9 @@ nodes:
^
- name: elements
type: node[]
+ kind:
+ - AssocNode
+ - AssocSplatNode
comment: |
The elements of the hash. These can be either `AssocNode`s or `AssocSplatNode`s.
@@ -1903,6 +1906,10 @@ nodes:
type: location
- name: parts
type: node[]
+ kind:
+ - StringNode
+ - EmbeddedStatementsNode
+ - EmbeddedVariableNode
- name: closing_loc
type: location
newline: parts
@@ -1920,6 +1927,10 @@ nodes:
type: location
- name: parts
type: node[]
+ kind:
+ - StringNode
+ - EmbeddedStatementsNode
+ - EmbeddedVariableNode
- name: closing_loc
type: location
newline: parts
@@ -1934,6 +1945,11 @@ nodes:
type: location?
- name: parts
type: node[]
+ kind:
+ - StringNode
+ - EmbeddedStatementsNode
+ - EmbeddedVariableNode
+ - InterpolatedStringNode # `"a" "#{b}"`
- name: closing_loc
type: location?
newline: parts
@@ -1948,6 +1964,10 @@ nodes:
type: location?
- name: parts
type: node[]
+ kind:
+ - StringNode
+ - EmbeddedStatementsNode
+ - EmbeddedVariableNode
- name: closing_loc
type: location?
newline: parts
@@ -1962,6 +1982,10 @@ nodes:
type: location
- name: parts
type: node[]
+ kind:
+ - StringNode
+ - EmbeddedStatementsNode
+ - EmbeddedVariableNode
- name: closing_loc
type: location
newline: parts
@@ -1983,6 +2007,9 @@ nodes:
kind: KeywordHashNodeFlags
- name: elements
type: node[]
+ kind:
+ - AssocNode
+ - AssocSplatNode
comment: |
Represents a hash literal without opening and closing braces.
@@ -2190,6 +2217,7 @@ nodes:
kind: CallNode
- name: targets
type: node[]
+ kind: LocalVariableTargetNode
comment: |
Represents writing local variables using a regular expression match with named capture groups.
@@ -2221,10 +2249,35 @@ nodes:
fields:
- name: lefts
type: node[]
+ kind:
+ - LocalVariableTargetNode
+ - InstanceVariableTargetNode
+ - ClassVariableTargetNode
+ - GlobalVariableTargetNode
+ - ConstantTargetNode
+ - ConstantPathTargetNode
+ - CallTargetNode
+ - IndexTargetNode
+ - MultiTargetNode
+ - RequiredParameterNode
+ - BackReferenceReadNode # On parsing error of `$',`
+ - NumberedReferenceReadNode # On parsing error of `$1,`
- name: rest
type: node?
- name: rights
type: node[]
+ kind:
+ - LocalVariableTargetNode
+ - InstanceVariableTargetNode
+ - ClassVariableTargetNode
+ - GlobalVariableTargetNode
+ - ConstantTargetNode
+ - ConstantPathTargetNode
+ - CallTargetNode
+ - IndexTargetNode
+ - MultiTargetNode
+ - RequiredParameterNode
+ - BackReferenceReadNode # On parsing error of `*,$'`
- name: lparen_loc
type: location?
- name: rparen_loc
@@ -2238,10 +2291,30 @@ nodes:
fields:
- name: lefts
type: node[]
+ kind:
+ - LocalVariableTargetNode
+ - InstanceVariableTargetNode
+ - ClassVariableTargetNode
+ - GlobalVariableTargetNode
+ - ConstantTargetNode
+ - ConstantPathTargetNode
+ - CallTargetNode
+ - IndexTargetNode
+ - MultiTargetNode
- name: rest
type: node?
- name: rights
type: node[]
+ kind:
+ - LocalVariableTargetNode
+ - InstanceVariableTargetNode
+ - ClassVariableTargetNode
+ - GlobalVariableTargetNode
+ - ConstantTargetNode
+ - ConstantPathTargetNode
+ - CallTargetNode
+ - IndexTargetNode
+ - MultiTargetNode
- name: lparen_loc
type: location?
- name: rparen_loc
@@ -2820,6 +2893,9 @@ nodes:
fields:
- name: names
type: node[]
+ kind:
+ - SymbolNode
+ - InterpolatedSymbolNode
- name: keyword_loc
type: location
comment: |