prism 0.29.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +115 -1
  3. data/CONTRIBUTING.md +0 -4
  4. data/Makefile +1 -1
  5. data/README.md +4 -0
  6. data/config.yml +920 -148
  7. data/docs/build_system.md +8 -11
  8. data/docs/fuzzing.md +1 -1
  9. data/docs/parsing_rules.md +4 -1
  10. data/docs/relocation.md +34 -0
  11. data/docs/ripper_translation.md +22 -0
  12. data/docs/serialization.md +3 -0
  13. data/ext/prism/api_node.c +2863 -2079
  14. data/ext/prism/extconf.rb +14 -37
  15. data/ext/prism/extension.c +241 -391
  16. data/ext/prism/extension.h +2 -2
  17. data/include/prism/ast.h +2156 -453
  18. data/include/prism/defines.h +58 -7
  19. data/include/prism/diagnostic.h +24 -6
  20. data/include/prism/node.h +0 -21
  21. data/include/prism/options.h +94 -3
  22. data/include/prism/parser.h +82 -40
  23. data/include/prism/regexp.h +18 -8
  24. data/include/prism/static_literals.h +3 -2
  25. data/include/prism/util/pm_char.h +1 -2
  26. data/include/prism/util/pm_constant_pool.h +0 -8
  27. data/include/prism/util/pm_integer.h +22 -15
  28. data/include/prism/util/pm_newline_list.h +11 -0
  29. data/include/prism/util/pm_string.h +28 -12
  30. data/include/prism/version.h +3 -3
  31. data/include/prism.h +47 -11
  32. data/lib/prism/compiler.rb +3 -0
  33. data/lib/prism/desugar_compiler.rb +111 -74
  34. data/lib/prism/dispatcher.rb +16 -1
  35. data/lib/prism/dot_visitor.rb +55 -34
  36. data/lib/prism/dsl.rb +660 -468
  37. data/lib/prism/ffi.rb +113 -8
  38. data/lib/prism/inspect_visitor.rb +296 -64
  39. data/lib/prism/lex_compat.rb +1 -1
  40. data/lib/prism/mutation_compiler.rb +11 -6
  41. data/lib/prism/node.rb +4262 -5023
  42. data/lib/prism/node_ext.rb +91 -14
  43. data/lib/prism/parse_result/comments.rb +0 -7
  44. data/lib/prism/parse_result/errors.rb +65 -0
  45. data/lib/prism/parse_result/newlines.rb +101 -11
  46. data/lib/prism/parse_result.rb +183 -6
  47. data/lib/prism/reflection.rb +12 -10
  48. data/lib/prism/relocation.rb +504 -0
  49. data/lib/prism/serialize.rb +496 -609
  50. data/lib/prism/string_query.rb +30 -0
  51. data/lib/prism/translation/parser/compiler.rb +185 -155
  52. data/lib/prism/translation/parser/lexer.rb +26 -4
  53. data/lib/prism/translation/parser.rb +9 -4
  54. data/lib/prism/translation/ripper.rb +23 -25
  55. data/lib/prism/translation/ruby_parser.rb +86 -17
  56. data/lib/prism/visitor.rb +3 -0
  57. data/lib/prism.rb +6 -8
  58. data/prism.gemspec +9 -5
  59. data/rbi/prism/dsl.rbi +521 -0
  60. data/rbi/prism/node.rbi +1115 -1120
  61. data/rbi/prism/parse_result.rbi +29 -0
  62. data/rbi/prism/string_query.rbi +12 -0
  63. data/rbi/prism/visitor.rbi +3 -0
  64. data/rbi/prism.rbi +36 -30
  65. data/sig/prism/dsl.rbs +190 -303
  66. data/sig/prism/mutation_compiler.rbs +1 -0
  67. data/sig/prism/node.rbs +678 -632
  68. data/sig/prism/parse_result.rbs +22 -0
  69. data/sig/prism/relocation.rbs +185 -0
  70. data/sig/prism/string_query.rbs +11 -0
  71. data/sig/prism/visitor.rbs +1 -0
  72. data/sig/prism.rbs +103 -64
  73. data/src/diagnostic.c +64 -28
  74. data/src/node.c +502 -1739
  75. data/src/options.c +76 -27
  76. data/src/prettyprint.c +188 -112
  77. data/src/prism.c +3376 -2293
  78. data/src/regexp.c +208 -71
  79. data/src/serialize.c +182 -50
  80. data/src/static_literals.c +64 -85
  81. data/src/token_type.c +4 -4
  82. data/src/util/pm_char.c +1 -1
  83. data/src/util/pm_constant_pool.c +0 -8
  84. data/src/util/pm_integer.c +53 -25
  85. data/src/util/pm_newline_list.c +29 -0
  86. data/src/util/pm_string.c +131 -80
  87. data/src/util/pm_strpbrk.c +32 -6
  88. metadata +11 -7
  89. data/include/prism/util/pm_string_list.h +0 -44
  90. data/lib/prism/debug.rb +0 -249
  91. data/lib/prism/translation/parser/rubocop.rb +0 -73
  92. data/src/util/pm_string_list.c +0 -28
data/sig/prism/node.rbs CHANGED
@@ -11,8 +11,13 @@ module Prism
11
11
  class Node
12
12
  extend _NodeSingleton
13
13
 
14
- attr_reader location: Location
15
14
  attr_reader source: Source
15
+ attr_reader node_id: Integer
16
+ attr_reader location: Location
17
+ attr_reader flags: Integer
18
+
19
+ def newline?: () -> bool
20
+ def static_literal?: () -> bool
16
21
 
17
22
  def start_offset: () -> Integer
18
23
  def end_offset: () -> Integer
@@ -23,6 +28,9 @@ module Prism
23
28
  def pretty_print: (untyped q) -> untyped
24
29
  def to_dot: () -> String
25
30
  def tunnel: (Integer line, Integer column) -> Array[Prism::node]
31
+ def breadth_first_search: () { (Prism::node) -> bool } -> Prism::node?
32
+ def deprecated: (*String) -> void
33
+ def newline!: (Array[untyped]) -> void
26
34
  end
27
35
 
28
36
  type node_singleton = singleton(Node) & _NodeSingleton
@@ -49,13 +57,13 @@ module Prism
49
57
  class AliasGlobalVariableNode < Node
50
58
  include _Node
51
59
 
52
- attr_reader new_name: Prism::node
53
- attr_reader old_name: Prism::node
60
+ attr_reader new_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode
61
+ attr_reader old_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | SymbolNode | MissingNode
54
62
  attr_reader keyword_loc: Location
55
63
 
56
- def initialize: (Source source, Prism::node new_name, Prism::node old_name, Location keyword_loc, Location location) -> void
57
- def copy: (?new_name: Prism::node, ?old_name: Prism::node, ?keyword_loc: Location, ?location: Location) -> AliasGlobalVariableNode
58
- def deconstruct_keys: (Array[Symbol] keys) -> { new_name: Prism::node, old_name: Prism::node, keyword_loc: Location, location: Location }
64
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode new_name, GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | SymbolNode | MissingNode old_name, Location keyword_loc) -> void
65
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?new_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode, ?old_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | SymbolNode | MissingNode, ?keyword_loc: Location) -> AliasGlobalVariableNode
66
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, new_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode, old_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | SymbolNode | MissingNode, keyword_loc: Location }
59
67
  def keyword: () -> String
60
68
  def type: () -> :alias_global_variable_node
61
69
  | ...
@@ -69,13 +77,13 @@ module Prism
69
77
  class AliasMethodNode < Node
70
78
  include _Node
71
79
 
72
- attr_reader new_name: Prism::node
73
- attr_reader old_name: Prism::node
80
+ attr_reader new_name: SymbolNode | InterpolatedSymbolNode
81
+ attr_reader old_name: SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode
74
82
  attr_reader keyword_loc: Location
75
83
 
76
- def initialize: (Source source, Prism::node new_name, Prism::node old_name, Location keyword_loc, Location location) -> void
77
- def copy: (?new_name: Prism::node, ?old_name: Prism::node, ?keyword_loc: Location, ?location: Location) -> AliasMethodNode
78
- def deconstruct_keys: (Array[Symbol] keys) -> { new_name: Prism::node, old_name: Prism::node, keyword_loc: Location, location: Location }
84
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, SymbolNode | InterpolatedSymbolNode new_name, SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode old_name, Location keyword_loc) -> void
85
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?new_name: SymbolNode | InterpolatedSymbolNode, ?old_name: SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode, ?keyword_loc: Location) -> AliasMethodNode
86
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, new_name: SymbolNode | InterpolatedSymbolNode, old_name: SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode, keyword_loc: Location }
79
87
  def keyword: () -> String
80
88
  def type: () -> :alias_method_node
81
89
  | ...
@@ -93,9 +101,9 @@ module Prism
93
101
  attr_reader right: Prism::node
94
102
  attr_reader operator_loc: Location
95
103
 
96
- def initialize: (Source source, Prism::node left, Prism::node right, Location operator_loc, Location location) -> void
97
- def copy: (?left: Prism::node, ?right: Prism::node, ?operator_loc: Location, ?location: Location) -> AlternationPatternNode
98
- def deconstruct_keys: (Array[Symbol] keys) -> { left: Prism::node, right: Prism::node, operator_loc: Location, location: Location }
104
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node left, Prism::node right, Location operator_loc) -> void
105
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> AlternationPatternNode
106
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node, right: Prism::node, operator_loc: Location }
99
107
  def operator: () -> String
100
108
  def type: () -> :alternation_pattern_node
101
109
  | ...
@@ -113,9 +121,9 @@ module Prism
113
121
  attr_reader right: Prism::node
114
122
  attr_reader operator_loc: Location
115
123
 
116
- def initialize: (Source source, Prism::node left, Prism::node right, Location operator_loc, Location location) -> void
117
- def copy: (?left: Prism::node, ?right: Prism::node, ?operator_loc: Location, ?location: Location) -> AndNode
118
- def deconstruct_keys: (Array[Symbol] keys) -> { left: Prism::node, right: Prism::node, operator_loc: Location, location: Location }
124
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node left, Prism::node right, Location operator_loc) -> void
125
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> AndNode
126
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node, right: Prism::node, operator_loc: Location }
119
127
  def operator: () -> String
120
128
  def type: () -> :and_node
121
129
  | ...
@@ -129,14 +137,17 @@ module Prism
129
137
  class ArgumentsNode < Node
130
138
  include _Node
131
139
 
132
- attr_reader flags: Integer
133
- attr_reader arguments: Array[Prism::node]
134
-
135
- def initialize: (Source source, Integer flags, Array[Prism::node] arguments, Location location) -> void
136
- def copy: (?flags: Integer, ?arguments: Array[Prism::node], ?location: Location) -> ArgumentsNode
137
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, arguments: Array[Prism::node], location: Location }
140
+ def contains_forwarding?: () -> bool
138
141
  def contains_keywords?: () -> bool
139
142
  def contains_keyword_splat?: () -> bool
143
+ def contains_splat?: () -> bool
144
+ def contains_multiple_splats?: () -> bool
145
+
146
+ attr_reader arguments: Array[Prism::node]
147
+
148
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Prism::node] arguments) -> void
149
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: Array[Prism::node]) -> ArgumentsNode
150
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: Array[Prism::node] }
140
151
  def type: () -> :arguments_node
141
152
  | ...
142
153
  def self.type: () -> :arguments_node
@@ -149,15 +160,15 @@ module Prism
149
160
  class ArrayNode < Node
150
161
  include _Node
151
162
 
152
- attr_reader flags: Integer
163
+ def contains_splat?: () -> bool
164
+
153
165
  attr_reader elements: Array[Prism::node]
154
166
  attr_reader opening_loc: Location?
155
167
  attr_reader closing_loc: Location?
156
168
 
157
- def initialize: (Source source, Integer flags, Array[Prism::node] elements, Location? opening_loc, Location? closing_loc, Location location) -> void
158
- def copy: (?flags: Integer, ?elements: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> ArrayNode
159
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, elements: Array[Prism::node], opening_loc: Location?, closing_loc: Location?, location: Location }
160
- def contains_splat?: () -> bool
169
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Prism::node] elements, Location? opening_loc, Location? closing_loc) -> void
170
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?) -> ArrayNode
171
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, elements: Array[Prism::node], opening_loc: Location?, closing_loc: Location? }
161
172
  def opening: () -> String?
162
173
  def closing: () -> String?
163
174
  def type: () -> :array_node
@@ -173,8 +184,8 @@ module Prism
173
184
  # foo in [1, 2]
174
185
  # ^^^^^^^^^^^^^
175
186
  #
176
- # foo in *1
177
- # ^^^^^^^^^
187
+ # foo in *bar
188
+ # ^^^^^^^^^^^
178
189
  #
179
190
  # foo in Bar[]
180
191
  # ^^^^^^^^^^^^
@@ -184,16 +195,16 @@ module Prism
184
195
  class ArrayPatternNode < Node
185
196
  include _Node
186
197
 
187
- attr_reader constant: Prism::node?
198
+ attr_reader constant: ConstantReadNode | ConstantPathNode | nil
188
199
  attr_reader requireds: Array[Prism::node]
189
200
  attr_reader rest: Prism::node?
190
201
  attr_reader posts: Array[Prism::node]
191
202
  attr_reader opening_loc: Location?
192
203
  attr_reader closing_loc: Location?
193
204
 
194
- def initialize: (Source source, Prism::node? constant, Array[Prism::node] requireds, Prism::node? rest, Array[Prism::node] posts, Location? opening_loc, Location? closing_loc, Location location) -> void
195
- def copy: (?constant: Prism::node?, ?requireds: Array[Prism::node], ?rest: Prism::node?, ?posts: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> ArrayPatternNode
196
- def deconstruct_keys: (Array[Symbol] keys) -> { constant: Prism::node?, requireds: Array[Prism::node], rest: Prism::node?, posts: Array[Prism::node], opening_loc: Location?, closing_loc: Location?, location: Location }
205
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantReadNode | ConstantPathNode | nil constant, Array[Prism::node] requireds, Prism::node? rest, Array[Prism::node] posts, Location? opening_loc, Location? closing_loc) -> void
206
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: ConstantReadNode | ConstantPathNode | nil, ?requireds: Array[Prism::node], ?rest: Prism::node?, ?posts: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?) -> ArrayPatternNode
207
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, constant: ConstantReadNode | ConstantPathNode | nil, requireds: Array[Prism::node], rest: Prism::node?, posts: Array[Prism::node], opening_loc: Location?, closing_loc: Location? }
197
208
  def opening: () -> String?
198
209
  def closing: () -> String?
199
210
  def type: () -> :array_pattern_node
@@ -212,9 +223,9 @@ module Prism
212
223
  attr_reader value: Prism::node
213
224
  attr_reader operator_loc: Location?
214
225
 
215
- def initialize: (Source source, Prism::node key, Prism::node value, Location? operator_loc, Location location) -> void
216
- def copy: (?key: Prism::node, ?value: Prism::node, ?operator_loc: Location?, ?location: Location) -> AssocNode
217
- def deconstruct_keys: (Array[Symbol] keys) -> { key: Prism::node, value: Prism::node, operator_loc: Location?, location: Location }
226
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node key, Prism::node value, Location? operator_loc) -> void
227
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?key: Prism::node, ?value: Prism::node, ?operator_loc: Location?) -> AssocNode
228
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, key: Prism::node, value: Prism::node, operator_loc: Location? }
218
229
  def operator: () -> String?
219
230
  def type: () -> :assoc_node
220
231
  | ...
@@ -231,9 +242,9 @@ module Prism
231
242
  attr_reader value: Prism::node?
232
243
  attr_reader operator_loc: Location
233
244
 
234
- def initialize: (Source source, Prism::node? value, Location operator_loc, Location location) -> void
235
- def copy: (?value: Prism::node?, ?operator_loc: Location, ?location: Location) -> AssocSplatNode
236
- def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node?, operator_loc: Location, location: Location }
245
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? value, Location operator_loc) -> void
246
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node?, ?operator_loc: Location) -> AssocSplatNode
247
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node?, operator_loc: Location }
237
248
  def operator: () -> String
238
249
  def type: () -> :assoc_splat_node
239
250
  | ...
@@ -249,9 +260,9 @@ module Prism
249
260
 
250
261
  attr_reader name: Symbol
251
262
 
252
- def initialize: (Source source, Symbol name, Location location) -> void
253
- def copy: (?name: Symbol, ?location: Location) -> BackReferenceReadNode
254
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
263
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
264
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BackReferenceReadNode
265
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
255
266
  def type: () -> :back_reference_read_node
256
267
  | ...
257
268
  def self.type: () -> :back_reference_read_node
@@ -273,9 +284,9 @@ module Prism
273
284
  attr_reader ensure_clause: EnsureNode?
274
285
  attr_reader end_keyword_loc: Location?
275
286
 
276
- def initialize: (Source source, Location? begin_keyword_loc, StatementsNode? statements, RescueNode? rescue_clause, ElseNode? else_clause, EnsureNode? ensure_clause, Location? end_keyword_loc, Location location) -> void
277
- def copy: (?begin_keyword_loc: Location?, ?statements: StatementsNode?, ?rescue_clause: RescueNode?, ?else_clause: ElseNode?, ?ensure_clause: EnsureNode?, ?end_keyword_loc: Location?, ?location: Location) -> BeginNode
278
- def deconstruct_keys: (Array[Symbol] keys) -> { begin_keyword_loc: Location?, statements: StatementsNode?, rescue_clause: RescueNode?, else_clause: ElseNode?, ensure_clause: EnsureNode?, end_keyword_loc: Location?, location: Location }
287
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? begin_keyword_loc, StatementsNode? statements, RescueNode? rescue_clause, ElseNode? else_clause, EnsureNode? ensure_clause, Location? end_keyword_loc) -> void
288
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?begin_keyword_loc: Location?, ?statements: StatementsNode?, ?rescue_clause: RescueNode?, ?else_clause: ElseNode?, ?ensure_clause: EnsureNode?, ?end_keyword_loc: Location?) -> BeginNode
289
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, begin_keyword_loc: Location?, statements: StatementsNode?, rescue_clause: RescueNode?, else_clause: ElseNode?, ensure_clause: EnsureNode?, end_keyword_loc: Location? }
279
290
  def begin_keyword: () -> String?
280
291
  def end_keyword: () -> String?
281
292
  def type: () -> :begin_node
@@ -283,7 +294,7 @@ module Prism
283
294
  def self.type: () -> :begin_node
284
295
  end
285
296
 
286
- # Represents block method arguments.
297
+ # Represents a block argument using `&`.
287
298
  #
288
299
  # bar(&args)
289
300
  # ^^^^^^^^^^
