prism 0.29.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +77 -1
  3. data/CONTRIBUTING.md +0 -4
  4. data/README.md +4 -0
  5. data/config.yml +498 -145
  6. data/docs/fuzzing.md +1 -1
  7. data/docs/parsing_rules.md +4 -1
  8. data/docs/ripper_translation.md +22 -0
  9. data/docs/serialization.md +3 -0
  10. data/ext/prism/api_node.c +2858 -2082
  11. data/ext/prism/extconf.rb +1 -1
  12. data/ext/prism/extension.c +203 -421
  13. data/ext/prism/extension.h +2 -2
  14. data/include/prism/ast.h +1732 -453
  15. data/include/prism/defines.h +36 -0
  16. data/include/prism/diagnostic.h +23 -6
  17. data/include/prism/node.h +0 -21
  18. data/include/prism/options.h +94 -3
  19. data/include/prism/parser.h +57 -28
  20. data/include/prism/regexp.h +18 -8
  21. data/include/prism/static_literals.h +3 -2
  22. data/include/prism/util/pm_char.h +1 -2
  23. data/include/prism/util/pm_constant_pool.h +0 -8
  24. data/include/prism/util/pm_integer.h +22 -15
  25. data/include/prism/util/pm_newline_list.h +11 -0
  26. data/include/prism/util/pm_string.h +28 -12
  27. data/include/prism/version.h +3 -3
  28. data/include/prism.h +0 -11
  29. data/lib/prism/compiler.rb +3 -0
  30. data/lib/prism/desugar_compiler.rb +111 -74
  31. data/lib/prism/dispatcher.rb +16 -1
  32. data/lib/prism/dot_visitor.rb +45 -34
  33. data/lib/prism/dsl.rb +660 -468
  34. data/lib/prism/ffi.rb +64 -6
  35. data/lib/prism/inspect_visitor.rb +294 -64
  36. data/lib/prism/lex_compat.rb +1 -1
  37. data/lib/prism/mutation_compiler.rb +11 -6
  38. data/lib/prism/node.rb +2469 -4973
  39. data/lib/prism/node_ext.rb +91 -14
  40. data/lib/prism/parse_result/comments.rb +0 -7
  41. data/lib/prism/parse_result/errors.rb +65 -0
  42. data/lib/prism/parse_result/newlines.rb +101 -11
  43. data/lib/prism/parse_result.rb +43 -3
  44. data/lib/prism/reflection.rb +10 -8
  45. data/lib/prism/serialize.rb +484 -609
  46. data/lib/prism/translation/parser/compiler.rb +152 -132
  47. data/lib/prism/translation/parser/lexer.rb +26 -4
  48. data/lib/prism/translation/parser.rb +9 -4
  49. data/lib/prism/translation/ripper.rb +22 -20
  50. data/lib/prism/translation/ruby_parser.rb +73 -13
  51. data/lib/prism/visitor.rb +3 -0
  52. data/lib/prism.rb +0 -4
  53. data/prism.gemspec +3 -5
  54. data/rbi/prism/dsl.rbi +521 -0
  55. data/rbi/prism/node.rbi +744 -4837
  56. data/rbi/prism/visitor.rbi +3 -0
  57. data/rbi/prism.rbi +36 -30
  58. data/sig/prism/dsl.rbs +190 -303
  59. data/sig/prism/mutation_compiler.rbs +1 -0
  60. data/sig/prism/node.rbs +759 -628
  61. data/sig/prism/parse_result.rbs +2 -0
  62. data/sig/prism/visitor.rbs +1 -0
  63. data/sig/prism.rbs +103 -64
  64. data/src/diagnostic.c +62 -28
  65. data/src/node.c +499 -1754
  66. data/src/options.c +76 -27
  67. data/src/prettyprint.c +156 -112
  68. data/src/prism.c +2773 -2081
  69. data/src/regexp.c +202 -69
  70. data/src/serialize.c +170 -50
  71. data/src/static_literals.c +63 -84
  72. data/src/token_type.c +4 -4
  73. data/src/util/pm_constant_pool.c +0 -8
  74. data/src/util/pm_integer.c +53 -25
  75. data/src/util/pm_newline_list.c +29 -0
  76. data/src/util/pm_string.c +130 -80
  77. data/src/util/pm_strpbrk.c +32 -6
  78. metadata +4 -6
  79. data/include/prism/util/pm_string_list.h +0 -44
  80. data/lib/prism/debug.rb +0 -249
  81. data/lib/prism/translation/parser/rubocop.rb +0 -73
  82. 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,21 @@ 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]
140
+ def contains_forwarding?: () -> bool
134
141
 
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 }
138
142
  def contains_keywords?: () -> bool
143
+
139
144
  def contains_keyword_splat?: () -> bool
145
+
146
+ def contains_splat?: () -> bool
147
+
148
+ def contains_multiple_splats?: () -> bool
149
+
150
+ attr_reader arguments: Array[Prism::node]
151
+
152
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Prism::node] arguments) -> void
153
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: Array[Prism::node]) -> ArgumentsNode
154
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: Array[Prism::node] }
140
155
  def type: () -> :arguments_node
141
156
  | ...
142
157
  def self.type: () -> :arguments_node
@@ -149,15 +164,15 @@ module Prism
149
164
  class ArrayNode < Node
150
165
  include _Node
151
166
 
152
- attr_reader flags: Integer
167
+ def contains_splat?: () -> bool
168
+
153
169
  attr_reader elements: Array[Prism::node]
154
170
  attr_reader opening_loc: Location?
155
171
  attr_reader closing_loc: Location?
156
172
 
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
173
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Prism::node] elements, Location? opening_loc, Location? closing_loc) -> void
174
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?) -> ArrayNode
175
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, elements: Array[Prism::node], opening_loc: Location?, closing_loc: Location? }
161
176
  def opening: () -> String?
162
177
  def closing: () -> String?
163
178
  def type: () -> :array_node
@@ -184,16 +199,16 @@ module Prism
184
199
  class ArrayPatternNode < Node
185
200
  include _Node
186
201
 
187
- attr_reader constant: Prism::node?
202
+ attr_reader constant: ConstantReadNode | ConstantPathNode | nil
188
203
  attr_reader requireds: Array[Prism::node]
189
204
  attr_reader rest: Prism::node?
190
205
  attr_reader posts: Array[Prism::node]
191
206
  attr_reader opening_loc: Location?
192
207
  attr_reader closing_loc: Location?
193
208
 
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 }
209
+ 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
210
+ 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
211
+ 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
212
  def opening: () -> String?
198
213
  def closing: () -> String?
199
214
  def type: () -> :array_pattern_node
@@ -212,9 +227,9 @@ module Prism
212
227
  attr_reader value: Prism::node
213
228
  attr_reader operator_loc: Location?
214
229
 
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 }
230
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node key, Prism::node value, Location? operator_loc) -> void
231
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?key: Prism::node, ?value: Prism::node, ?operator_loc: Location?) -> AssocNode
232
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, key: Prism::node, value: Prism::node, operator_loc: Location? }
218
233
  def operator: () -> String?
219
234
  def type: () -> :assoc_node
220
235
  | ...
@@ -231,9 +246,9 @@ module Prism
231
246
  attr_reader value: Prism::node?
232
247
  attr_reader operator_loc: Location
233
248
 
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 }
249
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? value, Location operator_loc) -> void
250
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node?, ?operator_loc: Location) -> AssocSplatNode
251
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node?, operator_loc: Location }
237
252
  def operator: () -> String
238
253
  def type: () -> :assoc_splat_node
239
254
  | ...
@@ -249,9 +264,9 @@ module Prism
249
264
 
250
265
  attr_reader name: Symbol
251
266
 
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 }
267
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
268
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BackReferenceReadNode
269
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
255
270
  def type: () -> :back_reference_read_node
256
271
  | ...
257
272
  def self.type: () -> :back_reference_read_node
@@ -273,9 +288,9 @@ module Prism
273
288
  attr_reader ensure_clause: EnsureNode?
274
289
  attr_reader end_keyword_loc: Location?
275
290
 
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 }
291
+ 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
292
+ 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
293
+ 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
294
  def begin_keyword: () -> String?
280
295
  def end_keyword: () -> String?
281
296
  def type: () -> :begin_node
@@ -283,7 +298,7 @@ module Prism
283
298
  def self.type: () -> :begin_node
284
299
  end
285
300
 
286
- # Represents block method arguments.
301
+ # Represents a block argument using `&`.
287
302
  #
288
303
  # bar(&args)
289
304
  # ^^^^^^^^^^
@@ -293,9 +308,9 @@ module Prism
293
308
  attr_reader expression: Prism::node?
294
309
  attr_reader operator_loc: Location
295
310
 
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 }
311
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? expression, Location operator_loc) -> void
312
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node?, ?operator_loc: Location) -> BlockArgumentNode
313
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node?, operator_loc: Location }
299
314
  def operator: () -> String
300
315
  def type: () -> :block_argument_node
301
316
  | ...
@@ -309,13 +324,13 @@ module Prism
309
324
  class BlockLocalVariableNode < Node
310
325
  include _Node
311
326
 
312
- attr_reader flags: Integer
327
+ def repeated_parameter?: () -> bool
328
+
313
329
  attr_reader name: Symbol
314
330
 
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
331
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
332
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BlockLocalVariableNode
333
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
319
334
  def type: () -> :block_local_variable_node
320
335
  | ...
321
336
  def self.type: () -> :block_local_variable_node
@@ -329,14 +344,14 @@ module Prism
329
344
  include _Node
330
345
 
331
346
  attr_reader locals: Array[Symbol]
332
- attr_reader parameters: Prism::node?
333
- attr_reader body: Prism::node?
347
+ attr_reader parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil
348
+ attr_reader body: StatementsNode | BeginNode | nil
334
349
  attr_reader opening_loc: Location
335
350
  attr_reader closing_loc: Location
336
351
 
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 }
352
+ 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
353
+ 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
354
+ 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
355
  def opening: () -> String
341
356
  def closing: () -> String
342
357
  def type: () -> :block_node
@@ -344,7 +359,7 @@ module Prism
344
359
  def self.type: () -> :block_node
345
360
  end
346
361
 
347
- # Represents a block parameter to a method, block, or lambda definition.
362
+ # Represents a block parameter of a method, block, or lambda definition.
348
363
  #
349
364
  # def a(&b)
350
365
  # ^^
@@ -352,15 +367,15 @@ module Prism
352
367
  class BlockParameterNode < Node
353
368
  include _Node
354
369
 
355
- attr_reader flags: Integer
370
+ def repeated_parameter?: () -> bool
371
+
356
372
  attr_reader name: Symbol?
357
373
  attr_reader name_loc: Location?
358
374
  attr_reader operator_loc: Location
359
375
 
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
376
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol? name, Location? name_loc, Location operator_loc) -> void
377
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> BlockParameterNode
378
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
364
379
  def operator: () -> String
365
380
  def type: () -> :block_parameter_node
366
381
  | ...
@@ -383,9 +398,9 @@ module Prism
383
398
  attr_reader opening_loc: Location?
384
399
  attr_reader closing_loc: Location?
385
400
 
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 }
401
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ParametersNode? parameters, Array[BlockLocalVariableNode] locals, Location? opening_loc, Location? closing_loc) -> void
402
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parameters: ParametersNode?, ?locals: Array[BlockLocalVariableNode], ?opening_loc: Location?, ?closing_loc: Location?) -> BlockParametersNode
403
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parameters: ParametersNode?, locals: Array[BlockLocalVariableNode], opening_loc: Location?, closing_loc: Location? }
389
404
  def opening: () -> String?
