prism 1.5.1 → 1.9.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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +74 -1
  3. data/Makefile +12 -5
  4. data/README.md +2 -1
  5. data/config.yml +34 -8
  6. data/docs/build_system.md +2 -2
  7. data/docs/cruby_compilation.md +1 -1
  8. data/docs/design.md +2 -2
  9. data/docs/parser_translation.md +1 -1
  10. data/docs/releasing.md +4 -25
  11. data/docs/ripper_translation.md +8 -17
  12. data/docs/ruby_api.md +1 -0
  13. data/ext/prism/api_node.c +7 -3
  14. data/ext/prism/extconf.rb +1 -1
  15. data/ext/prism/extension.c +10 -2
  16. data/ext/prism/extension.h +1 -1
  17. data/include/prism/ast.h +89 -25
  18. data/include/prism/diagnostic.h +3 -0
  19. data/include/prism/options.h +8 -2
  20. data/include/prism/parser.h +3 -0
  21. data/include/prism/version.h +3 -3
  22. data/include/prism.h +1 -1
  23. data/lib/prism/compiler.rb +152 -152
  24. data/lib/prism/dot_visitor.rb +5 -0
  25. data/lib/prism/dsl.rb +2 -2
  26. data/lib/prism/ffi.rb +11 -3
  27. data/lib/prism/inspect_visitor.rb +1 -0
  28. data/lib/prism/lex_compat.rb +133 -150
  29. data/lib/prism/node.rb +1184 -34
  30. data/lib/prism/parse_result.rb +11 -15
  31. data/lib/prism/polyfill/scan_byte.rb +1 -1
  32. data/lib/prism/polyfill/warn.rb +16 -22
  33. data/lib/prism/reflection.rb +1 -1
  34. data/lib/prism/serialize.rb +8 -5
  35. data/lib/prism/translation/parser/compiler.rb +16 -16
  36. data/lib/prism/translation/parser.rb +12 -3
  37. data/lib/prism/translation/parser_current.rb +5 -3
  38. data/lib/prism/translation/parser_versions.rb +36 -0
  39. data/lib/prism/translation/ripper/filter.rb +53 -0
  40. data/lib/prism/translation/ripper/lexer.rb +135 -0
  41. data/lib/prism/translation/ripper.rb +86 -40
  42. data/lib/prism/translation/ruby_parser.rb +55 -20
  43. data/lib/prism/translation.rb +5 -3
  44. data/lib/prism/visitor.rb +152 -152
  45. data/lib/prism.rb +21 -14
  46. data/prism.gemspec +5 -7
  47. data/rbi/prism/dsl.rbi +3 -3
  48. data/rbi/prism/node.rbi +24 -8
  49. data/rbi/prism/translation/parser_versions.rbi +23 -0
  50. data/rbi/prism.rbi +0 -3
  51. data/sig/prism/dsl.rbs +2 -2
  52. data/sig/prism/node.rbs +22 -8
  53. data/sig/prism/parse_result.rbs +1 -0
  54. data/sig/prism.rbs +58 -40
  55. data/src/diagnostic.c +7 -1
  56. data/src/encoding.c +172 -67
  57. data/src/node.c +9 -0
  58. data/src/options.c +17 -7
  59. data/src/prettyprint.c +16 -0
  60. data/src/prism.c +1335 -1958
  61. data/src/serialize.c +7 -1
  62. data/src/token_type.c +2 -2
  63. data/src/util/pm_constant_pool.c +1 -1
  64. data/src/util/pm_string.c +6 -8
  65. metadata +7 -9
  66. data/lib/prism/translation/parser33.rb +0 -13
  67. data/lib/prism/translation/parser34.rb +0 -13
  68. data/lib/prism/translation/parser35.rb +0 -13
  69. data/rbi/prism/translation/parser33.rbi +0 -6
  70. data/rbi/prism/translation/parser34.rbi +0 -6
  71. data/rbi/prism/translation/parser35.rbi +0 -6
data/lib/prism/node.rb CHANGED
@@ -194,25 +194,13 @@ module Prism
194
194
  def tunnel(line, column)
195
195
  queue = [self] #: Array[Prism::node]
196
196
  result = [] #: Array[Prism::node]
197
+ offset = source.byte_offset(line, column)
197
198
 
198
199
  while (node = queue.shift)
199
200
  result << node
200
201
 
201
- node.compact_child_nodes.each do |child_node|
202
- child_location = child_node.location
203
-
204
- start_line = child_location.start_line
205
- end_line = child_location.end_line
206
-
207
- if start_line == end_line
208
- if line == start_line && column >= child_location.start_column && column < child_location.end_column
209
- queue << child_node
210
- break
211
- end
212
- elsif (line == start_line && column >= child_location.start_column) || (line == end_line && column < child_location.end_column)
213
- queue << child_node
214
- break
215
- elsif line > start_line && line < end_line
202
+ node.each_child_node do |child_node|
203
+ if child_node.start_offset <= offset && offset < child_node.end_offset
216
204
  queue << child_node
217
205
  break
218
206
  end
@@ -223,7 +211,7 @@ module Prism
223
211
  end
224
212
 
225
213
  # Returns the first node that matches the given block when visited in a
226
- # depth-first search. This is useful for finding a node that matches a
214
+ # breadth-first search. This is useful for finding a node that matches a
227
215
  # particular condition.
228
216
  #
229
217
  # node.breadth_first_search { |node| node.node_id == node_id }
@@ -238,6 +226,26 @@ module Prism
238
226
 
239
227
  nil
240
228
  end
229
+ alias find breadth_first_search
230
+
231
+ # Returns all of the nodes that match the given block when visited in a
232
+ # breadth-first search. This is useful for finding all nodes that match a
233
+ # particular condition.
234
+ #
235
+ # node.breadth_first_search_all { |node| node.is_a?(Prism::CallNode) }
236
+ #
237
+ def breadth_first_search_all(&block)
238
+ queue = [self] #: Array[Prism::node]
239
+ results = [] #: Array[Prism::node]
240
+
241
+ while (node = queue.shift)
242
+ results << node if yield node
243
+ queue.concat(node.compact_child_nodes)
244
+ end
245
+
246
+ results
247
+ end
248
+ alias find_all breadth_first_search_all
241
249
 
242
250
  # Returns a list of the fields that exist for this node class. Fields
243
251
  # describe the structure of the node. This kind of reflection is useful for
@@ -270,6 +278,13 @@ module Prism
270
278
 
271
279
  alias deconstruct child_nodes
272
280
 
281
+ # With a block given, yields each child node. Without a block, returns
282
+ # an enumerator that contains each child node. Excludes any `nil`s in
283
+ # the place of optional nodes that were not present.
284
+ def each_child_node
285
+ raise NoMethodError, "undefined method `each_child_node' for #{inspect}"
286
+ end
287
+
273
288
  # Returns an array of child nodes, excluding any `nil`s in the place of
274
289
  # optional nodes that were not present.
275
290
  def compact_child_nodes
@@ -338,6 +353,14 @@ module Prism
338
353
  [new_name, old_name]
339
354
  end
340
355
 
356
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
357
+ def each_child_node
358
+ return to_enum(:each_child_node) unless block_given?
359
+
360
+ yield new_name
361
+ yield old_name
362
+ end
363
+
341
364
  # def compact_child_nodes: () -> Array[Node]
342
365
  def compact_child_nodes
343
366
  [new_name, old_name]
@@ -445,6 +468,14 @@ module Prism
445
468
  [new_name, old_name]
446
469
  end
447
470
 
471
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
472
+ def each_child_node
473
+ return to_enum(:each_child_node) unless block_given?
474
+
475
+ yield new_name
476
+ yield old_name
477
+ end
478
+
448
479
  # def compact_child_nodes: () -> Array[Node]
449
480
  def compact_child_nodes
450
481
  [new_name, old_name]
@@ -564,6 +595,14 @@ module Prism
564
595
  [left, right]
565
596
  end
566
597
 
598
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
599
+ def each_child_node
600
+ return to_enum(:each_child_node) unless block_given?
601
+
602
+ yield left
603
+ yield right
604
+ end
605
+
567
606
  # def compact_child_nodes: () -> Array[Node]
568
607
  def compact_child_nodes
569
608
  [left, right]
@@ -671,6 +710,14 @@ module Prism
671
710
  [left, right]
672
711
  end
673
712
 
713
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
714
+ def each_child_node
715
+ return to_enum(:each_child_node) unless block_given?
716
+
717
+ yield left
718
+ yield right
719
+ end
720
+
674
721
  # def compact_child_nodes: () -> Array[Node]
675
722
  def compact_child_nodes
676
723
  [left, right]
@@ -782,6 +829,13 @@ module Prism
782
829
  [*arguments]
783
830
  end
784
831
 
832
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
833
+ def each_child_node
834
+ return to_enum(:each_child_node) unless block_given?
835
+
836
+ arguments.each { |node| yield node }
837
+ end
838
+
785
839
  # def compact_child_nodes: () -> Array[Node]
786
840
  def compact_child_nodes
787
841
  [*arguments]
@@ -887,6 +941,13 @@ module Prism
887
941
  [*elements]
888
942
  end
889
943
 
944
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
945
+ def each_child_node
946
+ return to_enum(:each_child_node) unless block_given?
947
+
948
+ elements.each { |node| yield node }
949
+ end
950
+
890
951
  # def compact_child_nodes: () -> Array[Node]
891
952
  def compact_child_nodes
892
953
  [*elements]
@@ -1044,6 +1105,16 @@ module Prism
1044
1105
  [constant, *requireds, rest, *posts]
1045
1106
  end
1046
1107
 
1108
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1109
+ def each_child_node
1110
+ return to_enum(:each_child_node) unless block_given?
1111
+
1112
+ yield constant if constant
1113
+ requireds.each { |node| yield node }
1114
+ yield rest if rest
1115
+ posts.each { |node| yield node }
1116
+ end
1117
+
1047
1118
  # def compact_child_nodes: () -> Array[Node]
1048
1119
  def compact_child_nodes
1049
1120
  compact = [] #: Array[Prism::node]
@@ -1212,6 +1283,14 @@ module Prism
1212
1283
  [key, value]
1213
1284
  end
1214
1285
 
1286
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1287
+ def each_child_node
1288
+ return to_enum(:each_child_node) unless block_given?
1289
+
1290
+ yield key
1291
+ yield value
1292
+ end
1293
+
1215
1294
  # def compact_child_nodes: () -> Array[Node]
1216
1295
  def compact_child_nodes
1217
1296
  [key, value]
@@ -1333,6 +1412,13 @@ module Prism
1333
1412
  [value]
1334
1413
  end
1335
1414
 
1415
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1416
+ def each_child_node
1417
+ return to_enum(:each_child_node) unless block_given?
1418
+
1419
+ yield value if value
1420
+ end
1421
+
1336
1422
  # def compact_child_nodes: () -> Array[Node]