@@ -293,9 +304,9 @@ module Prism
293
304
  attr_reader expression: Prism::node?
294
305
  attr_reader operator_loc: Location
295
306
 
296
- def initialize: (Source source, Prism::node? expression, Location operator_loc, Location location) -> void
297
- def copy: (?expression: Prism::node?, ?operator_loc: Location, ?location: Location) -> BlockArgumentNode
298
- def deconstruct_keys: (Array[Symbol] keys) -> { expression: Prism::node?, operator_loc: Location, location: Location }
307
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? expression, Location operator_loc) -> void
308
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node?, ?operator_loc: Location) -> BlockArgumentNode
309
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node?, operator_loc: Location }
299
310
  def operator: () -> String
300
311
  def type: () -> :block_argument_node
301
312
  | ...
@@ -309,13 +320,13 @@ module Prism
309
320
  class BlockLocalVariableNode < Node
310
321
  include _Node
311
322
 
312
- attr_reader flags: Integer
323
+ def repeated_parameter?: () -> bool
324
+
313
325
  attr_reader name: Symbol
314
326
 
315
- def initialize: (Source source, Integer flags, Symbol name, Location location) -> void
316
- def copy: (?flags: Integer, ?name: Symbol, ?location: Location) -> BlockLocalVariableNode
317
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, location: Location }
318
- def repeated_parameter?: () -> bool
327
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
328
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BlockLocalVariableNode
329
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
319
330
  def type: () -> :block_local_variable_node
320
331
  | ...
321
332
  def self.type: () -> :block_local_variable_node
@@ -329,14 +340,14 @@ module Prism
329
340
  include _Node
330
341
 
331
342
  attr_reader locals: Array[Symbol]
332
- attr_reader parameters: Prism::node?
333
- attr_reader body: Prism::node?
343
+ attr_reader parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil
344
+ attr_reader body: StatementsNode | BeginNode | nil
334
345
  attr_reader opening_loc: Location
335
346
  attr_reader closing_loc: Location
336
347
 
337
- def initialize: (Source source, Array[Symbol] locals, Prism::node? parameters, Prism::node? body, Location opening_loc, Location closing_loc, Location location) -> void
338
- def copy: (?locals: Array[Symbol], ?parameters: Prism::node?, ?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> BlockNode
339
- def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], parameters: Prism::node?, body: Prism::node?, opening_loc: Location, closing_loc: Location, location: Location }
348
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Symbol] locals, BlockParametersNode | NumberedParametersNode | ItParametersNode | nil parameters, StatementsNode | BeginNode | nil body, Location opening_loc, Location closing_loc) -> void
349
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, ?body: StatementsNode | BeginNode | nil, ?opening_loc: Location, ?closing_loc: Location) -> BlockNode
350
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, body: StatementsNode | BeginNode | nil, opening_loc: Location, closing_loc: Location }
340
351
  def opening: () -> String
341
352
  def closing: () -> String
342
353
  def type: () -> :block_node
@@ -344,7 +355,7 @@ module Prism
344
355
  def self.type: () -> :block_node
345
356
  end
346
357
 
347
- # Represents a block parameter to a method, block, or lambda definition.
358
+ # Represents a block parameter of a method, block, or lambda definition.
348
359
  #
349
360
  # def a(&b)
350
361
  # ^^
@@ -352,15 +363,15 @@ module Prism
352
363
  class BlockParameterNode < Node
353
364
  include _Node
354
365
 
355
- attr_reader flags: Integer
366
+ def repeated_parameter?: () -> bool
367
+
356
368
  attr_reader name: Symbol?
357
369
  attr_reader name_loc: Location?
358
370
  attr_reader operator_loc: Location
359
371
 
360
- def initialize: (Source source, Integer flags, Symbol? name, Location? name_loc, Location operator_loc, Location location) -> void
361
- def copy: (?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location, ?location: Location) -> BlockParameterNode
362
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location }
363
- def repeated_parameter?: () -> bool
372
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol? name, Location? name_loc, Location operator_loc) -> void
373
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> BlockParameterNode
374
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
364
375
  def operator: () -> String
365
376
  def type: () -> :block_parameter_node
366
377
  | ...
@@ -383,9 +394,9 @@ module Prism
383
394
  attr_reader opening_loc: Location?
384
395
  attr_reader closing_loc: Location?
385
396
 
386
- def initialize: (Source source, ParametersNode? parameters, Array[BlockLocalVariableNode] locals, Location? opening_loc, Location? closing_loc, Location location) -> void
387
- def copy: (?parameters: ParametersNode?, ?locals: Array[BlockLocalVariableNode], ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> BlockParametersNode
388
- def deconstruct_keys: (Array[Symbol] keys) -> { parameters: ParametersNode?, locals: Array[BlockLocalVariableNode], opening_loc: Location?, closing_loc: Location?, location: Location }
397
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ParametersNode? parameters, Array[BlockLocalVariableNode] locals, Location? opening_loc, Location? closing_loc) -> void
398
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parameters: ParametersNode?, ?locals: Array[BlockLocalVariableNode], ?opening_loc: Location?, ?closing_loc: Location?) -> BlockParametersNode
399
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parameters: ParametersNode?, locals: Array[BlockLocalVariableNode], opening_loc: Location?, closing_loc: Location? }
389
400
  def opening: () -> String?
390
401
  def closing: () -> String?
391
402
  def type: () -> :block_parameters_node
@@ -403,9 +414,9 @@ module Prism
403
414
  attr_reader arguments: ArgumentsNode?
404
415
  attr_reader keyword_loc: Location
405
416
 
406
- def initialize: (Source source, ArgumentsNode? arguments, Location keyword_loc, Location location) -> void
407
- def copy: (?arguments: ArgumentsNode?, ?keyword_loc: Location, ?location: Location) -> BreakNode
408
- def deconstruct_keys: (Array[Symbol] keys) -> { arguments: ArgumentsNode?, keyword_loc: Location, location: Location }
417
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ArgumentsNode? arguments, Location keyword_loc) -> void
418
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> BreakNode
419
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: ArgumentsNode?, keyword_loc: Location }
409
420
  def keyword: () -> String
410
421
  def type: () -> :break_node
411
422
  | ...
@@ -419,7 +430,11 @@ module Prism
419
430
  class CallAndWriteNode < Node
420
431
  include _Node
421
432
 
422
- attr_reader flags: Integer
433
+ def safe_navigation?: () -> bool
434
+ def variable_call?: () -> bool
435
+ def attribute_write?: () -> bool
436
+ def ignore_visibility?: () -> bool
437
+
423
438
  attr_reader receiver: Prism::node?
424
439
  attr_reader call_operator_loc: Location?
425
440
  attr_reader message_loc: Location?
@@ -428,13 +443,9 @@ module Prism
428
443
  attr_reader operator_loc: Location
429
444
  attr_reader value: Prism::node
430
445
 
431
- def initialize: (Source source, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value, Location location) -> void
432
- def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> CallAndWriteNode
433
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node, location: Location }
434
- def safe_navigation?: () -> bool
435
- def variable_call?: () -> bool
436
- def attribute_write?: () -> bool
437
- def ignore_visibility?: () -> bool
446
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value) -> void
447
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node) -> CallAndWriteNode
448
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node }
438
449
  def call_operator: () -> String?
439
450
  def message: () -> String?
440
451
  def operator: () -> String
@@ -465,7 +476,11 @@ module Prism
465
476
  class CallNode < Node
466
477
  include _Node
467
478
 
468
- attr_reader flags: Integer
479
+ def safe_navigation?: () -> bool
480
+ def variable_call?: () -> bool
481
+ def attribute_write?: () -> bool
482
+ def ignore_visibility?: () -> bool
483
+
469
484
  attr_reader receiver: Prism::node?
470
485
  attr_reader call_operator_loc: Location?
471
486
  attr_reader name: Symbol
@@ -473,15 +488,11 @@ module Prism
473
488
  attr_reader opening_loc: Location?
474
489
  attr_reader arguments: ArgumentsNode?
475
490
  attr_reader closing_loc: Location?
476
- attr_reader block: Prism::node?
491
+ attr_reader block: BlockNode | BlockArgumentNode | nil
477
492
 
478
- def initialize: (Source source, Integer flags, Prism::node? receiver, Location? call_operator_loc, Symbol name, Location? message_loc, Location? opening_loc, ArgumentsNode? arguments, Location? closing_loc, Prism::node? block, Location location) -> void
479
- def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?name: Symbol, ?message_loc: Location?, ?opening_loc: Location?, ?arguments: ArgumentsNode?, ?closing_loc: Location?, ?block: Prism::node?, ?location: Location) -> CallNode
480
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, name: Symbol, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Prism::node?, location: Location }
481
- def safe_navigation?: () -> bool
482
- def variable_call?: () -> bool
483
- def attribute_write?: () -> bool
484
- def ignore_visibility?: () -> bool
493
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? receiver, Location? call_operator_loc, Symbol name, Location? message_loc, Location? opening_loc, ArgumentsNode? arguments, Location? closing_loc, BlockNode | BlockArgumentNode | nil block) -> void
494
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?name: Symbol, ?message_loc: Location?, ?opening_loc: Location?, ?arguments: ArgumentsNode?, ?closing_loc: Location?, ?block: BlockNode | BlockArgumentNode | nil) -> CallNode
495
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, name: Symbol, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: BlockNode | BlockArgumentNode | nil }
485
496
  def call_operator: () -> String?
486
497
  def message: () -> String?
487
498
  def opening: () -> String?
@@ -498,7 +509,11 @@ module Prism
498
509
  class CallOperatorWriteNode < Node
499
510
  include _Node
500
511
 
501
- attr_reader flags: Integer
512
+ def safe_navigation?: () -> bool
513
+ def variable_call?: () -> bool
514
+ def attribute_write?: () -> bool
515
+ def ignore_visibility?: () -> bool
516
+
502
517
  attr_reader receiver: Prism::node?
503
518
  attr_reader call_operator_loc: Location?
504
519
  attr_reader message_loc: Location?
@@ -508,13 +523,9 @@ module Prism
508
523
  attr_reader binary_operator_loc: Location
509
524
  attr_reader value: Prism::node
510
525
 
511
- def initialize: (Source source, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Symbol binary_operator, Location binary_operator_loc, Prism::node value, Location location) -> void
512
- def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node, ?location: Location) -> CallOperatorWriteNode
513
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, binary_operator: Symbol, binary_operator_loc: Location, value: Prism::node, location: Location }
514
- def safe_navigation?: () -> bool
515
- def variable_call?: () -> bool
516
- def attribute_write?: () -> bool
517
- def ignore_visibility?: () -> bool
526
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Symbol binary_operator, Location binary_operator_loc, Prism::node value) -> void
527
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node) -> CallOperatorWriteNode
528
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, binary_operator: Symbol, binary_operator_loc: Location, value: Prism::node }
518
529
  def call_operator: () -> String?
519
530
  def message: () -> String?
520
531
  def type: () -> :call_operator_write_node
@@ -529,7 +540,11 @@ module Prism
529
540
  class CallOrWriteNode < Node
530
541
  include _Node
531
542
 
532
- attr_reader flags: Integer
543
+ def safe_navigation?: () -> bool
544
+ def variable_call?: () -> bool
545
+ def attribute_write?: () -> bool
546
+ def ignore_visibility?: () -> bool
547
+
533
548
  attr_reader receiver: Prism::node?
534
549
  attr_reader call_operator_loc: Location?
535
550
  attr_reader message_loc: Location?
@@ -538,13 +553,9 @@ module Prism
538
553
  attr_reader operator_loc: Location
539
554
  attr_reader value: Prism::node
540
555
 
541
- def initialize: (Source source, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value, Location location) -> void
542
- def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> CallOrWriteNode
543
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node, location: Location }
544
- def safe_navigation?: () -> bool
545
- def variable_call?: () -> bool
546
- def attribute_write?: () -> bool
547
- def ignore_visibility?: () -> bool
556
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value) -> void
557
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node) -> CallOrWriteNode
558
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node }
548
559
  def call_operator: () -> String?
549
560
  def message: () -> String?
550
561
  def operator: () -> String
@@ -568,19 +579,19 @@ module Prism
568
579
  class CallTargetNode < Node
569
580
  include _Node
570
581
 
571
- attr_reader flags: Integer
582
+ def safe_navigation?: () -> bool
583
+ def variable_call?: () -> bool
584
+ def attribute_write?: () -> bool
585
+ def ignore_visibility?: () -> bool
586
+
572
587
  attr_reader receiver: Prism::node
573
588
  attr_reader call_operator_loc: Location
574
589
  attr_reader name: Symbol
575
590
  attr_reader message_loc: Location
576
591
 
577
- def initialize: (Source source, Integer flags, Prism::node receiver, Location call_operator_loc, Symbol name, Location message_loc, Location location) -> void
578
- def copy: (?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location, ?location: Location) -> CallTargetNode
579
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node, call_operator_loc: Location, name: Symbol, message_loc: Location, location: Location }
580
- def safe_navigation?: () -> bool
581
- def variable_call?: () -> bool
582
- def attribute_write?: () -> bool
583
- def ignore_visibility?: () -> bool
592
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node receiver, Location call_operator_loc, Symbol name, Location message_loc) -> void
593
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location) -> CallTargetNode
594
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node, call_operator_loc: Location, name: Symbol, message_loc: Location }
584
595
  def call_operator: () -> String
585
596
  def message: () -> String
586
597
  def type: () -> :call_target_node
@@ -596,12 +607,12 @@ module Prism
596
607
  include _Node
597
608
 
598
609
  attr_reader value: Prism::node
599
- attr_reader target: Prism::node
610
+ attr_reader target: LocalVariableTargetNode
600
611
  attr_reader operator_loc: Location
601
612
 
602
- def initialize: (Source source, Prism::node value, Prism::node target, Location operator_loc, Location location) -> void
603
- def copy: (?value: Prism::node, ?target: Prism::node, ?operator_loc: Location, ?location: Location) -> CapturePatternNode
604
- def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, target: Prism::node, operator_loc: Location, location: Location }
613
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node value, LocalVariableTargetNode target, Location operator_loc) -> void
614
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?target: LocalVariableTargetNode, ?operator_loc: Location) -> CapturePatternNode
615
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, target: LocalVariableTargetNode, operator_loc: Location }
605
616
  def operator: () -> String
606
617
  def type: () -> :capture_pattern_node
607
618
  | ...
@@ -618,14 +629,14 @@ module Prism
618
629
  include _Node
619
630
 
620
631
  attr_reader predicate: Prism::node?
621
- attr_reader conditions: Array[Prism::node]
622
- attr_reader consequent: ElseNode?
632
+ attr_reader conditions: Array[InNode]
633
+ attr_reader else_clause: ElseNode?
623
634
  attr_reader case_keyword_loc: Location
624
635
  attr_reader end_keyword_loc: Location
625
636
 
626
- def initialize: (Source source, Prism::node? predicate, Array[Prism::node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, Location location) -> void
627
- def copy: (?predicate: Prism::node?, ?conditions: Array[Prism::node], ?consequent: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location, ?location: Location) -> CaseMatchNode
628
- def deconstruct_keys: (Array[Symbol] keys) -> { predicate: Prism::node?, conditions: Array[Prism::node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location }
637
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? predicate, Array[InNode] conditions, ElseNode? else_clause, Location case_keyword_loc, Location end_keyword_loc) -> void
638
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?predicate: Prism::node?, ?conditions: Array[InNode], ?else_clause: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location) -> CaseMatchNode
639
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, predicate: Prism::node?, conditions: Array[InNode], else_clause: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location }
629
640
  def case_keyword: () -> String
630
641
  def end_keyword: () -> String
631
642
  def type: () -> :case_match_node
@@ -643,14 +654,14 @@ module Prism
643
654
  include _Node
644
655
 
645
656
  attr_reader predicate: Prism::node?
646
- attr_reader conditions: Array[Prism::node]
647
- attr_reader consequent: ElseNode?
657
+ attr_reader conditions: Array[WhenNode]
658
+ attr_reader else_clause: ElseNode?
648
659
  attr_reader case_keyword_loc: Location
649
660
  attr_reader end_keyword_loc: Location
650
661
 
651
- def initialize: (Source source, Prism::node? predicate, Array[Prism::node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, Location location) -> void
652
- def copy: (?predicate: Prism::node?, ?conditions: Array[Prism::node], ?consequent: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location, ?location: Location) -> CaseNode
653
- def deconstruct_keys: (Array[Symbol] keys) -> { predicate: Prism::node?, conditions: Array[Prism::node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location }
662
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? predicate, Array[WhenNode] conditions, ElseNode? else_clause, Location case_keyword_loc, Location end_keyword_loc) -> void
663
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?predicate: Prism::node?, ?conditions: Array[WhenNode], ?else_clause: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location) -> CaseNode
664
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, predicate: Prism::node?, conditions: Array[WhenNode], else_clause: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location }
654
665
  def case_keyword: () -> String
655
666
  def end_keyword: () -> String
656
667
  def type: () -> :case_node
@@ -667,16 +678,16 @@ module Prism
667
678
 
668
679
  attr_reader locals: Array[Symbol]
669
680
  attr_reader class_keyword_loc: Location
670
- attr_reader constant_path: Prism::node
681
+ attr_reader constant_path: ConstantReadNode | ConstantPathNode | CallNode
671
682
  attr_reader inheritance_operator_loc: Location?
672
683
  attr_reader superclass: Prism::node?
673
- attr_reader body: Prism::node?
684
+ attr_reader body: StatementsNode | BeginNode | nil
674
685
  attr_reader end_keyword_loc: Location
675
686
  attr_reader name: Symbol
676
687
 
677
- def initialize: (Source source, Array[Symbol] locals, Location class_keyword_loc, Prism::node constant_path, Location? inheritance_operator_loc, Prism::node? superclass, Prism::node? body, Location end_keyword_loc, Symbol name, Location location) -> void
678
- def copy: (?locals: Array[Symbol], ?class_keyword_loc: Location, ?constant_path: Prism::node, ?inheritance_operator_loc: Location?, ?superclass: Prism::node?, ?body: Prism::node?, ?end_keyword_loc: Location, ?name: Symbol, ?location: Location) -> ClassNode
679
- def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], class_keyword_loc: Location, constant_path: Prism::node, inheritance_operator_loc: Location?, superclass: Prism::node?, body: Prism::node?, end_keyword_loc: Location, name: Symbol, location: Location }
688
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Symbol] locals, Location class_keyword_loc, ConstantReadNode | ConstantPathNode | CallNode constant_path, Location? inheritance_operator_loc, Prism::node? superclass, StatementsNode | BeginNode | nil body, Location end_keyword_loc, Symbol name) -> void
689
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?class_keyword_loc: Location, ?constant_path: ConstantReadNode | ConstantPathNode | CallNode, ?inheritance_operator_loc: Location?, ?superclass: Prism::node?, ?body: StatementsNode | BeginNode | nil, ?end_keyword_loc: Location, ?name: Symbol) -> ClassNode
690
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], class_keyword_loc: Location, constant_path: ConstantReadNode | ConstantPathNode | CallNode, inheritance_operator_loc: Location?, superclass: Prism::node?, body: StatementsNode | BeginNode | nil, end_keyword_loc: Location, name: Symbol }
680
691
  def class_keyword: () -> String