390
405
  def closing: () -> String?
391
406
  def type: () -> :block_parameters_node
@@ -403,9 +418,9 @@ module Prism
403
418
  attr_reader arguments: ArgumentsNode?
404
419
  attr_reader keyword_loc: Location
405
420
 
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 }
421
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ArgumentsNode? arguments, Location keyword_loc) -> void
422
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> BreakNode
423
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: ArgumentsNode?, keyword_loc: Location }
409
424
  def keyword: () -> String
410
425
  def type: () -> :break_node
411
426
  | ...
@@ -419,7 +434,14 @@ module Prism
419
434
  class CallAndWriteNode < Node
420
435
  include _Node
421
436
 
422
- attr_reader flags: Integer
437
+ def safe_navigation?: () -> bool
438
+
439
+ def variable_call?: () -> bool
440
+
441
+ def attribute_write?: () -> bool
442
+
443
+ def ignore_visibility?: () -> bool
444
+
423
445
  attr_reader receiver: Prism::node?
424
446
  attr_reader call_operator_loc: Location?
425
447
  attr_reader message_loc: Location?
@@ -428,13 +450,9 @@ module Prism
428
450
  attr_reader operator_loc: Location
429
451
  attr_reader value: Prism::node
430
452
 
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
453
+ 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
454
+ 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
455
+ 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
456
  def call_operator: () -> String?
439
457
  def message: () -> String?
440
458
  def operator: () -> String
@@ -465,7 +483,14 @@ module Prism
465
483
  class CallNode < Node
466
484
  include _Node
467
485
 
468
- attr_reader flags: Integer
486
+ def safe_navigation?: () -> bool
487
+
488
+ def variable_call?: () -> bool
489
+
490
+ def attribute_write?: () -> bool
491
+
492
+ def ignore_visibility?: () -> bool
493
+
469
494
  attr_reader receiver: Prism::node?
470
495
  attr_reader call_operator_loc: Location?
471
496
  attr_reader name: Symbol
@@ -473,15 +498,11 @@ module Prism
473
498
  attr_reader opening_loc: Location?
474
499
  attr_reader arguments: ArgumentsNode?
475
500
  attr_reader closing_loc: Location?
476
- attr_reader block: Prism::node?
501
+ attr_reader block: BlockNode | BlockArgumentNode | nil
477
502
 
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
503
+ 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
504
+ 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
505
+ 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
506
  def call_operator: () -> String?
486
507
  def message: () -> String?
487
508
  def opening: () -> String?
@@ -498,7 +519,14 @@ module Prism
498
519
  class CallOperatorWriteNode < Node
499
520
  include _Node
500
521
 
501
- attr_reader flags: Integer
522
+ def safe_navigation?: () -> bool
523
+
524
+ def variable_call?: () -> bool
525
+
526
+ def attribute_write?: () -> bool
527
+
528
+ def ignore_visibility?: () -> bool
529
+
502
530
  attr_reader receiver: Prism::node?
503
531
  attr_reader call_operator_loc: Location?
504
532
  attr_reader message_loc: Location?
@@ -508,13 +536,9 @@ module Prism
508
536
  attr_reader binary_operator_loc: Location
509
537
  attr_reader value: Prism::node
510
538
 
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
539
+ 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
540
+ 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
541
+ 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
542
  def call_operator: () -> String?
519
543
  def message: () -> String?
520
544
  def type: () -> :call_operator_write_node
@@ -529,7 +553,14 @@ module Prism
529
553
  class CallOrWriteNode < Node
530
554
  include _Node
531
555
 
532
- attr_reader flags: Integer
556
+ def safe_navigation?: () -> bool
557
+
558
+ def variable_call?: () -> bool
559
+
560
+ def attribute_write?: () -> bool
561
+
562
+ def ignore_visibility?: () -> bool
563
+
533
564
  attr_reader receiver: Prism::node?
534
565
  attr_reader call_operator_loc: Location?
535
566
  attr_reader message_loc: Location?
@@ -538,13 +569,9 @@ module Prism
538
569
  attr_reader operator_loc: Location
539
570
  attr_reader value: Prism::node
540
571
 
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
572
+ 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
573
+ 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
574
+ 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
575
  def call_operator: () -> String?
549
576
  def message: () -> String?
550
577
  def operator: () -> String
@@ -568,19 +595,22 @@ module Prism
568
595
  class CallTargetNode < Node
569
596
  include _Node
570
597
 
571
- attr_reader flags: Integer
598
+ def safe_navigation?: () -> bool
599
+
600
+ def variable_call?: () -> bool
601
+
602
+ def attribute_write?: () -> bool
603
+
604
+ def ignore_visibility?: () -> bool
605
+
572
606
  attr_reader receiver: Prism::node
573
607
  attr_reader call_operator_loc: Location
574
608
  attr_reader name: Symbol
575
609
  attr_reader message_loc: Location
576
610
 
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
611
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node receiver, Location call_operator_loc, Symbol name, Location message_loc) -> void
612
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location) -> CallTargetNode
613
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node, call_operator_loc: Location, name: Symbol, message_loc: Location }
584
614
  def call_operator: () -> String
585
615
  def message: () -> String
586
616
  def type: () -> :call_target_node
@@ -596,12 +626,12 @@ module Prism
596
626
  include _Node
597
627
 
598
628
  attr_reader value: Prism::node
599
- attr_reader target: Prism::node
629
+ attr_reader target: LocalVariableTargetNode
600
630
  attr_reader operator_loc: Location
601
631
 
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 }
632
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node value, LocalVariableTargetNode target, Location operator_loc) -> void
633
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?target: LocalVariableTargetNode, ?operator_loc: Location) -> CapturePatternNode
634
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, target: LocalVariableTargetNode, operator_loc: Location }
605
635
  def operator: () -> String
606
636
  def type: () -> :capture_pattern_node
607
637
  | ...
@@ -618,14 +648,14 @@ module Prism
618
648
  include _Node
619
649
 
620
650
  attr_reader predicate: Prism::node?
621
- attr_reader conditions: Array[Prism::node]
622
- attr_reader consequent: ElseNode?
651
+ attr_reader conditions: Array[InNode]
652
+ attr_reader else_clause: ElseNode?
623
653
  attr_reader case_keyword_loc: Location
624
654
  attr_reader end_keyword_loc: Location
625
655
 
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 }
656
+ 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
657
+ 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
658
+ 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
659
  def case_keyword: () -> String
630
660
  def end_keyword: () -> String
631
661
  def type: () -> :case_match_node
@@ -643,14 +673,14 @@ module Prism
643
673
  include _Node
644
674
 
645
675
  attr_reader predicate: Prism::node?
646
- attr_reader conditions: Array[Prism::node]
647
- attr_reader consequent: ElseNode?
676
+ attr_reader conditions: Array[WhenNode]
677
+ attr_reader else_clause: ElseNode?
648
678
  attr_reader case_keyword_loc: Location
649
679
  attr_reader end_keyword_loc: Location
650
680
 
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 }
681
+ 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
682
+ 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
683
+ 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
684
  def case_keyword: () -> String
655
685
  def end_keyword: () -> String
656
686
  def type: () -> :case_node
@@ -667,16 +697,16 @@ module Prism
667
697
 
668
698
  attr_reader locals: Array[Symbol]
669
699
  attr_reader class_keyword_loc: Location
670
- attr_reader constant_path: Prism::node
700
+ attr_reader constant_path: ConstantReadNode | ConstantPathNode | CallNode
671
701
  attr_reader inheritance_operator_loc: Location?
672
702
  attr_reader superclass: Prism::node?
673
- attr_reader body: Prism::node?
703
+ attr_reader body: StatementsNode | BeginNode | nil
674
704
  attr_reader end_keyword_loc: Location
675
705
  attr_reader name: Symbol
676
706
 
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 }
707
+ 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
708
+ 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
709
+ 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
710
  def class_keyword: () -> String
681
711
  def inheritance_operator: () -> String?
682
712
  def end_keyword: () -> String
@@ -697,9 +727,9 @@ module Prism
697
727
  attr_reader operator_loc: Location
698
728
  attr_reader value: Prism::node
699
729
 
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 }
730
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
731
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableAndWriteNode
732
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
703
733
  def operator: () -> String
704
734
  def type: () -> :class_variable_and_write_node
705
735
  | ...
@@ -719,9 +749,9 @@ module Prism
719
749
  attr_reader value: Prism::node
720
750
  attr_reader binary_operator: Symbol
721
751
 
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 }
752
+ 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
753
+ 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
754
+ 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
755
  def type: () -> :class_variable_operator_write_node
726
756
  | ...
727
757
  def self.type: () -> :class_variable_operator_write_node
@@ -739,9 +769,9 @@ module Prism
739
769
  attr_reader operator_loc: Location
740
770
  attr_reader value: Prism::node
741
771
 
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 }
772
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
773
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableOrWriteNode
774
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
745
775
  def operator: () -> String
746
776
  def type: () -> :class_variable_or_write_node
747
777
  | ...
@@ -757,9 +787,9 @@ module Prism
757
787
 
758
788
  attr_reader name: Symbol
759
789
 
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 }
790
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
791
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableReadNode
792
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
763
793
  def type: () -> :class_variable_read_node
764
794
  | ...
765
795
  def self.type: () -> :class_variable_read_node
@@ -774,9 +804,9 @@ module Prism
774
804
 
775
805
  attr_reader name: Symbol
776
806
 
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 }
807
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
808
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableTargetNode
809
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
780
810
  def type: () -> :class_variable_target_node
781
811
  | ...
782
812
  def self.type: () -> :class_variable_target_node
@@ -794,9 +824,9 @@ module Prism
794
824
  attr_reader value: Prism::node
795
825
  attr_reader operator_loc: Location
796
826
 
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 }
827
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
828
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ClassVariableWriteNode
829
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
800
830
  def operator: () -> String
801
831
  def type: () -> :class_variable_write_node
802
832
  | ...
@@ -815,9 +845,9 @@ module Prism
815
845
  attr_reader operator_loc: Location
816
846
  attr_reader value: Prism::node
817
847
 
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 }
848
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
849
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantAndWriteNode
850
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
821
851
  def operator: () -> String
822
852
  def type: () -> :constant_and_write_node
823
853
  | ...
@@ -837,9 +867,9 @@ module Prism
837
867
  attr_reader value: Prism::node
838
868
  attr_reader binary_operator: Symbol
839
869
 
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 }
870
+ 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
871
+ 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
872
+ 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
873
  def type: () -> :constant_operator_write_node
844
874
  | ...
845
875
  def self.type: () -> :constant_operator_write_node
@@ -857,9 +887,9 @@ module Prism
857
887
  attr_reader operator_loc: Location
858
888
  attr_reader value: Prism::node
859
889
 
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 }
890
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
891
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantOrWriteNode
892
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
863
893
  def operator: () -> String
864
894
  def type: () -> :constant_or_write_node
865
895
  | ...
@@ -877,9 +907,9 @@ module Prism
877
907
  attr_reader operator_loc: Location
878
908
  attr_reader value: Prism::node
879
909
 
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 }
910
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location operator_loc, Prism::node value) -> void
911
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathAndWriteNode
912
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
883
913
  def operator: () -> String
884
914
  def type: () -> :constant_path_and_write_node
885
915
  | ...
@@ -898,9 +928,9 @@ module Prism
898
928
  attr_reader delimiter_loc: Location