1337
1423
  def compact_child_nodes
1338
1424
  compact = [] #: Array[Prism::node]
@@ -1433,6 +1519,12 @@ module Prism
1433
1519
  []
1434
1520
  end
1435
1521
 
1522
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1523
+ def each_child_node
1524
+ return to_enum(:each_child_node) unless block_given?
1525
+
1526
+ end
1527
+
1436
1528
  # def compact_child_nodes: () -> Array[Node]
1437
1529
  def compact_child_nodes
1438
1530
  []
@@ -1517,6 +1609,16 @@ module Prism
1517
1609
  [statements, rescue_clause, else_clause, ensure_clause]
1518
1610
  end
1519
1611
 
1612
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1613
+ def each_child_node
1614
+ return to_enum(:each_child_node) unless block_given?
1615
+
1616
+ yield statements if statements
1617
+ yield rescue_clause if rescue_clause
1618
+ yield else_clause if else_clause
1619
+ yield ensure_clause if ensure_clause
1620
+ end
1621
+
1520
1622
  # def compact_child_nodes: () -> Array[Node]
1521
1623
  def compact_child_nodes
1522
1624
  compact = [] #: Array[Prism::node]
@@ -1676,6 +1778,13 @@ module Prism
1676
1778
  [expression]
1677
1779
  end
1678
1780
 
1781
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1782
+ def each_child_node
1783
+ return to_enum(:each_child_node) unless block_given?
1784
+
1785
+ yield expression if expression
1786
+ end
1787
+
1679
1788
  # def compact_child_nodes: () -> Array[Node]
1680
1789
  def compact_child_nodes
1681
1790
  compact = [] #: Array[Prism::node]
@@ -1776,6 +1885,12 @@ module Prism
1776
1885
  []
1777
1886
  end
1778
1887
 
1888
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1889
+ def each_child_node
1890
+ return to_enum(:each_child_node) unless block_given?
1891
+
1892
+ end
1893
+
1779
1894
  # def compact_child_nodes: () -> Array[Node]
1780
1895
  def compact_child_nodes
1781
1896
  []
@@ -1862,6 +1977,14 @@ module Prism
1862
1977
  [parameters, body]
1863
1978
  end
1864
1979
 
1980
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
1981
+ def each_child_node
1982
+ return to_enum(:each_child_node) unless block_given?
1983
+
1984
+ yield parameters if parameters
1985
+ yield body if body
1986
+ end
1987
+
1865
1988
  # def compact_child_nodes: () -> Array[Node]
1866
1989
  def compact_child_nodes
1867
1990
  compact = [] #: Array[Prism::node]
@@ -1910,10 +2033,10 @@ module Prism
1910
2033
  # ^^^^^^
1911
2034
  attr_reader :body
1912
2035
 
1913
- # Represents the location of the opening `|`.
2036
+ # Represents the location of the opening `{` or `do`.
1914
2037
  #
1915
2038
  # [1, 2, 3].each { |i| puts x }
1916
- # ^
2039
+ # ^
1917
2040
  def opening_loc
1918
2041
  location = @opening_loc
1919
2042
  return location if location.is_a?(Location)
@@ -1926,10 +2049,10 @@ module Prism
1926
2049
  repository.enter(node_id, :opening_loc)
1927
2050
  end
1928
2051
 
1929
- # Represents the location of the closing `|`.
2052
+ # Represents the location of the closing `}` or `end`.
1930
2053
  #
1931
2054
  # [1, 2, 3].each { |i| puts x }
1932
- # ^
2055
+ # ^
1933
2056
  def closing_loc
1934
2057
  location = @closing_loc
1935
2058
  return location if location.is_a?(Location)
@@ -2007,6 +2130,12 @@ module Prism
2007
2130
  []
2008
2131
  end
2009
2132
 
2133
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
2134
+ def each_child_node
2135
+ return to_enum(:each_child_node) unless block_given?
2136
+
2137
+ end
2138
+
2010
2139
  # def compact_child_nodes: () -> Array[Node]
2011
2140
  def compact_child_nodes
2012
2141
  []
@@ -2143,6 +2272,14 @@ module Prism
2143
2272
  [parameters, *locals]
2144
2273
  end
2145
2274
 
2275
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
2276
+ def each_child_node
2277
+ return to_enum(:each_child_node) unless block_given?
2278
+
2279
+ yield parameters if parameters
2280
+ locals.each { |node| yield node }
2281
+ end
2282
+
2146
2283
  # def compact_child_nodes: () -> Array[Node]
2147
2284
  def compact_child_nodes
2148
2285
  compact = [] #: Array[Prism::node]
@@ -2303,6 +2440,13 @@ module Prism
2303
2440
  [arguments]
2304
2441
  end
2305
2442
 
2443
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
2444
+ def each_child_node
2445
+ return to_enum(:each_child_node) unless block_given?
2446
+
2447
+ yield arguments if arguments
2448
+ end
2449
+
2306
2450
  # def compact_child_nodes: () -> Array[Node]
2307
2451
  def compact_child_nodes
2308
2452
  compact = [] #: Array[Prism::node]
@@ -2409,6 +2553,14 @@ module Prism
2409
2553
  [receiver, value]
2410
2554
  end
2411
2555
 
2556
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
2557
+ def each_child_node
2558
+ return to_enum(:each_child_node) unless block_given?
2559
+
2560
+ yield receiver if receiver
2561
+ yield value
2562
+ end
2563
+
2412
2564
  # def compact_child_nodes: () -> Array[Node]
2413
2565
  def compact_child_nodes
2414
2566
  compact = [] #: Array[Prism::node]
@@ -2605,7 +2757,7 @@ module Prism
2605
2757
  # ^^^^^^^^
2606
2758
  class CallNode < Node
2607
2759
  # Initialize a new CallNode node.
2608
- def initialize(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block)
2760
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, equal_loc, block)
2609
2761
  @source = source
2610
2762
  @node_id = node_id
2611
2763
  @location = location
@@ -2617,6 +2769,7 @@ module Prism
2617
2769
  @opening_loc = opening_loc
2618
2770
  @arguments = arguments
2619
2771
  @closing_loc = closing_loc
2772
+ @equal_loc = equal_loc
2620
2773
  @block = block
2621
2774
  end
2622
2775
 
@@ -2630,6 +2783,15 @@ module Prism
2630
2783
  [receiver, arguments, block]
2631
2784
  end
2632
2785
 
2786
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
2787
+ def each_child_node
2788
+ return to_enum(:each_child_node) unless block_given?
2789
+
2790
+ yield receiver if receiver
2791
+ yield arguments if arguments
2792
+ yield block if block
2793
+ end
2794
+
2633
2795
  # def compact_child_nodes: () -> Array[Node]
2634
2796
  def compact_child_nodes
2635
2797
  compact = [] #: Array[Prism::node]
@@ -2641,20 +2803,20 @@ module Prism
2641
2803
 
2642
2804
  # def comment_targets: () -> Array[Node | Location]
2643
2805
  def comment_targets
2644
- [*receiver, *call_operator_loc, *message_loc, *opening_loc, *arguments, *closing_loc, *block] #: Array[Prism::node | Location]
2806
+ [*receiver, *call_operator_loc, *message_loc, *opening_loc, *arguments, *closing_loc, *equal_loc, *block] #: Array[Prism::node | Location]
2645
2807
  end
2646
2808
 
2647
- # 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
2648
- def copy(node_id: self.node_id, location: self.location, flags: self.flags, receiver: self.receiver, call_operator_loc: self.call_operator_loc, name: self.name, message_loc: self.message_loc, opening_loc: self.opening_loc, arguments: self.arguments, closing_loc: self.closing_loc, block: self.block)
2649
- CallNode.new(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block)
2809
+ # 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?, ?equal_loc: Location?, ?block: BlockNode | BlockArgumentNode | nil) -> CallNode
2810
+ def copy(node_id: self.node_id, location: self.location, flags: self.flags, receiver: self.receiver, call_operator_loc: self.call_operator_loc, name: self.name, message_loc: self.message_loc, opening_loc: self.opening_loc, arguments: self.arguments, closing_loc: self.closing_loc, equal_loc: self.equal_loc, block: self.block)
2811
+ CallNode.new(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, equal_loc, block)
2650
2812
  end
2651
2813
 
2652
2814
  # def deconstruct: () -> Array[Node?]
2653
2815
  alias deconstruct child_nodes
2654
2816
 
2655
- # 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 }
2817
+ # 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?, equal_loc: Location?, block: BlockNode | BlockArgumentNode | nil }
2656
2818
  def deconstruct_keys(keys)
2657
- { node_id: node_id, location: location, receiver: receiver, call_operator_loc: call_operator_loc, name: name, message_loc: message_loc, opening_loc: opening_loc, arguments: arguments, closing_loc: closing_loc, block: block }
2819
+ { node_id: node_id, location: location, receiver: receiver, call_operator_loc: call_operator_loc, name: name, message_loc: message_loc, opening_loc: opening_loc, arguments: arguments, closing_loc: closing_loc, equal_loc: equal_loc, block: block }
2658
2820
  end
2659
2821
 
2660
2822
  # def safe_navigation?: () -> bool
@@ -2791,6 +2953,31 @@ module Prism
2791
2953
  repository.enter(node_id, :closing_loc) unless @closing_loc.nil?
2792
2954
  end
2793
2955
 
2956
+ # Represents the location of the equal sign, in the case that this is an attribute write.
2957
+ #
2958
+ # foo.bar = value
2959
+ # ^
2960
+ #
2961
+ # foo[bar] = value
2962
+ # ^
2963
+ def equal_loc
2964
+ location = @equal_loc
2965
+ case location
2966
+ when nil
2967
+ nil
2968
+ when Location
2969
+ location
2970
+ else
2971
+ @equal_loc = Location.new(source, location >> 32, location & 0xFFFFFFFF)
2972
+ end
2973
+ end
2974
+
2975
+ # Save the equal_loc location using the given saved source so that
2976
+ # it can be retrieved later.
2977
+ def save_equal_loc(repository)
2978
+ repository.enter(node_id, :equal_loc) unless @equal_loc.nil?
2979
+ end
2980
+
2794
2981
  # Represents the block that is being passed to the method.
2795
2982
  #
2796
2983
  # foo { |a| a }
@@ -2817,6 +3004,11 @@ module Prism
2817
3004
  closing_loc&.slice
2818
3005
  end
2819
3006
 
3007
+ # def equal: () -> String?
3008
+ def equal
3009
+ equal_loc&.slice
3010
+ end
3011
+
2820
3012
  # def inspect -> String
2821
3013
  def inspect
2822
3014
  InspectVisitor.compose(self)
@@ -2844,6 +3036,7 @@ module Prism
2844
3036
  (opening_loc.nil? == other.opening_loc.nil?) &&
2845
3037
  (arguments === other.arguments) &&