681
692
  def inheritance_operator: () -> String?
682
693
  def end_keyword: () -> String
@@ -697,9 +708,9 @@ module Prism
697
708
  attr_reader operator_loc: Location
698
709
  attr_reader value: Prism::node
699
710
 
700
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
701
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ClassVariableAndWriteNode
702
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
711
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
712
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableAndWriteNode
713
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
703
714
  def operator: () -> String
704
715
  def type: () -> :class_variable_and_write_node
705
716
  | ...
@@ -719,9 +730,9 @@ module Prism
719
730
  attr_reader value: Prism::node
720
731
  attr_reader binary_operator: Symbol
721
732
 
722
- def initialize: (Source source, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, Location location) -> void
723
- def copy: (?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol, ?location: Location) -> ClassVariableOperatorWriteNode
724
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol, location: Location }
733
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator) -> void
734
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ClassVariableOperatorWriteNode
735
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
725
736
  def type: () -> :class_variable_operator_write_node
726
737
  | ...
727
738
  def self.type: () -> :class_variable_operator_write_node
@@ -739,9 +750,9 @@ module Prism
739
750
  attr_reader operator_loc: Location
740
751
  attr_reader value: Prism::node
741
752
 
742
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
743
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ClassVariableOrWriteNode
744
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
753
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
754
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableOrWriteNode
755
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
745
756
  def operator: () -> String
746
757
  def type: () -> :class_variable_or_write_node
747
758
  | ...
@@ -757,9 +768,9 @@ module Prism
757
768
 
758
769
  attr_reader name: Symbol
759
770
 
760
- def initialize: (Source source, Symbol name, Location location) -> void
761
- def copy: (?name: Symbol, ?location: Location) -> ClassVariableReadNode
762
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
771
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
772
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableReadNode
773
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
763
774
  def type: () -> :class_variable_read_node
764
775
  | ...
765
776
  def self.type: () -> :class_variable_read_node
@@ -774,9 +785,9 @@ module Prism
774
785
 
775
786
  attr_reader name: Symbol
776
787
 
777
- def initialize: (Source source, Symbol name, Location location) -> void
778
- def copy: (?name: Symbol, ?location: Location) -> ClassVariableTargetNode
779
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
788
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
789
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableTargetNode
790
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
780
791
  def type: () -> :class_variable_target_node
781
792
  | ...
782
793
  def self.type: () -> :class_variable_target_node
@@ -794,9 +805,9 @@ module Prism
794
805
  attr_reader value: Prism::node
795
806
  attr_reader operator_loc: Location
796
807
 
797
- def initialize: (Source source, Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void
798
- def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> ClassVariableWriteNode
799
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location }
808
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
809
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ClassVariableWriteNode
810
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
800
811
  def operator: () -> String
801
812
  def type: () -> :class_variable_write_node
802
813
  | ...
@@ -815,9 +826,9 @@ module Prism
815
826
  attr_reader operator_loc: Location
816
827
  attr_reader value: Prism::node
817
828
 
818
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
819
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantAndWriteNode
820
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
829
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
830
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantAndWriteNode
831
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
821
832
  def operator: () -> String
822
833
  def type: () -> :constant_and_write_node
823
834
  | ...
@@ -837,9 +848,9 @@ module Prism
837
848
  attr_reader value: Prism::node
838
849
  attr_reader binary_operator: Symbol
839
850
 
840
- def initialize: (Source source, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, Location location) -> void
841
- def copy: (?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol, ?location: Location) -> ConstantOperatorWriteNode
842
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol, location: Location }
851
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator) -> void
852
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ConstantOperatorWriteNode
853
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
843
854
  def type: () -> :constant_operator_write_node
844
855
  | ...
845
856
  def self.type: () -> :constant_operator_write_node
@@ -857,9 +868,9 @@ module Prism
857
868
  attr_reader operator_loc: Location
858
869
  attr_reader value: Prism::node
859
870
 
860
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
861
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantOrWriteNode
862
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
871
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
872
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantOrWriteNode
873
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
863
874
  def operator: () -> String
864
875
  def type: () -> :constant_or_write_node
865
876
  | ...
@@ -877,9 +888,9 @@ module Prism
877
888
  attr_reader operator_loc: Location
878
889
  attr_reader value: Prism::node
879
890
 
880
- def initialize: (Source source, ConstantPathNode target, Location operator_loc, Prism::node value, Location location) -> void
881
- def copy: (?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantPathAndWriteNode
882
- def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Prism::node, location: Location }
891
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location operator_loc, Prism::node value) -> void
892
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathAndWriteNode
893
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
883
894
  def operator: () -> String
884
895
  def type: () -> :constant_path_and_write_node
885
896
  | ...
@@ -898,9 +909,9 @@ module Prism
898
909
  attr_reader delimiter_loc: Location
899
910
  attr_reader name_loc: Location
900
911
 
901
- def initialize: (Source source, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, Location location) -> void
902
- def copy: (?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location, ?location: Location) -> ConstantPathNode
903
- def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location, location: Location }
912
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc) -> void
913
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathNode
914
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location }
904
915
  def delimiter: () -> String
905
916
  def type: () -> :constant_path_node
906
917
  | ...
@@ -919,9 +930,9 @@ module Prism
919
930
  attr_reader value: Prism::node
920
931
  attr_reader binary_operator: Symbol
921
932
 
922
- def initialize: (Source source, ConstantPathNode target, Location binary_operator_loc, Prism::node value, Symbol binary_operator, Location location) -> void
923
- def copy: (?target: ConstantPathNode, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol, ?location: Location) -> ConstantPathOperatorWriteNode
924
- def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol, location: Location }
933
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location binary_operator_loc, Prism::node value, Symbol binary_operator) -> void
934
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ConstantPathOperatorWriteNode
935
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
925
936
  def type: () -> :constant_path_operator_write_node
926
937
  | ...
927
938
  def self.type: () -> :constant_path_operator_write_node
@@ -938,9 +949,9 @@ module Prism
938
949
  attr_reader operator_loc: Location
939
950
  attr_reader value: Prism::node
940
951
 
941
- def initialize: (Source source, ConstantPathNode target, Location operator_loc, Prism::node value, Location location) -> void
942
- def copy: (?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantPathOrWriteNode
943
- def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Prism::node, location: Location }
952
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location operator_loc, Prism::node value) -> void
953
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathOrWriteNode
954
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
944
955
  def operator: () -> String
945
956
  def type: () -> :constant_path_or_write_node
946
957
  | ...
@@ -959,9 +970,9 @@ module Prism
959
970
  attr_reader delimiter_loc: Location
960
971
  attr_reader name_loc: Location
961
972
 
962
- def initialize: (Source source, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc, Location location) -> void
963
- def copy: (?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location, ?location: Location) -> ConstantPathTargetNode
964
- def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location, location: Location }
973
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc) -> void
974
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathTargetNode
975
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location }
965
976
  def delimiter: () -> String
966
977
  def type: () -> :constant_path_target_node
967
978
  | ...
@@ -985,9 +996,9 @@ module Prism
985
996
  attr_reader operator_loc: Location
986
997
  attr_reader value: Prism::node
987
998
 
988
- def initialize: (Source source, ConstantPathNode target, Location operator_loc, Prism::node value, Location location) -> void
989
- def copy: (?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantPathWriteNode
990
- def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Prism::node, location: Location }
999
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location operator_loc, Prism::node value) -> void
1000
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathWriteNode
1001
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
991
1002
  def operator: () -> String
992
1003
  def type: () -> :constant_path_write_node
993
1004
  | ...
@@ -1003,9 +1014,9 @@ module Prism
1003
1014
 
1004
1015
  attr_reader name: Symbol
1005
1016
 
1006
- def initialize: (Source source, Symbol name, Location location) -> void
1007
- def copy: (?name: Symbol, ?location: Location) -> ConstantReadNode
1008
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
1017
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1018
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantReadNode
1019
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1009
1020
  def type: () -> :constant_read_node
1010
1021
  | ...
1011
1022
  def self.type: () -> :constant_read_node
@@ -1020,9 +1031,9 @@ module Prism
1020
1031
 
1021
1032
  attr_reader name: Symbol
1022
1033
 
1023
- def initialize: (Source source, Symbol name, Location location) -> void
1024
- def copy: (?name: Symbol, ?location: Location) -> ConstantTargetNode
1025
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
1034
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1035
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantTargetNode
1036
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1026
1037
  def type: () -> :constant_target_node
1027
1038
  | ...
1028
1039
  def self.type: () -> :constant_target_node
@@ -1040,9 +1051,9 @@ module Prism
1040
1051
  attr_reader value: Prism::node
1041
1052
  attr_reader operator_loc: Location
1042
1053
 
1043
- def initialize: (Source source, Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void
1044
- def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> ConstantWriteNode
1045
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location }
1054
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
1055
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ConstantWriteNode
1056
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
1046
1057
  def operator: () -> String
1047
1058
  def type: () -> :constant_write_node
1048
1059
  | ...
@@ -1061,7 +1072,7 @@ module Prism
1061
1072
  attr_reader name_loc: Location
1062
1073
  attr_reader receiver: Prism::node?
1063
1074
  attr_reader parameters: ParametersNode?
1064
- attr_reader body: Prism::node?
1075
+ attr_reader body: StatementsNode | BeginNode | nil
1065
1076
  attr_reader locals: Array[Symbol]
1066
1077
  attr_reader def_keyword_loc: Location
1067
1078
  attr_reader operator_loc: Location?
@@ -1070,9 +1081,9 @@ module Prism
1070
1081
  attr_reader equal_loc: Location?
1071
1082
  attr_reader end_keyword_loc: Location?
1072
1083
 
1073
- def initialize: (Source source, Symbol name, Location name_loc, Prism::node? receiver, ParametersNode? parameters, Prism::node? body, Array[Symbol] locals, Location def_keyword_loc, Location? operator_loc, Location? lparen_loc, Location? rparen_loc, Location? equal_loc, Location? end_keyword_loc, Location location) -> void
1074
- def copy: (?name: Symbol, ?name_loc: Location, ?receiver: Prism::node?, ?parameters: ParametersNode?, ?body: Prism::node?, ?locals: Array[Symbol], ?def_keyword_loc: Location, ?operator_loc: Location?, ?lparen_loc: Location?, ?rparen_loc: Location?, ?equal_loc: Location?, ?end_keyword_loc: Location?, ?location: Location) -> DefNode
1075
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, receiver: Prism::node?, parameters: ParametersNode?, body: Prism::node?, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location }
1084
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node? receiver, ParametersNode? parameters, StatementsNode | BeginNode | nil body, Array[Symbol] locals, Location def_keyword_loc, Location? operator_loc, Location? lparen_loc, Location? rparen_loc, Location? equal_loc, Location? end_keyword_loc) -> void
1085
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?receiver: Prism::node?, ?parameters: ParametersNode?, ?body: StatementsNode | BeginNode | nil, ?locals: Array[Symbol], ?def_keyword_loc: Location, ?operator_loc: Location?, ?lparen_loc: Location?, ?rparen_loc: Location?, ?equal_loc: Location?, ?end_keyword_loc: Location?) -> DefNode
1086
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, receiver: Prism::node?, parameters: ParametersNode?, body: StatementsNode | BeginNode | nil, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location? }
1076
1087
  def def_keyword: () -> String
1077
1088
  def operator: () -> String?
1078
1089
  def lparen: () -> String?
@@ -1096,9 +1107,9 @@ module Prism
1096
1107
  attr_reader rparen_loc: Location?
1097
1108
  attr_reader keyword_loc: Location
1098
1109
 
1099
- def initialize: (Source source, Location? lparen_loc, Prism::node value, Location? rparen_loc, Location keyword_loc, Location location) -> void
1100
- def copy: (?lparen_loc: Location?, ?value: Prism::node, ?rparen_loc: Location?, ?keyword_loc: Location, ?location: Location) -> DefinedNode
1101
- def deconstruct_keys: (Array[Symbol] keys) -> { lparen_loc: Location?, value: Prism::node, rparen_loc: Location?, keyword_loc: Location, location: Location }
1110
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? lparen_loc, Prism::node value, Location? rparen_loc, Location keyword_loc) -> void
1111
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?lparen_loc: Location?, ?value: Prism::node, ?rparen_loc: Location?, ?keyword_loc: Location) -> DefinedNode
1112
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, lparen_loc: Location?, value: Prism::node, rparen_loc: Location?, keyword_loc: Location }
1102
1113
  def lparen: () -> String?
1103
1114
  def rparen: () -> String?
1104
1115
  def keyword: () -> String
@@ -1118,9 +1129,9 @@ module Prism
1118
1129
  attr_reader statements: StatementsNode?
1119
1130
  attr_reader end_keyword_loc: Location?
1120
1131
 
1121
- def initialize: (Source source, Location else_keyword_loc, StatementsNode? statements, Location? end_keyword_loc, Location location) -> void
1122
- def copy: (?else_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location?, ?location: Location) -> ElseNode
1123
- def deconstruct_keys: (Array[Symbol] keys) -> { else_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location?, location: Location }
1132
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location else_keyword_loc, StatementsNode? statements, Location? end_keyword_loc) -> void
1133
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?else_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location?) -> ElseNode
1134
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, else_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location? }
1124
1135
  def else_keyword: () -> String
1125
1136
  def end_keyword: () -> String?
1126
1137
  def type: () -> :else_node
@@ -1139,9 +1150,9 @@ module Prism
1139
1150
  attr_reader statements: StatementsNode?
1140
1151
  attr_reader closing_loc: Location
1141
1152
 
1142
- def initialize: (Source source, Location opening_loc, StatementsNode? statements, Location closing_loc, Location location) -> void
1143
- def copy: (?opening_loc: Location, ?statements: StatementsNode?, ?closing_loc: Location, ?location: Location) -> EmbeddedStatementsNode
1144
- def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, statements: StatementsNode?, closing_loc: Location, location: Location }
1153
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, StatementsNode? statements, Location closing_loc) -> void
1154
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?statements: StatementsNode?, ?closing_loc: Location) -> EmbeddedStatementsNode
1155
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, statements: StatementsNode?, closing_loc: Location }
1145
1156
  def opening: () -> String
1146
1157
  def closing: () -> String
1147
1158
  def type: () -> :embedded_statements_node
@@ -1157,11 +1168,11 @@ module Prism
1157
1168
  include _Node
1158
1169
 
1159
1170
  attr_reader operator_loc: Location
1160
- attr_reader variable: Prism::node
1171
+ attr_reader variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode
1161
1172
 
1162
- def initialize: (Source source, Location operator_loc, Prism::node variable, Location location) -> void
1163
- def copy: (?operator_loc: Location, ?variable: Prism::node, ?location: Location) -> EmbeddedVariableNode
1164
- def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, variable: Prism::node, location: Location }
1173
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location operator_loc, InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode variable) -> void
1174
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode) -> EmbeddedVariableNode
1175
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode }
1165
1176
  def operator: () -> String
1166
1177
  def type: () -> :embedded_variable_node
1167
1178
  | ...
@@ -1183,9 +1194,9 @@ module Prism
1183
1194
  attr_reader statements: StatementsNode?
1184
1195
  attr_reader end_keyword_loc: Location
1185
1196
 
1186
- def initialize: (Source source, Location ensure_keyword_loc, StatementsNode? statements, Location end_keyword_loc, Location location) -> void
1187
- def copy: (?ensure_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location, ?location: Location) -> EnsureNode
1188
- def deconstruct_keys: (Array[Symbol] keys) -> { ensure_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location, location: Location }
1197
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location ensure_keyword_loc, StatementsNode? statements, Location end_keyword_loc) -> void
1198
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?ensure_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location) -> EnsureNode
1199
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, ensure_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location }
1189
1200
  def ensure_keyword: () -> String
1190
1201
  def end_keyword: () -> String
1191
1202
  def type: () -> :ensure_node
@@ -1201,9 +1212,9 @@ module Prism
1201
1212
  include _Node
1202
1213
 
1203
1214
 
1204
- def initialize: (Source source, Location location) -> void
1205
- def copy: (?location: Location) -> FalseNode
1206
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1215
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1216
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> FalseNode
1217
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1207
1218
  def type: () -> :false_node
1208
1219
  | ...
1209
1220
  def self.type: () -> :false_node
@@ -1222,16 +1233,16 @@ module Prism
1222
1233
  class FindPatternNode < Node
1223
1234
  include _Node
1224
1235
 
1225
- attr_reader constant: Prism::node?
1226
- attr_reader left: Prism::node
1236
+ attr_reader constant: ConstantReadNode | ConstantPathNode | nil
1237
+ attr_reader left: SplatNode
1227
1238
  attr_reader requireds: Array[Prism::node]
1228
- attr_reader right: Prism::node
1239
+ attr_reader right: SplatNode | MissingNode
1229
1240
  attr_reader opening_loc: Location?
1230
1241
  attr_reader closing_loc: Location?
1231
1242
 
1232
- def initialize: (Source source, Prism::node? constant, Prism::node left, Array[Prism::node] requireds, Prism::node right, Location? opening_loc, Location? closing_loc, Location location) -> void
1233
- def copy: (?constant: Prism::node?, ?left: Prism::node, ?requireds: Array[Prism::node], ?right: Prism::node, ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> FindPatternNode
1234
- def deconstruct_keys: (Array[Symbol] keys) -> { constant: Prism::node?, left: Prism::node, requireds: Array[Prism::node], right: Prism::node, opening_loc: Location?, closing_loc: Location?, location: Location }
1243
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantReadNode | ConstantPathNode | nil constant, SplatNode left, Array[Prism::node] requireds, SplatNode | MissingNode right, Location? opening_loc, Location? closing_loc) -> void
1244
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: ConstantReadNode | ConstantPathNode | nil, ?left: SplatNode, ?requireds: Array[Prism::node], ?right: SplatNode | MissingNode, ?opening_loc: Location?, ?closing_loc: Location?) -> FindPatternNode
1245
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, constant: ConstantReadNode | ConstantPathNode | nil, left: SplatNode, requireds: Array[Prism::node], right: SplatNode | MissingNode, opening_loc: Location?, closing_loc: Location? }
1235
1246
  def opening: () -> String?