899
929
  attr_reader name_loc: Location
900
930
 
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 }
931
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc) -> void
932
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathNode
933
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location }
904
934
  def delimiter: () -> String
905
935
  def type: () -> :constant_path_node
906
936
  | ...
@@ -919,9 +949,9 @@ module Prism
919
949
  attr_reader value: Prism::node
920
950
  attr_reader binary_operator: Symbol
921
951
 
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 }
952
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location binary_operator_loc, Prism::node value, Symbol binary_operator) -> void
953
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ConstantPathOperatorWriteNode
954
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
925
955
  def type: () -> :constant_path_operator_write_node
926
956
  | ...
927
957
  def self.type: () -> :constant_path_operator_write_node
@@ -938,9 +968,9 @@ module Prism
938
968
  attr_reader operator_loc: Location
939
969
  attr_reader value: Prism::node
940
970
 
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 }
971
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location operator_loc, Prism::node value) -> void
972
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathOrWriteNode
973
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
944
974
  def operator: () -> String
945
975
  def type: () -> :constant_path_or_write_node
946
976
  | ...
@@ -959,9 +989,9 @@ module Prism
959
989
  attr_reader delimiter_loc: Location
960
990
  attr_reader name_loc: Location
961
991
 
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 }
992
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? parent, Symbol? name, Location delimiter_loc, Location name_loc) -> void
993
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathTargetNode
994
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location }
965
995
  def delimiter: () -> String
966
996
  def type: () -> :constant_path_target_node
967
997
  | ...
@@ -985,9 +1015,9 @@ module Prism
985
1015
  attr_reader operator_loc: Location
986
1016
  attr_reader value: Prism::node
987
1017
 
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 }
1018
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantPathNode target, Location operator_loc, Prism::node value) -> void
1019
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathWriteNode
1020
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
991
1021
  def operator: () -> String
992
1022
  def type: () -> :constant_path_write_node
993
1023
  | ...
@@ -1003,9 +1033,9 @@ module Prism
1003
1033
 
1004
1034
  attr_reader name: Symbol
1005
1035
 
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 }
1036
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1037
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantReadNode
1038
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1009
1039
  def type: () -> :constant_read_node
1010
1040
  | ...
1011
1041
  def self.type: () -> :constant_read_node
@@ -1020,9 +1050,9 @@ module Prism
1020
1050
 
1021
1051
  attr_reader name: Symbol
1022
1052
 
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 }
1053
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1054
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantTargetNode
1055
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1026
1056
  def type: () -> :constant_target_node
1027
1057
  | ...
1028
1058
  def self.type: () -> :constant_target_node
@@ -1040,9 +1070,9 @@ module Prism
1040
1070
  attr_reader value: Prism::node
1041
1071
  attr_reader operator_loc: Location
1042
1072
 
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 }
1073
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
1074
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ConstantWriteNode
1075
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
1046
1076
  def operator: () -> String
1047
1077
  def type: () -> :constant_write_node
1048
1078
  | ...
@@ -1061,7 +1091,7 @@ module Prism
1061
1091
  attr_reader name_loc: Location
1062
1092
  attr_reader receiver: Prism::node?
1063
1093
  attr_reader parameters: ParametersNode?
1064
- attr_reader body: Prism::node?
1094
+ attr_reader body: StatementsNode | BeginNode | nil
1065
1095
  attr_reader locals: Array[Symbol]
1066
1096
  attr_reader def_keyword_loc: Location
1067
1097
  attr_reader operator_loc: Location?
@@ -1070,9 +1100,9 @@ module Prism
1070
1100
  attr_reader equal_loc: Location?
1071
1101
  attr_reader end_keyword_loc: Location?
1072
1102
 
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 }
1103
+ 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
1104
+ 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
1105
+ 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
1106
  def def_keyword: () -> String
1077
1107
  def operator: () -> String?
1078
1108
  def lparen: () -> String?
@@ -1096,9 +1126,9 @@ module Prism
1096
1126
  attr_reader rparen_loc: Location?
1097
1127
  attr_reader keyword_loc: Location
1098
1128
 
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 }
1129
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? lparen_loc, Prism::node value, Location? rparen_loc, Location keyword_loc) -> void
1130
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?lparen_loc: Location?, ?value: Prism::node, ?rparen_loc: Location?, ?keyword_loc: Location) -> DefinedNode
1131
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, lparen_loc: Location?, value: Prism::node, rparen_loc: Location?, keyword_loc: Location }
1102
1132
  def lparen: () -> String?
1103
1133
  def rparen: () -> String?
1104
1134
  def keyword: () -> String
@@ -1118,9 +1148,9 @@ module Prism
1118
1148
  attr_reader statements: StatementsNode?
1119
1149
  attr_reader end_keyword_loc: Location?
1120
1150
 
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 }
1151
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location else_keyword_loc, StatementsNode? statements, Location? end_keyword_loc) -> void
1152
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?else_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location?) -> ElseNode
1153
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, else_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location? }
1124
1154
  def else_keyword: () -> String
1125
1155
  def end_keyword: () -> String?
1126
1156
  def type: () -> :else_node
@@ -1139,9 +1169,9 @@ module Prism
1139
1169
  attr_reader statements: StatementsNode?
1140
1170
  attr_reader closing_loc: Location
1141
1171
 
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 }
1172
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, StatementsNode? statements, Location closing_loc) -> void
1173
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?statements: StatementsNode?, ?closing_loc: Location) -> EmbeddedStatementsNode
1174
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, statements: StatementsNode?, closing_loc: Location }
1145
1175
  def opening: () -> String
1146
1176
  def closing: () -> String
1147
1177
  def type: () -> :embedded_statements_node
@@ -1157,11 +1187,11 @@ module Prism
1157
1187
  include _Node
1158
1188
 
1159
1189
  attr_reader operator_loc: Location
1160
- attr_reader variable: Prism::node
1190
+ attr_reader variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode
1161
1191
 
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 }
1192
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location operator_loc, InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode variable) -> void
1193
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode) -> EmbeddedVariableNode
1194
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, variable: InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode }
1165
1195
  def operator: () -> String
1166
1196
  def type: () -> :embedded_variable_node
1167
1197
  | ...
@@ -1183,9 +1213,9 @@ module Prism
1183
1213
  attr_reader statements: StatementsNode?
1184
1214
  attr_reader end_keyword_loc: Location
1185
1215
 
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 }
1216
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location ensure_keyword_loc, StatementsNode? statements, Location end_keyword_loc) -> void
1217
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?ensure_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location) -> EnsureNode
1218
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, ensure_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location }
1189
1219
  def ensure_keyword: () -> String
1190
1220
  def end_keyword: () -> String
1191
1221
  def type: () -> :ensure_node
@@ -1201,9 +1231,9 @@ module Prism
1201
1231
  include _Node
1202
1232
 
1203
1233
 
1204
- def initialize: (Source source, Location location) -> void
1205
- def copy: (?location: Location) -> FalseNode
1206
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1234
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1235
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> FalseNode
1236
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1207
1237
  def type: () -> :false_node
1208
1238
  | ...
1209
1239
  def self.type: () -> :false_node
@@ -1222,16 +1252,16 @@ module Prism
1222
1252
  class FindPatternNode < Node
1223
1253
  include _Node
1224
1254
 
1225
- attr_reader constant: Prism::node?
1226
- attr_reader left: Prism::node
1255
+ attr_reader constant: ConstantReadNode | ConstantPathNode | nil
1256
+ attr_reader left: SplatNode
1227
1257
  attr_reader requireds: Array[Prism::node]
1228
- attr_reader right: Prism::node
1258
+ attr_reader right: SplatNode | MissingNode
1229
1259
  attr_reader opening_loc: Location?
1230
1260
  attr_reader closing_loc: Location?
1231
1261
 
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 }
1262
+ 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
1263
+ 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
1264
+ 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
1265
  def opening: () -> String?
1236
1266
  def closing: () -> String?
1237
1267
  def type: () -> :find_pattern_node
@@ -1246,15 +1276,15 @@ module Prism
1246
1276
  class FlipFlopNode < Node
1247
1277
  include _Node
1248
1278
 
1249
- attr_reader flags: Integer
1279
+ def exclude_end?: () -> bool
1280
+
1250
1281
  attr_reader left: Prism::node?
1251
1282
  attr_reader right: Prism::node?
1252
1283
  attr_reader operator_loc: Location
1253
1284
 
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
1285
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? left, Prism::node? right, Location operator_loc) -> void
1286
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> FlipFlopNode
1287
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node?, right: Prism::node?, operator_loc: Location }
1258
1288
  def operator: () -> String
1259
1289
  def type: () -> :flip_flop_node
1260
1290
  | ...
@@ -1270,9 +1300,9 @@ module Prism
1270
1300
 
1271
1301
  attr_reader value: Float
1272
1302
 
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 }
1303
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Float value) -> void
1304
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Float) -> FloatNode
1305
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Float }
1276
1306
  def type: () -> :float_node
1277
1307
  | ...
1278
1308
  def self.type: () -> :float_node
@@ -1285,7 +1315,7 @@ module Prism
1285
1315
  class ForNode < Node
1286
1316
  include _Node
1287
1317
 
1288
- attr_reader index: Prism::node
1318
+ attr_reader index: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode
1289
1319
  attr_reader collection: Prism::node
1290
1320
  attr_reader statements: StatementsNode?
1291
1321
  attr_reader for_keyword_loc: Location
@@ -1293,9 +1323,9 @@ module Prism
1293
1323
  attr_reader do_keyword_loc: Location?
1294
1324
  attr_reader end_keyword_loc: Location
1295
1325
 
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 }
1326
+ 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
1327
+ 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
1328
+ 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
1329
  def for_keyword: () -> String
1300
1330
  def in_keyword: () -> String
1301
1331
  def do_keyword: () -> String?
@@ -1315,9 +1345,9 @@ module Prism
1315
1345
  include _Node
1316
1346
 
1317
1347
 
1318
- def initialize: (Source source, Location location) -> void
1319
- def copy: (?location: Location) -> ForwardingArgumentsNode
1320
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1348
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1349
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingArgumentsNode
1350
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1321
1351
  def type: () -> :forwarding_arguments_node
1322
1352
  | ...
1323
1353
  def self.type: () -> :forwarding_arguments_node
@@ -1332,9 +1362,9 @@ module Prism
1332
1362
  include _Node
1333
1363
 
1334
1364
 
1335
- def initialize: (Source source, Location location) -> void
1336
- def copy: (?location: Location) -> ForwardingParameterNode
1337
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1365
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1366
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingParameterNode
1367
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1338
1368
  def type: () -> :forwarding_parameter_node
1339
1369
  | ...
1340
1370
  def self.type: () -> :forwarding_parameter_node
@@ -1349,9 +1379,9 @@ module Prism
1349
1379
 
1350
1380
  attr_reader block: BlockNode?
1351
1381
 
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 }
1382
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, BlockNode? block) -> void
1383
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?block: BlockNode?) -> ForwardingSuperNode
1384
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, block: BlockNode? }
1355
1385
  def type: () -> :forwarding_super_node
1356
1386
  | ...
1357
1387
  def self.type: () -> :forwarding_super_node
@@ -1369,9 +1399,9 @@ module Prism
1369
1399
  attr_reader operator_loc: Location
1370
1400
  attr_reader value: Prism::node
1371
1401
 
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 }
1402
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1403
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableAndWriteNode
1404
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1375
1405
  def operator: () -> String