2846
3038
  (closing_loc.nil? == other.closing_loc.nil?) &&
3039
+ (equal_loc.nil? == other.equal_loc.nil?) &&
2847
3040
  (block === other.block)
2848
3041
  end
2849
3042
  end
@@ -2879,6 +3072,14 @@ module Prism
2879
3072
  [receiver, value]
2880
3073
  end
2881
3074
 
3075
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
3076
+ def each_child_node
3077
+ return to_enum(:each_child_node) unless block_given?
3078
+
3079
+ yield receiver if receiver
3080
+ yield value
3081
+ end
3082
+
2882
3083
  # def compact_child_nodes: () -> Array[Node]
2883
3084
  def compact_child_nodes
2884
3085
  compact = [] #: Array[Prism::node]
@@ -3086,6 +3287,14 @@ module Prism
3086
3287
  [receiver, value]
3087
3288
  end
3088
3289
 
3290
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
3291
+ def each_child_node
3292
+ return to_enum(:each_child_node) unless block_given?
3293
+
3294
+ yield receiver if receiver
3295
+ yield value
3296
+ end
3297
+
3089
3298
  # def compact_child_nodes: () -> Array[Node]
3090
3299
  def compact_child_nodes
3091
3300
  compact = [] #: Array[Prism::node]
@@ -3296,6 +3505,13 @@ module Prism
3296
3505
  [receiver]
3297
3506
  end
3298
3507
 
3508
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
3509
+ def each_child_node
3510
+ return to_enum(:each_child_node) unless block_given?
3511
+
3512
+ yield receiver
3513
+ end
3514
+
3299
3515
  # def compact_child_nodes: () -> Array[Node]
3300
3516
  def compact_child_nodes
3301
3517
  [receiver]
@@ -3446,6 +3662,14 @@ module Prism
3446
3662
  [value, target]
3447
3663
  end
3448
3664
 
3665
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
3666
+ def each_child_node
3667
+ return to_enum(:each_child_node) unless block_given?
3668
+
3669
+ yield value
3670
+ yield target
3671
+ end
3672
+
3449
3673
  # def compact_child_nodes: () -> Array[Node]
3450
3674
  def compact_child_nodes
3451
3675
  [value, target]
@@ -3557,6 +3781,15 @@ module Prism
3557
3781
  [predicate, *conditions, else_clause]
3558
3782
  end
3559
3783
 
3784
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
3785
+ def each_child_node
3786
+ return to_enum(:each_child_node) unless block_given?
3787
+
3788
+ yield predicate if predicate
3789
+ conditions.each { |node| yield node }
3790
+ yield else_clause if else_clause
3791
+ end
3792
+
3560
3793
  # def compact_child_nodes: () -> Array[Node]
3561
3794
  def compact_child_nodes
3562
3795
  compact = [] #: Array[Prism::node]
@@ -3702,6 +3935,15 @@ module Prism
3702
3935
  [predicate, *conditions, else_clause]
3703
3936
  end
3704
3937
 
3938
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
3939
+ def each_child_node
3940
+ return to_enum(:each_child_node) unless block_given?
3941
+
3942
+ yield predicate if predicate
3943
+ conditions.each { |node| yield node }
3944
+ yield else_clause if else_clause
3945
+ end
3946
+
3705
3947
  # def compact_child_nodes: () -> Array[Node]
3706
3948
  def compact_child_nodes
3707
3949
  compact = [] #: Array[Prism::node]
@@ -3732,7 +3974,7 @@ module Prism
3732
3974
  # Represents the predicate of the case statement. This can be either `nil` or any [non-void expressions](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
3733
3975
  #
3734
3976
  # case true; when false; end
3735
- # ^^^^
3977
+ # ^^^^
3736
3978
  attr_reader :predicate
3737
3979
 
3738
3980
  # Represents the conditions of the case statement.
@@ -3848,6 +4090,15 @@ module Prism
3848
4090
  [constant_path, superclass, body]
3849
4091
  end
3850
4092
 
4093
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4094
+ def each_child_node
4095
+ return to_enum(:each_child_node) unless block_given?
4096
+
4097
+ yield constant_path
4098
+ yield superclass if superclass
4099
+ yield body if body
4100
+ end
4101
+
3851
4102
  # def compact_child_nodes: () -> Array[Node]
3852
4103
  def compact_child_nodes
3853
4104
  compact = [] #: Array[Prism::node]
@@ -4026,6 +4277,13 @@ module Prism
4026
4277
  [value]
4027
4278
  end
4028
4279
 
4280
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4281
+ def each_child_node
4282
+ return to_enum(:each_child_node) unless block_given?
4283
+
4284
+ yield value
4285
+ end
4286
+
4029
4287
  # def compact_child_nodes: () -> Array[Node]
4030
4288
  def compact_child_nodes
4031
4289
  [value]
@@ -4152,6 +4410,13 @@ module Prism
4152
4410
  [value]
4153
4411
  end
4154
4412
 
4413
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4414
+ def each_child_node
4415
+ return to_enum(:each_child_node) unless block_given?
4416
+
4417
+ yield value
4418
+ end
4419
+
4155
4420
  # def compact_child_nodes: () -> Array[Node]
4156
4421
  def compact_child_nodes
4157
4422
  [value]
@@ -4264,6 +4529,13 @@ module Prism
4264
4529
  [value]
4265
4530
  end
4266
4531
 
4532
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4533
+ def each_child_node
4534
+ return to_enum(:each_child_node) unless block_given?
4535
+
4536
+ yield value
4537
+ end
4538
+
4267
4539
  # def compact_child_nodes: () -> Array[Node]
4268
4540
  def compact_child_nodes
4269
4541
  [value]
@@ -4374,6 +4646,12 @@ module Prism
4374
4646
  []
4375
4647
  end
4376
4648
 
4649
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4650
+ def each_child_node
4651
+ return to_enum(:each_child_node) unless block_given?
4652
+
4653
+ end
4654
+
4377
4655
  # def compact_child_nodes: () -> Array[Node]
4378
4656
  def compact_child_nodes
4379
4657
  []
@@ -4451,6 +4729,12 @@ module Prism
4451
4729
  []
4452
4730
  end
4453
4731
 
4732
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4733
+ def each_child_node
4734
+ return to_enum(:each_child_node) unless block_given?
4735
+
4736
+ end
4737
+
4454
4738
  # def compact_child_nodes: () -> Array[Node]
4455
4739
  def compact_child_nodes
4456
4740
  []
@@ -4527,6 +4811,13 @@ module Prism
4527
4811
  [value]
4528
4812
  end
4529
4813
 
4814
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4815
+ def each_child_node
4816
+ return to_enum(:each_child_node) unless block_given?
4817
+
4818
+ yield value
4819
+ end
4820
+
4530
4821
  # def compact_child_nodes: () -> Array[Node]
4531
4822
  def compact_child_nodes
4532
4823
  [value]
@@ -4656,6 +4947,13 @@ module Prism
4656
4947
  [value]
4657
4948
  end
4658
4949
 
4950
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
4951
+ def each_child_node
4952
+ return to_enum(:each_child_node) unless block_given?
4953
+
4954
+ yield value
4955
+ end
4956
+
4659
4957
  # def compact_child_nodes: () -> Array[Node]
4660
4958
  def compact_child_nodes
4661
4959
  [value]
@@ -4770,6 +5068,13 @@ module Prism
4770
5068
  [value]
4771
5069
  end
4772
5070
 
5071
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5072
+ def each_child_node
5073
+ return to_enum(:each_child_node) unless block_given?
5074
+
5075
+ yield value
5076
+ end
5077
+
4773
5078
  # def compact_child_nodes: () -> Array[Node]
4774
5079
  def compact_child_nodes
4775
5080
  [value]
@@ -4882,6 +5187,13 @@ module Prism
4882
5187
  [value]
4883
5188
  end
4884
5189
 
5190
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5191
+ def each_child_node
5192
+ return to_enum(:each_child_node) unless block_given?
5193
+
5194
+ yield value
5195
+ end
5196
+
4885
5197
  # def compact_child_nodes: () -> Array[Node]
4886
5198
  def compact_child_nodes
4887
5199
  [value]
@@ -4994,6 +5306,14 @@ module Prism
4994
5306
  [target, value]
4995
5307
  end
4996
5308
 
5309
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5310
+ def each_child_node
5311
+ return to_enum(:each_child_node) unless block_given?
5312
+
5313
+ yield target
5314
+ yield value
5315
+ end
5316
+
4997
5317
  # def compact_child_nodes: () -> Array[Node]
4998
5318
  def compact_child_nodes
4999
5319
  [target, value]
@@ -5093,6 +5413,13 @@ module Prism
5093
5413
  [parent]
5094
5414
  end
5095
5415
 
5416
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5417
+ def each_child_node
5418
+ return to_enum(:each_child_node) unless block_given?
5419
+
5420
+ yield parent if parent
5421
+ end
5422
+
5096
5423
  # def compact_child_nodes: () -> Array[Node]
5097
5424
  def compact_child_nodes
5098
5425
  compact = [] #: Array[Prism::node]
@@ -5229,6 +5556,14 @@ module Prism
5229
5556
  [target, value]
5230
5557
  end
5231
5558
 
5559
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5560
+ def each_child_node
5561
+ return to_enum(:each_child_node) unless block_given?
5562
+
5563
+ yield target
5564
+ yield value
5565
+ end
5566
+
5232
5567
  # def compact_child_nodes: () -> Array[Node]
5233
5568
  def compact_child_nodes
5234
5569
  [target, value]
@@ -5326,6 +5661,14 @@ module Prism
5326
5661
  [target, value]
5327
5662
  end
5328
5663
 
5664
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5665
+ def each_child_node
5666
+ return to_enum(:each_child_node) unless block_given?
5667
+
5668
+ yield target
5669
+ yield value
5670
+ end
5671
+
5329
5672
  # def compact_child_nodes: () -> Array[Node]
5330
5673
  def compact_child_nodes
5331
5674
  [target, value]
@@ -5425,6 +5768,13 @@ module Prism
5425
5768
  [parent]
5426
5769
  end
5427
5770
 
5771
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5772
+ def each_child_node
5773
+ return to_enum(:each_child_node) unless block_given?
5774
+
5775
+ yield parent if parent
5776
+ end
5777
+
5428
5778
  # def compact_child_nodes: () -> Array[Node]
5429
5779
  def compact_child_nodes
5430
5780
  compact = [] #: Array[Prism::node]
@@ -5545,6 +5895,14 @@ module Prism
5545
5895
  [target, value]
5546
5896
  end
5547
5897
 
5898
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
5899
+ def each_child_node
5900
+ return to_enum(:each_child_node) unless block_given?
5901
+
5902
+ yield target
5903
+ yield value
5904
+ end
5905
+
5548
5906
  # def compact_child_nodes: () -> Array[Node]
5549
5907
  def compact_child_nodes