1236
1247
  def closing: () -> String?
1237
1248
  def type: () -> :find_pattern_node
@@ -1246,15 +1257,15 @@ module Prism
1246
1257
  class FlipFlopNode < Node
1247
1258
  include _Node
1248
1259
 
1249
- attr_reader flags: Integer
1260
+ def exclude_end?: () -> bool
1261
+
1250
1262
  attr_reader left: Prism::node?
1251
1263
  attr_reader right: Prism::node?
1252
1264
  attr_reader operator_loc: Location
1253
1265
 
1254
- def initialize: (Source source, Integer flags, Prism::node? left, Prism::node? right, Location operator_loc, Location location) -> void
1255
- def copy: (?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location, ?location: Location) -> FlipFlopNode
1256
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, left: Prism::node?, right: Prism::node?, operator_loc: Location, location: Location }
1257
- def exclude_end?: () -> bool
1266
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? left, Prism::node? right, Location operator_loc) -> void
1267
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> FlipFlopNode
1268
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node?, right: Prism::node?, operator_loc: Location }
1258
1269
  def operator: () -> String
1259
1270
  def type: () -> :flip_flop_node
1260
1271
  | ...
@@ -1270,9 +1281,9 @@ module Prism
1270
1281
 
1271
1282
  attr_reader value: Float
1272
1283
 
1273
- def initialize: (Source source, Float value, Location location) -> void
1274
- def copy: (?value: Float, ?location: Location) -> FloatNode
1275
- def deconstruct_keys: (Array[Symbol] keys) -> { value: Float, location: Location }
1284
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Float value) -> void
1285
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Float) -> FloatNode
1286
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Float }
1276
1287
  def type: () -> :float_node
1277
1288
  | ...
1278
1289
  def self.type: () -> :float_node
@@ -1285,7 +1296,7 @@ module Prism
1285
1296
  class ForNode < Node
1286
1297
  include _Node
1287
1298
 
1288
- attr_reader index: Prism::node
1299
+ attr_reader index: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode
1289
1300
  attr_reader collection: Prism::node
1290
1301
  attr_reader statements: StatementsNode?
1291
1302
  attr_reader for_keyword_loc: Location
@@ -1293,9 +1304,9 @@ module Prism
1293
1304
  attr_reader do_keyword_loc: Location?
1294
1305
  attr_reader end_keyword_loc: Location
1295
1306
 
1296
- def initialize: (Source source, Prism::node index, Prism::node collection, StatementsNode? statements, Location for_keyword_loc, Location in_keyword_loc, Location? do_keyword_loc, Location end_keyword_loc, Location location) -> void
1297
- def copy: (?index: Prism::node, ?collection: Prism::node, ?statements: StatementsNode?, ?for_keyword_loc: Location, ?in_keyword_loc: Location, ?do_keyword_loc: Location?, ?end_keyword_loc: Location, ?location: Location) -> ForNode
1298
- def deconstruct_keys: (Array[Symbol] keys) -> { index: Prism::node, collection: Prism::node, statements: StatementsNode?, for_keyword_loc: Location, in_keyword_loc: Location, do_keyword_loc: Location?, end_keyword_loc: Location, location: Location }
1307
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode index, Prism::node collection, StatementsNode? statements, Location for_keyword_loc, Location in_keyword_loc, Location? do_keyword_loc, Location end_keyword_loc) -> void
1308
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?index: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode, ?collection: Prism::node, ?statements: StatementsNode?, ?for_keyword_loc: Location, ?in_keyword_loc: Location, ?do_keyword_loc: Location?, ?end_keyword_loc: Location) -> ForNode
1309
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, index: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode, collection: Prism::node, statements: StatementsNode?, for_keyword_loc: Location, in_keyword_loc: Location, do_keyword_loc: Location?, end_keyword_loc: Location }
1299
1310
  def for_keyword: () -> String
1300
1311
  def in_keyword: () -> String
1301
1312
  def do_keyword: () -> String?
@@ -1315,9 +1326,9 @@ module Prism
1315
1326
  include _Node
1316
1327
 
1317
1328
 
1318
- def initialize: (Source source, Location location) -> void
1319
- def copy: (?location: Location) -> ForwardingArgumentsNode
1320
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1329
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1330
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingArgumentsNode
1331
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1321
1332
  def type: () -> :forwarding_arguments_node
1322
1333
  | ...
1323
1334
  def self.type: () -> :forwarding_arguments_node
@@ -1332,9 +1343,9 @@ module Prism
1332
1343
  include _Node
1333
1344
 
1334
1345
 
1335
- def initialize: (Source source, Location location) -> void
1336
- def copy: (?location: Location) -> ForwardingParameterNode
1337
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1346
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1347
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingParameterNode
1348
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1338
1349
  def type: () -> :forwarding_parameter_node
1339
1350
  | ...
1340
1351
  def self.type: () -> :forwarding_parameter_node
@@ -1349,9 +1360,9 @@ module Prism
1349
1360
 
1350
1361
  attr_reader block: BlockNode?
1351
1362
 
1352
- def initialize: (Source source, BlockNode? block, Location location) -> void
1353
- def copy: (?block: BlockNode?, ?location: Location) -> ForwardingSuperNode
1354
- def deconstruct_keys: (Array[Symbol] keys) -> { block: BlockNode?, location: Location }
1363
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, BlockNode? block) -> void
1364
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?block: BlockNode?) -> ForwardingSuperNode
1365
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, block: BlockNode? }
1355
1366
  def type: () -> :forwarding_super_node
1356
1367
  | ...
1357
1368
  def self.type: () -> :forwarding_super_node
@@ -1369,9 +1380,9 @@ module Prism
1369
1380
  attr_reader operator_loc: Location
1370
1381
  attr_reader value: Prism::node
1371
1382
 
1372
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
1373
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> GlobalVariableAndWriteNode
1374
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
1383
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1384
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableAndWriteNode
1385
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1375
1386
  def operator: () -> String
1376
1387
  def type: () -> :global_variable_and_write_node
1377
1388
  | ...
@@ -1391,9 +1402,9 @@ module Prism
1391
1402
  attr_reader value: Prism::node
1392
1403
  attr_reader binary_operator: Symbol
1393
1404
 
1394
- def initialize: (Source source, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, Location location) -> void
1395
- def copy: (?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol, ?location: Location) -> GlobalVariableOperatorWriteNode
1396
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol, location: Location }
1405
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator) -> void
1406
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> GlobalVariableOperatorWriteNode
1407
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
1397
1408
  def type: () -> :global_variable_operator_write_node
1398
1409
  | ...
1399
1410
  def self.type: () -> :global_variable_operator_write_node
@@ -1411,9 +1422,9 @@ module Prism
1411
1422
  attr_reader operator_loc: Location
1412
1423
  attr_reader value: Prism::node
1413
1424
 
1414
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
1415
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> GlobalVariableOrWriteNode
1416
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
1425
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1426
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableOrWriteNode
1427
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1417
1428
  def operator: () -> String
1418
1429
  def type: () -> :global_variable_or_write_node
1419
1430
  | ...
@@ -1429,9 +1440,9 @@ module Prism
1429
1440
 
1430
1441
  attr_reader name: Symbol
1431
1442
 
1432
- def initialize: (Source source, Symbol name, Location location) -> void
1433
- def copy: (?name: Symbol, ?location: Location) -> GlobalVariableReadNode
1434
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
1443
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1444
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableReadNode
1445
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1435
1446
  def type: () -> :global_variable_read_node
1436
1447
  | ...
1437
1448
  def self.type: () -> :global_variable_read_node
@@ -1446,9 +1457,9 @@ module Prism
1446
1457
 
1447
1458
  attr_reader name: Symbol
1448
1459
 
1449
- def initialize: (Source source, Symbol name, Location location) -> void
1450
- def copy: (?name: Symbol, ?location: Location) -> GlobalVariableTargetNode
1451
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
1460
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1461
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableTargetNode
1462
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1452
1463
  def type: () -> :global_variable_target_node
1453
1464
  | ...
1454
1465
  def self.type: () -> :global_variable_target_node
@@ -1466,9 +1477,9 @@ module Prism
1466
1477
  attr_reader value: Prism::node
1467
1478
  attr_reader operator_loc: Location
1468
1479
 
1469
- def initialize: (Source source, Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void
1470
- def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> GlobalVariableWriteNode
1471
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location }
1480
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
1481
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> GlobalVariableWriteNode
1482
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
1472
1483
  def operator: () -> String
1473
1484
  def type: () -> :global_variable_write_node
1474
1485
  | ...
@@ -1486,9 +1497,9 @@ module Prism
1486
1497
  attr_reader elements: Array[AssocNode | AssocSplatNode]
1487
1498
  attr_reader closing_loc: Location
1488
1499
 
1489
- def initialize: (Source source, Location opening_loc, Array[AssocNode | AssocSplatNode] elements, Location closing_loc, Location location) -> void
1490
- def copy: (?opening_loc: Location, ?elements: Array[AssocNode | AssocSplatNode], ?closing_loc: Location, ?location: Location) -> HashNode
1491
- def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, elements: Array[AssocNode | AssocSplatNode], closing_loc: Location, location: Location }
1500
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[AssocNode | AssocSplatNode] elements, Location closing_loc) -> void
1501
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?elements: Array[AssocNode | AssocSplatNode], ?closing_loc: Location) -> HashNode
1502
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, elements: Array[AssocNode | AssocSplatNode], closing_loc: Location }
1492
1503
  def opening: () -> String
1493
1504
  def closing: () -> String
1494
1505
  def type: () -> :hash_node
@@ -1506,15 +1517,15 @@ module Prism
1506
1517
  class HashPatternNode < Node
1507
1518
  include _Node
1508
1519
 
1509
- attr_reader constant: Prism::node?
1520
+ attr_reader constant: ConstantReadNode | ConstantPathNode | nil
1510
1521
  attr_reader elements: Array[AssocNode]
1511
1522
  attr_reader rest: AssocSplatNode | NoKeywordsParameterNode | nil
1512
1523
  attr_reader opening_loc: Location?
1513
1524
  attr_reader closing_loc: Location?
1514
1525
 
1515
- def initialize: (Source source, Prism::node? constant, Array[AssocNode] elements, AssocSplatNode | NoKeywordsParameterNode | nil rest, Location? opening_loc, Location? closing_loc, Location location) -> void
1516
- def copy: (?constant: Prism::node?, ?elements: Array[AssocNode], ?rest: AssocSplatNode | NoKeywordsParameterNode | nil, ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> HashPatternNode
1517
- def deconstruct_keys: (Array[Symbol] keys) -> { constant: Prism::node?, elements: Array[AssocNode], rest: AssocSplatNode | NoKeywordsParameterNode | nil, opening_loc: Location?, closing_loc: Location?, location: Location }
1526
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantReadNode | ConstantPathNode | nil constant, Array[AssocNode] elements, AssocSplatNode | NoKeywordsParameterNode | nil rest, Location? opening_loc, Location? closing_loc) -> void
1527
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: ConstantReadNode | ConstantPathNode | nil, ?elements: Array[AssocNode], ?rest: AssocSplatNode | NoKeywordsParameterNode | nil, ?opening_loc: Location?, ?closing_loc: Location?) -> HashPatternNode
1528
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, constant: ConstantReadNode | ConstantPathNode | nil, elements: Array[AssocNode], rest: AssocSplatNode | NoKeywordsParameterNode | nil, opening_loc: Location?, closing_loc: Location? }
1518
1529
  def opening: () -> String?
1519
1530
  def closing: () -> String?
1520
1531
  def type: () -> :hash_pattern_node
@@ -1539,12 +1550,12 @@ module Prism
1539
1550
  attr_reader predicate: Prism::node
1540
1551
  attr_reader then_keyword_loc: Location?
1541
1552
  attr_reader statements: StatementsNode?
1542
- attr_reader consequent: Prism::node?
1553
+ attr_reader subsequent: ElseNode | IfNode | nil
1543
1554
  attr_reader end_keyword_loc: Location?
1544
1555
 
1545
- def initialize: (Source source, Location? if_keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, Prism::node? consequent, Location? end_keyword_loc, Location location) -> void
1546
- def copy: (?if_keyword_loc: Location?, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?consequent: Prism::node?, ?end_keyword_loc: Location?, ?location: Location) -> IfNode
1547
- def deconstruct_keys: (Array[Symbol] keys) -> { if_keyword_loc: Location?, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: Prism::node?, end_keyword_loc: Location?, location: Location }
1556
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? if_keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, ElseNode | IfNode | nil subsequent, Location? end_keyword_loc) -> void
1557
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?if_keyword_loc: Location?, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?subsequent: ElseNode | IfNode | nil, ?end_keyword_loc: Location?) -> IfNode
1558
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, if_keyword_loc: Location?, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, subsequent: ElseNode | IfNode | nil, end_keyword_loc: Location? }
1548
1559
  def if_keyword: () -> String?
1549
1560
  def then_keyword: () -> String?
1550
1561
  def end_keyword: () -> String?
@@ -1562,9 +1573,9 @@ module Prism
1562
1573
 
1563
1574
  attr_reader numeric: FloatNode | IntegerNode | RationalNode
1564
1575
 
1565
- def initialize: (Source source, FloatNode | IntegerNode | RationalNode numeric, Location location) -> void
1566
- def copy: (?numeric: FloatNode | IntegerNode | RationalNode, ?location: Location) -> ImaginaryNode
1567
- def deconstruct_keys: (Array[Symbol] keys) -> { numeric: FloatNode | IntegerNode | RationalNode, location: Location }
1576
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, FloatNode | IntegerNode | RationalNode numeric) -> void
1577
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?numeric: FloatNode | IntegerNode | RationalNode) -> ImaginaryNode
1578
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, numeric: FloatNode | IntegerNode | RationalNode }
1568
1579
  def type: () -> :imaginary_node
1569
1580
  | ...
1570
1581
  def self.type: () -> :imaginary_node
@@ -1583,11 +1594,11 @@ module Prism
1583
1594
  class ImplicitNode < Node
1584
1595
  include _Node
1585
1596
 
1586
- attr_reader value: Prism::node
1597
+ attr_reader value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode
1587
1598
 
1588
- def initialize: (Source source, Prism::node value, Location location) -> void
1589
- def copy: (?value: Prism::node, ?location: Location) -> ImplicitNode
1590
- def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, location: Location }
1599
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode value) -> void
1600
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode) -> ImplicitNode
1601
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode }
1591
1602
  def type: () -> :implicit_node
1592
1603
  | ...
1593
1604
  def self.type: () -> :implicit_node
@@ -1610,9 +1621,9 @@ module Prism
1610
1621
  include _Node
1611
1622
 
1612
1623
 
1613
- def initialize: (Source source, Location location) -> void
1614
- def copy: (?location: Location) -> ImplicitRestNode
1615
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1624
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1625
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ImplicitRestNode
1626
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1616
1627
  def type: () -> :implicit_rest_node
1617
1628
  | ...
1618
1629
  def self.type: () -> :implicit_rest_node
@@ -1630,9 +1641,9 @@ module Prism
1630
1641
  attr_reader in_loc: Location
1631
1642
  attr_reader then_loc: Location?
1632
1643
 
1633
- def initialize: (Source source, Prism::node pattern, StatementsNode? statements, Location in_loc, Location? then_loc, Location location) -> void
1634
- def copy: (?pattern: Prism::node, ?statements: StatementsNode?, ?in_loc: Location, ?then_loc: Location?, ?location: Location) -> InNode
1635
- def deconstruct_keys: (Array[Symbol] keys) -> { pattern: Prism::node, statements: StatementsNode?, in_loc: Location, then_loc: Location?, location: Location }
1644
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node pattern, StatementsNode? statements, Location in_loc, Location? then_loc) -> void
1645
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?pattern: Prism::node, ?statements: StatementsNode?, ?in_loc: Location, ?then_loc: Location?) -> InNode
1646
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, pattern: Prism::node, statements: StatementsNode?, in_loc: Location, then_loc: Location? }
1636
1647
  def in: () -> String
1637
1648
  def then: () -> String?
1638
1649
  def type: () -> :in_node
@@ -1647,23 +1658,23 @@ module Prism
1647
1658
  class IndexAndWriteNode < Node
1648
1659
  include _Node
1649
1660
 
1650
- attr_reader flags: Integer
1661
+ def safe_navigation?: () -> bool
1662
+ def variable_call?: () -> bool
1663
+ def attribute_write?: () -> bool
1664
+ def ignore_visibility?: () -> bool
1665
+
1651
1666
  attr_reader receiver: Prism::node?
1652
1667
  attr_reader call_operator_loc: Location?
1653
1668
  attr_reader opening_loc: Location
1654
1669
  attr_reader arguments: ArgumentsNode?
1655
1670
  attr_reader closing_loc: Location
1656
- attr_reader block: Prism::node?
1671
+ attr_reader block: BlockArgumentNode?
1657
1672
  attr_reader operator_loc: Location
1658
1673
  attr_reader value: Prism::node
1659
1674
 
1660
- def initialize: (Source source, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location operator_loc, Prism::node value, Location location) -> void
1661
- def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> IndexAndWriteNode
1662
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, operator_loc: Location, value: Prism::node, location: Location }
1663
- def safe_navigation?: () -> bool
1664
- def variable_call?: () -> bool
1665
- def attribute_write?: () -> bool
1666
- def ignore_visibility?: () -> bool
1675
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, BlockArgumentNode? block, Location operator_loc, Prism::node value) -> void
1676
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?, ?operator_loc: Location, ?value: Prism::node) -> IndexAndWriteNode
1677
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: BlockArgumentNode?, operator_loc: Location, value: Prism::node }
1667
1678
  def call_operator: () -> String?
1668
1679
  def opening: () -> String
1669
1680
  def closing: () -> String
@@ -1680,24 +1691,24 @@ module Prism
1680
1691
  class IndexOperatorWriteNode < Node
1681
1692
  include _Node
1682
1693
 
1683
- attr_reader flags: Integer
1694
+ def safe_navigation?: () -> bool
1695
+ def variable_call?: () -> bool
1696
+ def attribute_write?: () -> bool
1697
+ def ignore_visibility?: () -> bool
1698
+
1684
1699
  attr_reader receiver: Prism::node?
1685
1700
  attr_reader call_operator_loc: Location?
1686
1701
  attr_reader opening_loc: Location
1687
1702
  attr_reader arguments: ArgumentsNode?
1688
1703
  attr_reader closing_loc: Location