1376
1406
  def type: () -> :global_variable_and_write_node
1377
1407
  | ...
@@ -1391,9 +1421,9 @@ module Prism
1391
1421
  attr_reader value: Prism::node
1392
1422
  attr_reader binary_operator: Symbol
1393
1423
 
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 }
1424
+ 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
1425
+ 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
1426
+ 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
1427
  def type: () -> :global_variable_operator_write_node
1398
1428
  | ...
1399
1429
  def self.type: () -> :global_variable_operator_write_node
@@ -1411,9 +1441,9 @@ module Prism
1411
1441
  attr_reader operator_loc: Location
1412
1442
  attr_reader value: Prism::node
1413
1443
 
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 }
1444
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1445
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableOrWriteNode
1446
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1417
1447
  def operator: () -> String
1418
1448
  def type: () -> :global_variable_or_write_node
1419
1449
  | ...
@@ -1429,9 +1459,9 @@ module Prism
1429
1459
 
1430
1460
  attr_reader name: Symbol
1431
1461
 
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 }
1462
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1463
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableReadNode
1464
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1435
1465
  def type: () -> :global_variable_read_node
1436
1466
  | ...
1437
1467
  def self.type: () -> :global_variable_read_node
@@ -1446,9 +1476,9 @@ module Prism
1446
1476
 
1447
1477
  attr_reader name: Symbol
1448
1478
 
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 }
1479
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1480
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableTargetNode
1481
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1452
1482
  def type: () -> :global_variable_target_node
1453
1483
  | ...
1454
1484
  def self.type: () -> :global_variable_target_node
@@ -1466,9 +1496,9 @@ module Prism
1466
1496
  attr_reader value: Prism::node
1467
1497
  attr_reader operator_loc: Location
1468
1498
 
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 }
1499
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
1500
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> GlobalVariableWriteNode
1501
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
1472
1502
  def operator: () -> String
1473
1503
  def type: () -> :global_variable_write_node
1474
1504
  | ...
@@ -1486,9 +1516,9 @@ module Prism
1486
1516
  attr_reader elements: Array[AssocNode | AssocSplatNode]
1487
1517
  attr_reader closing_loc: Location
1488
1518
 
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 }
1519
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[AssocNode | AssocSplatNode] elements, Location closing_loc) -> void
1520
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?elements: Array[AssocNode | AssocSplatNode], ?closing_loc: Location) -> HashNode
1521
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, elements: Array[AssocNode | AssocSplatNode], closing_loc: Location }
1492
1522
  def opening: () -> String
1493
1523
  def closing: () -> String
1494
1524
  def type: () -> :hash_node
@@ -1506,15 +1536,15 @@ module Prism
1506
1536
  class HashPatternNode < Node
1507
1537
  include _Node
1508
1538
 
1509
- attr_reader constant: Prism::node?
1539
+ attr_reader constant: ConstantReadNode | ConstantPathNode | nil
1510
1540
  attr_reader elements: Array[AssocNode]
1511
1541
  attr_reader rest: AssocSplatNode | NoKeywordsParameterNode | nil
1512
1542
  attr_reader opening_loc: Location?
1513
1543
  attr_reader closing_loc: Location?
1514
1544
 
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 }
1545
+ 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
1546
+ 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
1547
+ 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
1548
  def opening: () -> String?
1519
1549
  def closing: () -> String?
1520
1550
  def type: () -> :hash_pattern_node
@@ -1539,12 +1569,12 @@ module Prism
1539
1569
  attr_reader predicate: Prism::node
1540
1570
  attr_reader then_keyword_loc: Location?
1541
1571
  attr_reader statements: StatementsNode?
1542
- attr_reader consequent: Prism::node?
1572
+ attr_reader subsequent: ElseNode | IfNode | nil
1543
1573
  attr_reader end_keyword_loc: Location?
1544
1574
 
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 }
1575
+ 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
1576
+ 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
1577
+ 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
1578
  def if_keyword: () -> String?
1549
1579
  def then_keyword: () -> String?
1550
1580
  def end_keyword: () -> String?
@@ -1562,9 +1592,9 @@ module Prism
1562
1592
 
1563
1593
  attr_reader numeric: FloatNode | IntegerNode | RationalNode
1564
1594
 
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 }
1595
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, FloatNode | IntegerNode | RationalNode numeric) -> void
1596
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?numeric: FloatNode | IntegerNode | RationalNode) -> ImaginaryNode
1597
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, numeric: FloatNode | IntegerNode | RationalNode }
1568
1598
  def type: () -> :imaginary_node
1569
1599
  | ...
1570
1600
  def self.type: () -> :imaginary_node
@@ -1583,11 +1613,11 @@ module Prism
1583
1613
  class ImplicitNode < Node
1584
1614
  include _Node
1585
1615
 
1586
- attr_reader value: Prism::node
1616
+ attr_reader value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode
1587
1617
 
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 }
1618
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode value) -> void
1619
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode) -> ImplicitNode
1620
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: LocalVariableReadNode | CallNode | ConstantReadNode | LocalVariableTargetNode }
1591
1621
  def type: () -> :implicit_node
1592
1622
  | ...
1593
1623
  def self.type: () -> :implicit_node
@@ -1610,9 +1640,9 @@ module Prism
1610
1640
  include _Node
1611
1641
 
1612
1642
 
1613
- def initialize: (Source source, Location location) -> void
1614
- def copy: (?location: Location) -> ImplicitRestNode
1615
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
1643
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
1644
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ImplicitRestNode
1645
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
1616
1646
  def type: () -> :implicit_rest_node
1617
1647
  | ...
1618
1648
  def self.type: () -> :implicit_rest_node
@@ -1630,9 +1660,9 @@ module Prism
1630
1660
  attr_reader in_loc: Location
1631
1661
  attr_reader then_loc: Location?
1632
1662
 
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 }
1663
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node pattern, StatementsNode? statements, Location in_loc, Location? then_loc) -> void
1664
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?pattern: Prism::node, ?statements: StatementsNode?, ?in_loc: Location, ?then_loc: Location?) -> InNode
1665
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, pattern: Prism::node, statements: StatementsNode?, in_loc: Location, then_loc: Location? }
1636
1666
  def in: () -> String
1637
1667
  def then: () -> String?
1638
1668
  def type: () -> :in_node
@@ -1647,23 +1677,26 @@ module Prism
1647
1677
  class IndexAndWriteNode < Node
1648
1678
  include _Node
1649
1679
 
1650
- attr_reader flags: Integer
1680
+ def safe_navigation?: () -> bool
1681
+
1682
+ def variable_call?: () -> bool
1683
+
1684
+ def attribute_write?: () -> bool
1685
+
1686
+ def ignore_visibility?: () -> bool
1687
+
1651
1688
  attr_reader receiver: Prism::node?
1652
1689
  attr_reader call_operator_loc: Location?
1653
1690
  attr_reader opening_loc: Location
1654
1691
  attr_reader arguments: ArgumentsNode?
1655
1692
  attr_reader closing_loc: Location
1656
- attr_reader block: Prism::node?
1693
+ attr_reader block: BlockArgumentNode?
1657
1694
  attr_reader operator_loc: Location
1658
1695
  attr_reader value: Prism::node
1659
1696
 
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
1697
+ 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
1698
+ 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
1699
+ 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
1700
  def call_operator: () -> String?
1668
1701
  def opening: () -> String
1669
1702
  def closing: () -> String
@@ -1680,24 +1713,27 @@ module Prism
1680
1713
  class IndexOperatorWriteNode < Node
1681
1714
  include _Node
1682
1715
 
1683
- attr_reader flags: Integer
1716
+ def safe_navigation?: () -> bool
1717
+
1718
+ def variable_call?: () -> bool
1719
+
1720
+ def attribute_write?: () -> bool
1721
+
1722
+ def ignore_visibility?: () -> bool
1723
+
1684
1724
  attr_reader receiver: Prism::node?
1685
1725
  attr_reader call_operator_loc: Location?
1686
1726
  attr_reader opening_loc: Location
1687
1727
  attr_reader arguments: ArgumentsNode?
1688
1728
  attr_reader closing_loc: Location
1689
- attr_reader block: Prism::node?
1729
+ attr_reader block: BlockArgumentNode?
1690
1730
  attr_reader binary_operator: Symbol
1691
1731
  attr_reader binary_operator_loc: Location
1692
1732
  attr_reader value: Prism::node
1693
1733
 
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
1734
+ 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
1735
+ 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
1736
+ 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
1737
  def call_operator: () -> String?
1702
1738
  def opening: () -> String
1703
1739
  def closing: () -> String
@@ -1713,23 +1749,26 @@ module Prism
1713
1749
  class IndexOrWriteNode < Node
1714
1750
  include _Node
1715
1751
 
1716
- attr_reader flags: Integer
1752
+ def safe_navigation?: () -> bool
1753
+
1754
+ def variable_call?: () -> bool
1755
+
1756
+ def attribute_write?: () -> bool
1757
+
1758
+ def ignore_visibility?: () -> bool
1759
+
1717
1760
  attr_reader receiver: Prism::node?
1718
1761
  attr_reader call_operator_loc: Location?
1719
1762
  attr_reader opening_loc: Location
1720
1763
  attr_reader arguments: ArgumentsNode?
1721
1764
  attr_reader closing_loc: Location
1722
- attr_reader block: Prism::node?
1765
+ attr_reader block: BlockArgumentNode?
1723
1766
  attr_reader operator_loc: Location
1724
1767
  attr_reader value: Prism::node
1725
1768
 
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
1769
+ 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
1770
+ 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
1771
+ 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
1772
  def call_operator: () -> String?
1734
1773
  def opening: () -> String
1735
1774
  def closing: () -> String
@@ -1754,20 +1793,23 @@ module Prism
1754
1793
  class IndexTargetNode < Node
1755
1794
  include _Node
1756
1795
 
1757
- attr_reader flags: Integer
1796
+ def safe_navigation?: () -> bool
1797
+
1798
+ def variable_call?: () -> bool
1799
+
1800
+ def attribute_write?: () -> bool
1801
+
1802
+ def ignore_visibility?: () -> bool
1803
+
1758
1804
  attr_reader receiver: Prism::node
1759
1805
  attr_reader opening_loc: Location
1760
1806
  attr_reader arguments: ArgumentsNode?
1761
1807
  attr_reader closing_loc: Location
1762
- attr_reader block: Prism::node?
1808
+ attr_reader block: BlockArgumentNode?
1763
1809
 
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
1810
+ 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
1811
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: BlockArgumentNode?) -> IndexTargetNode
1812
+ 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
1813
  def opening: () -> String
1772
1814
  def closing: () -> String
1773
1815
  def type: () -> :index_target_node
@@ -1787,9 +1829,9 @@ module Prism
1787
1829
  attr_reader operator_loc: Location
1788
1830
  attr_reader value: Prism::node
1789
1831
 
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 }
1832
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1833
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableAndWriteNode
1834
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1793
1835
  def operator: () -> String
1794
1836
  def type: () -> :instance_variable_and_write_node
1795
1837
  | ...
@@ -1809,9 +1851,9 @@ module Prism
1809
1851
  attr_reader value: Prism::node
1810
1852
  attr_reader binary_operator: Symbol
1811
1853
 
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 }
1854
+ 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
1855
+ 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
1856
+ 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
1857
  def type: () -> :instance_variable_operator_write_node
1816
1858
  | ...
1817
1859
  def self.type: () -> :instance_variable_operator_write_node