5550
5908
  [target, value]
@@ -5653,6 +6011,12 @@ module Prism
5653
6011
  []
5654
6012
  end
5655
6013
 
6014
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6015
+ def each_child_node
6016
+ return to_enum(:each_child_node) unless block_given?
6017
+
6018
+ end
6019
+
5656
6020
  # def compact_child_nodes: () -> Array[Node]
5657
6021
  def compact_child_nodes
5658
6022
  []
@@ -5730,6 +6094,12 @@ module Prism
5730
6094
  []
5731
6095
  end
5732
6096
 
6097
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6098
+ def each_child_node
6099
+ return to_enum(:each_child_node) unless block_given?
6100
+
6101
+ end
6102
+
5733
6103
  # def compact_child_nodes: () -> Array[Node]
5734
6104
  def compact_child_nodes
5735
6105
  []
@@ -5806,6 +6176,13 @@ module Prism
5806
6176
  [value]
5807
6177
  end
5808
6178
 
6179
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6180
+ def each_child_node
6181
+ return to_enum(:each_child_node) unless block_given?
6182
+
6183
+ yield value
6184
+ end
6185
+
5809
6186
  # def compact_child_nodes: () -> Array[Node]
5810
6187
  def compact_child_nodes
5811
6188
  [value]
@@ -5944,6 +6321,15 @@ module Prism
5944
6321
  [receiver, parameters, body]
5945
6322
  end
5946
6323
 
6324
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6325
+ def each_child_node
6326
+ return to_enum(:each_child_node) unless block_given?
6327
+
6328
+ yield receiver if receiver
6329
+ yield parameters if parameters
6330
+ yield body if body
6331
+ end
6332
+
5947
6333
  # def compact_child_nodes: () -> Array[Node]
5948
6334
  def compact_child_nodes
5949
6335
  compact = [] #: Array[Prism::node]
@@ -6199,6 +6585,13 @@ module Prism
6199
6585
  [value]
6200
6586
  end
6201
6587
 
6588
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6589
+ def each_child_node
6590
+ return to_enum(:each_child_node) unless block_given?
6591
+
6592
+ yield value
6593
+ end
6594
+
6202
6595
  # def compact_child_nodes: () -> Array[Node]
6203
6596
  def compact_child_nodes
6204
6597
  [value]
@@ -6343,6 +6736,13 @@ module Prism
6343
6736
  [statements]
6344
6737
  end
6345
6738
 
6739
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6740
+ def each_child_node
6741
+ return to_enum(:each_child_node) unless block_given?
6742
+
6743
+ yield statements if statements
6744
+ end
6745
+
6346
6746
  # def compact_child_nodes: () -> Array[Node]
6347
6747
  def compact_child_nodes
6348
6748
  compact = [] #: Array[Prism::node]
@@ -6464,6 +6864,13 @@ module Prism
6464
6864
  [statements]
6465
6865
  end
6466
6866
 
6867
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6868
+ def each_child_node
6869
+ return to_enum(:each_child_node) unless block_given?
6870
+
6871
+ yield statements if statements
6872
+ end
6873
+
6467
6874
  # def compact_child_nodes: () -> Array[Node]
6468
6875
  def compact_child_nodes
6469
6876
  compact = [] #: Array[Prism::node]
@@ -6578,6 +6985,13 @@ module Prism
6578
6985
  [variable]
6579
6986
  end
6580
6987
 
6988
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
6989
+ def each_child_node
6990
+ return to_enum(:each_child_node) unless block_given?
6991
+
6992
+ yield variable
6993
+ end
6994
+
6581
6995
  # def compact_child_nodes: () -> Array[Node]
6582
6996
  def compact_child_nodes
6583
6997
  [variable]
@@ -6676,6 +7090,13 @@ module Prism
6676
7090
  [statements]
6677
7091
  end
6678
7092
 
7093
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7094
+ def each_child_node
7095
+ return to_enum(:each_child_node) unless block_given?
7096
+
7097
+ yield statements if statements
7098
+ end
7099
+
6679
7100
  # def compact_child_nodes: () -> Array[Node]
6680
7101
  def compact_child_nodes
6681
7102
  compact = [] #: Array[Prism::node]
@@ -6788,6 +7209,12 @@ module Prism
6788
7209
  []
6789
7210
  end
6790
7211
 
7212
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7213
+ def each_child_node
7214
+ return to_enum(:each_child_node) unless block_given?
7215
+
7216
+ end
7217
+
6791
7218
  # def compact_child_nodes: () -> Array[Node]
6792
7219
  def compact_child_nodes
6793
7220
  []
@@ -6871,6 +7298,16 @@ module Prism
6871
7298
  [constant, left, *requireds, right]
6872
7299
  end
6873
7300
 
7301
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7302
+ def each_child_node
7303
+ return to_enum(:each_child_node) unless block_given?
7304
+
7305
+ yield constant if constant
7306
+ yield left
7307
+ requireds.each { |node| yield node }
7308
+ yield right
7309
+ end
7310
+
6874
7311
  # def compact_child_nodes: () -> Array[Node]
6875
7312
  def compact_child_nodes
6876
7313
  compact = [] #: Array[Prism::node]
@@ -7047,6 +7484,14 @@ module Prism
7047
7484
  [left, right]
7048
7485
  end
7049
7486
 
7487
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7488
+ def each_child_node
7489
+ return to_enum(:each_child_node) unless block_given?
7490
+
7491
+ yield left if left
7492
+ yield right if right
7493
+ end
7494
+
7050
7495
  # def compact_child_nodes: () -> Array[Node]
7051
7496
  def compact_child_nodes
7052
7497
  compact = [] #: Array[Prism::node]
@@ -7152,6 +7597,12 @@ module Prism
7152
7597
  []
7153
7598
  end
7154
7599
 
7600
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7601
+ def each_child_node
7602
+ return to_enum(:each_child_node) unless block_given?
7603
+
7604
+ end
7605
+
7155
7606
  # def compact_child_nodes: () -> Array[Node]
7156
7607
  def compact_child_nodes
7157
7608
  []
@@ -7231,6 +7682,15 @@ module Prism
7231
7682
  [index, collection, statements]
7232
7683
  end
7233
7684
 
7685
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7686
+ def each_child_node
7687
+ return to_enum(:each_child_node) unless block_given?
7688
+
7689
+ yield index
7690
+ yield collection
7691
+ yield statements if statements
7692
+ end
7693
+
7234
7694
  # def compact_child_nodes: () -> Array[Node]
7235
7695
  def compact_child_nodes
7236
7696
  compact = [] #: Array[Prism::node]
@@ -7422,6 +7882,12 @@ module Prism
7422
7882
  []
7423
7883
  end
7424
7884
 
7885
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7886
+ def each_child_node
7887
+ return to_enum(:each_child_node) unless block_given?
7888
+
7889
+ end
7890
+
7425
7891
  # def compact_child_nodes: () -> Array[Node]
7426
7892
  def compact_child_nodes
7427
7893
  []
@@ -7491,6 +7957,12 @@ module Prism
7491
7957
  []
7492
7958
  end
7493
7959
 
7960
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
7961
+ def each_child_node
7962
+ return to_enum(:each_child_node) unless block_given?
7963
+
7964
+ end
7965
+
7494
7966
  # def compact_child_nodes: () -> Array[Node]
7495
7967
  def compact_child_nodes
7496
7968
  []
@@ -7536,10 +8008,15 @@ module Prism
7536
8008
  end
7537
8009
  end
7538
8010
 
7539
- # Represents the use of the `super` keyword without parentheses or arguments.
8011
+ # Represents the use of the `super` keyword without parentheses or arguments, but which might have a block.
7540
8012
  #
7541
8013
  # super
7542
8014
  # ^^^^^
8015
+ #
8016
+ # super { 123 }
8017
+ # ^^^^^^^^^^^^^
8018
+ #
8019
+ # If it has any other arguments, it would be a `SuperNode` instead.
7543
8020
  class ForwardingSuperNode < Node
7544
8021
  # Initialize a new ForwardingSuperNode node.
7545
8022
  def initialize(source, node_id, location, flags, block)
@@ -7560,6 +8037,13 @@ module Prism
7560
8037
  [block]
7561
8038
  end
7562
8039
 
8040
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8041
+ def each_child_node
8042
+ return to_enum(:each_child_node) unless block_given?
8043
+
8044
+ yield block if block
8045
+ end
8046
+
7563
8047
  # def compact_child_nodes: () -> Array[Node]
7564
8048
  def compact_child_nodes
7565
8049
  compact = [] #: Array[Prism::node]
@@ -7585,7 +8069,7 @@ module Prism
7585
8069
  { node_id: node_id, location: location, block: block }
7586
8070
  end
7587
8071
 
7588
- # attr_reader block: BlockNode?
8072
+ # All other arguments are forwarded as normal, except the original block is replaced with the new block.
7589
8073
  attr_reader :block
7590
8074
 
7591
8075
  # def inspect -> String
@@ -7638,6 +8122,13 @@ module Prism
7638
8122
  [value]
7639
8123
  end
7640
8124
 
8125
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8126
+ def each_child_node
8127
+ return to_enum(:each_child_node) unless block_given?
8128
+
8129
+ yield value
8130
+ end
8131
+
7641
8132
  # def compact_child_nodes: () -> Array[Node]
7642
8133
  def compact_child_nodes
7643
8134
  [value]
@@ -7752,6 +8243,13 @@ module Prism
7752
8243
  [value]
7753
8244
  end
7754
8245
 
8246
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8247
+ def each_child_node
8248
+ return to_enum(:each_child_node) unless block_given?
8249
+
8250
+ yield value
8251
+ end
8252
+
7755
8253
  # def compact_child_nodes: () -> Array[Node]
7756
8254
  def compact_child_nodes
7757
8255
  [value]
@@ -7864,6 +8362,13 @@ module Prism
7864
8362
  [value]
7865
8363
  end
7866
8364
 
8365
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8366
+ def each_child_node
8367
+ return to_enum(:each_child_node) unless block_given?
8368
+
8369
+ yield value
8370
+ end
8371
+
7867
8372
  # def compact_child_nodes: () -> Array[Node]
7868
8373
  def compact_child_nodes
7869
8374
  [value]
@@ -7974,6 +8479,12 @@ module Prism
7974
8479
  []
7975
8480
  end
7976
8481
 
8482
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8483
+ def each_child_node
8484
+ return to_enum(:each_child_node) unless block_given?
8485
+
8486
+ end
8487
+
7977
8488
  # def compact_child_nodes: () -> Array[Node]
7978
8489
  def compact_child_nodes
7979
8490
  []
@@ -8051,6 +8562,12 @@ module Prism
8051
8562
  []
8052
8563
  end
8053
8564
 
8565
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8566
+ def each_child_node
8567
+ return to_enum(:each_child_node) unless block_given?
8568
+
8569
+ end
8570
+
8054
8571
  # def compact_child_nodes: () -> Array[Node]