1689
- attr_reader block: Prism::node?
1704
+ attr_reader block: BlockArgumentNode?
1690
1705
  attr_reader binary_operator: Symbol
1691
1706
  attr_reader binary_operator_loc: Location
1692
1707
  attr_reader value: Prism::node
1693
1708
 
1694
- def initialize: (Source source, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Symbol binary_operator, Location binary_operator_loc, Prism::node value, Location location) -> void
1695
- def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node, ?location: Location) -> IndexOperatorWriteNode
1696
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, binary_operator: Symbol, binary_operator_loc: Location, value: Prism::node, location: Location }
1697
- def safe_navigation?: () -> bool
1698
- def variable_call?: () -> bool
1699
- def attribute_write?: () -> bool
1700
- def ignore_visibility?: () -> bool
1709
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, BlockArgumentNode? block, Symbol binary_operator, Location binary_operator_loc, Prism::node value) -> void
1710
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node) -> IndexOperatorWriteNode
1711
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: BlockArgumentNode?, binary_operator: Symbol, binary_operator_loc: Location, value: Prism::node }
1701
1712
  def call_operator: () -> String?
1702
1713
  def opening: () -> String
1703
1714
  def closing: () -> String
@@ -1713,23 +1724,23 @@ module Prism
1713
1724
  class IndexOrWriteNode < Node
1714
1725
  include _Node
1715
1726
 
1716
- attr_reader flags: Integer
1727
+ def safe_navigation?: () -> bool
1728
+ def variable_call?: () -> bool
1729
+ def attribute_write?: () -> bool
1730
+ def ignore_visibility?: () -> bool
1731
+
1717
1732
  attr_reader receiver: Prism::node?
1718
1733
  attr_reader call_operator_loc: Location?
1719
1734
  attr_reader opening_loc: Location
1720
1735
  attr_reader arguments: ArgumentsNode?
1721
1736
  attr_reader closing_loc: Location
1722
- attr_reader block: Prism::node?
1737
+ attr_reader block: BlockArgumentNode?
1723
1738
  attr_reader operator_loc: Location
1724
1739
  attr_reader value: Prism::node
1725
1740
 
1726
- def initialize: (Source source, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location operator_loc, Prism::node value, Location location) -> void
1727
- def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> IndexOrWriteNode
1728
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, operator_loc: Location, value: Prism::node, location: Location }
1729
- def safe_navigation?: () -> bool
1730
- def variable_call?: () -> bool
1731
- def attribute_write?: () -> bool
1732
- def ignore_visibility?: () -> bool
1741
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, BlockArgumentNode? block, Location operator_loc, Prism::node value) -> void
1742
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?, ?operator_loc: Location, ?value: Prism::node) -> IndexOrWriteNode
1743
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: BlockArgumentNode?, operator_loc: Location, value: Prism::node }
1733
1744
  def call_operator: () -> String?
1734
1745
  def opening: () -> String
1735
1746
  def closing: () -> String
@@ -1754,20 +1765,20 @@ module Prism
1754
1765
  class IndexTargetNode < Node
1755
1766
  include _Node
1756
1767
 
1757
- attr_reader flags: Integer
1768
+ def safe_navigation?: () -> bool
1769
+ def variable_call?: () -> bool
1770
+ def attribute_write?: () -> bool
1771
+ def ignore_visibility?: () -> bool
1772
+
1758
1773
  attr_reader receiver: Prism::node
1759
1774
  attr_reader opening_loc: Location
1760
1775
  attr_reader arguments: ArgumentsNode?
1761
1776
  attr_reader closing_loc: Location
1762
- attr_reader block: Prism::node?
1777
+ attr_reader block: BlockArgumentNode?
1763
1778
 
1764
- def initialize: (Source source, Integer flags, Prism::node receiver, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location location) -> void
1765
- def copy: (?flags: Integer, ?receiver: Prism::node, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?location: Location) -> IndexTargetNode
1766
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, location: Location }
1767
- def safe_navigation?: () -> bool
1768
- def variable_call?: () -> bool
1769
- def attribute_write?: () -> bool
1770
- def ignore_visibility?: () -> bool
1779
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node receiver, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, BlockArgumentNode? block) -> void
1780
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?) -> IndexTargetNode
1781
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: BlockArgumentNode? }
1771
1782
  def opening: () -> String
1772
1783
  def closing: () -> String
1773
1784
  def type: () -> :index_target_node
@@ -1787,9 +1798,9 @@ module Prism
1787
1798
  attr_reader operator_loc: Location
1788
1799
  attr_reader value: Prism::node
1789
1800
 
1790
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
1791
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> InstanceVariableAndWriteNode
1792
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
1801
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1802
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableAndWriteNode
1803
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1793
1804
  def operator: () -> String
1794
1805
  def type: () -> :instance_variable_and_write_node
1795
1806
  | ...
@@ -1809,9 +1820,9 @@ module Prism
1809
1820
  attr_reader value: Prism::node
1810
1821
  attr_reader binary_operator: Symbol
1811
1822
 
1812
- def initialize: (Source source, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator, Location location) -> void
1813
- def copy: (?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol, ?location: Location) -> InstanceVariableOperatorWriteNode
1814
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol, location: Location }
1823
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol binary_operator) -> void
1824
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> InstanceVariableOperatorWriteNode
1825
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
1815
1826
  def type: () -> :instance_variable_operator_write_node
1816
1827
  | ...
1817
1828
  def self.type: () -> :instance_variable_operator_write_node
@@ -1829,9 +1840,9 @@ module Prism
1829
1840
  attr_reader operator_loc: Location
1830
1841
  attr_reader value: Prism::node
1831
1842
 
1832
- def initialize: (Source source, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
1833
- def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> InstanceVariableOrWriteNode
1834
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
1843
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1844
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableOrWriteNode
1845
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1835
1846
  def operator: () -> String
1836
1847
  def type: () -> :instance_variable_or_write_node
1837
1848
  | ...
@@ -1847,9 +1858,9 @@ module Prism
1847
1858
 
1848
1859
  attr_reader name: Symbol
1849
1860
 
1850
- def initialize: (Source source, Symbol name, Location location) -> void
1851
- def copy: (?name: Symbol, ?location: Location) -> InstanceVariableReadNode
1852
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
1861
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1862
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableReadNode
1863
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1853
1864
  def type: () -> :instance_variable_read_node
1854
1865
  | ...
1855
1866
  def self.type: () -> :instance_variable_read_node
@@ -1864,9 +1875,9 @@ module Prism
1864
1875
 
1865
1876
  attr_reader name: Symbol
1866
1877
 
1867
- def initialize: (Source source, Symbol name, Location location) -> void
1868
- def copy: (?name: Symbol, ?location: Location) -> InstanceVariableTargetNode
1869
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
1878
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1879
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableTargetNode
1880
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1870
1881
  def type: () -> :instance_variable_target_node
1871
1882
  | ...
1872
1883
  def self.type: () -> :instance_variable_target_node
@@ -1884,9 +1895,9 @@ module Prism
1884
1895
  attr_reader value: Prism::node
1885
1896
  attr_reader operator_loc: Location
1886
1897
 
1887
- def initialize: (Source source, Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void
1888
- def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> InstanceVariableWriteNode
1889
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location }
1898
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
1899
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> InstanceVariableWriteNode
1900
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
1890
1901
  def operator: () -> String
1891
1902
  def type: () -> :instance_variable_write_node
1892
1903
  | ...
@@ -1900,16 +1911,16 @@ module Prism
1900
1911
  class IntegerNode < Node
1901
1912
  include _Node
1902
1913
 
1903
- attr_reader flags: Integer
1904
- attr_reader value: Integer
1905
-
1906
- def initialize: (Source source, Integer flags, Integer value, Location location) -> void
1907
- def copy: (?flags: Integer, ?value: Integer, ?location: Location) -> IntegerNode
1908
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, value: Integer, location: Location }
1909
1914
  def binary?: () -> bool
1910
1915
  def decimal?: () -> bool
1911
1916
  def octal?: () -> bool
1912
1917
  def hexadecimal?: () -> bool
1918
+
1919
+ attr_reader value: Integer
1920
+
1921
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer value) -> void
1922
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Integer) -> IntegerNode
1923
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Integer }
1913
1924
  def type: () -> :integer_node
1914
1925
  | ...
1915
1926
  def self.type: () -> :integer_node
@@ -1922,14 +1933,6 @@ module Prism
1922
1933
  class InterpolatedMatchLastLineNode < Node
1923
1934
  include _Node
1924
1935
 
1925
- attr_reader flags: Integer
1926
- attr_reader opening_loc: Location
1927
- attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
1928
- attr_reader closing_loc: Location
1929
-
1930
- def initialize: (Source source, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, Location location) -> void
1931
- def copy: (?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location, ?location: Location) -> InterpolatedMatchLastLineNode
1932
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location, location: Location }
1933
1936
  def ignore_case?: () -> bool
1934
1937
  def extended?: () -> bool
1935
1938
  def multi_line?: () -> bool
@@ -1941,6 +1944,14 @@ module Prism
1941
1944
  def forced_utf8_encoding?: () -> bool
1942
1945
  def forced_binary_encoding?: () -> bool
1943
1946
  def forced_us_ascii_encoding?: () -> bool
1947
+
1948
+ attr_reader opening_loc: Location
1949
+ attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
1950
+ attr_reader closing_loc: Location
1951
+
1952
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc) -> void
1953
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedMatchLastLineNode
1954
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
1944
1955
  def opening: () -> String
1945
1956
  def closing: () -> String
1946
1957
  def type: () -> :interpolated_match_last_line_node
@@ -1955,14 +1966,6 @@ module Prism
1955
1966
  class InterpolatedRegularExpressionNode < Node
1956
1967
  include _Node
1957
1968
 
1958
- attr_reader flags: Integer
1959
- attr_reader opening_loc: Location
1960
- attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
1961
- attr_reader closing_loc: Location
1962
-
1963
- def initialize: (Source source, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, Location location) -> void
1964
- def copy: (?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location, ?location: Location) -> InterpolatedRegularExpressionNode
1965
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location, location: Location }
1966
1969
  def ignore_case?: () -> bool
1967
1970
  def extended?: () -> bool
1968
1971
  def multi_line?: () -> bool
@@ -1974,6 +1977,14 @@ module Prism
1974
1977
  def forced_utf8_encoding?: () -> bool
1975
1978
  def forced_binary_encoding?: () -> bool
1976
1979
  def forced_us_ascii_encoding?: () -> bool
1980
+
1981
+ attr_reader opening_loc: Location
1982
+ attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
1983
+ attr_reader closing_loc: Location
1984
+
1985
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc) -> void
1986
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedRegularExpressionNode
1987
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
1977
1988
  def opening: () -> String
1978
1989
  def closing: () -> String
1979
1990
  def type: () -> :interpolated_regular_expression_node
@@ -1988,16 +1999,16 @@ module Prism
1988
1999
  class InterpolatedStringNode < Node
1989
2000
  include _Node
1990
2001
 
1991
- attr_reader flags: Integer
2002
+ def frozen?: () -> bool
2003
+ def mutable?: () -> bool
2004
+
1992
2005
  attr_reader opening_loc: Location?
1993
2006
  attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode]
1994
2007
  attr_reader closing_loc: Location?
1995
2008
 
1996
- def initialize: (Source source, Integer flags, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode] parts, Location? closing_loc, Location location) -> void
1997
- def copy: (?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], ?closing_loc: Location?, ?location: Location) -> InterpolatedStringNode
1998
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], closing_loc: Location?, location: Location }
1999
- def frozen?: () -> bool
2000
- def mutable?: () -> bool
2009
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode] parts, Location? closing_loc) -> void
2010
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], ?closing_loc: Location?) -> InterpolatedStringNode
2011
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], closing_loc: Location? }
2001
2012
  def opening: () -> String?
2002
2013
  def closing: () -> String?
2003
2014
  def type: () -> :interpolated_string_node
@@ -2016,9 +2027,9 @@ module Prism
2016
2027
  attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
2017
2028
  attr_reader closing_loc: Location?
2018
2029
 
2019
- def initialize: (Source source, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location? closing_loc, Location location) -> void
2020
- def copy: (?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location?, ?location: Location) -> InterpolatedSymbolNode
2021
- def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location?, location: Location }
2030
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location? closing_loc) -> void
2031
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location?) -> InterpolatedSymbolNode
2032
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location? }
2022
2033
  def opening: () -> String?
2023
2034
  def closing: () -> String?
2024
2035
  def type: () -> :interpolated_symbol_node
@@ -2037,9 +2048,9 @@ module Prism
2037
2048
  attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
2038
2049
  attr_reader closing_loc: Location
2039
2050
 
2040
- def initialize: (Source source, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, Location location) -> void
2041
- def copy: (?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location, ?location: Location) -> InterpolatedXStringNode
2042
- def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location, location: Location }
2051
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc) -> void
2052
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedXStringNode
2053
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
2043
2054
  def opening: () -> String
2044
2055
  def closing: () -> String
2045
2056
  def type: () -> :interpolated_x_string_node
@@ -2047,6 +2058,22 @@ module Prism
2047
2058
  def self.type: () -> :interpolated_x_string_node
2048
2059
  end
2049
2060
 
2061
+ # Represents reading from the implicit `it` local variable.
2062
+ #
2063
+ # -> { it }
2064
+ # ^^
2065
+ class ItLocalVariableReadNode < Node
2066
+ include _Node
2067
+
2068
+
2069
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2070
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ItLocalVariableReadNode
2071
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2072
+ def type: () -> :it_local_variable_read_node
2073
+ | ...
2074
+ def self.type: () -> :it_local_variable_read_node
2075
+ end
2076
+
2050
2077
  # Represents an implicit set of parameters through the use of the `it` keyword within a block or lambda.
2051
2078
  #
2052
2079
  # -> { it + it }
@@ -2055,9 +2082,9 @@ module Prism
2055
2082
  include _Node
2056
2083
 
2057
2084
 
2058
- def initialize: (Source source, Location location) -> void
2059
- def copy: (?location: Location) -> ItParametersNode
2060
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2085
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2086
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ItParametersNode
2087
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2061
2088
  def type: () -> :it_parameters_node
2062
2089
  | ...
2063
2090
  def self.type: () -> :it_parameters_node
@@ -2070,13 +2097,13 @@ module Prism
2070
2097
  class KeywordHashNode < Node
2071
2098
  include _Node
2072
2099
 
2073
- attr_reader flags: Integer
2100
+ def symbol_keys?: () -> bool
2101
+
2074
2102
  attr_reader elements: Array[AssocNode | AssocSplatNode]
2075
2103
 
2076
- def initialize: (Source source, Integer flags, Array[AssocNode | AssocSplatNode] elements, Location location) -> void
2077
- def copy: (?flags: Integer, ?elements: Array[AssocNode | AssocSplatNode], ?location: Location) -> KeywordHashNode
2078
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, elements: Array[AssocNode | AssocSplatNode], location: Location }
2079
- def symbol_keys?: () -> bool
2104
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[AssocNode | AssocSplatNode] elements) -> void
2105
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[AssocNode | AssocSplatNode]) -> KeywordHashNode
2106
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, elements: Array[AssocNode | AssocSplatNode] }
2080
2107
  def type: () -> :keyword_hash_node
2081
2108
  | ...
2082
2109
  def self.type: () -> :keyword_hash_node
@@ -2090,15 +2117,15 @@ module Prism
2090
2117
  class KeywordRestParameterNode < Node
2091
2118
  include _Node
2092
2119
 
2093
- attr_reader flags: Integer
2120
+ def repeated_parameter?: () -> bool
2121
+
2094
2122
  attr_reader name: Symbol?
2095
2123
  attr_reader name_loc: Location?
2096
2124
  attr_reader operator_loc: Location
2097
2125
 
2098
- def initialize: (Source source, Integer flags, Symbol? name, Location? name_loc, Location operator_loc, Location location) -> void
2099
- def copy: (?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location, ?location: Location) -> KeywordRestParameterNode
2100
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location }
2101
- def repeated_parameter?: () -> bool
2126
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol? name, Location? name_loc, Location operator_loc) -> void
2127
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> KeywordRestParameterNode
2128
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
2102
2129
  def operator: () -> String
2103
2130
  def type: () -> :keyword_rest_parameter_node
2104
2131
  | ...
@@ -2116,12 +2143,12 @@ module Prism
2116
2143
  attr_reader operator_loc: Location
2117
2144
  attr_reader opening_loc: Location
2118
2145
  attr_reader closing_loc: Location
2119
- attr_reader parameters: Prism::node?
2120
- attr_reader body: Prism::node?
2146
+ attr_reader parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil
2147
+ attr_reader body: StatementsNode | BeginNode | nil
2121
2148
 
2122
- def initialize: (Source source, Array[Symbol] locals, Location operator_loc, Location opening_loc, Location closing_loc, Prism::node? parameters, Prism::node? body, Location location) -> void
2123
- def copy: (?locals: Array[Symbol], ?operator_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?parameters: Prism::node?, ?body: Prism::node?, ?location: Location) -> LambdaNode
2124
- def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: Prism::node?, body: Prism::node?, location: Location }
2149
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Symbol] locals, Location operator_loc, Location opening_loc, Location closing_loc, BlockParametersNode | NumberedParametersNode | ItParametersNode | nil parameters, StatementsNode | BeginNode | nil body) -> void
2150
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?operator_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, ?body: StatementsNode | BeginNode | nil) -> LambdaNode
2151
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, body: StatementsNode | BeginNode | nil }
2125
2152
  def operator: () -> String
2126
2153
  def opening: () -> String
2127
2154
  def closing: () -> String
@@ -2143,9 +2170,9 @@ module Prism
2143
2170
  attr_reader name: Symbol
2144
2171
  attr_reader depth: Integer
2145
2172
 
2146
- def initialize: (Source source, Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth, Location location) -> void
2147
- def copy: (?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableAndWriteNode
2148
- def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer, location: Location }
2173
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth) -> void
2174
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableAndWriteNode
2175
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer }
2149
2176
  def operator: () -> String
2150
2177
  def type: () -> :local_variable_and_write_node
2151
2178
  | ...
@@ -2166,9 +2193,9 @@ module Prism
2166
2193
  attr_reader binary_operator: Symbol
2167
2194
  attr_reader depth: Integer
2168
2195
 
2169
- def initialize: (Source source, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol name, Symbol binary_operator, Integer depth, Location location) -> void
2170
- def copy: (?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?binary_operator: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableOperatorWriteNode
2171
- def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, binary_operator_loc: Location, value: Prism::node, name: Symbol, binary_operator: Symbol, depth: Integer, location: Location }
2196
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location name_loc, Location binary_operator_loc, Prism::node value, Symbol name, Symbol binary_operator, Integer depth) -> void
2197
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?binary_operator: Symbol, ?depth: Integer) -> LocalVariableOperatorWriteNode
2198
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name_loc: Location, binary_operator_loc: Location, value: Prism::node, name: Symbol, binary_operator: Symbol, depth: Integer }
2172
2199
  def type: () -> :local_variable_operator_write_node