@@ -1829,9 +1871,9 @@ module Prism
1829
1871
  attr_reader operator_loc: Location
1830
1872
  attr_reader value: Prism::node
1831
1873
 
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 }
1874
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
1875
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableOrWriteNode
1876
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
1835
1877
  def operator: () -> String
1836
1878
  def type: () -> :instance_variable_or_write_node
1837
1879
  | ...
@@ -1847,9 +1889,9 @@ module Prism
1847
1889
 
1848
1890
  attr_reader name: Symbol
1849
1891
 
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 }
1892
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1893
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableReadNode
1894
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1853
1895
  def type: () -> :instance_variable_read_node
1854
1896
  | ...
1855
1897
  def self.type: () -> :instance_variable_read_node
@@ -1864,9 +1906,9 @@ module Prism
1864
1906
 
1865
1907
  attr_reader name: Symbol
1866
1908
 
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 }
1909
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
1910
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableTargetNode
1911
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
1870
1912
  def type: () -> :instance_variable_target_node
1871
1913
  | ...
1872
1914
  def self.type: () -> :instance_variable_target_node
@@ -1884,9 +1926,9 @@ module Prism
1884
1926
  attr_reader value: Prism::node
1885
1927
  attr_reader operator_loc: Location
1886
1928
 
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 }
1929
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value, Location operator_loc) -> void
1930
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> InstanceVariableWriteNode
1931
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
1890
1932
  def operator: () -> String
1891
1933
  def type: () -> :instance_variable_write_node
1892
1934
  | ...
@@ -1900,16 +1942,19 @@ module Prism
1900
1942
  class IntegerNode < Node
1901
1943
  include _Node
1902
1944
 
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
1945
  def binary?: () -> bool
1946
+
1910
1947
  def decimal?: () -> bool
1948
+
1911
1949
  def octal?: () -> bool
1950
+
1912
1951
  def hexadecimal?: () -> bool
1952
+
1953
+ attr_reader value: Integer
1954
+
1955
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer value) -> void
1956
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Integer) -> IntegerNode
1957
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Integer }
1913
1958
  def type: () -> :integer_node
1914
1959
  | ...
1915
1960
  def self.type: () -> :integer_node
@@ -1922,25 +1967,35 @@ module Prism
1922
1967
  class InterpolatedMatchLastLineNode < Node
1923
1968
  include _Node
1924
1969
 
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
1970
  def ignore_case?: () -> bool
1971
+
1934
1972
  def extended?: () -> bool
1973
+
1935
1974
  def multi_line?: () -> bool
1975
+
1936
1976
  def once?: () -> bool
1977
+
1937
1978
  def euc_jp?: () -> bool
1979
+
1938
1980
  def ascii_8bit?: () -> bool
1981
+
1939
1982
  def windows_31j?: () -> bool
1983
+
1940
1984
  def utf_8?: () -> bool
1985
+
1941
1986
  def forced_utf8_encoding?: () -> bool
1987
+
1942
1988
  def forced_binary_encoding?: () -> bool
1989
+
1943
1990
  def forced_us_ascii_encoding?: () -> bool
1991
+
1992
+ attr_reader opening_loc: Location
1993
+ attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
1994
+ attr_reader closing_loc: Location
1995
+
1996
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc) -> void
1997
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedMatchLastLineNode
1998
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
1944
1999
  def opening: () -> String
1945
2000
  def closing: () -> String
1946
2001
  def type: () -> :interpolated_match_last_line_node
@@ -1955,25 +2010,35 @@ module Prism
1955
2010
  class InterpolatedRegularExpressionNode < Node
1956
2011
  include _Node
1957
2012
 
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
2013
  def ignore_case?: () -> bool
2014
+
1967
2015
  def extended?: () -> bool
2016
+
1968
2017
  def multi_line?: () -> bool
2018
+
1969
2019
  def once?: () -> bool
2020
+
1970
2021
  def euc_jp?: () -> bool
2022
+
1971
2023
  def ascii_8bit?: () -> bool
2024
+
1972
2025
  def windows_31j?: () -> bool
2026
+
1973
2027
  def utf_8?: () -> bool
2028
+
1974
2029
  def forced_utf8_encoding?: () -> bool
2030
+
1975
2031
  def forced_binary_encoding?: () -> bool
2032
+
1976
2033
  def forced_us_ascii_encoding?: () -> bool
2034
+
2035
+ attr_reader opening_loc: Location
2036
+ attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
2037
+ attr_reader closing_loc: Location
2038
+
2039
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc) -> void
2040
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedRegularExpressionNode
2041
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
1977
2042
  def opening: () -> String
1978
2043
  def closing: () -> String
1979
2044
  def type: () -> :interpolated_regular_expression_node
@@ -1988,16 +2053,17 @@ module Prism
1988
2053
  class InterpolatedStringNode < Node
1989
2054
  include _Node
1990
2055
 
1991
- attr_reader flags: Integer
2056
+ def frozen?: () -> bool
2057
+
2058
+ def mutable?: () -> bool
2059
+
1992
2060
  attr_reader opening_loc: Location?
1993
2061
  attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode]
1994
2062
  attr_reader closing_loc: Location?
1995
2063
 
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
2064
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode] parts, Location? closing_loc) -> void
2065
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], ?closing_loc: Location?) -> InterpolatedStringNode
2066
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], closing_loc: Location? }
2001
2067
  def opening: () -> String?
2002
2068
  def closing: () -> String?
2003
2069
  def type: () -> :interpolated_string_node
@@ -2016,9 +2082,9 @@ module Prism
2016
2082
  attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
2017
2083
  attr_reader closing_loc: Location?
2018
2084
 
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 }
2085
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location? closing_loc) -> void
2086
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location?) -> InterpolatedSymbolNode
2087
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location? }
2022
2088
  def opening: () -> String?
2023
2089
  def closing: () -> String?
2024
2090
  def type: () -> :interpolated_symbol_node
@@ -2037,9 +2103,9 @@ module Prism
2037
2103
  attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
2038
2104
  attr_reader closing_loc: Location
2039
2105
 
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 }
2106
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc) -> void
2107
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedXStringNode
2108
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
2043
2109
  def opening: () -> String
2044
2110
  def closing: () -> String
2045
2111
  def type: () -> :interpolated_x_string_node
@@ -2047,6 +2113,22 @@ module Prism
2047
2113
  def self.type: () -> :interpolated_x_string_node
2048
2114
  end
2049
2115
 
2116
+ # Represents reading from the implicit `it` local variable.
2117
+ #
2118
+ # -> { it }
2119
+ # ^^
2120
+ class ItLocalVariableReadNode < Node
2121
+ include _Node
2122
+
2123
+
2124
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2125
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ItLocalVariableReadNode
2126
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2127
+ def type: () -> :it_local_variable_read_node
2128
+ | ...
2129
+ def self.type: () -> :it_local_variable_read_node
2130
+ end
2131
+
2050
2132
  # Represents an implicit set of parameters through the use of the `it` keyword within a block or lambda.
2051
2133
  #
2052
2134
  # -> { it + it }
@@ -2055,9 +2137,9 @@ module Prism
2055
2137
  include _Node
2056
2138
 
2057
2139
 
2058
- def initialize: (Source source, Location location) -> void
2059
- def copy: (?location: Location) -> ItParametersNode
2060
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2140
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2141
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ItParametersNode
2142
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2061
2143
  def type: () -> :it_parameters_node
2062
2144
  | ...
2063
2145
  def self.type: () -> :it_parameters_node
@@ -2070,13 +2152,13 @@ module Prism
2070
2152
  class KeywordHashNode < Node
2071
2153
  include _Node
2072
2154
 
2073
- attr_reader flags: Integer
2155
+ def symbol_keys?: () -> bool
2156
+
2074
2157
  attr_reader elements: Array[AssocNode | AssocSplatNode]
2075
2158
 
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
2159
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[AssocNode | AssocSplatNode] elements) -> void
2160
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[AssocNode | AssocSplatNode]) -> KeywordHashNode
2161
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, elements: Array[AssocNode | AssocSplatNode] }
2080
2162
  def type: () -> :keyword_hash_node
2081
2163
  | ...
2082
2164
  def self.type: () -> :keyword_hash_node
@@ -2090,15 +2172,15 @@ module Prism
2090
2172
  class KeywordRestParameterNode < Node
2091
2173
  include _Node
2092
2174
 
2093
- attr_reader flags: Integer
2175
+ def repeated_parameter?: () -> bool
2176
+
2094
2177
  attr_reader name: Symbol?
2095
2178
  attr_reader name_loc: Location?
2096
2179
  attr_reader operator_loc: Location
2097
2180
 
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
2181
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol? name, Location? name_loc, Location operator_loc) -> void
2182
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> KeywordRestParameterNode
2183
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
2102
2184
  def operator: () -> String
2103
2185
  def type: () -> :keyword_rest_parameter_node
2104
2186
  | ...
@@ -2116,12 +2198,12 @@ module Prism
2116
2198
  attr_reader operator_loc: Location
2117
2199
  attr_reader opening_loc: Location
2118
2200
  attr_reader closing_loc: Location
2119
- attr_reader parameters: Prism::node?
2120
- attr_reader body: Prism::node?
2201
+ attr_reader parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil
2202
+ attr_reader body: StatementsNode | BeginNode | nil
2121
2203
 
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 }
2204
+ 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
2205
+ 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
2206
+ 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
2207
  def operator: () -> String
2126
2208
  def opening: () -> String
2127
2209
  def closing: () -> String
@@ -2143,9 +2225,9 @@ module Prism
2143
2225
  attr_reader name: Symbol
2144
2226
  attr_reader depth: Integer
2145
2227
 
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 }
2228
+ 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
2229
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableAndWriteNode
2230
+ 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
2231
  def operator: () -> String
2150
2232
  def type: () -> :local_variable_and_write_node
2151
2233
  | ...
@@ -2166,9 +2248,9 @@ module Prism
2166
2248
  attr_reader binary_operator: Symbol
2167
2249
  attr_reader depth: Integer
2168
2250
 
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 }
2251
+ 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
2252
+ 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
2253
+ 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
2254
  def type: () -> :local_variable_operator_write_node
2173
2255
  | ...
2174
2256
  def self.type: () -> :local_variable_operator_write_node
@@ -2187,9 +2269,9 @@ module Prism
2187
2269
  attr_reader name: Symbol
2188
2270
  attr_reader depth: Integer
2189
2271
 
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 }
2272
+ 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
2273
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableOrWriteNode
2274
+ 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
2275
  def operator: () -> String
2194
2276
  def type: () -> :local_variable_or_write_node
2195
2277
  | ...
@@ -2206,9 +2288,9 @@ module Prism
2206
2288
  attr_reader name: Symbol
2207
2289
  attr_reader depth: Integer
2208
2290
 
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 }
2291
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Integer depth) -> void
2292
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableReadNode
2293
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }
2212
2294
  def type: () -> :local_variable_read_node
2213
2295
  | ...
2214
2296
  def self.type: () -> :local_variable_read_node
@@ -2224,9 +2306,9 @@ module Prism
2224
2306
  attr_reader name: Symbol
2225
2307
  attr_reader depth: Integer
2226
2308
 
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 }
2309
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Integer depth) -> void
2310
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableTargetNode
2311
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }
2230
2312
  def type: () -> :local_variable_target_node
2231
2313
  | ...
2232
2314
  def self.type: () -> :local_variable_target_node
@@ -2245,9 +2327,9 @@ module Prism
2245
2327
  attr_reader value: Prism::node