8055
8572
  def compact_child_nodes
8056
8573
  []
@@ -8127,6 +8644,13 @@ module Prism
8127
8644
  [value]
8128
8645
  end
8129
8646
 
8647
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8648
+ def each_child_node
8649
+ return to_enum(:each_child_node) unless block_given?
8650
+
8651
+ yield value
8652
+ end
8653
+
8130
8654
  # def compact_child_nodes: () -> Array[Node]
8131
8655
  def compact_child_nodes
8132
8656
  [value]
@@ -8255,6 +8779,13 @@ module Prism
8255
8779
  [*elements]
8256
8780
  end
8257
8781
 
8782
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8783
+ def each_child_node
8784
+ return to_enum(:each_child_node) unless block_given?
8785
+
8786
+ elements.each { |node| yield node }
8787
+ end
8788
+
8258
8789
  # def compact_child_nodes: () -> Array[Node]
8259
8790
  def compact_child_nodes
8260
8791
  [*elements]
@@ -8392,6 +8923,15 @@ module Prism
8392
8923
  [constant, *elements, rest]
8393
8924
  end
8394
8925
 
8926
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
8927
+ def each_child_node
8928
+ return to_enum(:each_child_node) unless block_given?
8929
+
8930
+ yield constant if constant
8931
+ elements.each { |node| yield node }
8932
+ yield rest if rest
8933
+ end
8934
+
8395
8935
  # def compact_child_nodes: () -> Array[Node]
8396
8936
  def compact_child_nodes
8397
8937
  compact = [] #: Array[Prism::node]
@@ -8569,6 +9109,15 @@ module Prism
8569
9109
  [predicate, statements, subsequent]
8570
9110
  end
8571
9111
 
9112
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
9113
+ def each_child_node
9114
+ return to_enum(:each_child_node) unless block_given?
9115
+
9116
+ yield predicate
9117
+ yield statements if statements
9118
+ yield subsequent if subsequent
9119
+ end
9120
+
8572
9121
  # def compact_child_nodes: () -> Array[Node]
8573
9122
  def compact_child_nodes
8574
9123
  compact = [] #: Array[Prism::node]
@@ -8775,6 +9324,13 @@ module Prism
8775
9324
  [numeric]
8776
9325
  end
8777
9326
 
9327
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
9328
+ def each_child_node
9329
+ return to_enum(:each_child_node) unless block_given?
9330
+
9331
+ yield numeric
9332
+ end
9333
+
8778
9334
  # def compact_child_nodes: () -> Array[Node]
8779
9335
  def compact_child_nodes
8780
9336
  [numeric]
@@ -8854,6 +9410,13 @@ module Prism
8854
9410
  [value]
8855
9411
  end
8856
9412
 
9413
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
9414
+ def each_child_node
9415
+ return to_enum(:each_child_node) unless block_given?
9416
+
9417
+ yield value
9418
+ end
9419
+
8857
9420
  # def compact_child_nodes: () -> Array[Node]
8858
9421
  def compact_child_nodes
8859
9422
  [value]
@@ -8935,6 +9498,12 @@ module Prism
8935
9498
  []
8936
9499
  end
8937
9500
 
9501
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
9502
+ def each_child_node
9503
+ return to_enum(:each_child_node) unless block_given?
9504
+
9505
+ end
9506
+
8938
9507
  # def compact_child_nodes: () -> Array[Node]
8939
9508
  def compact_child_nodes
8940
9509
  []
@@ -9007,6 +9576,14 @@ module Prism
9007
9576
  [pattern, statements]
9008
9577
  end
9009
9578
 
9579
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
9580
+ def each_child_node
9581
+ return to_enum(:each_child_node) unless block_given?
9582
+
9583
+ yield pattern
9584
+ yield statements if statements
9585
+ end
9586
+
9010
9587
  # def compact_child_nodes: () -> Array[Node]
9011
9588
  def compact_child_nodes
9012
9589
  compact = [] #: Array[Prism::node]
@@ -9138,6 +9715,16 @@ module Prism
9138
9715
  [receiver, arguments, block, value]
9139
9716
  end
9140
9717
 
9718
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
9719
+ def each_child_node
9720
+ return to_enum(:each_child_node) unless block_given?
9721
+
9722
+ yield receiver if receiver
9723
+ yield arguments if arguments
9724
+ yield block if block
9725
+ yield value
9726
+ end
9727
+
9141
9728
  # def compact_child_nodes: () -> Array[Node]
9142
9729
  def compact_child_nodes
9143
9730
  compact = [] #: Array[Prism::node]
@@ -9339,6 +9926,16 @@ module Prism
9339
9926
  [receiver, arguments, block, value]
9340
9927
  end
9341
9928
 
9929
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
9930
+ def each_child_node
9931
+ return to_enum(:each_child_node) unless block_given?
9932
+
9933
+ yield receiver if receiver
9934
+ yield arguments if arguments
9935
+ yield block if block
9936
+ yield value
9937
+ end
9938
+
9342
9939
  # def compact_child_nodes: () -> Array[Node]
9343
9940
  def compact_child_nodes
9344
9941
  compact = [] #: Array[Prism::node]
@@ -9538,6 +10135,16 @@ module Prism
9538
10135
  [receiver, arguments, block, value]
9539
10136
  end
9540
10137
 
10138
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
10139
+ def each_child_node
10140
+ return to_enum(:each_child_node) unless block_given?
10141
+
10142
+ yield receiver if receiver
10143
+ yield arguments if arguments
10144
+ yield block if block
10145
+ yield value
10146
+ end
10147
+
9541
10148
  # def compact_child_nodes: () -> Array[Node]
9542
10149
  def compact_child_nodes
9543
10150
  compact = [] #: Array[Prism::node]
@@ -9743,6 +10350,15 @@ module Prism
9743
10350
  [receiver, arguments, block]
9744
10351
  end
9745
10352
 
10353
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
10354
+ def each_child_node
10355
+ return to_enum(:each_child_node) unless block_given?
10356
+
10357
+ yield receiver
10358
+ yield arguments if arguments
10359
+ yield block if block
10360
+ end
10361
+
9746
10362
  # def compact_child_nodes: () -> Array[Node]
9747
10363
  def compact_child_nodes
9748
10364
  compact = [] #: Array[Prism::node]
@@ -9890,6 +10506,13 @@ module Prism
9890
10506
  [value]
9891
10507
  end
9892
10508
 
10509
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
10510
+ def each_child_node
10511
+ return to_enum(:each_child_node) unless block_given?
10512
+
10513
+ yield value
10514
+ end
10515
+
9893
10516
  # def compact_child_nodes: () -> Array[Node]
9894
10517
  def compact_child_nodes
9895
10518
  [value]
@@ -10004,6 +10627,13 @@ module Prism
10004
10627
  [value]
10005
10628
  end
10006
10629
 
10630
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
10631
+ def each_child_node
10632
+ return to_enum(:each_child_node) unless block_given?
10633
+
10634
+ yield value
10635
+ end
10636
+
10007
10637
  # def compact_child_nodes: () -> Array[Node]
10008
10638
  def compact_child_nodes
10009
10639
  [value]
@@ -10116,6 +10746,13 @@ module Prism
10116
10746
  [value]
10117
10747
  end
10118
10748
 
10749
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
10750
+ def each_child_node
10751
+ return to_enum(:each_child_node) unless block_given?
10752
+
10753
+ yield value
10754
+ end
10755
+
10119
10756
  # def compact_child_nodes: () -> Array[Node]
10120
10757
  def compact_child_nodes
10121
10758
  [value]
@@ -10226,6 +10863,12 @@ module Prism
10226
10863
  []
10227
10864
  end
10228
10865
 
10866
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
10867
+ def each_child_node
10868
+ return to_enum(:each_child_node) unless block_given?
10869
+
10870
+ end
10871
+
10229
10872
  # def compact_child_nodes: () -> Array[Node]
10230
10873
  def compact_child_nodes
10231
10874
  []
@@ -10303,6 +10946,12 @@ module Prism
10303
10946
  []
10304
10947
  end
10305
10948
 
10949
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
10950
+ def each_child_node
10951
+ return to_enum(:each_child_node) unless block_given?
10952
+
10953
+ end
10954
+
10306
10955
  # def compact_child_nodes: () -> Array[Node]
10307
10956
  def compact_child_nodes
10308
10957
  []
@@ -10379,6 +11028,13 @@ module Prism
10379
11028
  [value]
10380
11029
  end
10381
11030
 
11031
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
11032
+ def each_child_node
11033
+ return to_enum(:each_child_node) unless block_given?
11034
+
11035
+ yield value
11036
+ end
11037
+
10382
11038
  # def compact_child_nodes: () -> Array[Node]
10383
11039
  def compact_child_nodes
10384
11040
  [value]
@@ -10505,6 +11161,12 @@ module Prism
10505
11161
  []
10506
11162
  end
10507
11163
 
11164
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
11165
+ def each_child_node
11166
+ return to_enum(:each_child_node) unless block_given?
11167
+
11168
+ end
11169
+
10508
11170
  # def compact_child_nodes: () -> Array[Node]
10509
11171
  def compact_child_nodes
10510
11172
  []
@@ -10601,6 +11263,13 @@ module Prism
10601
11263
  [*parts]
10602
11264
  end
10603
11265
 
11266
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
11267
+ def each_child_node
11268
+ return to_enum(:each_child_node) unless block_given?
11269
+
11270
+ parts.each { |node| yield node }
11271
+ end
11272
+
10604
11273
  # def compact_child_nodes: () -> Array[Node]
10605
11274
  def compact_child_nodes
10606
11275
  [*parts]
@@ -10771,6 +11440,13 @@ module Prism
10771
11440
  [*parts]
10772
11441
  end
10773
11442
 
11443
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
11444
+ def each_child_node
11445
+ return to_enum(:each_child_node) unless block_given?
11446
+
11447
+ parts.each { |node| yield node }
11448
+ end
11449
+
10774
11450
  # def compact_child_nodes: () -> Array[Node]
10775
11451
  def compact_child_nodes
10776
11452
  [*parts]
@@ -10941,6 +11617,13 @@ module Prism
10941
11617
  [*parts]
10942
11618
  end
10943
11619
 
11620
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
11621
+ def each_child_node
11622
+ return to_enum(:each_child_node) unless block_given?
11623
+
11624
+ parts.each { |node| yield node }
11625
+ end
11626
+
10944
11627
  # def compact_child_nodes: () -> Array[Node]
10945
11628
  def compact_child_nodes
10946
11629
  [*parts]
@@ -10951,7 +11634,7 @@ module Prism
10951
11634
  [*opening_loc, *parts, *closing_loc] #: Array[Prism::node | Location]
10952
11635
  end
10953
11636
 
