prism 0.29.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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