2246
2328
  attr_reader operator_loc: Location
2247
2329
 
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 }
2330
+ 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
2331
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> LocalVariableWriteNode
2332
+ 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
2333
  def operator: () -> String
2252
2334
  def type: () -> :local_variable_write_node
2253
2335
  | ...
@@ -2261,26 +2343,36 @@ module Prism
2261
2343
  class MatchLastLineNode < Node
2262
2344
  include _Node
2263
2345
 
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
2346
  def ignore_case?: () -> bool
2347
+
2274
2348
  def extended?: () -> bool
2349
+
2275
2350
  def multi_line?: () -> bool
2351
+
2276
2352
  def once?: () -> bool
2353
+
2277
2354
  def euc_jp?: () -> bool
2355
+
2278
2356
  def ascii_8bit?: () -> bool
2357
+
2279
2358
  def windows_31j?: () -> bool
2359
+
2280
2360
  def utf_8?: () -> bool
2361
+
2281
2362
  def forced_utf8_encoding?: () -> bool
2363
+
2282
2364
  def forced_binary_encoding?: () -> bool
2365
+
2283
2366
  def forced_us_ascii_encoding?: () -> bool
2367
+
2368
+ attr_reader opening_loc: Location
2369
+ attr_reader content_loc: Location
2370
+ attr_reader closing_loc: Location
2371
+ attr_reader unescaped: String
2372
+
2373
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped) -> void
2374
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> MatchLastLineNode
2375
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
2284
2376
  def opening: () -> String
2285
2377
  def content: () -> String
2286
2378
  def closing: () -> String
@@ -2300,9 +2392,9 @@ module Prism
2300
2392
  attr_reader pattern: Prism::node
2301
2393
  attr_reader operator_loc: Location
2302
2394
 
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 }
2395
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node value, Prism::node pattern, Location operator_loc) -> void
2396
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchPredicateNode
2397
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, pattern: Prism::node, operator_loc: Location }
2306
2398
  def operator: () -> String
2307
2399
  def type: () -> :match_predicate_node
2308
2400
  | ...
@@ -2320,9 +2412,9 @@ module Prism
2320
2412
  attr_reader pattern: Prism::node
2321
2413
  attr_reader operator_loc: Location
2322
2414
 
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 }
2415
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node value, Prism::node pattern, Location operator_loc) -> void
2416
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchRequiredNode
2417
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, pattern: Prism::node, operator_loc: Location }
2326
2418
  def operator: () -> String
2327
2419
  def type: () -> :match_required_node
2328
2420
  | ...
@@ -2339,9 +2431,9 @@ module Prism
2339
2431
  attr_reader call: CallNode
2340
2432
  attr_reader targets: Array[LocalVariableTargetNode]
2341
2433
 
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 }
2434
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, CallNode call, Array[LocalVariableTargetNode] targets) -> void
2435
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?call: CallNode, ?targets: Array[LocalVariableTargetNode]) -> MatchWriteNode
2436
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, call: CallNode, targets: Array[LocalVariableTargetNode] }
2345
2437
  def type: () -> :match_write_node
2346
2438
  | ...
2347
2439
  def self.type: () -> :match_write_node
@@ -2352,9 +2444,9 @@ module Prism
2352
2444
  include _Node
2353
2445
 
2354
2446
 
2355
- def initialize: (Source source, Location location) -> void
2356
- def copy: (?location: Location) -> MissingNode
2357
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2447
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2448
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> MissingNode
2449
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2358
2450
  def type: () -> :missing_node
2359
2451
  | ...
2360
2452
  def self.type: () -> :missing_node
@@ -2369,14 +2461,14 @@ module Prism
2369
2461
 
2370
2462
  attr_reader locals: Array[Symbol]
2371
2463
  attr_reader module_keyword_loc: Location
2372
- attr_reader constant_path: Prism::node
2373
- attr_reader body: Prism::node?
2464
+ attr_reader constant_path: ConstantReadNode | ConstantPathNode | MissingNode
2465
+ attr_reader body: StatementsNode | BeginNode | nil
2374
2466
  attr_reader end_keyword_loc: Location
2375
2467
  attr_reader name: Symbol
2376
2468
 
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 }
2469
+ 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
2470
+ 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
2471
+ 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
2472
  def module_keyword: () -> String
2381
2473
  def end_keyword: () -> String
2382
2474
  def type: () -> :module_node
@@ -2388,18 +2480,23 @@ module Prism
2388
2480
  #
2389
2481
  # a, (b, c) = 1, 2, 3
2390
2482
  # ^^^^^^
2483
+ #
2484
+ # This can be a part of `MultiWriteNode` as above, or the target of a `for` loop
2485
+ #
2486
+ # for a, b in [[1, 2], [3, 4]]
2487
+ # ^^^^
2391
2488
  class MultiTargetNode < Node
2392
2489
  include _Node
2393
2490
 
2394
2491
  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]
2492
+ attr_reader rest: ImplicitRestNode | SplatNode | nil
2493
+ attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode]
2397
2494
  attr_reader lparen_loc: Location?
2398
2495
  attr_reader rparen_loc: Location?
2399
2496
 
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 }
2497
+ 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
2498
+ 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
2499
+ 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
2500
  def lparen: () -> String?
2404
2501
  def rparen: () -> String?
2405
2502
  def type: () -> :multi_target_node
@@ -2414,17 +2511,17 @@ module Prism
2414
2511
  class MultiWriteNode < Node
2415
2512
  include _Node
2416
2513
 
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]
2514
+ attr_reader lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode]
2515
+ attr_reader rest: ImplicitRestNode | SplatNode | nil
2516
+ attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | BackReferenceReadNode | NumberedReferenceReadNode]
2420
2517
  attr_reader lparen_loc: Location?
2421
2518
  attr_reader rparen_loc: Location?
2422
2519
  attr_reader operator_loc: Location
2423
2520
  attr_reader value: Prism::node
2424
2521
 
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 }
2522
+ 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
2523
+ 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
2524
+ 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
2525
  def lparen: () -> String?
2429
2526
  def rparen: () -> String?
2430
2527
  def operator: () -> String
@@ -2443,9 +2540,9 @@ module Prism
2443
2540
  attr_reader arguments: ArgumentsNode?
2444
2541
  attr_reader keyword_loc: Location
2445
2542
 
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 }
2543
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ArgumentsNode? arguments, Location keyword_loc) -> void
2544
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> NextNode
2545
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: ArgumentsNode?, keyword_loc: Location }
2449
2546
  def keyword: () -> String
2450
2547
  def type: () -> :next_node
2451
2548
  | ...
@@ -2460,9 +2557,9 @@ module Prism
2460
2557
  include _Node
2461
2558
 
2462
2559
 
2463
- def initialize: (Source source, Location location) -> void
2464
- def copy: (?location: Location) -> NilNode
2465
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2560
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2561
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> NilNode
2562
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2466
2563
  def type: () -> :nil_node
2467
2564
  | ...
2468
2565
  def self.type: () -> :nil_node
@@ -2479,9 +2576,9 @@ module Prism
2479
2576
  attr_reader operator_loc: Location
2480
2577
  attr_reader keyword_loc: Location
2481
2578
 
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 }
2579
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location operator_loc, Location keyword_loc) -> void
2580
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?keyword_loc: Location) -> NoKeywordsParameterNode
2581
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, keyword_loc: Location }
2485
2582
  def operator: () -> String
2486
2583
  def keyword: () -> String
2487
2584
  def type: () -> :no_keywords_parameter_node
@@ -2498,9 +2595,9 @@ module Prism
2498
2595
 
2499
2596
  attr_reader maximum: Integer
2500
2597
 
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 }
2598
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer maximum) -> void
2599
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?maximum: Integer) -> NumberedParametersNode
2600
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, maximum: Integer }
2504
2601
  def type: () -> :numbered_parameters_node
2505
2602
  | ...
2506
2603
  def self.type: () -> :numbered_parameters_node
@@ -2515,9 +2612,9 @@ module Prism
2515
2612
 
2516
2613
  attr_reader number: Integer
2517
2614
 
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 }
2615
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer number) -> void
2616
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?number: Integer) -> NumberedReferenceReadNode
2617
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, number: Integer }
2521
2618
  def type: () -> :numbered_reference_read_node
2522
2619
  | ...
2523
2620
  def self.type: () -> :numbered_reference_read_node
@@ -2531,15 +2628,15 @@ module Prism
2531
2628
  class OptionalKeywordParameterNode < Node
2532
2629
  include _Node
2533
2630
 
2534
- attr_reader flags: Integer
2631
+ def repeated_parameter?: () -> bool
2632
+
2535
2633
  attr_reader name: Symbol
2536
2634
  attr_reader name_loc: Location
2537
2635
  attr_reader value: Prism::node
2538
2636
 
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
2637
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Prism::node value) -> void
2638
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node) -> OptionalKeywordParameterNode
2639
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node }
2543
2640
  def type: () -> :optional_keyword_parameter_node
2544
2641
  | ...
2545
2642
  def self.type: () -> :optional_keyword_parameter_node
@@ -2553,16 +2650,16 @@ module Prism
2553
2650
  class OptionalParameterNode < Node
2554
2651
  include _Node
2555
2652
 
2556
- attr_reader flags: Integer
2653
+ def repeated_parameter?: () -> bool
2654
+
2557
2655
  attr_reader name: Symbol
2558
2656
  attr_reader name_loc: Location
2559
2657
  attr_reader operator_loc: Location
2560
2658
  attr_reader value: Prism::node
2561
2659
 
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
2660
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value) -> void
2661
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> OptionalParameterNode
2662
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
2566
2663
  def operator: () -> String
2567
2664
  def type: () -> :optional_parameter_node
2568
2665
  | ...
@@ -2580,9 +2677,9 @@ module Prism
2580
2677
  attr_reader right: Prism::node
2581
2678
  attr_reader operator_loc: Location
2582
2679
 
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 }
2680
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node left, Prism::node right, Location operator_loc) -> void
2681
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> OrNode
2682
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node, right: Prism::node, operator_loc: Location }
2586
2683
  def operator: () -> String
2587
2684
  def type: () -> :or_node
2588
2685
  | ...
@@ -2605,9 +2702,9 @@ module Prism
2605
2702
  attr_reader keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil
2606
2703
  attr_reader block: BlockParameterNode?
2607
2704
 
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 }
2705
+ 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
2706
+ 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
2707
+ 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
2708
  def type: () -> :parameters_node
2612
2709
  | ...
2613
2710
  def self.type: () -> :parameters_node
@@ -2624,9 +2721,9 @@ module Prism
2624
2721
  attr_reader opening_loc: Location
2625
2722
  attr_reader closing_loc: Location
2626
2723
 
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 }
2724
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? body, Location opening_loc, Location closing_loc) -> void
2725
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location) -> ParenthesesNode
2726
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, body: Prism::node?, opening_loc: Location, closing_loc: Location }
2630
2727
  def opening: () -> String
2631
2728
  def closing: () -> String
2632
2729
  def type: () -> :parentheses_node
@@ -2646,9 +2743,9 @@ module Prism
2646
2743
  attr_reader lparen_loc: Location
2647
2744
  attr_reader rparen_loc: Location
2648
2745
 
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 }
2746
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node expression, Location operator_loc, Location lparen_loc, Location rparen_loc) -> void
2747
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?operator_loc: Location, ?lparen_loc: Location, ?rparen_loc: Location) -> PinnedExpressionNode
2748
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location }
2652
2749
  def operator: () -> String