10954
- # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode | XStringNode], ?closing_loc: Location?) -> InterpolatedStringNode
11637
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode | XStringNode | InterpolatedXStringNode | SymbolNode | InterpolatedSymbolNode], ?closing_loc: Location?) -> InterpolatedStringNode
10955
11638
  def copy(node_id: self.node_id, location: self.location, flags: self.flags, opening_loc: self.opening_loc, parts: self.parts, closing_loc: self.closing_loc)
10956
11639
  InterpolatedStringNode.new(source, node_id, location, flags, opening_loc, parts, closing_loc)
10957
11640
  end
@@ -10959,7 +11642,7 @@ module Prism
10959
11642
  # def deconstruct: () -> Array[Node?]
10960
11643
  alias deconstruct child_nodes
10961
11644
 
10962
- # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode | XStringNode], closing_loc: Location? }
11645
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode | XStringNode | InterpolatedXStringNode | SymbolNode | InterpolatedSymbolNode], closing_loc: Location? }
10963
11646
  def deconstruct_keys(keys)
10964
11647
  { node_id: node_id, location: location, opening_loc: opening_loc, parts: parts, closing_loc: closing_loc }
10965
11648
  end
@@ -10993,7 +11676,7 @@ module Prism
10993
11676
  repository.enter(node_id, :opening_loc) unless @opening_loc.nil?
10994
11677
  end
10995
11678
 
10996
- # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode | XStringNode]
11679
+ # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode | XStringNode | InterpolatedXStringNode | SymbolNode | InterpolatedSymbolNode]
10997
11680
  attr_reader :parts
10998
11681
 
10999
11682
  # attr_reader closing_loc: Location?
@@ -11078,6 +11761,13 @@ module Prism
11078
11761
  [*parts]
11079
11762
  end
11080
11763
 
11764
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
11765
+ def each_child_node
11766
+ return to_enum(:each_child_node) unless block_given?
11767
+
11768
+ parts.each { |node| yield node }
11769
+ end
11770
+
11081
11771
  # def compact_child_nodes: () -> Array[Node]
11082
11772
  def compact_child_nodes
11083
11773
  [*parts]
@@ -11204,6 +11894,13 @@ module Prism
11204
11894
  [*parts]
11205
11895
  end
11206
11896
 
11897
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
11898
+ def each_child_node
11899
+ return to_enum(:each_child_node) unless block_given?
11900
+
11901
+ parts.each { |node| yield node }
11902
+ end
11903
+
11207
11904
  # def compact_child_nodes: () -> Array[Node]
11208
11905
  def compact_child_nodes
11209
11906
  [*parts]
@@ -11315,6 +12012,12 @@ module Prism
11315
12012
  []
11316
12013
  end
11317
12014
 
12015
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12016
+ def each_child_node
12017
+ return to_enum(:each_child_node) unless block_given?
12018
+
12019
+ end
12020
+
11318
12021
  # def compact_child_nodes: () -> Array[Node]
11319
12022
  def compact_child_nodes
11320
12023
  []
@@ -11383,6 +12086,12 @@ module Prism
11383
12086
  []
11384
12087
  end
11385
12088
 
12089
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12090
+ def each_child_node
12091
+ return to_enum(:each_child_node) unless block_given?
12092
+
12093
+ end
12094
+
11386
12095
  # def compact_child_nodes: () -> Array[Node]
11387
12096
  def compact_child_nodes
11388
12097
  []
@@ -11452,6 +12161,13 @@ module Prism
11452
12161
  [*elements]
11453
12162
  end
11454
12163
 
12164
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12165
+ def each_child_node
12166
+ return to_enum(:each_child_node) unless block_given?
12167
+
12168
+ elements.each { |node| yield node }
12169
+ end
12170
+
11455
12171
  # def compact_child_nodes: () -> Array[Node]
11456
12172
  def compact_child_nodes
11457
12173
  [*elements]
@@ -11535,6 +12251,12 @@ module Prism
11535
12251
  []
11536
12252
  end
11537
12253
 
12254
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12255
+ def each_child_node
12256
+ return to_enum(:each_child_node) unless block_given?
12257
+
12258
+ end
12259
+
11538
12260
  # def compact_child_nodes: () -> Array[Node]
11539
12261
  def compact_child_nodes
11540
12262
  []
@@ -11658,6 +12380,14 @@ module Prism
11658
12380
  [parameters, body]
11659
12381
  end
11660
12382
 
12383
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12384
+ def each_child_node
12385
+ return to_enum(:each_child_node) unless block_given?
12386
+
12387
+ yield parameters if parameters
12388
+ yield body if body
12389
+ end
12390
+
11661
12391
  # def compact_child_nodes: () -> Array[Node]
11662
12392
  def compact_child_nodes
11663
12393
  compact = [] #: Array[Prism::node]
@@ -11804,6 +12534,13 @@ module Prism
11804
12534
  [value]
11805
12535
  end
11806
12536
 
12537
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12538
+ def each_child_node
12539
+ return to_enum(:each_child_node) unless block_given?
12540
+
12541
+ yield value
12542
+ end
12543
+
11807
12544
  # def compact_child_nodes: () -> Array[Node]
11808
12545
  def compact_child_nodes
11809
12546
  [value]
@@ -11923,6 +12660,13 @@ module Prism
11923
12660
  [value]
11924
12661
  end
11925
12662
 
12663
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12664
+ def each_child_node
12665
+ return to_enum(:each_child_node) unless block_given?
12666
+
12667
+ yield value
12668
+ end
12669
+
11926
12670
  # def compact_child_nodes: () -> Array[Node]
11927
12671
  def compact_child_nodes
11928
12672
  [value]
@@ -12040,6 +12784,13 @@ module Prism
12040
12784
  [value]
12041
12785
  end
12042
12786
 
12787
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12788
+ def each_child_node
12789
+ return to_enum(:each_child_node) unless block_given?
12790
+
12791
+ yield value
12792
+ end
12793
+
12043
12794
  # def compact_child_nodes: () -> Array[Node]
12044
12795
  def compact_child_nodes
12045
12796
  [value]
@@ -12155,6 +12906,12 @@ module Prism
12155
12906
  []
12156
12907
  end
12157
12908
 
12909
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
12910
+ def each_child_node
12911
+ return to_enum(:each_child_node) unless block_given?
12912
+
12913
+ end
12914
+
12158
12915
  # def compact_child_nodes: () -> Array[Node]
12159
12916
  def compact_child_nodes
12160
12917
  []
@@ -12250,6 +13007,12 @@ module Prism
12250
13007
  []
12251
13008
  end
12252
13009
 
13010
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13011
+ def each_child_node
13012
+ return to_enum(:each_child_node) unless block_given?
13013
+
13014
+ end
13015
+
12253
13016
  # def compact_child_nodes: () -> Array[Node]
12254
13017
  def compact_child_nodes
12255
13018
  []
@@ -12331,6 +13094,13 @@ module Prism
12331
13094
  [value]
12332
13095
  end
12333
13096
 
13097
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13098
+ def each_child_node
13099
+ return to_enum(:each_child_node) unless block_given?
13100
+
13101
+ yield value
13102
+ end
13103
+
12334
13104
  # def compact_child_nodes: () -> Array[Node]
12335
13105
  def compact_child_nodes
12336
13106
  [value]
@@ -12474,6 +13244,12 @@ module Prism
12474
13244
  []
12475
13245
  end
12476
13246
 
13247
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13248
+ def each_child_node
13249
+ return to_enum(:each_child_node) unless block_given?
13250
+
13251
+ end
13252
+
12477
13253
  # def compact_child_nodes: () -> Array[Node]
12478
13254
  def compact_child_nodes
12479
13255
  []
@@ -12662,6 +13438,14 @@ module Prism
12662
13438
  [value, pattern]
12663
13439
  end
12664
13440
 
13441
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13442
+ def each_child_node
13443
+ return to_enum(:each_child_node) unless block_given?
13444
+
13445
+ yield value
13446
+ yield pattern
13447
+ end
13448
+
12665
13449
  # def compact_child_nodes: () -> Array[Node]
12666
13450
  def compact_child_nodes
12667
13451
  [value, pattern]
@@ -12760,6 +13544,14 @@ module Prism
12760
13544
  [value, pattern]
12761
13545
  end
12762
13546
 
13547
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13548
+ def each_child_node
13549
+ return to_enum(:each_child_node) unless block_given?
13550
+
13551
+ yield value
13552
+ yield pattern
13553
+ end
13554
+
12763
13555
  # def compact_child_nodes: () -> Array[Node]
12764
13556
  def compact_child_nodes
12765
13557
  [value, pattern]
@@ -12905,6 +13697,14 @@ module Prism
12905
13697
  [call, *targets]
12906
13698
  end
12907
13699
 
13700
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13701
+ def each_child_node
13702
+ return to_enum(:each_child_node) unless block_given?
13703
+
13704
+ yield call
13705
+ targets.each { |node| yield node }
13706
+ end
13707
+
12908
13708
  # def compact_child_nodes: () -> Array[Node]
12909
13709
  def compact_child_nodes
12910
13710
  [call, *targets]
@@ -12979,6 +13779,12 @@ module Prism
12979
13779
  []
12980
13780
  end
12981
13781
 
13782
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13783
+ def each_child_node
13784
+ return to_enum(:each_child_node) unless block_given?
13785
+
13786
+ end
13787
+
12982
13788
  # def compact_child_nodes: () -> Array[Node]
12983
13789
  def compact_child_nodes
12984
13790
  []
@@ -13053,6 +13859,14 @@ module Prism
13053
13859
  [constant_path, body]
13054
13860
  end
13055
13861
 
13862
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
13863
+ def each_child_node
13864
+ return to_enum(:each_child_node) unless block_given?
13865
+
13866
+ yield constant_path
13867
+ yield body if body
13868
+ end
13869
+
13056
13870
  # def compact_child_nodes: () -> Array[Node]
13057
13871
  def compact_child_nodes
13058
13872
  compact = [] #: Array[Prism::node]
@@ -13189,6 +14003,15 @@ module Prism
13189
14003
  [*lefts, rest, *rights]
13190
14004
  end
13191
14005
 
14006
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14007
+ def each_child_node
14008
+ return to_enum(:each_child_node) unless block_given?
14009
+
14010
+ lefts.each { |node| yield node }
14011
+ yield rest if rest
14012
+ rights.each { |node| yield node }
14013
+ end
14014
+
13192
14015
  # def compact_child_nodes: () -> Array[Node]
13193
14016
  def compact_child_nodes
13194
14017
  compact = [] #: Array[Prism::node]
@@ -13362,6 +14185,16 @@ module Prism
13362
14185
  [*lefts, rest, *rights, value]
13363
14186
  end
13364
14187
 
14188
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14189
+ def each_child_node
14190
+ return to_enum(:each_child_node) unless block_given?
14191
+
14192
+ lefts.each { |node| yield node }
14193
+ yield rest if rest
14194
+ rights.each { |node| yield node }
14195
+ yield value
14196
+ end
14197
+
13365
14198
  # def compact_child_nodes: () -> Array[Node]