2173
2200
  | ...
2174
2201
  def self.type: () -> :local_variable_operator_write_node
@@ -2187,9 +2214,9 @@ module Prism
2187
2214
  attr_reader name: Symbol
2188
2215
  attr_reader depth: Integer
2189
2216
 
2190
- def initialize: (Source source, Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth, Location location) -> void
2191
- def copy: (?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableOrWriteNode
2192
- def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer, location: Location }
2217
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth) -> void
2218
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableOrWriteNode
2219
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer }
2193
2220
  def operator: () -> String
2194
2221
  def type: () -> :local_variable_or_write_node
2195
2222
  | ...
@@ -2206,9 +2233,9 @@ module Prism
2206
2233
  attr_reader name: Symbol
2207
2234
  attr_reader depth: Integer
2208
2235
 
2209
- def initialize: (Source source, Symbol name, Integer depth, Location location) -> void
2210
- def copy: (?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableReadNode
2211
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, location: Location }
2236
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Integer depth) -> void
2237
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableReadNode
2238
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }
2212
2239
  def type: () -> :local_variable_read_node
2213
2240
  | ...
2214
2241
  def self.type: () -> :local_variable_read_node
@@ -2224,9 +2251,9 @@ module Prism
2224
2251
  attr_reader name: Symbol
2225
2252
  attr_reader depth: Integer
2226
2253
 
2227
- def initialize: (Source source, Symbol name, Integer depth, Location location) -> void
2228
- def copy: (?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableTargetNode
2229
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, location: Location }
2254
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Integer depth) -> void
2255
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableTargetNode
2256
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }
2230
2257
  def type: () -> :local_variable_target_node
2231
2258
  | ...
2232
2259
  def self.type: () -> :local_variable_target_node
@@ -2245,9 +2272,9 @@ module Prism
2245
2272
  attr_reader value: Prism::node
2246
2273
  attr_reader operator_loc: Location
2247
2274
 
2248
- def initialize: (Source source, Symbol name, Integer depth, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void
2249
- def copy: (?name: Symbol, ?depth: Integer, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> LocalVariableWriteNode
2250
- def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location }
2275
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Integer depth, Location name_loc, Prism::node value, Location operator_loc) -> void
2276
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> LocalVariableWriteNode
2277
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer, name_loc: Location, value: Prism::node, operator_loc: Location }
2251
2278
  def operator: () -> String
2252
2279
  def type: () -> :local_variable_write_node
2253
2280
  | ...
@@ -2261,15 +2288,6 @@ module Prism
2261
2288
  class MatchLastLineNode < Node
2262
2289
  include _Node
2263
2290
 
2264
- attr_reader flags: Integer
2265
- attr_reader opening_loc: Location
2266
- attr_reader content_loc: Location
2267
- attr_reader closing_loc: Location
2268
- attr_reader unescaped: String
2269
-
2270
- def initialize: (Source source, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, Location location) -> void
2271
- def copy: (?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String, ?location: Location) -> MatchLastLineNode
2272
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location }
2273
2291
  def ignore_case?: () -> bool
2274
2292
  def extended?: () -> bool
2275
2293
  def multi_line?: () -> bool
@@ -2281,6 +2299,15 @@ module Prism
2281
2299
  def forced_utf8_encoding?: () -> bool
2282
2300
  def forced_binary_encoding?: () -> bool
2283
2301
  def forced_us_ascii_encoding?: () -> bool
2302
+
2303
+ attr_reader opening_loc: Location
2304
+ attr_reader content_loc: Location
2305
+ attr_reader closing_loc: Location
2306
+ attr_reader unescaped: String
2307
+
2308
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped) -> void
2309
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> MatchLastLineNode
2310
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
2284
2311
  def opening: () -> String
2285
2312
  def content: () -> String
2286
2313
  def closing: () -> String
@@ -2300,9 +2327,9 @@ module Prism
2300
2327
  attr_reader pattern: Prism::node
2301
2328
  attr_reader operator_loc: Location
2302
2329
 
2303
- def initialize: (Source source, Prism::node value, Prism::node pattern, Location operator_loc, Location location) -> void
2304
- def copy: (?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location, ?location: Location) -> MatchPredicateNode
2305
- def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, pattern: Prism::node, operator_loc: Location, location: Location }
2330
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node value, Prism::node pattern, Location operator_loc) -> void
2331
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchPredicateNode
2332
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, pattern: Prism::node, operator_loc: Location }
2306
2333
  def operator: () -> String
2307
2334
  def type: () -> :match_predicate_node
2308
2335
  | ...
@@ -2320,9 +2347,9 @@ module Prism
2320
2347
  attr_reader pattern: Prism::node
2321
2348
  attr_reader operator_loc: Location
2322
2349
 
2323
- def initialize: (Source source, Prism::node value, Prism::node pattern, Location operator_loc, Location location) -> void
2324
- def copy: (?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location, ?location: Location) -> MatchRequiredNode
2325
- def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, pattern: Prism::node, operator_loc: Location, location: Location }
2350
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node value, Prism::node pattern, Location operator_loc) -> void
2351
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchRequiredNode
2352
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, pattern: Prism::node, operator_loc: Location }
2326
2353
  def operator: () -> String
2327
2354
  def type: () -> :match_required_node
2328
2355
  | ...
@@ -2339,9 +2366,9 @@ module Prism
2339
2366
  attr_reader call: CallNode
2340
2367
  attr_reader targets: Array[LocalVariableTargetNode]
2341
2368
 
2342
- def initialize: (Source source, CallNode call, Array[LocalVariableTargetNode] targets, Location location) -> void
2343
- def copy: (?call: CallNode, ?targets: Array[LocalVariableTargetNode], ?location: Location) -> MatchWriteNode
2344
- def deconstruct_keys: (Array[Symbol] keys) -> { call: CallNode, targets: Array[LocalVariableTargetNode], location: Location }
2369
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, CallNode call, Array[LocalVariableTargetNode] targets) -> void
2370
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?call: CallNode, ?targets: Array[LocalVariableTargetNode]) -> MatchWriteNode
2371
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, call: CallNode, targets: Array[LocalVariableTargetNode] }
2345
2372
  def type: () -> :match_write_node
2346
2373
  | ...
2347
2374
  def self.type: () -> :match_write_node
@@ -2352,9 +2379,9 @@ module Prism
2352
2379
  include _Node
2353
2380
 
2354
2381
 
2355
- def initialize: (Source source, Location location) -> void
2356
- def copy: (?location: Location) -> MissingNode
2357
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2382
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2383
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> MissingNode
2384
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2358
2385
  def type: () -> :missing_node
2359
2386
  | ...
2360
2387
  def self.type: () -> :missing_node
@@ -2369,14 +2396,14 @@ module Prism
2369
2396
 
2370
2397
  attr_reader locals: Array[Symbol]
2371
2398
  attr_reader module_keyword_loc: Location
2372
- attr_reader constant_path: Prism::node
2373
- attr_reader body: Prism::node?
2399
+ attr_reader constant_path: ConstantReadNode | ConstantPathNode | MissingNode
2400
+ attr_reader body: StatementsNode | BeginNode | nil
2374
2401
  attr_reader end_keyword_loc: Location
2375
2402
  attr_reader name: Symbol
2376
2403
 
2377
- def initialize: (Source source, Array[Symbol] locals, Location module_keyword_loc, Prism::node constant_path, Prism::node? body, Location end_keyword_loc, Symbol name, Location location) -> void
2378
- def copy: (?locals: Array[Symbol], ?module_keyword_loc: Location, ?constant_path: Prism::node, ?body: Prism::node?, ?end_keyword_loc: Location, ?name: Symbol, ?location: Location) -> ModuleNode
2379
- def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], module_keyword_loc: Location, constant_path: Prism::node, body: Prism::node?, end_keyword_loc: Location, name: Symbol, location: Location }
2404
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Symbol] locals, Location module_keyword_loc, ConstantReadNode | ConstantPathNode | MissingNode constant_path, StatementsNode | BeginNode | nil body, Location end_keyword_loc, Symbol name) -> void
2405
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?module_keyword_loc: Location, ?constant_path: ConstantReadNode | ConstantPathNode | MissingNode, ?body: StatementsNode | BeginNode | nil, ?end_keyword_loc: Location, ?name: Symbol) -> ModuleNode
2406
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], module_keyword_loc: Location, constant_path: ConstantReadNode | ConstantPathNode | MissingNode, body: StatementsNode | BeginNode | nil, end_keyword_loc: Location, name: Symbol }
2380
2407
  def module_keyword: () -> String
2381
2408
  def end_keyword: () -> String
2382
2409
  def type: () -> :module_node
@@ -2388,18 +2415,23 @@ module Prism
2388
2415
  #
2389
2416
  # a, (b, c) = 1, 2, 3
2390
2417
  # ^^^^^^
2418
+ #
2419
+ # This can be a part of `MultiWriteNode` as above, or the target of a `for` loop
2420
+ #
2421
+ # for a, b in [[1, 2], [3, 4]]
2422
+ # ^^^^
2391
2423
  class MultiTargetNode < Node
2392
2424
  include _Node
2393
2425
 
2394
2426
  attr_reader lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode]
2395
- attr_reader rest: Prism::node?
2396
- attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode]
2427
+ attr_reader rest: ImplicitRestNode | SplatNode | nil
2428
+ attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode]
2397
2429
  attr_reader lparen_loc: Location?
2398
2430
  attr_reader rparen_loc: Location?
2399
2431
 
2400
- def initialize: (Source source, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode] lefts, Prism::node? rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode] rights, Location? lparen_loc, Location? rparen_loc, Location location) -> void
2401
- def copy: (?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], ?rest: Prism::node?, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode], ?lparen_loc: Location?, ?rparen_loc: Location?, ?location: Location) -> MultiTargetNode
2402
- def deconstruct_keys: (Array[Symbol] keys) -> { lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], rest: Prism::node?, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode], lparen_loc: Location?, rparen_loc: Location?, location: Location }
2432
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode] lefts, ImplicitRestNode | SplatNode | nil rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode] rights, Location? lparen_loc, Location? rparen_loc) -> void
2433
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], ?rest: ImplicitRestNode | SplatNode | nil, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], ?lparen_loc: Location?, ?rparen_loc: Location?) -> MultiTargetNode
2434
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], rest: ImplicitRestNode | SplatNode | nil, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], lparen_loc: Location?, rparen_loc: Location? }
2403
2435
  def lparen: () -> String?
2404
2436
  def rparen: () -> String?
2405
2437
  def type: () -> :multi_target_node
@@ -2414,17 +2446,17 @@ module Prism
2414
2446
  class MultiWriteNode < Node
2415
2447
  include _Node
2416
2448
 
2417
- attr_reader lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode]
2418
- attr_reader rest: Prism::node?
2419
- attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode]
2449
+ attr_reader lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode]
2450
+ attr_reader rest: ImplicitRestNode | SplatNode | nil
2451
+ attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode]
2420
2452
  attr_reader lparen_loc: Location?
2421
2453
  attr_reader rparen_loc: Location?
2422
2454
  attr_reader operator_loc: Location
2423
2455
  attr_reader value: Prism::node
2424
2456
 
2425
- def initialize: (Source source, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] lefts, Prism::node? rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] rights, Location? lparen_loc, Location? rparen_loc, Location operator_loc, Prism::node value, Location location) -> void
2426
- def copy: (?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], ?rest: Prism::node?, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], ?lparen_loc: Location?, ?rparen_loc: Location?, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> MultiWriteNode
2427
- def deconstruct_keys: (Array[Symbol] keys) -> { lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], rest: Prism::node?, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], lparen_loc: Location?, rparen_loc: Location?, operator_loc: Location, value: Prism::node, location: Location }
2457
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode] lefts, ImplicitRestNode | SplatNode | nil rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode] rights, Location? lparen_loc, Location? rparen_loc, Location operator_loc, Prism::node value) -> void
2458
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode], ?rest: ImplicitRestNode | SplatNode | nil, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode], ?lparen_loc: Location?, ?rparen_loc: Location?, ?operator_loc: Location, ?value: Prism::node) -> MultiWriteNode
2459
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode], rest: ImplicitRestNode | SplatNode | nil, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode], lparen_loc: Location?, rparen_loc: Location?, operator_loc: Location, value: Prism::node }
2428
2460
  def lparen: () -> String?
2429
2461
  def rparen: () -> String?
2430
2462
  def operator: () -> String
@@ -2443,9 +2475,9 @@ module Prism
2443
2475
  attr_reader arguments: ArgumentsNode?
2444
2476
  attr_reader keyword_loc: Location
2445
2477
 
2446
- def initialize: (Source source, ArgumentsNode? arguments, Location keyword_loc, Location location) -> void
2447
- def copy: (?arguments: ArgumentsNode?, ?keyword_loc: Location, ?location: Location) -> NextNode
2448
- def deconstruct_keys: (Array[Symbol] keys) -> { arguments: ArgumentsNode?, keyword_loc: Location, location: Location }
2478
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ArgumentsNode? arguments, Location keyword_loc) -> void
2479
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> NextNode
2480
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: ArgumentsNode?, keyword_loc: Location }
2449
2481
  def keyword: () -> String
2450
2482
  def type: () -> :next_node
2451
2483
  | ...
@@ -2460,9 +2492,9 @@ module Prism
2460
2492
  include _Node
2461
2493
 
2462
2494
 
2463
- def initialize: (Source source, Location location) -> void
2464
- def copy: (?location: Location) -> NilNode
2465
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2495
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2496
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> NilNode
2497
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2466
2498
  def type: () -> :nil_node
2467
2499
  | ...
2468
2500
  def self.type: () -> :nil_node
@@ -2479,9 +2511,9 @@ module Prism
2479
2511
  attr_reader operator_loc: Location
2480
2512
  attr_reader keyword_loc: Location
2481
2513
 
2482
- def initialize: (Source source, Location operator_loc, Location keyword_loc, Location location) -> void
2483
- def copy: (?operator_loc: Location, ?keyword_loc: Location, ?location: Location) -> NoKeywordsParameterNode
2484
- def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, keyword_loc: Location, location: Location }
2514
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location operator_loc, Location keyword_loc) -> void
2515
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?keyword_loc: Location) -> NoKeywordsParameterNode
2516
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, keyword_loc: Location }
2485
2517
  def operator: () -> String
2486
2518
  def keyword: () -> String
2487
2519
  def type: () -> :no_keywords_parameter_node
@@ -2498,9 +2530,9 @@ module Prism
2498
2530
 
2499
2531
  attr_reader maximum: Integer
2500
2532
 
2501
- def initialize: (Source source, Integer maximum, Location location) -> void
2502
- def copy: (?maximum: Integer, ?location: Location) -> NumberedParametersNode
2503
- def deconstruct_keys: (Array[Symbol] keys) -> { maximum: Integer, location: Location }
2533
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer maximum) -> void
2534
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?maximum: Integer) -> NumberedParametersNode
2535
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, maximum: Integer }
2504
2536
  def type: () -> :numbered_parameters_node
2505
2537
  | ...
2506
2538
  def self.type: () -> :numbered_parameters_node
@@ -2515,9 +2547,9 @@ module Prism
2515
2547
 
2516
2548
  attr_reader number: Integer
2517
2549
 
2518
- def initialize: (Source source, Integer number, Location location) -> void
2519
- def copy: (?number: Integer, ?location: Location) -> NumberedReferenceReadNode
2520
- def deconstruct_keys: (Array[Symbol] keys) -> { number: Integer, location: Location }
2550
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer number) -> void
2551
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?number: Integer) -> NumberedReferenceReadNode
2552
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, number: Integer }
2521
2553
  def type: () -> :numbered_reference_read_node
2522
2554
  | ...
2523
2555
  def self.type: () -> :numbered_reference_read_node
@@ -2531,15 +2563,15 @@ module Prism
2531
2563
  class OptionalKeywordParameterNode < Node
2532
2564
  include _Node
2533
2565
 
2534
- attr_reader flags: Integer
2566
+ def repeated_parameter?: () -> bool
2567
+
2535
2568
  attr_reader name: Symbol
2536
2569
  attr_reader name_loc: Location
2537
2570
  attr_reader value: Prism::node
2538
2571
 
2539
- def initialize: (Source source, Integer flags, Symbol name, Location name_loc, Prism::node value, Location location) -> void
2540
- def copy: (?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?location: Location) -> OptionalKeywordParameterNode
2541
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, value: Prism::node, location: Location }
2542
- def repeated_parameter?: () -> bool
2572
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value) -> void
2573
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node) -> OptionalKeywordParameterNode
2574
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node }
2543
2575
  def type: () -> :optional_keyword_parameter_node
2544
2576
  | ...
2545
2577
  def self.type: () -> :optional_keyword_parameter_node
@@ -2553,16 +2585,16 @@ module Prism
2553
2585
  class OptionalParameterNode < Node
2554
2586
  include _Node
2555
2587
 
2556
- attr_reader flags: Integer
2588
+ def repeated_parameter?: () -> bool
2589
+
2557
2590
  attr_reader name: Symbol
2558
2591
  attr_reader name_loc: Location
2559
2592
  attr_reader operator_loc: Location
2560
2593
  attr_reader value: Prism::node
2561
2594
 
2562
- def initialize: (Source source, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void
2563
- def copy: (?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> OptionalParameterNode
2564
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location }
2565
- def repeated_parameter?: () -> bool
2595
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
2596
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> OptionalParameterNode
2597
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
2566
2598
  def operator: () -> String
2567
2599
  def type: () -> :optional_parameter_node
2568
2600
  | ...
@@ -2580,9 +2612,9 @@ module Prism
2580
2612
  attr_reader right: Prism::node
2581
2613
  attr_reader operator_loc: Location
2582
2614
 
2583
- def initialize: (Source source, Prism::node left, Prism::node right, Location operator_loc, Location location) -> void
2584
- def copy: (?left: Prism::node, ?right: Prism::node, ?operator_loc: Location, ?location: Location) -> OrNode
2585
- def deconstruct_keys: (Array[Symbol] keys) -> { left: Prism::node, right: Prism::node, operator_loc: Location, location: Location }
2615
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node left, Prism::node right, Location operator_loc) -> void
2616
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> OrNode
2617
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node, right: Prism::node, operator_loc: Location }
2586
2618
  def operator: () -> String