2653
2750
  def lparen: () -> String
2654
2751
  def rparen: () -> String
@@ -2664,12 +2761,12 @@ module Prism
2664
2761
  class PinnedVariableNode < Node
2665
2762
  include _Node
2666
2763
 
2667
- attr_reader variable: Prism::node
2764
+ attr_reader variable: LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode
2668
2765
  attr_reader operator_loc: Location
2669
2766
 
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 }
2767
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode variable, Location operator_loc) -> void
2768
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?variable: LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode, ?operator_loc: Location) -> PinnedVariableNode
2769
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, variable: LocalVariableReadNode | InstanceVariableReadNode | ClassVariableReadNode | GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | ItLocalVariableReadNode | MissingNode, operator_loc: Location }
2673
2770
  def operator: () -> String
2674
2771
  def type: () -> :pinned_variable_node
2675
2772
  | ...
@@ -2688,9 +2785,9 @@ module Prism
2688
2785
  attr_reader opening_loc: Location
2689
2786
  attr_reader closing_loc: Location
2690
2787
 
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 }
2788
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc) -> void
2789
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PostExecutionNode
2790
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location }
2694
2791
  def keyword: () -> String
2695
2792
  def opening: () -> String
2696
2793
  def closing: () -> String
@@ -2711,9 +2808,9 @@ module Prism
2711
2808
  attr_reader opening_loc: Location
2712
2809
  attr_reader closing_loc: Location
2713
2810
 
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 }
2811
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc) -> void
2812
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PreExecutionNode
2813
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location }
2717
2814
  def keyword: () -> String
2718
2815
  def opening: () -> String
2719
2816
  def closing: () -> String
@@ -2729,9 +2826,9 @@ module Prism
2729
2826
  attr_reader locals: Array[Symbol]
2730
2827
  attr_reader statements: StatementsNode
2731
2828
 
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 }
2829
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Symbol] locals, StatementsNode statements) -> void
2830
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?statements: StatementsNode) -> ProgramNode
2831
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], statements: StatementsNode }
2735
2832
  def type: () -> :program_node
2736
2833
  | ...
2737
2834
  def self.type: () -> :program_node
@@ -2747,15 +2844,15 @@ module Prism
2747
2844
  class RangeNode < Node
2748
2845
  include _Node
2749
2846
 
2750
- attr_reader flags: Integer
2847
+ def exclude_end?: () -> bool
2848
+
2751
2849
  attr_reader left: Prism::node?
2752
2850
  attr_reader right: Prism::node?
2753
2851
  attr_reader operator_loc: Location
2754
2852
 
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
2853
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node? left, Prism::node? right, Location operator_loc) -> void
2854
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> RangeNode
2855
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node?, right: Prism::node?, operator_loc: Location }
2759
2856
  def operator: () -> String
2760
2857
  def type: () -> :range_node
2761
2858
  | ...
@@ -2769,11 +2866,20 @@ module Prism
2769
2866
  class RationalNode < Node
2770
2867
  include _Node
2771
2868
 
2772
- attr_reader numeric: Prism::node
2869
+ def binary?: () -> bool
2773
2870
 
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 }
2871
+ def decimal?: () -> bool
2872
+
2873
+ def octal?: () -> bool
2874
+
2875
+ def hexadecimal?: () -> bool
2876
+
2877
+ attr_reader numerator: Integer
2878
+ attr_reader denominator: Integer
2879
+
2880
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Integer numerator, Integer denominator) -> void
2881
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?numerator: Integer, ?denominator: Integer) -> RationalNode
2882
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, numerator: Integer, denominator: Integer }
2777
2883
  def type: () -> :rational_node
2778
2884
  | ...
2779
2885
  def self.type: () -> :rational_node
@@ -2787,9 +2893,9 @@ module Prism
2787
2893
  include _Node
2788
2894
 
2789
2895
 
2790
- def initialize: (Source source, Location location) -> void
2791
- def copy: (?location: Location) -> RedoNode
2792
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
2896
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
2897
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> RedoNode
2898
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2793
2899
  def type: () -> :redo_node
2794
2900
  | ...
2795
2901
  def self.type: () -> :redo_node
@@ -2802,26 +2908,36 @@ module Prism
2802
2908
  class RegularExpressionNode < Node
2803
2909
  include _Node
2804
2910
 
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
2911
  def ignore_case?: () -> bool
2912
+
2815
2913
  def extended?: () -> bool
2914
+
2816
2915
  def multi_line?: () -> bool
2916
+
2817
2917
  def once?: () -> bool
2918
+
2818
2919
  def euc_jp?: () -> bool
2920
+
2819
2921
  def ascii_8bit?: () -> bool
2922
+
2820
2923
  def windows_31j?: () -> bool
2924
+
2821
2925
  def utf_8?: () -> bool
2926
+
2822
2927
  def forced_utf8_encoding?: () -> bool
2928
+
2823
2929
  def forced_binary_encoding?: () -> bool
2930
+
2824
2931
  def forced_us_ascii_encoding?: () -> bool
2932
+
2933
+ attr_reader opening_loc: Location
2934
+ attr_reader content_loc: Location
2935
+ attr_reader closing_loc: Location
2936
+ attr_reader unescaped: String
2937
+
2938
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped) -> void
2939
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> RegularExpressionNode
2940
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
2825
2941
  def opening: () -> String
2826
2942
  def content: () -> String
2827
2943
  def closing: () -> String
@@ -2838,14 +2954,14 @@ module Prism
2838
2954
  class RequiredKeywordParameterNode < Node
2839
2955
  include _Node
2840
2956
 
2841
- attr_reader flags: Integer
2957
+ def repeated_parameter?: () -> bool
2958
+
2842
2959
  attr_reader name: Symbol
2843
2960
  attr_reader name_loc: Location
2844
2961
 
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
2962
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name, Location name_loc) -> void
2963
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location) -> RequiredKeywordParameterNode
2964
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location }
2849
2965
  def type: () -> :required_keyword_parameter_node
2850
2966
  | ...
2851
2967
  def self.type: () -> :required_keyword_parameter_node
@@ -2859,13 +2975,13 @@ module Prism
2859
2975
  class RequiredParameterNode < Node
2860
2976
  include _Node
2861
2977
 
2862
- attr_reader flags: Integer
2978
+ def repeated_parameter?: () -> bool
2979
+
2863
2980
  attr_reader name: Symbol
2864
2981
 
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
2982
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol name) -> void
2983
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> RequiredParameterNode
2984
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
2869
2985
  def type: () -> :required_parameter_node
2870
2986
  | ...
2871
2987
  def self.type: () -> :required_parameter_node
@@ -2882,9 +2998,9 @@ module Prism
2882
2998
  attr_reader keyword_loc: Location
2883
2999
  attr_reader rescue_expression: Prism::node
2884
3000
 
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 }
3001
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Prism::node expression, Location keyword_loc, Prism::node rescue_expression) -> void
3002
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?keyword_loc: Location, ?rescue_expression: Prism::node) -> RescueModifierNode
3003
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node, keyword_loc: Location, rescue_expression: Prism::node }
2888
3004
  def keyword: () -> String
2889
3005
  def type: () -> :rescue_modifier_node
2890
3006
  | ...
@@ -2906,13 +3022,13 @@ module Prism
2906
3022
  attr_reader keyword_loc: Location
2907
3023
  attr_reader exceptions: Array[Prism::node]
2908
3024
  attr_reader operator_loc: Location?
2909
- attr_reader reference: Prism::node?
3025
+ attr_reader reference: LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | BackReferenceReadNode | NumberedReferenceReadNode | MissingNode | nil
2910
3026
  attr_reader statements: StatementsNode?
2911
- attr_reader consequent: RescueNode?
3027
+ attr_reader subsequent: RescueNode?
2912
3028
 
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 }
3029
+ 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
3030
+ 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
3031
+ 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
3032
  def keyword: () -> String
2917
3033
  def operator: () -> String?
2918
3034
  def type: () -> :rescue_node
@@ -2928,15 +3044,15 @@ module Prism
2928
3044
  class RestParameterNode < Node
2929
3045
  include _Node
2930
3046
 
2931
- attr_reader flags: Integer
3047
+ def repeated_parameter?: () -> bool
3048
+
2932
3049
  attr_reader name: Symbol?
2933
3050
  attr_reader name_loc: Location?
2934
3051
  attr_reader operator_loc: Location
2935
3052
 
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
3053
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Symbol? name, Location? name_loc, Location operator_loc) -> void
3054
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> RestParameterNode
3055
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
2940
3056
  def operator: () -> String
2941
3057
  def type: () -> :rest_parameter_node
2942
3058
  | ...
@@ -2951,9 +3067,9 @@ module Prism
2951
3067
  include _Node
2952
3068
 
2953
3069
 
2954
- def initialize: (Source source, Location location) -> void
2955
- def copy: (?location: Location) -> RetryNode
2956
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3070
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3071
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> RetryNode
3072
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2957
3073
  def type: () -> :retry_node
2958
3074
  | ...
2959
3075
  def self.type: () -> :retry_node
@@ -2966,14 +3082,12 @@ module Prism
2966
3082
  class ReturnNode < Node
2967
3083
  include _Node
2968
3084
 
2969
- attr_reader flags: Integer
2970
3085
  attr_reader keyword_loc: Location
2971
3086
  attr_reader arguments: ArgumentsNode?
2972
3087
 
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
3088
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, ArgumentsNode? arguments) -> void
3089
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?arguments: ArgumentsNode?) -> ReturnNode
3090
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, arguments: ArgumentsNode? }
2977
3091
  def keyword: () -> String
2978
3092
  def type: () -> :return_node
2979
3093
  | ...
@@ -2988,9 +3102,9 @@ module Prism
2988
3102
  include _Node
2989
3103
 
2990
3104
 
2991
- def initialize: (Source source, Location location) -> void
2992
- def copy: (?location: Location) -> SelfNode
2993
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3105
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3106
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SelfNode
3107
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
2994
3108
  def type: () -> :self_node
2995
3109
  | ...
2996
3110
  def self.type: () -> :self_node
@@ -3004,15 +3118,17 @@ module Prism
3004
3118
  class ShareableConstantNode < Node
3005
3119
  include _Node
3006
3120
 
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
3121
  def literal?: () -> bool
3122
+
3014
3123
  def experimental_everything?: () -> bool
3124
+
3015
3125
  def experimental_copy?: () -> bool
3126
+
3127
+ attr_reader write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode
3128
+
3129
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode write) -> void
3130
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode) -> ShareableConstantNode
3131
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode }
3016
3132
  def type: () -> :shareable_constant_node
3017
3133
  | ...
3018
3134
  def self.type: () -> :shareable_constant_node
@@ -3029,12 +3145,12 @@ module Prism
3029
3145
  attr_reader class_keyword_loc: Location
3030
3146
  attr_reader operator_loc: Location
3031
3147
  attr_reader expression: Prism::node
3032
- attr_reader body: Prism::node?
3148
+ attr_reader body: StatementsNode | BeginNode | nil
3033
3149
  attr_reader end_keyword_loc: Location
3034
3150
 
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 }
3151
+ 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
3152
+ 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
3153
+ 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
3154
  def class_keyword: () -> String
3039
3155
  def operator: () -> String
3040
3156
  def end_keyword: () -> String
@@ -3051,9 +3167,9 @@ module Prism
3051
3167
  include _Node
3052
3168
 
3053
3169
 