13366
14199
  def compact_child_nodes
13367
14200
  compact = [] #: Array[Prism::node]
@@ -13560,6 +14393,13 @@ module Prism
13560
14393
  [arguments]
13561
14394
  end
13562
14395
 
14396
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14397
+ def each_child_node
14398
+ return to_enum(:each_child_node) unless block_given?
14399
+
14400
+ yield arguments if arguments
14401
+ end
14402
+
13563
14403
  # def compact_child_nodes: () -> Array[Node]
13564
14404
  def compact_child_nodes
13565
14405
  compact = [] #: Array[Prism::node]
@@ -13653,6 +14493,12 @@ module Prism
13653
14493
  []
13654
14494
  end
13655
14495
 
14496
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14497
+ def each_child_node
14498
+ return to_enum(:each_child_node) unless block_given?
14499
+
14500
+ end
14501
+
13656
14502
  # def compact_child_nodes: () -> Array[Node]
13657
14503
  def compact_child_nodes
13658
14504
  []
@@ -13724,6 +14570,12 @@ module Prism
13724
14570
  []
13725
14571
  end
13726
14572
 
14573
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14574
+ def each_child_node
14575
+ return to_enum(:each_child_node) unless block_given?
14576
+
14577
+ end
14578
+
13727
14579
  # def compact_child_nodes: () -> Array[Node]
13728
14580
  def compact_child_nodes
13729
14581
  []
@@ -13831,6 +14683,12 @@ module Prism
13831
14683
  []
13832
14684
  end
13833
14685
 
14686
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14687
+ def each_child_node
14688
+ return to_enum(:each_child_node) unless block_given?
14689
+
14690
+ end
14691
+
13834
14692
  # def compact_child_nodes: () -> Array[Node]
13835
14693
  def compact_child_nodes
13836
14694
  []
@@ -13904,6 +14762,12 @@ module Prism
13904
14762
  []
13905
14763
  end
13906
14764
 
14765
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14766
+ def each_child_node
14767
+ return to_enum(:each_child_node) unless block_given?
14768
+
14769
+ end
14770
+
13907
14771
  # def compact_child_nodes: () -> Array[Node]
13908
14772
  def compact_child_nodes
13909
14773
  []
@@ -13986,6 +14850,13 @@ module Prism
13986
14850
  [value]
13987
14851
  end
13988
14852
 
14853
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14854
+ def each_child_node
14855
+ return to_enum(:each_child_node) unless block_given?
14856
+
14857
+ yield value
14858
+ end
14859
+
13989
14860
  # def compact_child_nodes: () -> Array[Node]
13990
14861
  def compact_child_nodes
13991
14862
  [value]
@@ -14087,6 +14958,13 @@ module Prism
14087
14958
  [value]
14088
14959
  end
14089
14960
 
14961
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
14962
+ def each_child_node
14963
+ return to_enum(:each_child_node) unless block_given?
14964
+
14965
+ yield value
14966
+ end
14967
+
14090
14968
  # def compact_child_nodes: () -> Array[Node]
14091
14969
  def compact_child_nodes
14092
14970
  [value]
@@ -14205,6 +15083,14 @@ module Prism
14205
15083
  [left, right]
14206
15084
  end
14207
15085
 
15086
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
15087
+ def each_child_node
15088
+ return to_enum(:each_child_node) unless block_given?
15089
+
15090
+ yield left
15091
+ yield right
15092
+ end
15093
+
14208
15094
  # def compact_child_nodes: () -> Array[Node]
14209
15095
  def compact_child_nodes
14210
15096
  [left, right]
@@ -14323,6 +15209,19 @@ module Prism
14323
15209
  [*requireds, *optionals, rest, *posts, *keywords, keyword_rest, block]
14324
15210
  end
14325
15211
 
15212
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
15213
+ def each_child_node
15214
+ return to_enum(:each_child_node) unless block_given?
15215
+
15216
+ requireds.each { |node| yield node }
15217
+ optionals.each { |node| yield node }
15218
+ yield rest if rest
15219
+ posts.each { |node| yield node }
15220
+ keywords.each { |node| yield node }
15221
+ yield keyword_rest if keyword_rest
15222
+ yield block if block
15223
+ end
15224
+
14326
15225
  # def compact_child_nodes: () -> Array[Node]
14327
15226
  def compact_child_nodes
14328
15227
  compact = [] #: Array[Prism::node]
@@ -14434,6 +15333,13 @@ module Prism
14434
15333
  [body]
14435
15334
  end
14436
15335
 
15336
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
15337
+ def each_child_node
15338
+ return to_enum(:each_child_node) unless block_given?
15339
+
15340
+ yield body if body
15341
+ end
15342
+
14437
15343
  # def compact_child_nodes: () -> Array[Node]
14438
15344
  def compact_child_nodes
14439
15345
  compact = [] #: Array[Prism::node]
@@ -14556,6 +15462,13 @@ module Prism
14556
15462
  [expression]
14557
15463
  end
14558
15464
 
15465
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
15466
+ def each_child_node
15467
+ return to_enum(:each_child_node) unless block_given?
15468
+
15469
+ yield expression
15470
+ end
15471
+
14559
15472
  # def compact_child_nodes: () -> Array[Node]
14560
15473
  def compact_child_nodes
14561
15474
  [expression]
@@ -14699,6 +15612,13 @@ module Prism
14699
15612
  [variable]
14700
15613
  end
14701
15614
 
15615
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
15616
+ def each_child_node
15617
+ return to_enum(:each_child_node) unless block_given?
15618
+
15619
+ yield variable
15620
+ end
15621
+
14702
15622
  # def compact_child_nodes: () -> Array[Node]
14703
15623
  def compact_child_nodes
14704
15624
  [variable]
@@ -14800,6 +15720,13 @@ module Prism
14800
15720
  [statements]
14801
15721
  end
14802
15722
 
15723
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
15724
+ def each_child_node
15725
+ return to_enum(:each_child_node) unless block_given?
15726
+
15727
+ yield statements if statements
15728
+ end
15729
+
14803
15730
  # def compact_child_nodes: () -> Array[Node]
14804
15731
  def compact_child_nodes
14805
15732
  compact = [] #: Array[Prism::node]
@@ -14935,6 +15862,13 @@ module Prism
14935
15862
  [statements]
14936
15863
  end
14937
15864
 
15865
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
15866
+ def each_child_node
15867
+ return to_enum(:each_child_node) unless block_given?
15868
+
15869
+ yield statements if statements
15870
+ end
15871
+
14938
15872
  # def compact_child_nodes: () -> Array[Node]
14939
15873
  def compact_child_nodes
14940
15874
  compact = [] #: Array[Prism::node]
@@ -15065,6 +15999,13 @@ module Prism
15065
15999
  [statements]
15066
16000
  end
15067
16001
 
16002
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16003
+ def each_child_node
16004
+ return to_enum(:each_child_node) unless block_given?
16005
+
16006
+ yield statements
16007
+ end
16008
+
15068
16009
  # def compact_child_nodes: () -> Array[Node]
15069
16010
  def compact_child_nodes
15070
16011
  [statements]
@@ -15148,6 +16089,14 @@ module Prism
15148
16089
  [left, right]
15149
16090
  end
15150
16091
 
16092
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16093
+ def each_child_node
16094
+ return to_enum(:each_child_node) unless block_given?
16095
+
16096
+ yield left if left
16097
+ yield right if right
16098
+ end
16099
+
15151
16100
  # def compact_child_nodes: () -> Array[Node]
15152
16101
  def compact_child_nodes
15153
16102
  compact = [] #: Array[Prism::node]
@@ -15267,6 +16216,12 @@ module Prism
15267
16216
  []
15268
16217
  end
15269
16218
 
16219
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16220
+ def each_child_node
16221
+ return to_enum(:each_child_node) unless block_given?
16222
+
16223
+ end
16224
+
15270
16225
  # def compact_child_nodes: () -> Array[Node]
15271
16226
  def compact_child_nodes
15272
16227
  []
@@ -15368,6 +16323,12 @@ module Prism
15368
16323
  []
15369
16324
  end
15370
16325
 
16326
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16327
+ def each_child_node
16328
+ return to_enum(:each_child_node) unless block_given?
16329
+
16330
+ end
16331
+
15371
16332
  # def compact_child_nodes: () -> Array[Node]
15372
16333
  def compact_child_nodes
15373
16334
  []
@@ -15440,6 +16401,12 @@ module Prism
15440
16401
  []
15441
16402
  end
15442
16403
 
16404
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16405
+ def each_child_node
16406
+ return to_enum(:each_child_node) unless block_given?
16407
+
16408
+ end
16409
+
15443
16410
  # def compact_child_nodes: () -> Array[Node]
15444
16411
  def compact_child_nodes
15445
16412
  []
@@ -15628,6 +16595,12 @@ module Prism
15628
16595
  []
15629
16596
  end
15630
16597
 
16598
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16599
+ def each_child_node
16600
+ return to_enum(:each_child_node) unless block_given?
16601
+
16602
+ end
16603
+
15631
16604
  # def compact_child_nodes: () -> Array[Node]
15632
16605
  def compact_child_nodes
15633
16606
  []
@@ -15722,6 +16695,12 @@ module Prism
15722
16695
  []
15723
16696
  end
15724
16697
 
16698
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16699
+ def each_child_node
16700
+ return to_enum(:each_child_node) unless block_given?
16701
+
16702
+ end
16703
+
15725
16704
  # def compact_child_nodes: () -> Array[Node]
15726
16705
  def compact_child_nodes
15727
16706
  []
@@ -15803,6 +16782,14 @@ module Prism
15803
16782
  [expression, rescue_expression]
15804
16783
  end
15805
16784
 
16785
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16786
+ def each_child_node
16787
+ return to_enum(:each_child_node) unless block_given?
16788
+
16789
+ yield expression
16790
+ yield rescue_expression
16791
+ end
16792
+
15806
16793
  # def compact_child_nodes: () -> Array[Node]
15807
16794
  def compact_child_nodes
15808
16795
  [expression, rescue_expression]
@@ -15910,6 +16897,16 @@ module Prism
15910
16897
  [*exceptions, reference, statements, subsequent]
15911
16898
  end
15912
16899
 
16900
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
16901
+ def each_child_node
16902
+ return to_enum(:each_child_node) unless block_given?
16903
+
16904
+ exceptions.each { |node| yield node }
16905
+ yield reference if reference
16906
+ yield statements if statements
16907
+ yield subsequent if subsequent
16908
+ end
16909
+
15913
16910
  # def compact_child_nodes: () -> Array[Node]
15914
16911
  def compact_child_nodes
15915
16912
  compact = [] #: Array[Prism::node]