2587
2619
  def type: () -> :or_node
2588
2620
  | ...
@@ -2605,9 +2637,9 @@ module Prism
2605
2637
  attr_reader keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil
2606
2638
  attr_reader block: BlockParameterNode?
2607
2639
 
2608
- def initialize: (Source source, Array[RequiredParameterNode | MultiTargetNode] requireds, Array[OptionalParameterNode] optionals, RestParameterNode | ImplicitRestNode | nil rest, Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode] posts, Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode] keywords, KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil keyword_rest, BlockParameterNode? block, Location location) -> void
2609
- def copy: (?requireds: Array[RequiredParameterNode | MultiTargetNode], ?optionals: Array[OptionalParameterNode], ?rest: RestParameterNode | ImplicitRestNode | nil, ?posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode], ?keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], ?keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, ?block: BlockParameterNode?, ?location: Location) -> ParametersNode
2610
- def deconstruct_keys: (Array[Symbol] keys) -> { requireds: Array[RequiredParameterNode | MultiTargetNode], optionals: Array[OptionalParameterNode], rest: RestParameterNode | ImplicitRestNode | nil, posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode], keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, block: BlockParameterNode?, location: Location }
2640
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[RequiredParameterNode | MultiTargetNode] requireds, Array[OptionalParameterNode] optionals, RestParameterNode | ImplicitRestNode | nil rest, Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode] posts, Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode] keywords, KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil keyword_rest, BlockParameterNode? block) -> void
2641
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?requireds: Array[RequiredParameterNode | MultiTargetNode], ?optionals: Array[OptionalParameterNode], ?rest: RestParameterNode | ImplicitRestNode | nil, ?posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode], ?keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], ?keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, ?block: BlockParameterNode?) -> ParametersNode
2642
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, requireds: Array[RequiredParameterNode | MultiTargetNode], optionals: Array[OptionalParameterNode], rest: RestParameterNode | ImplicitRestNode | nil, posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode], keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, block: BlockParameterNode? }
2611
2643
  def type: () -> :parameters_node
2612
2644
  | ...
2613
2645
  def self.type: () -> :parameters_node
@@ -2624,9 +2656,9 @@ module Prism
2624
2656
  attr_reader opening_loc: Location
2625
2657
  attr_reader closing_loc: Location
2626
2658
 
2627
- def initialize: (Source source, Prism::node? body, Location opening_loc, Location closing_loc, Location location) -> void
2628
- def copy: (?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> ParenthesesNode
2629
- def deconstruct_keys: (Array[Symbol] keys) -> { body: Prism::node?, opening_loc: Location, closing_loc: Location, location: Location }
2659
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? body, Location opening_loc, Location closing_loc) -> void
2660
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location) -> ParenthesesNode
2661
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, body: Prism::node?, opening_loc: Location, closing_loc: Location }
2630
2662
  def opening: () -> String
2631
2663
  def closing: () -> String
2632
2664
  def type: () -> :parentheses_node
@@ -2646,9 +2678,9 @@ module Prism
2646
2678
  attr_reader lparen_loc: Location
2647
2679
  attr_reader rparen_loc: Location
2648
2680
 
2649
- def initialize: (Source source, Prism::node expression, Location operator_loc, Location lparen_loc, Location rparen_loc, Location location) -> void
2650
- def copy: (?expression: Prism::node, ?operator_loc: Location, ?lparen_loc: Location, ?rparen_loc: Location, ?location: Location) -> PinnedExpressionNode
2651
- def deconstruct_keys: (Array[Symbol] keys) -> { expression: Prism::node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location, location: Location }
2681
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node expression, Location operator_loc, Location lparen_loc, Location rparen_loc) -> void
2682
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?operator_loc: Location, ?lparen_loc: Location, ?rparen_loc: Location) -> PinnedExpressionNode
2683
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location }
2652
2684
  def operator: () -> String
2653
2685
  def lparen: () -> String
2654
2686
  def rparen: () -> String
@@ -2664,12 +2696,12 @@ module Prism
2664
2696
  class PinnedVariableNode < Node
2665
2697
  include _Node
2666
2698
 
2667
- attr_reader variable: Prism::node
2699
+ attr_reader variable: LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode
2668
2700
  attr_reader operator_loc: Location
2669
2701
 
2670
- def initialize: (Source source, Prism::node variable, Location operator_loc, Location location) -> void
2671
- def copy: (?variable: Prism::node, ?operator_loc: Location, ?location: Location) -> PinnedVariableNode
2672
- def deconstruct_keys: (Array[Symbol] keys) -> { variable: Prism::node, operator_loc: Location, location: Location }
2702
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode variable, Location operator_loc) -> void
2703
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?variable: LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode, ?operator_loc: Location) -> PinnedVariableNode
2704
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, variable: LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode, operator_loc: Location }
2673
2705
  def operator: () -> String
2674
2706
  def type: () -> :pinned_variable_node
2675
2707
  | ...
@@ -2688,9 +2720,9 @@ module Prism
2688
2720
  attr_reader opening_loc: Location
2689
2721
  attr_reader closing_loc: Location
2690
2722
 
2691
- def initialize: (Source source, StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc, Location location) -> void
2692
- def copy: (?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> PostExecutionNode
2693
- def deconstruct_keys: (Array[Symbol] keys) -> { statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location, location: Location }
2723
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc) -> void
2724
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PostExecutionNode
2725
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location }
2694
2726
  def keyword: () -> String
2695
2727
  def opening: () -> String
2696
2728
  def closing: () -> String
@@ -2711,9 +2743,9 @@ module Prism
2711
2743
  attr_reader opening_loc: Location
2712
2744
  attr_reader closing_loc: Location
2713
2745
 
2714
- def initialize: (Source source, StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc, Location location) -> void
2715
- def copy: (?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> PreExecutionNode
2716
- def deconstruct_keys: (Array[Symbol] keys) -> { statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location, location: Location }
2746
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc) -> void
2747
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PreExecutionNode
2748
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location }
2717
2749
  def keyword: () -> String
2718
2750
  def opening: () -> String
2719
2751
  def closing: () -> String
@@ -2729,9 +2761,9 @@ module Prism
2729
2761
  attr_reader locals: Array[Symbol]
2730
2762
  attr_reader statements: StatementsNode
2731
2763
 
2732
- def initialize: (Source source, Array[Symbol] locals, StatementsNode statements, Location location) -> void
2733
- def copy: (?locals: Array[Symbol], ?statements: StatementsNode, ?location: Location) -> ProgramNode
2734
- def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], statements: StatementsNode, location: Location }
2764
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Symbol] locals, StatementsNode statements) -> void
2765
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?statements: StatementsNode) -> ProgramNode
2766
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], statements: StatementsNode }
2735
2767
  def type: () -> :program_node
2736
2768
  | ...
2737
2769
  def self.type: () -> :program_node
@@ -2747,15 +2779,15 @@ module Prism
2747
2779
  class RangeNode < Node
2748
2780
  include _Node
2749
2781
 
2750
- attr_reader flags: Integer
2782
+ def exclude_end?: () -> bool
2783
+
2751
2784
  attr_reader left: Prism::node?
2752
2785
  attr_reader right: Prism::node?
2753
2786
  attr_reader operator_loc: Location
2754
2787
 
2755
- def initialize: (Source source, Integer flags, Prism::node? left, Prism::node? right, Location operator_loc, Location location) -> void
2756
- def copy: (?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location, ?location: Location) -> RangeNode
2757
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, left: Prism::node?, right: Prism::node?, operator_loc: Location, location: Location }
2758
- def exclude_end?: () -> bool
2788
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? left, Prism::node? right, Location operator_loc) -> void
2789
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> RangeNode
2790
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node?, right: Prism::node?, operator_loc: Location }
2759
2791
  def operator: () -> String
2760
2792
  def type: () -> :range_node
2761
2793
  | ...
@@ -2769,11 +2801,17 @@ module Prism
2769
2801
  class RationalNode < Node
2770
2802
  include _Node
2771
2803
 
2772
- attr_reader numeric: Prism::node
2804
+ def binary?: () -> bool
2805
+ def decimal?: () -> bool
2806
+ def octal?: () -> bool
2807
+ def hexadecimal?: () -> bool
2808
+
2809
+ attr_reader numerator: Integer
2810
+ attr_reader denominator: Integer
2773
2811
 
2774
- def initialize: (Source source, Prism::node numeric, Location location) -> void
2775
- def copy: (?numeric: Prism::node, ?location: Location) -> RationalNode
2776
- def deconstruct_keys: (Array[Symbol] keys) -> { numeric: Prism::node, location: Location }
2812
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer numerator, Integer denominator) -> void
2813
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?numerator: Integer, ?denominator: Integer) -> RationalNode
2814
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, numerator: Integer, denominator: Integer }
2777
2815
  def type: () -> :rational_node
2778
2816
  | ...
2779
2817
  def self.type: () -> :rational_node
@@ -2787,9 +2825,9 @@ module Prism
2787
2825
  include _Node
2788
2826
 
2789
2827
 
2790
- def initialize: (Source source, Location location) -> void
2791
- def copy: (?location: Location) -> RedoNode
2792
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2828
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2829
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> RedoNode
2830
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2793
2831
  def type: () -> :redo_node
2794
2832
  | ...
2795
2833
  def self.type: () -> :redo_node
@@ -2802,15 +2840,6 @@ module Prism
2802
2840
  class RegularExpressionNode < Node
2803
2841
  include _Node
2804
2842
 
2805
- attr_reader flags: Integer
2806
- attr_reader opening_loc: Location
2807
- attr_reader content_loc: Location
2808
- attr_reader closing_loc: Location
2809
- attr_reader unescaped: String
2810
-
2811
- def initialize: (Source source, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, Location location) -> void
2812
- def copy: (?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String, ?location: Location) -> RegularExpressionNode
2813
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location }
2814
2843
  def ignore_case?: () -> bool
2815
2844
  def extended?: () -> bool
2816
2845
  def multi_line?: () -> bool
@@ -2822,6 +2851,15 @@ module Prism
2822
2851
  def forced_utf8_encoding?: () -> bool
2823
2852
  def forced_binary_encoding?: () -> bool
2824
2853
  def forced_us_ascii_encoding?: () -> bool
2854
+
2855
+ attr_reader opening_loc: Location
2856
+ attr_reader content_loc: Location
2857
+ attr_reader closing_loc: Location
2858
+ attr_reader unescaped: String
2859
+
2860
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped) -> void
2861
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> RegularExpressionNode
2862
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
2825
2863
  def opening: () -> String
2826
2864
  def content: () -> String
2827
2865
  def closing: () -> String
@@ -2838,14 +2876,14 @@ module Prism
2838
2876
  class RequiredKeywordParameterNode < Node
2839
2877
  include _Node
2840
2878
 
2841
- attr_reader flags: Integer
2879
+ def repeated_parameter?: () -> bool
2880
+
2842
2881
  attr_reader name: Symbol
2843
2882
  attr_reader name_loc: Location
2844
2883
 
2845
- def initialize: (Source source, Integer flags, Symbol name, Location name_loc, Location location) -> void
2846
- def copy: (?flags: Integer, ?name: Symbol, ?name_loc: Location, ?location: Location) -> RequiredKeywordParameterNode
2847
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, location: Location }
2848
- def repeated_parameter?: () -> bool
2884
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc) -> void
2885
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location) -> RequiredKeywordParameterNode
2886
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location }
2849
2887
  def type: () -> :required_keyword_parameter_node
2850
2888
  | ...
2851
2889
  def self.type: () -> :required_keyword_parameter_node
@@ -2859,13 +2897,13 @@ module Prism
2859
2897
  class RequiredParameterNode < Node
2860
2898
  include _Node
2861
2899
 
2862
- attr_reader flags: Integer
2900
+ def repeated_parameter?: () -> bool
2901
+
2863
2902
  attr_reader name: Symbol
2864
2903
 
2865
- def initialize: (Source source, Integer flags, Symbol name, Location location) -> void
2866
- def copy: (?flags: Integer, ?name: Symbol, ?location: Location) -> RequiredParameterNode
2867
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, location: Location }
2868
- def repeated_parameter?: () -> bool
2904
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
2905
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> RequiredParameterNode
2906
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
2869
2907
  def type: () -> :required_parameter_node
2870
2908
  | ...
2871
2909
  def self.type: () -> :required_parameter_node
@@ -2882,9 +2920,9 @@ module Prism
2882
2920
  attr_reader keyword_loc: Location
2883
2921
  attr_reader rescue_expression: Prism::node
2884
2922
 
2885
- def initialize: (Source source, Prism::node expression, Location keyword_loc, Prism::node rescue_expression, Location location) -> void
2886
- def copy: (?expression: Prism::node, ?keyword_loc: Location, ?rescue_expression: Prism::node, ?location: Location) -> RescueModifierNode
2887
- def deconstruct_keys: (Array[Symbol] keys) -> { expression: Prism::node, keyword_loc: Location, rescue_expression: Prism::node, location: Location }
2923
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node expression, Location keyword_loc, Prism::node rescue_expression) -> void
2924
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?keyword_loc: Location, ?rescue_expression: Prism::node) -> RescueModifierNode
2925
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node, keyword_loc: Location, rescue_expression: Prism::node }
2888
2926
  def keyword: () -> String
2889
2927
  def type: () -> :rescue_modifier_node
2890
2928
  | ...
@@ -2899,20 +2937,20 @@ module Prism
2899
2937
  # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2900
2938
  # end
2901
2939
  #
2902
- # `Foo, *splat, Bar` are in the `exceptions` field. `ex` is in the `exception` field.
2940
+ # `Foo, *splat, Bar` are in the `exceptions` field. `ex` is in the `reference` field.
2903
2941
  class RescueNode < Node
2904
2942
  include _Node
2905
2943
 
2906
2944
  attr_reader keyword_loc: Location
2907
2945
  attr_reader exceptions: Array[Prism::node]
2908
2946
  attr_reader operator_loc: Location?
2909
- attr_reader reference: Prism::node?
2947
+ attr_reader reference: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode | nil
2910
2948
  attr_reader statements: StatementsNode?
2911
- attr_reader consequent: RescueNode?
2949
+ attr_reader subsequent: RescueNode?
2912
2950
 
2913
- def initialize: (Source source, Location keyword_loc, Array[Prism::node] exceptions, Location? operator_loc, Prism::node? reference, StatementsNode? statements, RescueNode? consequent, Location location) -> void
2914
- def copy: (?keyword_loc: Location, ?exceptions: Array[Prism::node], ?operator_loc: Location?, ?reference: Prism::node?, ?statements: StatementsNode?, ?consequent: RescueNode?, ?location: Location) -> RescueNode
2915
- def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, exceptions: Array[Prism::node], operator_loc: Location?, reference: Prism::node?, statements: StatementsNode?, consequent: RescueNode?, location: Location }
2951
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Array[Prism::node] exceptions, Location? operator_loc, LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode | nil reference, StatementsNode? statements, RescueNode? subsequent) -> void
2952
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?exceptions: Array[Prism::node], ?operator_loc: Location?, ?reference: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode | nil, ?statements: StatementsNode?, ?subsequent: RescueNode?) -> RescueNode
2953
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, exceptions: Array[Prism::node], operator_loc: Location?, reference: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode | nil, statements: StatementsNode?, subsequent: RescueNode? }
2916
2954
  def keyword: () -> String
2917
2955
  def operator: () -> String?
2918
2956
  def type: () -> :rescue_node
@@ -2928,15 +2966,15 @@ module Prism
2928
2966
  class RestParameterNode < Node
2929
2967
  include _Node
2930
2968
 
2931
- attr_reader flags: Integer
2969
+ def repeated_parameter?: () -> bool
2970
+
2932
2971
  attr_reader name: Symbol?
2933
2972
  attr_reader name_loc: Location?
2934
2973
  attr_reader operator_loc: Location
2935
2974
 
2936
- def initialize: (Source source, Integer flags, Symbol? name, Location? name_loc, Location operator_loc, Location location) -> void
2937
- def copy: (?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location, ?location: Location) -> RestParameterNode
2938
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location }
2939
- def repeated_parameter?: () -> bool
2975
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol? name, Location? name_loc, Location operator_loc) -> void
2976
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> RestParameterNode
2977
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
2940
2978
  def operator: () -> String
2941
2979
  def type: () -> :rest_parameter_node
2942
2980
  | ...
@@ -2951,9 +2989,9 @@ module Prism
2951
2989
  include _Node
2952
2990
 
2953
2991
 
2954
- def initialize: (Source source, Location location) -> void
2955
- def copy: (?location: Location) -> RetryNode
2956
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2992
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2993
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> RetryNode
2994
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2957
2995
  def type: () -> :retry_node
2958
2996
  | ...
2959
2997
  def self.type: () -> :retry_node
@@ -2966,14 +3004,12 @@ module Prism
2966
3004
  class ReturnNode < Node
2967
3005
  include _Node
2968
3006
 
2969
- attr_reader flags: Integer
2970
3007
  attr_reader keyword_loc: Location
2971
3008
  attr_reader arguments: ArgumentsNode?
2972
3009
 
2973
- def initialize: (Source source, Integer flags, Location keyword_loc, ArgumentsNode? arguments, Location location) -> void
2974
- def copy: (?flags: Integer, ?keyword_loc: Location, ?arguments: ArgumentsNode?, ?location: Location) -> ReturnNode
2975
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, arguments: ArgumentsNode?, location: Location }
2976
- def redundant?: () -> bool
3010
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, ArgumentsNode? arguments) -> void
3011
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?arguments: ArgumentsNode?) -> ReturnNode
3012
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, arguments: ArgumentsNode? }
2977
3013
  def keyword: () -> String
2978
3014
  def type: () -> :return_node
2979
3015
  | ...
@@ -2988,9 +3024,9 @@ module Prism
2988
3024
  include _Node
2989
3025
 
2990
3026
 
2991
- def initialize: (Source source, Location location) -> void
2992
- def copy: (?location: Location) -> SelfNode
2993
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3027
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3028
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SelfNode
3029
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2994
3030
  def type: () -> :self_node
2995
3031
  | ...
2996
3032
  def self.type: () -> :self_node
@@ -3004,15 +3040,15 @@ module Prism
3004
3040
  class ShareableConstantNode < Node
3005
3041
  include _Node
3006
3042
 
3007
- attr_reader flags: Integer
3008
- attr_reader write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode
3009
-
3010
- def initialize: (Source source, Integer flags, ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode write, Location location) -> void
3011
- def copy: (?flags: Integer, ?write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode, ?location: Location) -> ShareableConstantNode
3012
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode, location: Location }
3013
3043
  def literal?: () -> bool