3054
- def initialize: (Source source, Location location) -> void
3055
- def copy: (?location: Location) -> SourceEncodingNode
3056
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3170
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3171
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceEncodingNode
3172
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
3057
3173
  def type: () -> :source_encoding_node
3058
3174
  | ...
3059
3175
  def self.type: () -> :source_encoding_node
@@ -3066,16 +3182,19 @@ module Prism
3066
3182
  class SourceFileNode < Node
3067
3183
  include _Node
3068
3184
 
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
3185
  def forced_utf8_encoding?: () -> bool
3186
+
3076
3187
  def forced_binary_encoding?: () -> bool
3188
+
3077
3189
  def frozen?: () -> bool
3190
+
3078
3191
  def mutable?: () -> bool
3192
+
3193
+ attr_reader filepath: String
3194
+
3195
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, String filepath) -> void
3196
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?filepath: String) -> SourceFileNode
3197
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, filepath: String }
3079
3198
  def type: () -> :source_file_node
3080
3199
  | ...
3081
3200
  def self.type: () -> :source_file_node
@@ -3089,9 +3208,9 @@ module Prism
3089
3208
  include _Node
3090
3209
 
3091
3210
 
3092
- def initialize: (Source source, Location location) -> void
3093
- def copy: (?location: Location) -> SourceLineNode
3094
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3211
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3212
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceLineNode
3213
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
3095
3214
  def type: () -> :source_line_node
3096
3215
  | ...
3097
3216
  def self.type: () -> :source_line_node
@@ -3107,9 +3226,9 @@ module Prism
3107
3226
  attr_reader operator_loc: Location
3108
3227
  attr_reader expression: Prism::node?
3109
3228
 
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 }
3229
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location operator_loc, Prism::node? expression) -> void
3230
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?expression: Prism::node?) -> SplatNode
3231
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, expression: Prism::node? }
3113
3232
  def operator: () -> String
3114
3233
  def type: () -> :splat_node
3115
3234
  | ...
@@ -3125,9 +3244,9 @@ module Prism
3125
3244
 
3126
3245
  attr_reader body: Array[Prism::node]
3127
3246
 
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 }
3247
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[Prism::node] body) -> void
3248
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Array[Prism::node]) -> StatementsNode
3249
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, body: Array[Prism::node] }
3131
3250
  def type: () -> :statements_node
3132
3251
  | ...
3133
3252
  def self.type: () -> :statements_node
@@ -3146,19 +3265,22 @@ module Prism
3146
3265
  class StringNode < Node
3147
3266
  include _Node
3148
3267
 
3149
- attr_reader flags: Integer
3268
+ def forced_utf8_encoding?: () -> bool
3269
+
3270
+ def forced_binary_encoding?: () -> bool
3271
+
3272
+ def frozen?: () -> bool
3273
+
3274
+ def mutable?: () -> bool
3275
+
3150
3276
  attr_reader opening_loc: Location?
3151
3277
  attr_reader content_loc: Location
3152
3278
  attr_reader closing_loc: Location?
3153
3279
  attr_reader unescaped: String
3154
3280
 
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
3281
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Location content_loc, Location? closing_loc, String unescaped) -> void
3282
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?content_loc: Location, ?closing_loc: Location?, ?unescaped: String) -> StringNode
3283
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, content_loc: Location, closing_loc: Location?, unescaped: String }
3162
3284
  def opening: () -> String?
3163
3285
  def content: () -> String
3164
3286
  def closing: () -> String?
@@ -3181,11 +3303,11 @@ module Prism
3181
3303
  attr_reader lparen_loc: Location?
3182
3304
  attr_reader arguments: ArgumentsNode?
3183
3305
  attr_reader rparen_loc: Location?
3184
- attr_reader block: Prism::node?
3306
+ attr_reader block: BlockNode | BlockArgumentNode | nil
3185
3307
 
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 }
3308
+ 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
3309
+ 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
3310
+ 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
3311
  def keyword: () -> String
3190
3312
  def lparen: () -> String?
3191
3313
  def rparen: () -> String?
@@ -3204,18 +3326,20 @@ module Prism
3204
3326
  class SymbolNode < Node
3205
3327
  include _Node
3206
3328
 
3207
- attr_reader flags: Integer
3329
+ def forced_utf8_encoding?: () -> bool
3330
+
3331
+ def forced_binary_encoding?: () -> bool
3332
+
3333
+ def forced_us_ascii_encoding?: () -> bool
3334
+
3208
3335
  attr_reader opening_loc: Location?
3209
3336
  attr_reader value_loc: Location?
3210
3337
  attr_reader closing_loc: Location?
3211
3338
  attr_reader unescaped: String
3212
3339
 
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
3340
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location? opening_loc, Location? value_loc, Location? closing_loc, String unescaped) -> void
3341
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?value_loc: Location?, ?closing_loc: Location?, ?unescaped: String) -> SymbolNode
3342
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String }
3219
3343
  def opening: () -> String?
3220
3344
  def value: () -> String?
3221
3345
  def closing: () -> String?
@@ -3232,9 +3356,9 @@ module Prism
3232
3356
  include _Node
3233
3357
 
3234
3358
 
3235
- def initialize: (Source source, Location location) -> void
3236
- def copy: (?location: Location) -> TrueNode
3237
- def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
3359
+ def initialize: (Source source, Integer node_id, Location location, Integer flags) -> void
3360
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> TrueNode
3361
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
3238
3362
  def type: () -> :true_node
3239
3363
  | ...
3240
3364
  def self.type: () -> :true_node
@@ -3250,9 +3374,9 @@ module Prism
3250
3374
  attr_reader names: Array[SymbolNode | InterpolatedSymbolNode]
3251
3375
  attr_reader keyword_loc: Location
3252
3376
 
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 }
3377
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Array[SymbolNode | InterpolatedSymbolNode] names, Location keyword_loc) -> void
3378
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?names: Array[SymbolNode | InterpolatedSymbolNode], ?keyword_loc: Location) -> UndefNode
3379
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, names: Array[SymbolNode | InterpolatedSymbolNode], keyword_loc: Location }
3256
3380
  def keyword: () -> String
3257
3381
  def type: () -> :undef_node
3258
3382
  | ...
@@ -3273,12 +3397,12 @@ module Prism
3273
3397
  attr_reader predicate: Prism::node
3274
3398
  attr_reader then_keyword_loc: Location?
3275
3399
  attr_reader statements: StatementsNode?
3276
- attr_reader consequent: ElseNode?
3400
+ attr_reader else_clause: ElseNode?
3277
3401
  attr_reader end_keyword_loc: Location?
3278
3402
 
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 }
3403
+ 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
3404
+ 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
3405
+ 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
3406
  def keyword: () -> String
3283
3407
  def then_keyword: () -> String?
3284
3408
  def end_keyword: () -> String?
@@ -3297,16 +3421,16 @@ module Prism
3297
3421
  class UntilNode < Node
3298
3422
  include _Node
3299
3423
 
3300
- attr_reader flags: Integer
3424
+ def begin_modifier?: () -> bool
3425
+
3301
3426
  attr_reader keyword_loc: Location
3302
3427
  attr_reader closing_loc: Location?
3303
3428
  attr_reader predicate: Prism::node
3304
3429
  attr_reader statements: StatementsNode?
3305
3430
 
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
3431
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements) -> void
3432
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> UntilNode
3433
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode? }
3310
3434
  def keyword: () -> String
3311
3435
  def closing: () -> String?
3312
3436
  def type: () -> :until_node
@@ -3328,9 +3452,9 @@ module Prism
3328
3452
  attr_reader then_keyword_loc: Location?
3329
3453
  attr_reader statements: StatementsNode?
3330
3454
 
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 }
3455
+ 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
3456
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?conditions: Array[Prism::node], ?then_keyword_loc: Location?, ?statements: StatementsNode?) -> WhenNode
3457
+ 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
3458
  def keyword: () -> String
3335
3459
  def then_keyword: () -> String?
3336
3460
  def type: () -> :when_node
@@ -3348,16 +3472,16 @@ module Prism
3348
3472
  class WhileNode < Node
3349
3473
  include _Node
3350
3474
 
3351
- attr_reader flags: Integer
3475
+ def begin_modifier?: () -> bool
3476
+
3352
3477
  attr_reader keyword_loc: Location
3353
3478
  attr_reader closing_loc: Location?
3354
3479
  attr_reader predicate: Prism::node
3355
3480
  attr_reader statements: StatementsNode?
3356
3481
 
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
3482
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements) -> void
3483
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> WhileNode
3484
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode? }
3361
3485
  def keyword: () -> String
3362
3486
  def closing: () -> String?
3363
3487
  def type: () -> :while_node
@@ -3372,17 +3496,18 @@ module Prism
3372
3496
  class XStringNode < Node
3373
3497
  include _Node
3374
3498
 
3375
- attr_reader flags: Integer
3499
+ def forced_utf8_encoding?: () -> bool
3500
+
3501
+ def forced_binary_encoding?: () -> bool
3502
+
3376
3503
  attr_reader opening_loc: Location
3377
3504
  attr_reader content_loc: Location
3378
3505
  attr_reader closing_loc: Location
3379
3506
  attr_reader unescaped: String
3380
3507
 
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
3508
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped) -> void
3509
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> XStringNode
3510
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
3386
3511
  def opening: () -> String
3387
3512
  def content: () -> String
3388
3513
  def closing: () -> String
@@ -3403,9 +3528,9 @@ module Prism
3403
3528
  attr_reader arguments: ArgumentsNode?
3404
3529
  attr_reader rparen_loc: Location?
3405
3530
 
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 }
3531
+ def initialize: (Source source, Integer node_id, Location location, Integer flags, Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc) -> void
3532
+ def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?) -> YieldNode
3533
+ def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location? }
3409
3534
  def keyword: () -> String
3410
3535
  def lparen: () -> String?
3411
3536
  def rparen: () -> String?
@@ -3416,10 +3541,16 @@ module Prism
3416
3541
 
3417
3542
  # Flags for arguments nodes.
3418
3543
  module ArgumentsNodeFlags
3419
- # if arguments contain keywords
3544
+ # if the arguments contain forwarding
3545
+ CONTAINS_FORWARDING: Integer
3546
+ # if the arguments contain keywords
3420
3547
  CONTAINS_KEYWORDS: Integer
3421
- # if arguments contain keyword splat
3548
+ # if the arguments contain a keyword splat
3422
3549
  CONTAINS_KEYWORD_SPLAT: Integer
3550
+ # if the arguments contain a splat
3551
+ CONTAINS_SPLAT: Integer
3552
+ # if the arguments contain multiple splats
3553
+ CONTAINS_MULTIPLE_SPLATS: Integer
3423
3554
  end
3424
3555
 
3425
3556
  # Flags for array nodes.
@@ -3518,12 +3649,6 @@ module Prism
3518
3649
  FORCED_US_ASCII_ENCODING: Integer
3519
3650
  end
3520
3651
 
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
3652
  # Flags for shareable constant nodes.
3528
3653
  module ShareableConstantNodeFlags
3529
3654
  # constant writes that should be modified with shareable constant value literal
@@ -3555,4 +3680,10 @@ module Prism
3555
3680
  # internal bytes forced the encoding to US-ASCII
3556
3681
  FORCED_US_ASCII_ENCODING: Integer
3557
3682
  end
3683
+
3684
+ # The flags that are common to all nodes.
3685
+ module NodeFlags
3686
+ NEWLINE: Integer
3687
+ STATIC_LITERAL: Integer
3688
+ end
3558
3689
  end