@@ -16073,6 +17070,12 @@ module Prism
16073
17070
  []
16074
17071
  end
16075
17072
 
17073
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17074
+ def each_child_node
17075
+ return to_enum(:each_child_node) unless block_given?
17076
+
17077
+ end
17078
+
16076
17079
  # def compact_child_nodes: () -> Array[Node]
16077
17080
  def compact_child_nodes
16078
17081
  []
@@ -16190,6 +17193,12 @@ module Prism
16190
17193
  []
16191
17194
  end
16192
17195
 
17196
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17197
+ def each_child_node
17198
+ return to_enum(:each_child_node) unless block_given?
17199
+
17200
+ end
17201
+
16193
17202
  # def compact_child_nodes: () -> Array[Node]
16194
17203
  def compact_child_nodes
16195
17204
  []
@@ -16260,6 +17269,13 @@ module Prism
16260
17269
  [arguments]
16261
17270
  end
16262
17271
 
17272
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17273
+ def each_child_node
17274
+ return to_enum(:each_child_node) unless block_given?
17275
+
17276
+ yield arguments if arguments
17277
+ end
17278
+
16263
17279
  # def compact_child_nodes: () -> Array[Node]
16264
17280
  def compact_child_nodes
16265
17281
  compact = [] #: Array[Prism::node]
@@ -16353,6 +17369,12 @@ module Prism
16353
17369
  []
16354
17370
  end
16355
17371
 
17372
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17373
+ def each_child_node
17374
+ return to_enum(:each_child_node) unless block_given?
17375
+
17376
+ end
17377
+
16356
17378
  # def compact_child_nodes: () -> Array[Node]
16357
17379
  def compact_child_nodes
16358
17380
  []
@@ -16423,6 +17445,13 @@ module Prism
16423
17445
  [write]
16424
17446
  end
16425
17447
 
17448
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17449
+ def each_child_node
17450
+ return to_enum(:each_child_node) unless block_given?
17451
+
17452
+ yield write
17453
+ end
17454
+
16426
17455
  # def compact_child_nodes: () -> Array[Node]
16427
17456
  def compact_child_nodes
16428
17457
  [write]
@@ -16517,6 +17546,14 @@ module Prism
16517
17546
  [expression, body]
16518
17547
  end
16519
17548
 
17549
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17550
+ def each_child_node
17551
+ return to_enum(:each_child_node) unless block_given?
17552
+
17553
+ yield expression
17554
+ yield body if body
17555
+ end
17556
+
16520
17557
  # def compact_child_nodes: () -> Array[Node]
16521
17558
  def compact_child_nodes
16522
17559
  compact = [] #: Array[Prism::node]
@@ -16658,6 +17695,12 @@ module Prism
16658
17695
  []
16659
17696
  end
16660
17697
 
17698
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17699
+ def each_child_node
17700
+ return to_enum(:each_child_node) unless block_given?
17701
+
17702
+ end
17703
+
16661
17704
  # def compact_child_nodes: () -> Array[Node]
16662
17705
  def compact_child_nodes
16663
17706
  []
@@ -16727,6 +17770,12 @@ module Prism
16727
17770
  []
16728
17771
  end
16729
17772
 
17773
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17774
+ def each_child_node
17775
+ return to_enum(:each_child_node) unless block_given?
17776
+
17777
+ end
17778
+
16730
17779
  # def compact_child_nodes: () -> Array[Node]
16731
17780
  def compact_child_nodes
16732
17781
  []
@@ -16820,6 +17869,12 @@ module Prism
16820
17869
  []
16821
17870
  end
16822
17871
 
17872
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17873
+ def each_child_node
17874
+ return to_enum(:each_child_node) unless block_given?
17875
+
17876
+ end
17877
+
16823
17878
  # def compact_child_nodes: () -> Array[Node]
16824
17879
  def compact_child_nodes
16825
17880
  []
@@ -16890,6 +17945,13 @@ module Prism
16890
17945
  [expression]
16891
17946
  end
16892
17947
 
17948
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
17949
+ def each_child_node
17950
+ return to_enum(:each_child_node) unless block_given?
17951
+
17952
+ yield expression if expression
17953
+ end
17954
+
16893
17955
  # def compact_child_nodes: () -> Array[Node]
16894
17956
  def compact_child_nodes
16895
17957
  compact = [] #: Array[Prism::node]
@@ -16984,6 +18046,13 @@ module Prism
16984
18046
  [*body]
16985
18047
  end
16986
18048
 
18049
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
18050
+ def each_child_node
18051
+ return to_enum(:each_child_node) unless block_given?
18052
+
18053
+ body.each { |node| yield node }
18054
+ end
18055
+
16987
18056
  # def compact_child_nodes: () -> Array[Node]
16988
18057
  def compact_child_nodes
16989
18058
  [*body]
@@ -17067,6 +18136,12 @@ module Prism
17067
18136
  []
17068
18137
  end
17069
18138
 
18139
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
18140
+ def each_child_node
18141
+ return to_enum(:each_child_node) unless block_given?
18142
+
18143
+ end
18144
+
17070
18145
  # def compact_child_nodes: () -> Array[Node]
17071
18146
  def compact_child_nodes
17072
18147
  []
@@ -17213,6 +18288,8 @@ module Prism
17213
18288
  #
17214
18289
  # super foo, bar
17215
18290
  # ^^^^^^^^^^^^^^
18291
+ #
18292
+ # If no arguments are provided (except for a block), it would be a `ForwardingSuperNode` instead.
17216
18293
  class SuperNode < Node
17217
18294
  # Initialize a new SuperNode node.
17218
18295
  def initialize(source, node_id, location, flags, keyword_loc, lparen_loc, arguments, rparen_loc, block)
@@ -17237,6 +18314,14 @@ module Prism
17237
18314
  [arguments, block]
17238
18315
  end
17239
18316
 
18317
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
18318
+ def each_child_node
18319
+ return to_enum(:each_child_node) unless block_given?
18320
+
18321
+ yield arguments if arguments
18322
+ yield block if block
18323
+ end
18324
+
17240
18325
  # def compact_child_nodes: () -> Array[Node]
17241
18326
  def compact_child_nodes
17242
18327
  compact = [] #: Array[Prism::node]
@@ -17295,7 +18380,7 @@ module Prism
17295
18380
  repository.enter(node_id, :lparen_loc) unless @lparen_loc.nil?
17296
18381
  end
17297
18382
 
17298
- # attr_reader arguments: ArgumentsNode?
18383
+ # Can be only `nil` when there are empty parentheses, like `super()`.
17299
18384
  attr_reader :arguments
17300
18385
 
17301
18386
  # attr_reader rparen_loc: Location?
@@ -17392,6 +18477,12 @@ module Prism
17392
18477
  []
17393
18478
  end
17394
18479
 
18480
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
18481
+ def each_child_node
18482
+ return to_enum(:each_child_node) unless block_given?
18483
+
18484
+ end
18485
+
17395
18486
  # def compact_child_nodes: () -> Array[Node]
17396
18487
  def compact_child_nodes
17397
18488
  []
@@ -17555,6 +18646,12 @@ module Prism
17555
18646
  []
17556
18647
  end
17557
18648
 
18649
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
18650
+ def each_child_node
18651
+ return to_enum(:each_child_node) unless block_given?
18652
+
18653
+ end
18654
+
17558
18655
  # def compact_child_nodes: () -> Array[Node]
17559
18656
  def compact_child_nodes
17560
18657
  []
@@ -17625,6 +18722,13 @@ module Prism
17625
18722
  [*names]
17626
18723
  end
17627
18724
 
18725
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
18726
+ def each_child_node
18727
+ return to_enum(:each_child_node) unless block_given?
18728
+
18729
+ names.each { |node| yield node }
18730
+ end
18731
+
17628
18732
  # def compact_child_nodes: () -> Array[Node]
17629
18733
  def compact_child_nodes
17630
18734
  [*names]
@@ -17726,6 +18830,15 @@ module Prism
17726
18830
  [predicate, statements, else_clause]
17727
18831
  end
17728
18832
 
18833
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
18834
+ def each_child_node
18835
+ return to_enum(:each_child_node) unless block_given?
18836
+
18837
+ yield predicate
18838
+ yield statements if statements
18839
+ yield else_clause if else_clause
18840
+ end
18841
+
17729
18842
  # def compact_child_nodes: () -> Array[Node]
17730
18843
  def compact_child_nodes
17731
18844
  compact = [] #: Array[Prism::node]
@@ -17912,6 +19025,14 @@ module Prism
17912
19025
  [predicate, statements]
17913
19026
  end
17914
19027
 
19028
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
19029
+ def each_child_node
19030
+ return to_enum(:each_child_node) unless block_given?
19031
+
19032
+ yield predicate
19033
+ yield statements if statements
19034
+ end
19035
+
17915
19036
  # def compact_child_nodes: () -> Array[Node]
17916
19037
  def compact_child_nodes
17917
19038
  compact = [] #: Array[Prism::node]
@@ -18072,6 +19193,14 @@ module Prism
18072
19193
  [*conditions, statements]
18073
19194
  end
18074
19195
 
19196
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
19197
+ def each_child_node
19198
+ return to_enum(:each_child_node) unless block_given?
19199
+
19200
+ conditions.each { |node| yield node }
19201
+ yield statements if statements
19202
+ end
19203
+
18075
19204
  # def compact_child_nodes: () -> Array[Node]
18076
19205
  def compact_child_nodes
18077
19206
  compact = [] #: Array[Prism::node]
@@ -18204,6 +19333,14 @@ module Prism
18204
19333
  [predicate, statements]
18205
19334
  end
18206
19335
 
19336
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
19337
+ def each_child_node
19338
+ return to_enum(:each_child_node) unless block_given?
19339
+
19340
+ yield predicate
19341
+ yield statements if statements
19342
+ end
19343
+
18207
19344
  # def compact_child_nodes: () -> Array[Node]
18208
19345
  def compact_child_nodes
18209
19346
  compact = [] #: Array[Prism::node]
@@ -18362,6 +19499,12 @@ module Prism
18362
19499
  []
18363
19500
  end
18364
19501
 
19502
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
19503
+ def each_child_node
19504
+ return to_enum(:each_child_node) unless block_given?
19505
+
19506
+ end
19507
+
18365
19508
  # def compact_child_nodes: () -> Array[Node]
18366
19509
  def compact_child_nodes
18367
19510
  []
@@ -18506,6 +19649,13 @@ module Prism
18506
19649
  [arguments]
18507
19650
  end
18508
19651
 
19652
+ # def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator[Prism::node]
19653
+ def each_child_node
19654
+ return to_enum(:each_child_node) unless block_given?
19655
+
19656
+ yield arguments if arguments
19657
+ end
19658
+
18509
19659
  # def compact_child_nodes: () -> Array[Node]
18510
19660
  def compact_child_nodes
18511
19661
  compact = [] #: Array[Prism::node]