3014
3044
  def experimental_everything?: () -> bool
3015
3045
  def experimental_copy?: () -> bool
3046
+
3047
+ attr_reader write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode
3048
+
3049
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode write) -> void
3050
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode) -> ShareableConstantNode
3051
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode }
3016
3052
  def type: () -> :shareable_constant_node
3017
3053
  | ...
3018
3054
  def self.type: () -> :shareable_constant_node
@@ -3029,12 +3065,12 @@ module Prism
3029
3065
  attr_reader class_keyword_loc: Location
3030
3066
  attr_reader operator_loc: Location
3031
3067
  attr_reader expression: Prism::node
3032
- attr_reader body: Prism::node?
3068
+ attr_reader body: StatementsNode | BeginNode | nil
3033
3069
  attr_reader end_keyword_loc: Location
3034
3070
 
3035
- def initialize: (Source source, Array[Symbol] locals, Location class_keyword_loc, Location operator_loc, Prism::node expression, Prism::node? body, Location end_keyword_loc, Location location) -> void
3036
- def copy: (?locals: Array[Symbol], ?class_keyword_loc: Location, ?operator_loc: Location, ?expression: Prism::node, ?body: Prism::node?, ?end_keyword_loc: Location, ?location: Location) -> SingletonClassNode
3037
- def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Prism::node, body: Prism::node?, end_keyword_loc: Location, location: Location }
3071
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Symbol] locals, Location class_keyword_loc, Location operator_loc, Prism::node expression, StatementsNode | BeginNode | nil body, Location end_keyword_loc) -> void
3072
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?class_keyword_loc: Location, ?operator_loc: Location, ?expression: Prism::node, ?body: StatementsNode | BeginNode | nil, ?end_keyword_loc: Location) -> SingletonClassNode
3073
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Prism::node, body: StatementsNode | BeginNode | nil, end_keyword_loc: Location }
3038
3074
  def class_keyword: () -> String
3039
3075
  def operator: () -> String
3040
3076
  def end_keyword: () -> String
@@ -3051,9 +3087,9 @@ module Prism
3051
3087
  include _Node
3052
3088
 
3053
3089
 
3054
- def initialize: (Source source, Location location) -> void
3055
- def copy: (?location: Location) -> SourceEncodingNode
3056
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3090
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3091
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceEncodingNode
3092
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
3057
3093
  def type: () -> :source_encoding_node
3058
3094
  | ...
3059
3095
  def self.type: () -> :source_encoding_node
@@ -3066,16 +3102,16 @@ module Prism
3066
3102
  class SourceFileNode < Node
3067
3103
  include _Node
3068
3104
 
3069
- attr_reader flags: Integer
3070
- attr_reader filepath: String
3071
-
3072
- def initialize: (Source source, Integer flags, String filepath, Location location) -> void
3073
- def copy: (?flags: Integer, ?filepath: String, ?location: Location) -> SourceFileNode
3074
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, filepath: String, location: Location }
3075
3105
  def forced_utf8_encoding?: () -> bool
3076
3106
  def forced_binary_encoding?: () -> bool
3077
3107
  def frozen?: () -> bool
3078
3108
  def mutable?: () -> bool
3109
+
3110
+ attr_reader filepath: String
3111
+
3112
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, String filepath) -> void
3113
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?filepath: String) -> SourceFileNode
3114
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, filepath: String }
3079
3115
  def type: () -> :source_file_node
3080
3116
  | ...
3081
3117
  def self.type: () -> :source_file_node
@@ -3089,9 +3125,9 @@ module Prism
3089
3125
  include _Node
3090
3126
 
3091
3127
 
3092
- def initialize: (Source source, Location location) -> void
3093
- def copy: (?location: Location) -> SourceLineNode
3094
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3128
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3129
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceLineNode
3130
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
3095
3131
  def type: () -> :source_line_node
3096
3132
  | ...
3097
3133
  def self.type: () -> :source_line_node
@@ -3107,9 +3143,9 @@ module Prism
3107
3143
  attr_reader operator_loc: Location
3108
3144
  attr_reader expression: Prism::node?
3109
3145
 
3110
- def initialize: (Source source, Location operator_loc, Prism::node? expression, Location location) -> void
3111
- def copy: (?operator_loc: Location, ?expression: Prism::node?, ?location: Location) -> SplatNode
3112
- def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, expression: Prism::node?, location: Location }
3146
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location operator_loc, Prism::node? expression) -> void
3147
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?expression: Prism::node?) -> SplatNode
3148
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, expression: Prism::node? }
3113
3149
  def operator: () -> String
3114
3150
  def type: () -> :splat_node
3115
3151
  | ...
@@ -3125,9 +3161,9 @@ module Prism
3125
3161
 
3126
3162
  attr_reader body: Array[Prism::node]
3127
3163
 
3128
- def initialize: (Source source, Array[Prism::node] body, Location location) -> void
3129
- def copy: (?body: Array[Prism::node], ?location: Location) -> StatementsNode
3130
- def deconstruct_keys: (Array[Symbol] keys) -> { body: Array[Prism::node], location: Location }
3164
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Prism::node] body) -> void
3165
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Array[Prism::node]) -> StatementsNode
3166
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, body: Array[Prism::node] }
3131
3167
  def type: () -> :statements_node
3132
3168
  | ...
3133
3169
  def self.type: () -> :statements_node
@@ -3146,19 +3182,19 @@ module Prism
3146
3182
  class StringNode < Node
3147
3183
  include _Node
3148
3184
 
3149
- attr_reader flags: Integer
3185
+ def forced_utf8_encoding?: () -> bool
3186
+ def forced_binary_encoding?: () -> bool
3187
+ def frozen?: () -> bool
3188
+ def mutable?: () -> bool
3189
+
3150
3190
  attr_reader opening_loc: Location?
3151
3191
  attr_reader content_loc: Location
3152
3192
  attr_reader closing_loc: Location?
3153
3193
  attr_reader unescaped: String
3154
3194
 
3155
- def initialize: (Source source, Integer flags, Location? opening_loc, Location content_loc, Location? closing_loc, String unescaped, Location location) -> void
3156
- def copy: (?flags: Integer, ?opening_loc: Location?, ?content_loc: Location, ?closing_loc: Location?, ?unescaped: String, ?location: Location) -> StringNode
3157
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location?, content_loc: Location, closing_loc: Location?, unescaped: String, location: Location }
3158
- def forced_utf8_encoding?: () -> bool
3159
- def forced_binary_encoding?: () -> bool
3160
- def frozen?: () -> bool
3161
- def mutable?: () -> bool
3195
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Location content_loc, Location? closing_loc, String unescaped) -> void
3196
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?content_loc: Location, ?closing_loc: Location?, ?unescaped: String) -> StringNode
3197
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, content_loc: Location, closing_loc: Location?, unescaped: String }
3162
3198
  def opening: () -> String?
3163
3199
  def content: () -> String
3164
3200
  def closing: () -> String?
@@ -3181,11 +3217,11 @@ module Prism
3181
3217
  attr_reader lparen_loc: Location?
3182
3218
  attr_reader arguments: ArgumentsNode?
3183
3219
  attr_reader rparen_loc: Location?
3184
- attr_reader block: Prism::node?
3220
+ attr_reader block: BlockNode | BlockArgumentNode | nil
3185
3221
 
3186
- def initialize: (Source source, Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, Prism::node? block, Location location) -> void
3187
- def copy: (?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?, ?block: Prism::node?, ?location: Location) -> SuperNode
3188
- def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, block: Prism::node?, location: Location }
3222
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, BlockNode | BlockArgumentNode | nil block) -> void
3223
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?, ?block: BlockNode | BlockArgumentNode | nil) -> SuperNode
3224
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, block: BlockNode | BlockArgumentNode | nil }
3189
3225
  def keyword: () -> String
3190
3226
  def lparen: () -> String?
3191
3227
  def rparen: () -> String?
@@ -3204,18 +3240,18 @@ module Prism
3204
3240
  class SymbolNode < Node
3205
3241
  include _Node
3206
3242
 
3207
- attr_reader flags: Integer
3243
+ def forced_utf8_encoding?: () -> bool
3244
+ def forced_binary_encoding?: () -> bool
3245
+ def forced_us_ascii_encoding?: () -> bool
3246
+
3208
3247
  attr_reader opening_loc: Location?
3209
3248
  attr_reader value_loc: Location?
3210
3249
  attr_reader closing_loc: Location?
3211
3250
  attr_reader unescaped: String
3212
3251
 
3213
- def initialize: (Source source, Integer flags, Location? opening_loc, Location? value_loc, Location? closing_loc, String unescaped, Location location) -> void
3214
- def copy: (?flags: Integer, ?opening_loc: Location?, ?value_loc: Location?, ?closing_loc: Location?, ?unescaped: String, ?location: Location) -> SymbolNode
3215
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location }
3216
- def forced_utf8_encoding?: () -> bool
3217
- def forced_binary_encoding?: () -> bool
3218
- def forced_us_ascii_encoding?: () -> bool
3252
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Location? value_loc, Location? closing_loc, String unescaped) -> void
3253
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?value_loc: Location?, ?closing_loc: Location?, ?unescaped: String) -> SymbolNode
3254
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String }
3219
3255
  def opening: () -> String?
3220
3256
  def value: () -> String?
3221
3257
  def closing: () -> String?
@@ -3232,9 +3268,9 @@ module Prism
3232
3268
  include _Node
3233
3269
 
3234
3270
 
3235
- def initialize: (Source source, Location location) -> void
3236
- def copy: (?location: Location) -> TrueNode
3237
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3271
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3272
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> TrueNode
3273
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
3238
3274
  def type: () -> :true_node
3239
3275
  | ...
3240
3276
  def self.type: () -> :true_node
@@ -3250,9 +3286,9 @@ module Prism
3250
3286
  attr_reader names: Array[SymbolNode | InterpolatedSymbolNode]
3251
3287
  attr_reader keyword_loc: Location
3252
3288
 
3253
- def initialize: (Source source, Array[SymbolNode | InterpolatedSymbolNode] names, Location keyword_loc, Location location) -> void
3254
- def copy: (?names: Array[SymbolNode | InterpolatedSymbolNode], ?keyword_loc: Location, ?location: Location) -> UndefNode
3255
- def deconstruct_keys: (Array[Symbol] keys) -> { names: Array[SymbolNode | InterpolatedSymbolNode], keyword_loc: Location, location: Location }
3289
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[SymbolNode | InterpolatedSymbolNode] names, Location keyword_loc) -> void
3290
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?names: Array[SymbolNode | InterpolatedSymbolNode], ?keyword_loc: Location) -> UndefNode
3291
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, names: Array[SymbolNode | InterpolatedSymbolNode], keyword_loc: Location }
3256
3292
  def keyword: () -> String
3257
3293
  def type: () -> :undef_node
3258
3294
  | ...
@@ -3273,12 +3309,12 @@ module Prism
3273
3309
  attr_reader predicate: Prism::node
3274
3310
  attr_reader then_keyword_loc: Location?
3275
3311
  attr_reader statements: StatementsNode?
3276
- attr_reader consequent: ElseNode?
3312
+ attr_reader else_clause: ElseNode?
3277
3313
  attr_reader end_keyword_loc: Location?
3278
3314
 
3279
- def initialize: (Source source, Location keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, ElseNode? consequent, Location? end_keyword_loc, Location location) -> void
3280
- def copy: (?keyword_loc: Location, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?consequent: ElseNode?, ?end_keyword_loc: Location?, ?location: Location) -> UnlessNode
3281
- def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: ElseNode?, end_keyword_loc: Location?, location: Location }
3315
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, ElseNode? else_clause, Location? end_keyword_loc) -> void
3316
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?else_clause: ElseNode?, ?end_keyword_loc: Location?) -> UnlessNode
3317
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, else_clause: ElseNode?, end_keyword_loc: Location? }
3282
3318
  def keyword: () -> String
3283
3319
  def then_keyword: () -> String?
3284
3320
  def end_keyword: () -> String?
@@ -3297,17 +3333,19 @@ module Prism
3297
3333
  class UntilNode < Node
3298
3334
  include _Node
3299
3335
 
3300
- attr_reader flags: Integer
3336
+ def begin_modifier?: () -> bool
3337
+
3301
3338
  attr_reader keyword_loc: Location
3339
+ attr_reader do_keyword_loc: Location?
3302
3340
  attr_reader closing_loc: Location?
3303
3341
  attr_reader predicate: Prism::node
3304
3342
  attr_reader statements: StatementsNode?
3305
3343
 
3306
- def initialize: (Source source, Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements, Location location) -> void
3307
- def copy: (?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?, ?location: Location) -> UntilNode
3308
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode?, location: Location }
3309
- def begin_modifier?: () -> bool
3344
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Location? do_keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements) -> void
3345
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?do_keyword_loc: Location?, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> UntilNode
3346
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, do_keyword_loc: Location?, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode? }
3310
3347
  def keyword: () -> String
3348
+ def do_keyword: () -> String?
3311
3349
  def closing: () -> String?
3312
3350
  def type: () -> :until_node
3313
3351
  | ...
@@ -3328,9 +3366,9 @@ module Prism
3328
3366
  attr_reader then_keyword_loc: Location?
3329
3367
  attr_reader statements: StatementsNode?
3330
3368
 
3331
- def initialize: (Source source, Location keyword_loc, Array[Prism::node] conditions, Location? then_keyword_loc, StatementsNode? statements, Location location) -> void
3332
- def copy: (?keyword_loc: Location, ?conditions: Array[Prism::node], ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?location: Location) -> WhenNode
3333
- def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, conditions: Array[Prism::node], then_keyword_loc: Location?, statements: StatementsNode?, location: Location }
3369
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Array[Prism::node] conditions, Location? then_keyword_loc, StatementsNode? statements) -> void
3370
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?conditions: Array[Prism::node], ?then_keyword_loc: Location?, ?statements: StatementsNode?) -> WhenNode
3371
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, conditions: Array[Prism::node], then_keyword_loc: Location?, statements: StatementsNode? }
3334
3372
  def keyword: () -> String
3335
3373
  def then_keyword: () -> String?
3336
3374
  def type: () -> :when_node
@@ -3348,17 +3386,19 @@ module Prism
3348
3386
  class WhileNode < Node
3349
3387
  include _Node
3350
3388
 
3351
- attr_reader flags: Integer
3389
+ def begin_modifier?: () -> bool
3390
+
3352
3391
  attr_reader keyword_loc: Location
3392
+ attr_reader do_keyword_loc: Location?
3353
3393
  attr_reader closing_loc: Location?
3354
3394
  attr_reader predicate: Prism::node
3355
3395
  attr_reader statements: StatementsNode?
3356
3396
 
3357
- def initialize: (Source source, Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements, Location location) -> void
3358
- def copy: (?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?, ?location: Location) -> WhileNode
3359
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode?, location: Location }
3360
- def begin_modifier?: () -> bool
3397
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Location? do_keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements) -> void
3398
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?do_keyword_loc: Location?, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> WhileNode
3399
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, do_keyword_loc: Location?, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode? }
3361
3400
  def keyword: () -> String
3401
+ def do_keyword: () -> String?
3362
3402
  def closing: () -> String?
3363
3403
  def type: () -> :while_node
3364
3404
  | ...
@@ -3372,17 +3412,17 @@ module Prism
3372
3412
  class XStringNode < Node
3373
3413
  include _Node
3374
3414
 
3375
- attr_reader flags: Integer
3415
+ def forced_utf8_encoding?: () -> bool
3416
+ def forced_binary_encoding?: () -> bool
3417
+
3376
3418
  attr_reader opening_loc: Location
3377
3419
  attr_reader content_loc: Location
3378
3420
  attr_reader closing_loc: Location
3379
3421
  attr_reader unescaped: String
3380
3422
 
3381
- def initialize: (Source source, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, Location location) -> void
3382
- def copy: (?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String, ?location: Location) -> XStringNode
3383
- def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location }
3384
- def forced_utf8_encoding?: () -> bool
3385
- def forced_binary_encoding?: () -> bool
3423
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped) -> void
3424
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> XStringNode
3425
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
3386
3426
  def opening: () -> String
3387
3427
  def content: () -> String
3388
3428
  def closing: () -> String
@@ -3403,9 +3443,9 @@ module Prism
3403
3443
  attr_reader arguments: ArgumentsNode?
3404
3444
  attr_reader rparen_loc: Location?
3405
3445
 
3406
- def initialize: (Source source, Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, Location location) -> void
3407
- def copy: (?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?, ?location: Location) -> YieldNode
3408
- def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, location: Location }
3446
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc) -> void
3447
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?) -> YieldNode
3448
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location? }
3409
3449
  def keyword: () -> String
3410
3450
  def lparen: () -> String?
3411
3451
  def rparen: () -> String?
@@ -3416,10 +3456,16 @@ module Prism
3416
3456
 
3417
3457
  # Flags for arguments nodes.
3418
3458
  module ArgumentsNodeFlags
3419
- # if arguments contain keywords
3459
+ # if the arguments contain forwarding
3460
+ CONTAINS_FORWARDING: Integer
3461
+ # if the arguments contain keywords
3420
3462
  CONTAINS_KEYWORDS: Integer
3421
- # if arguments contain keyword splat
3463
+ # if the arguments contain a keyword splat
3422
3464
  CONTAINS_KEYWORD_SPLAT: Integer
3465
+ # if the arguments contain a splat
3466
+ CONTAINS_SPLAT: Integer
3467
+ # if the arguments contain multiple splats
3468
+ CONTAINS_MULTIPLE_SPLATS: Integer
3423
3469
  end
3424
3470
 
3425
3471
  # Flags for array nodes.
@@ -3518,12 +3564,6 @@ module Prism
3518
3564
  FORCED_US_ASCII_ENCODING: Integer
3519
3565
  end
3520
3566
 
3521
- # Flags for return nodes.
3522
- module ReturnNodeFlags
3523
- # a return statement that is redundant because it is the last statement in a method
3524
- REDUNDANT: Integer
3525
- end
3526
-
3527
3567
  # Flags for shareable constant nodes.
3528
3568
  module ShareableConstantNodeFlags
3529
3569
  # constant writes that should be modified with shareable constant value literal
@@ -3555,4 +3595,10 @@ module Prism
3555
3595
  # internal bytes forced the encoding to US-ASCII
3556
3596
  FORCED_US_ASCII_ENCODING: Integer
3557
3597
  end
3598
+
3599
+ # The flags that are common to all nodes.
3600
+ module NodeFlags
3601
+ NEWLINE: Integer
3602
+ STATIC_LITERAL: Integer
3603
+ end
3558
3604
  end