prism 0.17.1 → 0.19.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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +60 -1
  3. data/Makefile +5 -5
  4. data/README.md +4 -3
  5. data/config.yml +214 -68
  6. data/docs/build_system.md +6 -6
  7. data/docs/building.md +10 -3
  8. data/docs/configuration.md +11 -9
  9. data/docs/encoding.md +92 -88
  10. data/docs/heredocs.md +1 -1
  11. data/docs/javascript.md +29 -1
  12. data/docs/local_variable_depth.md +229 -0
  13. data/docs/ruby_api.md +16 -0
  14. data/docs/serialization.md +18 -13
  15. data/ext/prism/api_node.c +411 -240
  16. data/ext/prism/extconf.rb +97 -127
  17. data/ext/prism/extension.c +97 -33
  18. data/ext/prism/extension.h +1 -1
  19. data/include/prism/ast.h +377 -159
  20. data/include/prism/defines.h +17 -0
  21. data/include/prism/diagnostic.h +38 -6
  22. data/include/prism/{enc/pm_encoding.h → encoding.h} +126 -64
  23. data/include/prism/options.h +2 -2
  24. data/include/prism/parser.h +62 -36
  25. data/include/prism/regexp.h +2 -2
  26. data/include/prism/util/pm_buffer.h +9 -1
  27. data/include/prism/util/pm_memchr.h +2 -2
  28. data/include/prism/util/pm_strpbrk.h +3 -3
  29. data/include/prism/version.h +3 -3
  30. data/include/prism.h +13 -15
  31. data/lib/prism/compiler.rb +15 -3
  32. data/lib/prism/debug.rb +13 -4
  33. data/lib/prism/desugar_compiler.rb +4 -3
  34. data/lib/prism/dispatcher.rb +70 -14
  35. data/lib/prism/dot_visitor.rb +4612 -0
  36. data/lib/prism/dsl.rb +77 -57
  37. data/lib/prism/ffi.rb +19 -6
  38. data/lib/prism/lex_compat.rb +19 -9
  39. data/lib/prism/mutation_compiler.rb +26 -6
  40. data/lib/prism/node.rb +1314 -522
  41. data/lib/prism/node_ext.rb +102 -19
  42. data/lib/prism/parse_result.rb +58 -27
  43. data/lib/prism/ripper_compat.rb +49 -34
  44. data/lib/prism/serialize.rb +251 -227
  45. data/lib/prism/visitor.rb +15 -3
  46. data/lib/prism.rb +21 -4
  47. data/prism.gemspec +7 -9
  48. data/rbi/prism.rbi +688 -284
  49. data/rbi/prism_static.rbi +3 -0
  50. data/sig/prism.rbs +426 -156
  51. data/sig/prism_static.rbs +1 -0
  52. data/src/diagnostic.c +280 -216
  53. data/src/encoding.c +5137 -0
  54. data/src/node.c +99 -21
  55. data/src/options.c +21 -2
  56. data/src/prettyprint.c +1743 -1241
  57. data/src/prism.c +1774 -831
  58. data/src/regexp.c +15 -15
  59. data/src/serialize.c +261 -164
  60. data/src/util/pm_buffer.c +10 -1
  61. data/src/util/pm_memchr.c +1 -1
  62. data/src/util/pm_strpbrk.c +4 -4
  63. metadata +8 -10
  64. data/src/enc/pm_big5.c +0 -53
  65. data/src/enc/pm_euc_jp.c +0 -59
  66. data/src/enc/pm_gbk.c +0 -62
  67. data/src/enc/pm_shift_jis.c +0 -57
  68. data/src/enc/pm_tables.c +0 -743
  69. data/src/enc/pm_unicode.c +0 -2369
  70. data/src/enc/pm_windows_31j.c +0 -57
data/rbi/prism.rbi CHANGED
@@ -165,14 +165,14 @@ end
165
165
  # return foo, bar, baz
166
166
  # ^^^^^^^^^^^^^
167
167
  class Prism::ArgumentsNode < Prism::Node
168
- sig { returns(T::Array[Prism::Node]) }
169
- def arguments; end
170
-
171
168
  sig { returns(Integer) }
172
169
  def flags; end
173
170
 
174
- sig { params(arguments: T::Array[Prism::Node], flags: Integer, location: Prism::Location).void }
175
- def initialize(arguments, flags, location); end
171
+ sig { returns(T::Array[Prism::Node]) }
172
+ def arguments; end
173
+
174
+ sig { params(flags: Integer, arguments: T::Array[Prism::Node], location: Prism::Location).void }
175
+ def initialize(flags, arguments, location); end
176
176
 
177
177
  sig { params(visitor: Prism::Visitor).void }
178
178
  def accept(visitor); end
@@ -190,7 +190,7 @@ class Prism::ArgumentsNode < Prism::Node
190
190
  def deconstruct_keys(keys); end
191
191
 
192
192
  sig { returns(T::Boolean) }
193
- def keyword_splat?; end
193
+ def contains_keyword_splat?; end
194
194
 
195
195
  sig { params(inspector: Prism::NodeInspector).returns(String) }
196
196
  def inspect(inspector); end
@@ -202,6 +202,9 @@ end
202
202
  # [1, 2, 3]
203
203
  # ^^^^^^^^^
204
204
  class Prism::ArrayNode < Prism::Node
205
+ sig { returns(Integer) }
206
+ def flags; end
207
+
205
208
  sig { returns(T::Array[Prism::Node]) }
206
209
  def elements; end
207
210
 
@@ -211,8 +214,8 @@ class Prism::ArrayNode < Prism::Node
211
214
  sig { returns(T.nilable(Prism::Location)) }
212
215
  def closing_loc; end
213
216
 
214
- sig { params(elements: T::Array[Prism::Node], opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location).void }
215
- def initialize(elements, opening_loc, closing_loc, location); end
217
+ sig { params(flags: Integer, elements: T::Array[Prism::Node], opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location).void }
218
+ def initialize(flags, elements, opening_loc, closing_loc, location); end
216
219
 
217
220
  sig { params(visitor: Prism::Visitor).void }
218
221
  def accept(visitor); end
@@ -229,6 +232,9 @@ class Prism::ArrayNode < Prism::Node
229
232
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
230
233
  def deconstruct_keys(keys); end
231
234
 
235
+ sig { returns(T::Boolean) }
236
+ def contains_splat?; end
237
+
232
238
  sig { returns(T.nilable(String)) }
233
239
  def opening; end
234
240
 
@@ -536,7 +542,10 @@ class Prism::BlockNode < Prism::Node
536
542
  sig { returns(T::Array[Symbol]) }
537
543
  def locals; end
538
544
 
539
- sig { returns(T.nilable(Prism::BlockParametersNode)) }
545
+ sig { returns(Integer) }
546
+ def locals_body_index; end
547
+
548
+ sig { returns(T.nilable(Prism::Node)) }
540
549
  def parameters; end
541
550
 
542
551
  sig { returns(T.nilable(Prism::Node)) }
@@ -548,8 +557,8 @@ class Prism::BlockNode < Prism::Node
548
557
  sig { returns(Prism::Location) }
549
558
  def closing_loc; end
550
559
 
551
- sig { params(locals: T::Array[Symbol], parameters: T.nilable(Prism::BlockParametersNode), body: T.nilable(Prism::Node), opening_loc: Prism::Location, closing_loc: Prism::Location, location: Prism::Location).void }
552
- def initialize(locals, parameters, body, opening_loc, closing_loc, location); end
560
+ sig { params(locals: T::Array[Symbol], locals_body_index: Integer, parameters: T.nilable(Prism::Node), body: T.nilable(Prism::Node), opening_loc: Prism::Location, closing_loc: Prism::Location, location: Prism::Location).void }
561
+ def initialize(locals, locals_body_index, parameters, body, opening_loc, closing_loc, location); end
553
562
 
554
563
  sig { params(visitor: Prism::Visitor).void }
555
564
  def accept(visitor); end
@@ -706,6 +715,9 @@ end
706
715
  # foo.bar &&= value
707
716
  # ^^^^^^^^^^^^^^^^^
708
717
  class Prism::CallAndWriteNode < Prism::Node
718
+ sig { returns(Integer) }
719
+ def flags; end
720
+
709
721
  sig { returns(T.nilable(Prism::Node)) }
710
722
  def receiver; end
711
723
 
@@ -715,9 +727,6 @@ class Prism::CallAndWriteNode < Prism::Node
715
727
  sig { returns(T.nilable(Prism::Location)) }
716
728
  def message_loc; end
717
729
 
718
- sig { returns(Integer) }
719
- def flags; end
720
-
721
730
  sig { returns(Symbol) }
722
731
  def read_name; end
723
732
 
@@ -730,8 +739,8 @@ class Prism::CallAndWriteNode < Prism::Node
730
739
  sig { returns(Prism::Node) }
731
740
  def value; end
732
741
 
733
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
734
- def initialize(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location); end
742
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
743
+ def initialize(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end
735
744
 
736
745
  sig { params(visitor: Prism::Visitor).void }
737
746
  def accept(visitor); end
@@ -748,18 +757,21 @@ class Prism::CallAndWriteNode < Prism::Node
748
757
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
749
758
  def deconstruct_keys(keys); end
750
759
 
751
- sig { returns(T.nilable(String)) }
752
- def call_operator; end
753
-
754
- sig { returns(T.nilable(String)) }
755
- def message; end
756
-
757
760
  sig { returns(T::Boolean) }
758
761
  def safe_navigation?; end
759
762
 
760
763
  sig { returns(T::Boolean) }
761
764
  def variable_call?; end
762
765
 
766
+ sig { returns(T::Boolean) }
767
+ def attribute_write?; end
768
+
769
+ sig { returns(T.nilable(String)) }
770
+ def call_operator; end
771
+
772
+ sig { returns(T.nilable(String)) }
773
+ def message; end
774
+
763
775
  sig { returns(String) }
764
776
  def operator; end
765
777
 
@@ -787,12 +799,18 @@ end
787
799
  # foo&.bar
788
800
  # ^^^^^^^^
789
801
  class Prism::CallNode < Prism::Node
802
+ sig { returns(Integer) }
803
+ def flags; end
804
+
790
805
  sig { returns(T.nilable(Prism::Node)) }
791
806
  def receiver; end
792
807
 
793
808
  sig { returns(T.nilable(Prism::Location)) }
794
809
  def call_operator_loc; end
795
810
 
811
+ sig { returns(Symbol) }
812
+ def name; end
813
+
796
814
  sig { returns(T.nilable(Prism::Location)) }
797
815
  def message_loc; end
798
816
 
@@ -808,14 +826,8 @@ class Prism::CallNode < Prism::Node
808
826
  sig { returns(T.nilable(Prism::Node)) }
809
827
  def block; end
810
828
 
811
- sig { returns(Integer) }
812
- def flags; end
813
-
814
- sig { returns(Symbol) }
815
- def name; end
816
-
817
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), opening_loc: T.nilable(Prism::Location), arguments: T.nilable(Prism::ArgumentsNode), closing_loc: T.nilable(Prism::Location), block: T.nilable(Prism::Node), flags: Integer, name: Symbol, location: Prism::Location).void }
818
- def initialize(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, block, flags, name, location); end
829
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), name: Symbol, message_loc: T.nilable(Prism::Location), opening_loc: T.nilable(Prism::Location), arguments: T.nilable(Prism::ArgumentsNode), closing_loc: T.nilable(Prism::Location), block: T.nilable(Prism::Node), location: Prism::Location).void }
830
+ def initialize(flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block, location); end
819
831
 
820
832
  sig { params(visitor: Prism::Visitor).void }
821
833
  def accept(visitor); end
@@ -832,6 +844,15 @@ class Prism::CallNode < Prism::Node
832
844
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
833
845
  def deconstruct_keys(keys); end
834
846
 
847
+ sig { returns(T::Boolean) }
848
+ def safe_navigation?; end
849
+
850
+ sig { returns(T::Boolean) }
851
+ def variable_call?; end
852
+
853
+ sig { returns(T::Boolean) }
854
+ def attribute_write?; end
855
+
835
856
  sig { returns(T.nilable(String)) }
836
857
  def call_operator; end
837
858
 
@@ -844,12 +865,6 @@ class Prism::CallNode < Prism::Node
844
865
  sig { returns(T.nilable(String)) }
845
866
  def closing; end
846
867
 
847
- sig { returns(T::Boolean) }
848
- def safe_navigation?; end
849
-
850
- sig { returns(T::Boolean) }
851
- def variable_call?; end
852
-
853
868
  sig { params(inspector: Prism::NodeInspector).returns(String) }
854
869
  def inspect(inspector); end
855
870
  end
@@ -859,6 +874,9 @@ end
859
874
  # foo.bar += baz
860
875
  # ^^^^^^^^^^^^^^
861
876
  class Prism::CallOperatorWriteNode < Prism::Node
877
+ sig { returns(Integer) }
878
+ def flags; end
879
+
862
880
  sig { returns(T.nilable(Prism::Node)) }
863
881
  def receiver; end
864
882
 
@@ -868,9 +886,6 @@ class Prism::CallOperatorWriteNode < Prism::Node
868
886
  sig { returns(T.nilable(Prism::Location)) }
869
887
  def message_loc; end
870
888
 
871
- sig { returns(Integer) }
872
- def flags; end
873
-
874
889
  sig { returns(Symbol) }
875
890
  def read_name; end
876
891
 
@@ -886,8 +901,8 @@ class Prism::CallOperatorWriteNode < Prism::Node
886
901
  sig { returns(Prism::Node) }
887
902
  def value; end
888
903
 
889
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), flags: Integer, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
890
- def initialize(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator, operator_loc, value, location); end
904
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
905
+ def initialize(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator, operator_loc, value, location); end
891
906
 
892
907
  sig { params(visitor: Prism::Visitor).void }
893
908
  def accept(visitor); end
@@ -904,18 +919,21 @@ class Prism::CallOperatorWriteNode < Prism::Node
904
919
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
905
920
  def deconstruct_keys(keys); end
906
921
 
907
- sig { returns(T.nilable(String)) }
908
- def call_operator; end
909
-
910
- sig { returns(T.nilable(String)) }
911
- def message; end
912
-
913
922
  sig { returns(T::Boolean) }
914
923
  def safe_navigation?; end
915
924
 
916
925
  sig { returns(T::Boolean) }
917
926
  def variable_call?; end
918
927
 
928
+ sig { returns(T::Boolean) }
929
+ def attribute_write?; end
930
+
931
+ sig { returns(T.nilable(String)) }
932
+ def call_operator; end
933
+
934
+ sig { returns(T.nilable(String)) }
935
+ def message; end
936
+
919
937
  sig { params(inspector: Prism::NodeInspector).returns(String) }
920
938
  def inspect(inspector); end
921
939
  end
@@ -925,6 +943,9 @@ end
925
943
  # foo.bar ||= value
926
944
  # ^^^^^^^^^^^^^^^^^
927
945
  class Prism::CallOrWriteNode < Prism::Node
946
+ sig { returns(Integer) }
947
+ def flags; end
948
+
928
949
  sig { returns(T.nilable(Prism::Node)) }
929
950
  def receiver; end
930
951
 
@@ -934,9 +955,6 @@ class Prism::CallOrWriteNode < Prism::Node
934
955
  sig { returns(T.nilable(Prism::Location)) }
935
956
  def message_loc; end
936
957
 
937
- sig { returns(Integer) }
938
- def flags; end
939
-
940
958
  sig { returns(Symbol) }
941
959
  def read_name; end
942
960
 
@@ -949,8 +967,8 @@ class Prism::CallOrWriteNode < Prism::Node
949
967
  sig { returns(Prism::Node) }
950
968
  def value; end
951
969
 
952
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
953
- def initialize(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location); end
970
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
971
+ def initialize(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end
954
972
 
955
973
  sig { params(visitor: Prism::Visitor).void }
956
974
  def accept(visitor); end
@@ -967,20 +985,88 @@ class Prism::CallOrWriteNode < Prism::Node
967
985
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
968
986
  def deconstruct_keys(keys); end
969
987
 
988
+ sig { returns(T::Boolean) }
989
+ def safe_navigation?; end
990
+
991
+ sig { returns(T::Boolean) }
992
+ def variable_call?; end
993
+
994
+ sig { returns(T::Boolean) }
995
+ def attribute_write?; end
996
+
970
997
  sig { returns(T.nilable(String)) }
971
998
  def call_operator; end
972
999
 
973
1000
  sig { returns(T.nilable(String)) }
974
1001
  def message; end
975
1002
 
1003
+ sig { returns(String) }
1004
+ def operator; end
1005
+
1006
+ sig { params(inspector: Prism::NodeInspector).returns(String) }
1007
+ def inspect(inspector); end
1008
+ end
1009
+
1010
+ # Represents assigning to a method call.
1011
+ #
1012
+ # foo.bar, = 1
1013
+ # ^^^^^^^
1014
+ #
1015
+ # begin
1016
+ # rescue => foo.bar
1017
+ # ^^^^^^^
1018
+ # end
1019
+ #
1020
+ # for foo.bar in baz do end
1021
+ # ^^^^^^^
1022
+ class Prism::CallTargetNode < Prism::Node
1023
+ sig { returns(Integer) }
1024
+ def flags; end
1025
+
1026
+ sig { returns(Prism::Node) }
1027
+ def receiver; end
1028
+
1029
+ sig { returns(Prism::Location) }
1030
+ def call_operator_loc; end
1031
+
1032
+ sig { returns(Symbol) }
1033
+ def name; end
1034
+
1035
+ sig { returns(Prism::Location) }
1036
+ def message_loc; end
1037
+
1038
+ sig { params(flags: Integer, receiver: Prism::Node, call_operator_loc: Prism::Location, name: Symbol, message_loc: Prism::Location, location: Prism::Location).void }
1039
+ def initialize(flags, receiver, call_operator_loc, name, message_loc, location); end
1040
+
1041
+ sig { params(visitor: Prism::Visitor).void }
1042
+ def accept(visitor); end
1043
+
1044
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
1045
+ def child_nodes; end
1046
+
1047
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
1048
+ def deconstruct; end
1049
+
1050
+ sig { params(params: T.untyped).returns(Prism::CallTargetNode) }
1051
+ def copy(**params); end
1052
+
1053
+ sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
1054
+ def deconstruct_keys(keys); end
1055
+
976
1056
  sig { returns(T::Boolean) }
977
1057
  def safe_navigation?; end
978
1058
 
979
1059
  sig { returns(T::Boolean) }
980
1060
  def variable_call?; end
981
1061
 
1062
+ sig { returns(T::Boolean) }
1063
+ def attribute_write?; end
1064
+
982
1065
  sig { returns(String) }
983
- def operator; end
1066
+ def call_operator; end
1067
+
1068
+ sig { returns(String) }
1069
+ def message; end
984
1070
 
985
1071
  sig { params(inspector: Prism::NodeInspector).returns(String) }
986
1072
  def inspect(inspector); end
@@ -1025,6 +1111,56 @@ class Prism::CapturePatternNode < Prism::Node
1025
1111
  def inspect(inspector); end
1026
1112
  end
1027
1113
 
1114
+ # Represents the use of a case statement for pattern matching.
1115
+ #
1116
+ # case true
1117
+ # in false
1118
+ # end
1119
+ # ^^^^^^^^^
1120
+ class Prism::CaseMatchNode < Prism::Node
1121
+ sig { returns(T.nilable(Prism::Node)) }
1122
+ def predicate; end
1123
+
1124
+ sig { returns(T::Array[Prism::Node]) }
1125
+ def conditions; end
1126
+
1127
+ sig { returns(T.nilable(Prism::ElseNode)) }
1128
+ def consequent; end
1129
+
1130
+ sig { returns(Prism::Location) }
1131
+ def case_keyword_loc; end
1132
+
1133
+ sig { returns(Prism::Location) }
1134
+ def end_keyword_loc; end
1135
+
1136
+ sig { params(predicate: T.nilable(Prism::Node), conditions: T::Array[Prism::Node], consequent: T.nilable(Prism::ElseNode), case_keyword_loc: Prism::Location, end_keyword_loc: Prism::Location, location: Prism::Location).void }
1137
+ def initialize(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); end
1138
+
1139
+ sig { params(visitor: Prism::Visitor).void }
1140
+ def accept(visitor); end
1141
+
1142
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
1143
+ def child_nodes; end
1144
+
1145
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
1146
+ def deconstruct; end
1147
+
1148
+ sig { params(params: T.untyped).returns(Prism::CaseMatchNode) }
1149
+ def copy(**params); end
1150
+
1151
+ sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
1152
+ def deconstruct_keys(keys); end
1153
+
1154
+ sig { returns(String) }
1155
+ def case_keyword; end
1156
+
1157
+ sig { returns(String) }
1158
+ def end_keyword; end
1159
+
1160
+ sig { params(inspector: Prism::NodeInspector).returns(String) }
1161
+ def inspect(inspector); end
1162
+ end
1163
+
1028
1164
  # Represents the use of a case statement.
1029
1165
  #
1030
1166
  # case true
@@ -1855,6 +1991,9 @@ class Prism::DefNode < Prism::Node
1855
1991
  sig { returns(T::Array[Symbol]) }
1856
1992
  def locals; end
1857
1993
 
1994
+ sig { returns(Integer) }
1995
+ def locals_body_index; end
1996
+
1858
1997
  sig { returns(Prism::Location) }
1859
1998
  def def_keyword_loc; end
1860
1999
 
@@ -1873,8 +2012,8 @@ class Prism::DefNode < Prism::Node
1873
2012
  sig { returns(T.nilable(Prism::Location)) }
1874
2013
  def end_keyword_loc; end
1875
2014
 
1876
- sig { params(name: Symbol, name_loc: Prism::Location, receiver: T.nilable(Prism::Node), parameters: T.nilable(Prism::ParametersNode), body: T.nilable(Prism::Node), locals: T::Array[Symbol], def_keyword_loc: Prism::Location, operator_loc: T.nilable(Prism::Location), lparen_loc: T.nilable(Prism::Location), rparen_loc: T.nilable(Prism::Location), equal_loc: T.nilable(Prism::Location), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).void }
1877
- def initialize(name, name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location); end
2015
+ sig { params(name: Symbol, name_loc: Prism::Location, receiver: T.nilable(Prism::Node), parameters: T.nilable(Prism::ParametersNode), body: T.nilable(Prism::Node), locals: T::Array[Symbol], locals_body_index: Integer, def_keyword_loc: Prism::Location, operator_loc: T.nilable(Prism::Location), lparen_loc: T.nilable(Prism::Location), rparen_loc: T.nilable(Prism::Location), equal_loc: T.nilable(Prism::Location), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).void }
2016
+ def initialize(name, name_loc, receiver, parameters, body, locals, locals_body_index, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location); end
1878
2017
 
1879
2018
  sig { params(visitor: Prism::Visitor).void }
1880
2019
  def accept(visitor); end
@@ -2216,6 +2355,9 @@ end
2216
2355
  # baz if foo .. bar
2217
2356
  # ^^^^^^^^^^
2218
2357
  class Prism::FlipFlopNode < Prism::Node
2358
+ sig { returns(Integer) }
2359
+ def flags; end
2360
+
2219
2361
  sig { returns(T.nilable(Prism::Node)) }
2220
2362
  def left; end
2221
2363
 
@@ -2225,11 +2367,8 @@ class Prism::FlipFlopNode < Prism::Node
2225
2367
  sig { returns(Prism::Location) }
2226
2368
  def operator_loc; end
2227
2369
 
2228
- sig { returns(Integer) }
2229
- def flags; end
2230
-
2231
- sig { params(left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, flags: Integer, location: Prism::Location).void }
2232
- def initialize(left, right, operator_loc, flags, location); end
2370
+ sig { params(flags: Integer, left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, location: Prism::Location).void }
2371
+ def initialize(flags, left, right, operator_loc, location); end
2233
2372
 
2234
2373
  sig { params(visitor: Prism::Visitor).void }
2235
2374
  def accept(visitor); end
@@ -2246,12 +2385,12 @@ class Prism::FlipFlopNode < Prism::Node
2246
2385
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
2247
2386
  def deconstruct_keys(keys); end
2248
2387
 
2249
- sig { returns(String) }
2250
- def operator; end
2251
-
2252
2388
  sig { returns(T::Boolean) }
2253
2389
  def exclude_end?; end
2254
2390
 
2391
+ sig { returns(String) }
2392
+ def operator; end
2393
+
2255
2394
  sig { params(inspector: Prism::NodeInspector).returns(String) }
2256
2395
  def inspect(inspector); end
2257
2396
  end
@@ -2765,6 +2904,9 @@ class Prism::IfNode < Prism::Node
2765
2904
  sig { returns(Prism::Node) }
2766
2905
  def predicate; end
2767
2906
 
2907
+ sig { returns(T.nilable(Prism::Location)) }
2908
+ def then_keyword_loc; end
2909
+
2768
2910
  sig { returns(T.nilable(Prism::StatementsNode)) }
2769
2911
  def statements; end
2770
2912
 
@@ -2774,8 +2916,8 @@ class Prism::IfNode < Prism::Node
2774
2916
  sig { returns(T.nilable(Prism::Location)) }
2775
2917
  def end_keyword_loc; end
2776
2918
 
2777
- sig { params(if_keyword_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::Node), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).void }
2778
- def initialize(if_keyword_loc, predicate, statements, consequent, end_keyword_loc, location); end
2919
+ sig { params(if_keyword_loc: T.nilable(Prism::Location), predicate: Prism::Node, then_keyword_loc: T.nilable(Prism::Location), statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::Node), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).void }
2920
+ def initialize(if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end
2779
2921
 
2780
2922
  sig { params(visitor: Prism::Visitor).void }
2781
2923
  def accept(visitor); end
@@ -2797,6 +2939,9 @@ class Prism::IfNode < Prism::Node
2797
2939
  sig { returns(T.nilable(String)) }
2798
2940
  def if_keyword; end
2799
2941
 
2942
+ sig { returns(T.nilable(String)) }
2943
+ def then_keyword; end
2944
+
2800
2945
  sig { returns(T.nilable(String)) }
2801
2946
  def end_keyword; end
2802
2947
 
@@ -2868,6 +3013,42 @@ class Prism::ImplicitNode < Prism::Node
2868
3013
  def inspect(inspector); end
2869
3014
  end
2870
3015
 
3016
+ # Represents using a trailing comma to indicate an implicit rest parameter.
3017
+ #
3018
+ # foo { |bar,| }
3019
+ # ^
3020
+ #
3021
+ # foo in [bar,]
3022
+ # ^
3023
+ #
3024
+ # for foo, in bar do end
3025
+ # ^
3026
+ #
3027
+ # foo, = bar
3028
+ # ^
3029
+ class Prism::ImplicitRestNode < Prism::Node
3030
+ sig { params(location: Prism::Location).void }
3031
+ def initialize(location); end
3032
+
3033
+ sig { params(visitor: Prism::Visitor).void }
3034
+ def accept(visitor); end
3035
+
3036
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
3037
+ def child_nodes; end
3038
+
3039
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
3040
+ def deconstruct; end
3041
+
3042
+ sig { params(params: T.untyped).returns(Prism::ImplicitRestNode) }
3043
+ def copy(**params); end
3044
+
3045
+ sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
3046
+ def deconstruct_keys(keys); end
3047
+
3048
+ sig { params(inspector: Prism::NodeInspector).returns(String) }
3049
+ def inspect(inspector); end
3050
+ end
3051
+
2871
3052
  # Represents the use of the `in` keyword in a case statement.
2872
3053
  #
2873
3054
  # case a; in b then c end
@@ -2918,6 +3099,9 @@ end
2918
3099
  # foo.bar[baz] &&= value
2919
3100
  # ^^^^^^^^^^^^^^^^^^^^^^
2920
3101
  class Prism::IndexAndWriteNode < Prism::Node
3102
+ sig { returns(Integer) }
3103
+ def flags; end
3104
+
2921
3105
  sig { returns(T.nilable(Prism::Node)) }
2922
3106
  def receiver; end
2923
3107
 
@@ -2936,17 +3120,14 @@ class Prism::IndexAndWriteNode < Prism::Node
2936
3120
  sig { returns(T.nilable(Prism::Node)) }
2937
3121
  def block; end
2938
3122
 
2939
- sig { returns(Integer) }
2940
- def flags; end
2941
-
2942
3123
  sig { returns(Prism::Location) }
2943
3124
  def operator_loc; end
2944
3125
 
2945
3126
  sig { returns(Prism::Node) }
2946
3127
  def value; end
2947
3128
 
2948
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), flags: Integer, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
2949
- def initialize(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location); end
3129
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
3130
+ def initialize(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end
2950
3131
 
2951
3132
  sig { params(visitor: Prism::Visitor).void }
2952
3133
  def accept(visitor); end
@@ -2963,6 +3144,15 @@ class Prism::IndexAndWriteNode < Prism::Node
2963
3144
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
2964
3145
  def deconstruct_keys(keys); end
2965
3146
 
3147
+ sig { returns(T::Boolean) }
3148
+ def safe_navigation?; end
3149
+
3150
+ sig { returns(T::Boolean) }
3151
+ def variable_call?; end
3152
+
3153
+ sig { returns(T::Boolean) }
3154
+ def attribute_write?; end
3155
+
2966
3156
  sig { returns(T.nilable(String)) }
2967
3157
  def call_operator; end
2968
3158
 
@@ -2972,12 +3162,6 @@ class Prism::IndexAndWriteNode < Prism::Node
2972
3162
  sig { returns(String) }
2973
3163
  def closing; end
2974
3164
 
2975
- sig { returns(T::Boolean) }
2976
- def safe_navigation?; end
2977
-
2978
- sig { returns(T::Boolean) }
2979
- def variable_call?; end
2980
-
2981
3165
  sig { returns(String) }
2982
3166
  def operator; end
2983
3167
 
@@ -2990,6 +3174,9 @@ end
2990
3174
  # foo.bar[baz] += value
2991
3175
  # ^^^^^^^^^^^^^^^^^^^^^
2992
3176
  class Prism::IndexOperatorWriteNode < Prism::Node
3177
+ sig { returns(Integer) }
3178
+ def flags; end
3179
+
2993
3180
  sig { returns(T.nilable(Prism::Node)) }
2994
3181
  def receiver; end
2995
3182
 
@@ -3008,9 +3195,6 @@ class Prism::IndexOperatorWriteNode < Prism::Node
3008
3195
  sig { returns(T.nilable(Prism::Node)) }
3009
3196
  def block; end
3010
3197
 
3011
- sig { returns(Integer) }
3012
- def flags; end
3013
-
3014
3198
  sig { returns(Symbol) }
3015
3199
  def operator; end
3016
3200
 
@@ -3020,8 +3204,8 @@ class Prism::IndexOperatorWriteNode < Prism::Node
3020
3204
  sig { returns(Prism::Node) }
3021
3205
  def value; end
3022
3206
 
3023
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), flags: Integer, operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
3024
- def initialize(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator, operator_loc, value, location); end
3207
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
3208
+ def initialize(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator, operator_loc, value, location); end
3025
3209
 
3026
3210
  sig { params(visitor: Prism::Visitor).void }
3027
3211
  def accept(visitor); end
@@ -3038,6 +3222,15 @@ class Prism::IndexOperatorWriteNode < Prism::Node
3038
3222
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
3039
3223
  def deconstruct_keys(keys); end
3040
3224
 
3225
+ sig { returns(T::Boolean) }
3226
+ def safe_navigation?; end
3227
+
3228
+ sig { returns(T::Boolean) }
3229
+ def variable_call?; end
3230
+
3231
+ sig { returns(T::Boolean) }
3232
+ def attribute_write?; end
3233
+
3041
3234
  sig { returns(T.nilable(String)) }
3042
3235
  def call_operator; end
3043
3236
 
@@ -3047,12 +3240,6 @@ class Prism::IndexOperatorWriteNode < Prism::Node
3047
3240
  sig { returns(String) }
3048
3241
  def closing; end
3049
3242
 
3050
- sig { returns(T::Boolean) }
3051
- def safe_navigation?; end
3052
-
3053
- sig { returns(T::Boolean) }
3054
- def variable_call?; end
3055
-
3056
3243
  sig { params(inspector: Prism::NodeInspector).returns(String) }
3057
3244
  def inspect(inspector); end
3058
3245
  end
@@ -3062,6 +3249,9 @@ end
3062
3249
  # foo.bar[baz] ||= value
3063
3250
  # ^^^^^^^^^^^^^^^^^^^^^^
3064
3251
  class Prism::IndexOrWriteNode < Prism::Node
3252
+ sig { returns(Integer) }
3253
+ def flags; end
3254
+
3065
3255
  sig { returns(T.nilable(Prism::Node)) }
3066
3256
  def receiver; end
3067
3257
 
@@ -3080,17 +3270,14 @@ class Prism::IndexOrWriteNode < Prism::Node
3080
3270
  sig { returns(T.nilable(Prism::Node)) }
3081
3271
  def block; end
3082
3272
 
3083
- sig { returns(Integer) }
3084
- def flags; end
3085
-
3086
3273
  sig { returns(Prism::Location) }
3087
3274
  def operator_loc; end
3088
3275
 
3089
3276
  sig { returns(Prism::Node) }
3090
3277
  def value; end
3091
3278
 
3092
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), flags: Integer, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
3093
- def initialize(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location); end
3279
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void }
3280
+ def initialize(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end
3094
3281
 
3095
3282
  sig { params(visitor: Prism::Visitor).void }
3096
3283
  def accept(visitor); end
@@ -3107,6 +3294,15 @@ class Prism::IndexOrWriteNode < Prism::Node
3107
3294
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
3108
3295
  def deconstruct_keys(keys); end
3109
3296
 
3297
+ sig { returns(T::Boolean) }
3298
+ def safe_navigation?; end
3299
+
3300
+ sig { returns(T::Boolean) }
3301
+ def variable_call?; end
3302
+
3303
+ sig { returns(T::Boolean) }
3304
+ def attribute_write?; end
3305
+
3110
3306
  sig { returns(T.nilable(String)) }
3111
3307
  def call_operator; end
3112
3308
 
@@ -3116,14 +3312,76 @@ class Prism::IndexOrWriteNode < Prism::Node
3116
3312
  sig { returns(String) }
3117
3313
  def closing; end
3118
3314
 
3315
+ sig { returns(String) }
3316
+ def operator; end
3317
+
3318
+ sig { params(inspector: Prism::NodeInspector).returns(String) }
3319
+ def inspect(inspector); end
3320
+ end
3321
+
3322
+ # Represents assigning to an index.
3323
+ #
3324
+ # foo[bar], = 1
3325
+ # ^^^^^^^^
3326
+ #
3327
+ # begin
3328
+ # rescue => foo[bar]
3329
+ # ^^^^^^^^
3330
+ # end
3331
+ #
3332
+ # for foo[bar] in baz do end
3333
+ # ^^^^^^^^
3334
+ class Prism::IndexTargetNode < Prism::Node
3335
+ sig { returns(Integer) }
3336
+ def flags; end
3337
+
3338
+ sig { returns(Prism::Node) }
3339
+ def receiver; end
3340
+
3341
+ sig { returns(Prism::Location) }
3342
+ def opening_loc; end
3343
+
3344
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
3345
+ def arguments; end
3346
+
3347
+ sig { returns(Prism::Location) }
3348
+ def closing_loc; end
3349
+
3350
+ sig { returns(T.nilable(Prism::Node)) }
3351
+ def block; end
3352
+
3353
+ sig { params(flags: Integer, receiver: Prism::Node, opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), location: Prism::Location).void }
3354
+ def initialize(flags, receiver, opening_loc, arguments, closing_loc, block, location); end
3355
+
3356
+ sig { params(visitor: Prism::Visitor).void }
3357
+ def accept(visitor); end
3358
+
3359
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
3360
+ def child_nodes; end
3361
+
3362
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
3363
+ def deconstruct; end
3364
+
3365
+ sig { params(params: T.untyped).returns(Prism::IndexTargetNode) }
3366
+ def copy(**params); end
3367
+
3368
+ sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
3369
+ def deconstruct_keys(keys); end
3370
+
3119
3371
  sig { returns(T::Boolean) }
3120
3372
  def safe_navigation?; end
3121
3373
 
3122
3374
  sig { returns(T::Boolean) }
3123
3375
  def variable_call?; end
3124
3376
 
3377
+ sig { returns(T::Boolean) }
3378
+ def attribute_write?; end
3379
+
3380
+ sig { returns(String) }
3381
+ def opening; end
3382
+
3125
3383
  sig { returns(String) }
3126
- def operator; end
3384
+ def closing; end
3127
3385
 
3128
3386
  sig { params(inspector: Prism::NodeInspector).returns(String) }
3129
3387
  def inspect(inspector); end
@@ -3387,10 +3645,10 @@ class Prism::IntegerNode < Prism::Node
3387
3645
  def binary?; end
3388
3646
 
3389
3647
  sig { returns(T::Boolean) }
3390
- def octal?; end
3648
+ def decimal?; end
3391
3649
 
3392
3650
  sig { returns(T::Boolean) }
3393
- def decimal?; end
3651
+ def octal?; end
3394
3652
 
3395
3653
  sig { returns(T::Boolean) }
3396
3654
  def hexadecimal?; end
@@ -3406,6 +3664,9 @@ end
3406
3664
  # if /foo #{bar} baz/ then end
3407
3665
  # ^^^^^^^^^^^^^^^^
3408
3666
  class Prism::InterpolatedMatchLastLineNode < Prism::Node
3667
+ sig { returns(Integer) }
3668
+ def flags; end
3669
+
3409
3670
  sig { returns(Prism::Location) }
3410
3671
  def opening_loc; end
3411
3672
 
@@ -3415,11 +3676,8 @@ class Prism::InterpolatedMatchLastLineNode < Prism::Node
3415
3676
  sig { returns(Prism::Location) }
3416
3677
  def closing_loc; end
3417
3678
 
3418
- sig { returns(Integer) }
3419
- def flags; end
3420
-
3421
- sig { params(opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, flags: Integer, location: Prism::Location).void }
3422
- def initialize(opening_loc, parts, closing_loc, flags, location); end
3679
+ sig { params(flags: Integer, opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, location: Prism::Location).void }
3680
+ def initialize(flags, opening_loc, parts, closing_loc, location); end
3423
3681
 
3424
3682
  sig { params(visitor: Prism::Visitor).void }
3425
3683
  def accept(visitor); end
@@ -3438,12 +3696,6 @@ class Prism::InterpolatedMatchLastLineNode < Prism::Node
3438
3696
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
3439
3697
  def deconstruct_keys(keys); end
3440
3698
 
3441
- sig { returns(String) }
3442
- def opening; end
3443
-
3444
- sig { returns(String) }
3445
- def closing; end
3446
-
3447
3699
  sig { returns(T::Boolean) }
3448
3700
  def ignore_case?; end
3449
3701
 
@@ -3468,6 +3720,21 @@ class Prism::InterpolatedMatchLastLineNode < Prism::Node
3468
3720
  sig { returns(T::Boolean) }
3469
3721
  def utf_8?; end
3470
3722
 
3723
+ sig { returns(T::Boolean) }
3724
+ def forced_utf8_encoding?; end
3725
+
3726
+ sig { returns(T::Boolean) }
3727
+ def forced_binary_encoding?; end
3728
+
3729
+ sig { returns(T::Boolean) }
3730
+ def forced_us_ascii_encoding?; end
3731
+
3732
+ sig { returns(String) }
3733
+ def opening; end
3734
+
3735
+ sig { returns(String) }
3736
+ def closing; end
3737
+
3471
3738
  sig { params(inspector: Prism::NodeInspector).returns(String) }
3472
3739
  def inspect(inspector); end
3473
3740
  end
@@ -3477,6 +3744,9 @@ end
3477
3744
  # /foo #{bar} baz/
3478
3745
  # ^^^^^^^^^^^^^^^^
3479
3746
  class Prism::InterpolatedRegularExpressionNode < Prism::Node
3747
+ sig { returns(Integer) }
3748
+ def flags; end
3749
+
3480
3750
  sig { returns(Prism::Location) }
3481
3751
  def opening_loc; end
3482
3752
 
@@ -3486,11 +3756,8 @@ class Prism::InterpolatedRegularExpressionNode < Prism::Node
3486
3756
  sig { returns(Prism::Location) }
3487
3757
  def closing_loc; end
3488
3758
 
3489
- sig { returns(Integer) }
3490
- def flags; end
3491
-
3492
- sig { params(opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, flags: Integer, location: Prism::Location).void }
3493
- def initialize(opening_loc, parts, closing_loc, flags, location); end
3759
+ sig { params(flags: Integer, opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, location: Prism::Location).void }
3760
+ def initialize(flags, opening_loc, parts, closing_loc, location); end
3494
3761
 
3495
3762
  sig { params(visitor: Prism::Visitor).void }
3496
3763
  def accept(visitor); end
@@ -3509,12 +3776,6 @@ class Prism::InterpolatedRegularExpressionNode < Prism::Node
3509
3776
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
3510
3777
  def deconstruct_keys(keys); end
3511
3778
 
3512
- sig { returns(String) }
3513
- def opening; end
3514
-
3515
- sig { returns(String) }
3516
- def closing; end
3517
-
3518
3779
  sig { returns(T::Boolean) }
3519
3780
  def ignore_case?; end
3520
3781
 
@@ -3539,6 +3800,21 @@ class Prism::InterpolatedRegularExpressionNode < Prism::Node
3539
3800
  sig { returns(T::Boolean) }
3540
3801
  def utf_8?; end
3541
3802
 
3803
+ sig { returns(T::Boolean) }
3804
+ def forced_utf8_encoding?; end
3805
+
3806
+ sig { returns(T::Boolean) }
3807
+ def forced_binary_encoding?; end
3808
+
3809
+ sig { returns(T::Boolean) }
3810
+ def forced_us_ascii_encoding?; end
3811
+
3812
+ sig { returns(String) }
3813
+ def opening; end
3814
+
3815
+ sig { returns(String) }
3816
+ def closing; end
3817
+
3542
3818
  sig { params(inspector: Prism::NodeInspector).returns(String) }
3543
3819
  def inspect(inspector); end
3544
3820
  end
@@ -3680,11 +3956,14 @@ end
3680
3956
  # foo(a: b)
3681
3957
  # ^^^^
3682
3958
  class Prism::KeywordHashNode < Prism::Node
3959
+ sig { returns(Integer) }
3960
+ def flags; end
3961
+
3683
3962
  sig { returns(T::Array[Prism::Node]) }
3684
3963
  def elements; end
3685
3964
 
3686
- sig { params(elements: T::Array[Prism::Node], location: Prism::Location).void }
3687
- def initialize(elements, location); end
3965
+ sig { params(flags: Integer, elements: T::Array[Prism::Node], location: Prism::Location).void }
3966
+ def initialize(flags, elements, location); end
3688
3967
 
3689
3968
  sig { params(visitor: Prism::Visitor).void }
3690
3969
  def accept(visitor); end
@@ -3701,6 +3980,9 @@ class Prism::KeywordHashNode < Prism::Node
3701
3980
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
3702
3981
  def deconstruct_keys(keys); end
3703
3982
 
3983
+ sig { returns(T::Boolean) }
3984
+ def static_keys?; end
3985
+
3704
3986
  sig { params(inspector: Prism::NodeInspector).returns(String) }
3705
3987
  def inspect(inspector); end
3706
3988
  end
@@ -3753,6 +4035,9 @@ class Prism::LambdaNode < Prism::Node
3753
4035
  sig { returns(T::Array[Symbol]) }
3754
4036
  def locals; end
3755
4037
 
4038
+ sig { returns(Integer) }
4039
+ def locals_body_index; end
4040
+
3756
4041
  sig { returns(Prism::Location) }
3757
4042
  def operator_loc; end
3758
4043
 
@@ -3762,14 +4047,14 @@ class Prism::LambdaNode < Prism::Node
3762
4047
  sig { returns(Prism::Location) }
3763
4048
  def closing_loc; end
3764
4049
 
3765
- sig { returns(T.nilable(Prism::BlockParametersNode)) }
4050
+ sig { returns(T.nilable(Prism::Node)) }
3766
4051
  def parameters; end
3767
4052
 
3768
4053
  sig { returns(T.nilable(Prism::Node)) }
3769
4054
  def body; end
3770
4055
 
3771
- sig { params(locals: T::Array[Symbol], operator_loc: Prism::Location, opening_loc: Prism::Location, closing_loc: Prism::Location, parameters: T.nilable(Prism::BlockParametersNode), body: T.nilable(Prism::Node), location: Prism::Location).void }
3772
- def initialize(locals, operator_loc, opening_loc, closing_loc, parameters, body, location); end
4056
+ sig { params(locals: T::Array[Symbol], locals_body_index: Integer, operator_loc: Prism::Location, opening_loc: Prism::Location, closing_loc: Prism::Location, parameters: T.nilable(Prism::Node), body: T.nilable(Prism::Node), location: Prism::Location).void }
4057
+ def initialize(locals, locals_body_index, operator_loc, opening_loc, closing_loc, parameters, body, location); end
3773
4058
 
3774
4059
  sig { params(visitor: Prism::Visitor).void }
3775
4060
  def accept(visitor); end
@@ -4054,6 +4339,9 @@ end
4054
4339
  # if /foo/i then end
4055
4340
  # ^^^^^^
4056
4341
  class Prism::MatchLastLineNode < Prism::Node
4342
+ sig { returns(Integer) }
4343
+ def flags; end
4344
+
4057
4345
  sig { returns(Prism::Location) }
4058
4346
  def opening_loc; end
4059
4347
 
@@ -4066,11 +4354,8 @@ class Prism::MatchLastLineNode < Prism::Node
4066
4354
  sig { returns(String) }
4067
4355
  def unescaped; end
4068
4356
 
4069
- sig { returns(Integer) }
4070
- def flags; end
4071
-
4072
- sig { params(opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, flags: Integer, location: Prism::Location).void }
4073
- def initialize(opening_loc, content_loc, closing_loc, unescaped, flags, location); end
4357
+ sig { params(flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).void }
4358
+ def initialize(flags, opening_loc, content_loc, closing_loc, unescaped, location); end
4074
4359
 
4075
4360
  sig { params(visitor: Prism::Visitor).void }
4076
4361
  def accept(visitor); end
@@ -4087,15 +4372,6 @@ class Prism::MatchLastLineNode < Prism::Node
4087
4372
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
4088
4373
  def deconstruct_keys(keys); end
4089
4374
 
4090
- sig { returns(String) }
4091
- def opening; end
4092
-
4093
- sig { returns(String) }
4094
- def content; end
4095
-
4096
- sig { returns(String) }
4097
- def closing; end
4098
-
4099
4375
  sig { returns(T::Boolean) }
4100
4376
  def ignore_case?; end
4101
4377
 
@@ -4120,6 +4396,24 @@ class Prism::MatchLastLineNode < Prism::Node
4120
4396
  sig { returns(T::Boolean) }
4121
4397
  def utf_8?; end
4122
4398
 
4399
+ sig { returns(T::Boolean) }
4400
+ def forced_utf8_encoding?; end
4401
+
4402
+ sig { returns(T::Boolean) }
4403
+ def forced_binary_encoding?; end
4404
+
4405
+ sig { returns(T::Boolean) }
4406
+ def forced_us_ascii_encoding?; end
4407
+
4408
+ sig { returns(String) }
4409
+ def opening; end
4410
+
4411
+ sig { returns(String) }
4412
+ def content; end
4413
+
4414
+ sig { returns(String) }
4415
+ def closing; end
4416
+
4123
4417
  sig { params(inspector: Prism::NodeInspector).returns(String) }
4124
4418
  def inspect(inspector); end
4125
4419
  end
@@ -4211,11 +4505,11 @@ class Prism::MatchWriteNode < Prism::Node
4211
4505
  sig { returns(Prism::CallNode) }
4212
4506
  def call; end
4213
4507
 
4214
- sig { returns(T::Array[Symbol]) }
4215
- def locals; end
4508
+ sig { returns(T::Array[Prism::Node]) }
4509
+ def targets; end
4216
4510
 
4217
- sig { params(call: Prism::CallNode, locals: T::Array[Symbol], location: Prism::Location).void }
4218
- def initialize(call, locals, location); end
4511
+ sig { params(call: Prism::CallNode, targets: T::Array[Prism::Node], location: Prism::Location).void }
4512
+ def initialize(call, targets, location); end
4219
4513
 
4220
4514
  sig { params(visitor: Prism::Visitor).void }
4221
4515
  def accept(visitor); end
@@ -4520,6 +4814,37 @@ class Prism::NoKeywordsParameterNode < Prism::Node
4520
4814
  def inspect(inspector); end
4521
4815
  end
4522
4816
 
4817
+ # Represents an implicit set of parameters through the use of numbered
4818
+ # parameters within a block or lambda.
4819
+ #
4820
+ # -> { _1 + _2 }
4821
+ # ^^^^^^^^^^^^^^
4822
+ class Prism::NumberedParametersNode < Prism::Node
4823
+ sig { returns(Integer) }
4824
+ def maximum; end
4825
+
4826
+ sig { params(maximum: Integer, location: Prism::Location).void }
4827
+ def initialize(maximum, location); end
4828
+
4829
+ sig { params(visitor: Prism::Visitor).void }
4830
+ def accept(visitor); end
4831
+
4832
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
4833
+ def child_nodes; end
4834
+
4835
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
4836
+ def deconstruct; end
4837
+
4838
+ sig { params(params: T.untyped).returns(Prism::NumberedParametersNode) }
4839
+ def copy(**params); end
4840
+
4841
+ sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
4842
+ def deconstruct_keys(keys); end
4843
+
4844
+ sig { params(inspector: Prism::NodeInspector).returns(String) }
4845
+ def inspect(inspector); end
4846
+ end
4847
+
4523
4848
  # Represents reading a numbered reference to a capture in the previous match.
4524
4849
  #
4525
4850
  # $1
@@ -4681,7 +5006,7 @@ class Prism::ParametersNode < Prism::Node
4681
5006
  sig { returns(T::Array[Prism::Node]) }
4682
5007
  def optionals; end
4683
5008
 
4684
- sig { returns(T.nilable(Prism::RestParameterNode)) }
5009
+ sig { returns(T.nilable(Prism::Node)) }
4685
5010
  def rest; end
4686
5011
 
4687
5012
  sig { returns(T::Array[Prism::Node]) }
@@ -4696,7 +5021,7 @@ class Prism::ParametersNode < Prism::Node
4696
5021
  sig { returns(T.nilable(Prism::BlockParameterNode)) }
4697
5022
  def block; end
4698
5023
 
4699
- sig { params(requireds: T::Array[Prism::Node], optionals: T::Array[Prism::Node], rest: T.nilable(Prism::RestParameterNode), posts: T::Array[Prism::Node], keywords: T::Array[Prism::Node], keyword_rest: T.nilable(Prism::Node), block: T.nilable(Prism::BlockParameterNode), location: Prism::Location).void }
5024
+ sig { params(requireds: T::Array[Prism::Node], optionals: T::Array[Prism::Node], rest: T.nilable(Prism::Node), posts: T::Array[Prism::Node], keywords: T::Array[Prism::Node], keyword_rest: T.nilable(Prism::Node), block: T.nilable(Prism::BlockParameterNode), location: Prism::Location).void }
4700
5025
  def initialize(requireds, optionals, rest, posts, keywords, keyword_rest, block, location); end
4701
5026
 
4702
5027
  sig { params(visitor: Prism::Visitor).void }
@@ -4982,6 +5307,9 @@ end
4982
5307
  # c if a =~ /left/ ... b =~ /right/
4983
5308
  # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4984
5309
  class Prism::RangeNode < Prism::Node
5310
+ sig { returns(Integer) }
5311
+ def flags; end
5312
+
4985
5313
  sig { returns(T.nilable(Prism::Node)) }
4986
5314
  def left; end
4987
5315
 
@@ -4991,11 +5319,8 @@ class Prism::RangeNode < Prism::Node
4991
5319
  sig { returns(Prism::Location) }
4992
5320
  def operator_loc; end
4993
5321
 
4994
- sig { returns(Integer) }
4995
- def flags; end
4996
-
4997
- sig { params(left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, flags: Integer, location: Prism::Location).void }
4998
- def initialize(left, right, operator_loc, flags, location); end
5322
+ sig { params(flags: Integer, left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, location: Prism::Location).void }
5323
+ def initialize(flags, left, right, operator_loc, location); end
4999
5324
 
5000
5325
  sig { params(visitor: Prism::Visitor).void }
5001
5326
  def accept(visitor); end
@@ -5012,12 +5337,12 @@ class Prism::RangeNode < Prism::Node
5012
5337
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
5013
5338
  def deconstruct_keys(keys); end
5014
5339
 
5015
- sig { returns(String) }
5016
- def operator; end
5017
-
5018
5340
  sig { returns(T::Boolean) }
5019
5341
  def exclude_end?; end
5020
5342
 
5343
+ sig { returns(String) }
5344
+ def operator; end
5345
+
5021
5346
  sig { params(inspector: Prism::NodeInspector).returns(String) }
5022
5347
  def inspect(inspector); end
5023
5348
  end
@@ -5084,6 +5409,9 @@ end
5084
5409
  # /foo/i
5085
5410
  # ^^^^^^
5086
5411
  class Prism::RegularExpressionNode < Prism::Node
5412
+ sig { returns(Integer) }
5413
+ def flags; end
5414
+
5087
5415
  sig { returns(Prism::Location) }
5088
5416
  def opening_loc; end
5089
5417
 
@@ -5096,11 +5424,8 @@ class Prism::RegularExpressionNode < Prism::Node
5096
5424
  sig { returns(String) }
5097
5425
  def unescaped; end
5098
5426
 
5099
- sig { returns(Integer) }
5100
- def flags; end
5101
-
5102
- sig { params(opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, flags: Integer, location: Prism::Location).void }
5103
- def initialize(opening_loc, content_loc, closing_loc, unescaped, flags, location); end
5427
+ sig { params(flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).void }
5428
+ def initialize(flags, opening_loc, content_loc, closing_loc, unescaped, location); end
5104
5429
 
5105
5430
  sig { params(visitor: Prism::Visitor).void }
5106
5431
  def accept(visitor); end
@@ -5117,15 +5442,6 @@ class Prism::RegularExpressionNode < Prism::Node
5117
5442
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
5118
5443
  def deconstruct_keys(keys); end
5119
5444
 
5120
- sig { returns(String) }
5121
- def opening; end
5122
-
5123
- sig { returns(String) }
5124
- def content; end
5125
-
5126
- sig { returns(String) }
5127
- def closing; end
5128
-
5129
5445
  sig { returns(T::Boolean) }
5130
5446
  def ignore_case?; end
5131
5447
 
@@ -5150,6 +5466,24 @@ class Prism::RegularExpressionNode < Prism::Node
5150
5466
  sig { returns(T::Boolean) }
5151
5467
  def utf_8?; end
5152
5468
 
5469
+ sig { returns(T::Boolean) }
5470
+ def forced_utf8_encoding?; end
5471
+
5472
+ sig { returns(T::Boolean) }
5473
+ def forced_binary_encoding?; end
5474
+
5475
+ sig { returns(T::Boolean) }
5476
+ def forced_us_ascii_encoding?; end
5477
+
5478
+ sig { returns(String) }
5479
+ def opening; end
5480
+
5481
+ sig { returns(String) }
5482
+ def content; end
5483
+
5484
+ sig { returns(String) }
5485
+ def closing; end
5486
+
5153
5487
  sig { params(inspector: Prism::NodeInspector).returns(String) }
5154
5488
  def inspect(inspector); end
5155
5489
  end
@@ -5651,39 +5985,6 @@ class Prism::StatementsNode < Prism::Node
5651
5985
  def inspect(inspector); end
5652
5986
  end
5653
5987
 
5654
- # Represents the use of compile-time string concatenation.
5655
- #
5656
- # "foo" "bar"
5657
- # ^^^^^^^^^^^
5658
- class Prism::StringConcatNode < Prism::Node
5659
- sig { returns(Prism::Node) }
5660
- def left; end
5661
-
5662
- sig { returns(Prism::Node) }
5663
- def right; end
5664
-
5665
- sig { params(left: Prism::Node, right: Prism::Node, location: Prism::Location).void }
5666
- def initialize(left, right, location); end
5667
-
5668
- sig { params(visitor: Prism::Visitor).void }
5669
- def accept(visitor); end
5670
-
5671
- sig { returns(T::Array[T.nilable(Prism::Node)]) }
5672
- def child_nodes; end
5673
-
5674
- sig { returns(T::Array[T.nilable(Prism::Node)]) }
5675
- def deconstruct; end
5676
-
5677
- sig { params(params: T.untyped).returns(Prism::StringConcatNode) }
5678
- def copy(**params); end
5679
-
5680
- sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
5681
- def deconstruct_keys(keys); end
5682
-
5683
- sig { params(inspector: Prism::NodeInspector).returns(String) }
5684
- def inspect(inspector); end
5685
- end
5686
-
5687
5988
  # Represents a string literal, a string contained within a `%w` list, or
5688
5989
  # plain string content within an interpolated string.
5689
5990
  #
@@ -5729,6 +6030,12 @@ class Prism::StringNode < Prism::Node
5729
6030
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
5730
6031
  def deconstruct_keys(keys); end
5731
6032
 
6033
+ sig { returns(T::Boolean) }
6034
+ def forced_utf8_encoding?; end
6035
+
6036
+ sig { returns(T::Boolean) }
6037
+ def forced_binary_encoding?; end
6038
+
5732
6039
  sig { returns(T::Boolean) }
5733
6040
  def frozen?; end
5734
6041
 
@@ -5807,6 +6114,9 @@ end
5807
6114
  # %i[foo]
5808
6115
  # ^^^
5809
6116
  class Prism::SymbolNode < Prism::Node
6117
+ sig { returns(Integer) }
6118
+ def flags; end
6119
+
5810
6120
  sig { returns(T.nilable(Prism::Location)) }
5811
6121
  def opening_loc; end
5812
6122
 
@@ -5819,8 +6129,8 @@ class Prism::SymbolNode < Prism::Node
5819
6129
  sig { returns(String) }
5820
6130
  def unescaped; end
5821
6131
 
5822
- sig { params(opening_loc: T.nilable(Prism::Location), value_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), unescaped: String, location: Prism::Location).void }
5823
- def initialize(opening_loc, value_loc, closing_loc, unescaped, location); end
6132
+ sig { params(flags: Integer, opening_loc: T.nilable(Prism::Location), value_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), unescaped: String, location: Prism::Location).void }
6133
+ def initialize(flags, opening_loc, value_loc, closing_loc, unescaped, location); end
5824
6134
 
5825
6135
  sig { params(visitor: Prism::Visitor).void }
5826
6136
  def accept(visitor); end
@@ -5837,6 +6147,15 @@ class Prism::SymbolNode < Prism::Node
5837
6147
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
5838
6148
  def deconstruct_keys(keys); end
5839
6149
 
6150
+ sig { returns(T::Boolean) }
6151
+ def forced_utf8_encoding?; end
6152
+
6153
+ sig { returns(T::Boolean) }
6154
+ def forced_binary_encoding?; end
6155
+
6156
+ sig { returns(T::Boolean) }
6157
+ def forced_us_ascii_encoding?; end
6158
+
5840
6159
  sig { returns(T.nilable(String)) }
5841
6160
  def opening; end
5842
6161
 
@@ -5927,6 +6246,9 @@ class Prism::UnlessNode < Prism::Node
5927
6246
  sig { returns(Prism::Node) }
5928
6247
  def predicate; end
5929
6248
 
6249
+ sig { returns(T.nilable(Prism::Location)) }
6250
+ def then_keyword_loc; end
6251
+
5930
6252
  sig { returns(T.nilable(Prism::StatementsNode)) }
5931
6253
  def statements; end
5932
6254
 
@@ -5936,8 +6258,8 @@ class Prism::UnlessNode < Prism::Node
5936
6258
  sig { returns(T.nilable(Prism::Location)) }
5937
6259
  def end_keyword_loc; end
5938
6260
 
5939
- sig { params(keyword_loc: Prism::Location, predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::ElseNode), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).void }
5940
- def initialize(keyword_loc, predicate, statements, consequent, end_keyword_loc, location); end
6261
+ sig { params(keyword_loc: Prism::Location, predicate: Prism::Node, then_keyword_loc: T.nilable(Prism::Location), statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::ElseNode), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).void }
6262
+ def initialize(keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end
5941
6263
 
5942
6264
  sig { params(visitor: Prism::Visitor).void }
5943
6265
  def accept(visitor); end
@@ -5959,6 +6281,9 @@ class Prism::UnlessNode < Prism::Node
5959
6281
  sig { returns(String) }
5960
6282
  def keyword; end
5961
6283
 
6284
+ sig { returns(T.nilable(String)) }
6285
+ def then_keyword; end
6286
+
5962
6287
  sig { returns(T.nilable(String)) }
5963
6288
  def end_keyword; end
5964
6289
 
@@ -5974,6 +6299,9 @@ end
5974
6299
  # until foo do bar end
5975
6300
  # ^^^^^^^^^^^^^^^^^^^^
5976
6301
  class Prism::UntilNode < Prism::Node
6302
+ sig { returns(Integer) }
6303
+ def flags; end
6304
+
5977
6305
  sig { returns(Prism::Location) }
5978
6306
  def keyword_loc; end
5979
6307
 
@@ -5986,11 +6314,8 @@ class Prism::UntilNode < Prism::Node
5986
6314
  sig { returns(T.nilable(Prism::StatementsNode)) }
5987
6315
  def statements; end
5988
6316
 
5989
- sig { returns(Integer) }
5990
- def flags; end
5991
-
5992
- sig { params(keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), flags: Integer, location: Prism::Location).void }
5993
- def initialize(keyword_loc, closing_loc, predicate, statements, flags, location); end
6317
+ sig { params(flags: Integer, keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), location: Prism::Location).void }
6318
+ def initialize(flags, keyword_loc, closing_loc, predicate, statements, location); end
5994
6319
 
5995
6320
  sig { params(visitor: Prism::Visitor).void }
5996
6321
  def accept(visitor); end
@@ -6009,15 +6334,15 @@ class Prism::UntilNode < Prism::Node
6009
6334
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
6010
6335
  def deconstruct_keys(keys); end
6011
6336
 
6337
+ sig { returns(T::Boolean) }
6338
+ def begin_modifier?; end
6339
+
6012
6340
  sig { returns(String) }
6013
6341
  def keyword; end
6014
6342
 
6015
6343
  sig { returns(T.nilable(String)) }
6016
6344
  def closing; end
6017
6345
 
6018
- sig { returns(T::Boolean) }
6019
- def begin_modifier?; end
6020
-
6021
6346
  sig { params(inspector: Prism::NodeInspector).returns(String) }
6022
6347
  def inspect(inspector); end
6023
6348
  end
@@ -6071,6 +6396,9 @@ end
6071
6396
  # while foo do bar end
6072
6397
  # ^^^^^^^^^^^^^^^^^^^^
6073
6398
  class Prism::WhileNode < Prism::Node
6399
+ sig { returns(Integer) }
6400
+ def flags; end
6401
+
6074
6402
  sig { returns(Prism::Location) }
6075
6403
  def keyword_loc; end
6076
6404
 
@@ -6083,11 +6411,8 @@ class Prism::WhileNode < Prism::Node
6083
6411
  sig { returns(T.nilable(Prism::StatementsNode)) }
6084
6412
  def statements; end
6085
6413
 
6086
- sig { returns(Integer) }
6087
- def flags; end
6088
-
6089
- sig { params(keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), flags: Integer, location: Prism::Location).void }
6090
- def initialize(keyword_loc, closing_loc, predicate, statements, flags, location); end
6414
+ sig { params(flags: Integer, keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), location: Prism::Location).void }
6415
+ def initialize(flags, keyword_loc, closing_loc, predicate, statements, location); end
6091
6416
 
6092
6417
  sig { params(visitor: Prism::Visitor).void }
6093
6418
  def accept(visitor); end
@@ -6106,15 +6431,15 @@ class Prism::WhileNode < Prism::Node
6106
6431
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
6107
6432
  def deconstruct_keys(keys); end
6108
6433
 
6434
+ sig { returns(T::Boolean) }
6435
+ def begin_modifier?; end
6436
+
6109
6437
  sig { returns(String) }
6110
6438
  def keyword; end
6111
6439
 
6112
6440
  sig { returns(T.nilable(String)) }
6113
6441
  def closing; end
6114
6442
 
6115
- sig { returns(T::Boolean) }
6116
- def begin_modifier?; end
6117
-
6118
6443
  sig { params(inspector: Prism::NodeInspector).returns(String) }
6119
6444
  def inspect(inspector); end
6120
6445
  end
@@ -6124,6 +6449,9 @@ end
6124
6449
  # `foo`
6125
6450
  # ^^^^^
6126
6451
  class Prism::XStringNode < Prism::Node
6452
+ sig { returns(Integer) }
6453
+ def flags; end
6454
+
6127
6455
  sig { returns(Prism::Location) }
6128
6456
  def opening_loc; end
6129
6457
 
@@ -6136,8 +6464,8 @@ class Prism::XStringNode < Prism::Node
6136
6464
  sig { returns(String) }
6137
6465
  def unescaped; end
6138
6466
 
6139
- sig { params(opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).void }
6140
- def initialize(opening_loc, content_loc, closing_loc, unescaped, location); end
6467
+ sig { params(flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).void }
6468
+ def initialize(flags, opening_loc, content_loc, closing_loc, unescaped, location); end
6141
6469
 
6142
6470
  sig { params(visitor: Prism::Visitor).void }
6143
6471
  def accept(visitor); end
@@ -6154,6 +6482,12 @@ class Prism::XStringNode < Prism::Node
6154
6482
  sig { params(keys: T::Array[Symbol]).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) }
6155
6483
  def deconstruct_keys(keys); end
6156
6484
 
6485
+ sig { returns(T::Boolean) }
6486
+ def forced_utf8_encoding?; end
6487
+
6488
+ sig { returns(T::Boolean) }
6489
+ def forced_binary_encoding?; end
6490
+
6157
6491
  sig { returns(String) }
6158
6492
  def opening; end
6159
6493
 
@@ -6219,7 +6553,13 @@ end
6219
6553
  # Flags for arguments nodes.
6220
6554
  module Prism::ArgumentsNodeFlags
6221
6555
  # if arguments contain keyword splat
6222
- KEYWORD_SPLAT = T.let(1 << 0, Integer)
6556
+ CONTAINS_KEYWORD_SPLAT = T.let(1 << 0, Integer)
6557
+ end
6558
+
6559
+ # Flags for array nodes.
6560
+ module Prism::ArrayNodeFlags
6561
+ # if array contains splat nodes
6562
+ CONTAINS_SPLAT = T.let(1 << 0, Integer)
6223
6563
  end
6224
6564
 
6225
6565
  # Flags for call nodes.
@@ -6228,20 +6568,36 @@ module Prism::CallNodeFlags
6228
6568
  SAFE_NAVIGATION = T.let(1 << 0, Integer)
6229
6569
  # a call that could have been a local variable
6230
6570
  VARIABLE_CALL = T.let(1 << 1, Integer)
6571
+ # a call that is an attribute write, so the value being written should be returned
6572
+ ATTRIBUTE_WRITE = T.let(1 << 2, Integer)
6573
+ end
6574
+
6575
+ # Flags for nodes that have unescaped content.
6576
+ module Prism::EncodingFlags
6577
+ # internal bytes forced the encoding to UTF-8
6578
+ FORCED_UTF8_ENCODING = T.let(1 << 0, Integer)
6579
+ # internal bytes forced the encoding to binary
6580
+ FORCED_BINARY_ENCODING = T.let(1 << 1, Integer)
6231
6581
  end
6232
6582
 
6233
6583
  # Flags for integer nodes that correspond to the base of the integer.
6234
6584
  module Prism::IntegerBaseFlags
6235
6585
  # 0b prefix
6236
6586
  BINARY = T.let(1 << 0, Integer)
6237
- # 0o or 0 prefix
6238
- OCTAL = T.let(1 << 1, Integer)
6239
6587
  # 0d or no prefix
6240
- DECIMAL = T.let(1 << 2, Integer)
6588
+ DECIMAL = T.let(1 << 1, Integer)
6589
+ # 0o or 0 prefix
6590
+ OCTAL = T.let(1 << 2, Integer)
6241
6591
  # 0x prefix
6242
6592
  HEXADECIMAL = T.let(1 << 3, Integer)
6243
6593
  end
6244
6594
 
6595
+ # Flags for keyword hash nodes.
6596
+ module Prism::KeywordHashNodeFlags
6597
+ # a keyword hash which only has `AssocNode` elements all with static literal keys, which means the elements can be treated as keyword arguments
6598
+ STATIC_KEYS = T.let(1 << 0, Integer)
6599
+ end
6600
+
6245
6601
  # Flags for while and until loop nodes.
6246
6602
  module Prism::LoopFlags
6247
6603
  # a loop after a begin statement, so the body is executed first before the condition
@@ -6272,12 +6628,32 @@ module Prism::RegularExpressionFlags
6272
6628
  WINDOWS_31J = T.let(1 << 6, Integer)
6273
6629
  # u - forces the UTF-8 encoding
6274
6630
  UTF_8 = T.let(1 << 7, Integer)
6631
+ # internal bytes forced the encoding to UTF-8
6632
+ FORCED_UTF8_ENCODING = T.let(1 << 8, Integer)
6633
+ # internal bytes forced the encoding to binary
6634
+ FORCED_BINARY_ENCODING = T.let(1 << 9, Integer)
6635
+ # internal bytes forced the encoding to US-ASCII
6636
+ FORCED_US_ASCII_ENCODING = T.let(1 << 10, Integer)
6275
6637
  end
6276
6638
 
6277
6639
  # Flags for string nodes.
6278
6640
  module Prism::StringFlags
6641
+ # internal bytes forced the encoding to UTF-8
6642
+ FORCED_UTF8_ENCODING = T.let(1 << 0, Integer)
6643
+ # internal bytes forced the encoding to binary
6644
+ FORCED_BINARY_ENCODING = T.let(1 << 1, Integer)
6279
6645
  # frozen by virtue of a `frozen_string_literal` comment
6280
- FROZEN = T.let(1 << 0, Integer)
6646
+ FROZEN = T.let(1 << 2, Integer)
6647
+ end
6648
+
6649
+ # Flags for symbol nodes.
6650
+ module Prism::SymbolFlags
6651
+ # internal bytes forced the encoding to UTF-8
6652
+ FORCED_UTF8_ENCODING = T.let(1 << 0, Integer)
6653
+ # internal bytes forced the encoding to binary
6654
+ FORCED_BINARY_ENCODING = T.let(1 << 1, Integer)
6655
+ # internal bytes forced the encoding to US-ASCII
6656
+ FORCED_US_ASCII_ENCODING = T.let(1 << 2, Integer)
6281
6657
  end
6282
6658
 
6283
6659
 
@@ -6366,10 +6742,18 @@ class Prism::Visitor < Prism::BasicVisitor
6366
6742
  sig { params(node: Prism::CallOrWriteNode).void }
6367
6743
  def visit_call_or_write_node(node); end
6368
6744
 
6745
+ # Visit a CallTargetNode node
6746
+ sig { params(node: Prism::CallTargetNode).void }
6747
+ def visit_call_target_node(node); end
6748
+
6369
6749
  # Visit a CapturePatternNode node
6370
6750
  sig { params(node: Prism::CapturePatternNode).void }
6371
6751
  def visit_capture_pattern_node(node); end
6372
6752
 
6753
+ # Visit a CaseMatchNode node
6754
+ sig { params(node: Prism::CaseMatchNode).void }
6755
+ def visit_case_match_node(node); end
6756
+
6373
6757
  # Visit a CaseNode node
6374
6758
  sig { params(node: Prism::CaseNode).void }
6375
6759
  def visit_case_node(node); end
@@ -6550,6 +6934,10 @@ class Prism::Visitor < Prism::BasicVisitor
6550
6934
  sig { params(node: Prism::ImplicitNode).void }
6551
6935
  def visit_implicit_node(node); end
6552
6936
 
6937
+ # Visit a ImplicitRestNode node
6938
+ sig { params(node: Prism::ImplicitRestNode).void }
6939
+ def visit_implicit_rest_node(node); end
6940
+
6553
6941
  # Visit a InNode node
6554
6942
  sig { params(node: Prism::InNode).void }
6555
6943
  def visit_in_node(node); end
@@ -6566,6 +6954,10 @@ class Prism::Visitor < Prism::BasicVisitor
6566
6954
  sig { params(node: Prism::IndexOrWriteNode).void }
6567
6955
  def visit_index_or_write_node(node); end
6568
6956
 
6957
+ # Visit a IndexTargetNode node
6958
+ sig { params(node: Prism::IndexTargetNode).void }
6959
+ def visit_index_target_node(node); end
6960
+
6569
6961
  # Visit a InstanceVariableAndWriteNode node
6570
6962
  sig { params(node: Prism::InstanceVariableAndWriteNode).void }
6571
6963
  def visit_instance_variable_and_write_node(node); end
@@ -6694,6 +7086,10 @@ class Prism::Visitor < Prism::BasicVisitor
6694
7086
  sig { params(node: Prism::NoKeywordsParameterNode).void }
6695
7087
  def visit_no_keywords_parameter_node(node); end
6696
7088
 
7089
+ # Visit a NumberedParametersNode node
7090
+ sig { params(node: Prism::NumberedParametersNode).void }
7091
+ def visit_numbered_parameters_node(node); end
7092
+
6697
7093
  # Visit a NumberedReferenceReadNode node
6698
7094
  sig { params(node: Prism::NumberedReferenceReadNode).void }
6699
7095
  def visit_numbered_reference_read_node(node); end
@@ -6810,10 +7206,6 @@ class Prism::Visitor < Prism::BasicVisitor
6810
7206
  sig { params(node: Prism::StatementsNode).void }
6811
7207
  def visit_statements_node(node); end
6812
7208
 
6813
- # Visit a StringConcatNode node
6814
- sig { params(node: Prism::StringConcatNode).void }
6815
- def visit_string_concat_node(node); end
6816
-
6817
7209
  # Visit a StringNode node
6818
7210
  sig { params(node: Prism::StringNode).void }
6819
7211
  def visit_string_node(node); end
@@ -6879,11 +7271,11 @@ module Prism::DSL
6879
7271
  sig { params(left: Prism::Node, right: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).returns(Prism::AndNode) }
6880
7272
  def AndNode(left, right, operator_loc, location); end
6881
7273
  # Create a new ArgumentsNode node
6882
- sig { params(arguments: T::Array[Prism::Node], flags: Integer, location: Prism::Location).returns(Prism::ArgumentsNode) }
6883
- def ArgumentsNode(arguments, flags, location); end
7274
+ sig { params(flags: Integer, arguments: T::Array[Prism::Node], location: Prism::Location).returns(Prism::ArgumentsNode) }
7275
+ def ArgumentsNode(flags, arguments, location); end
6884
7276
  # Create a new ArrayNode node
6885
- sig { params(elements: T::Array[Prism::Node], opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::ArrayNode) }
6886
- def ArrayNode(elements, opening_loc, closing_loc, location); end
7277
+ sig { params(flags: Integer, elements: T::Array[Prism::Node], opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::ArrayNode) }
7278
+ def ArrayNode(flags, elements, opening_loc, closing_loc, location); end
6887
7279
  # Create a new ArrayPatternNode node
6888
7280
  sig { params(constant: T.nilable(Prism::Node), requireds: T::Array[Prism::Node], rest: T.nilable(Prism::Node), posts: T::Array[Prism::Node], opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::ArrayPatternNode) }
6889
7281
  def ArrayPatternNode(constant, requireds, rest, posts, opening_loc, closing_loc, location); end
@@ -6906,8 +7298,8 @@ module Prism::DSL
6906
7298
  sig { params(name: Symbol, location: Prism::Location).returns(Prism::BlockLocalVariableNode) }
6907
7299
  def BlockLocalVariableNode(name, location); end
6908
7300
  # Create a new BlockNode node
6909
- sig { params(locals: T::Array[Symbol], parameters: T.nilable(Prism::BlockParametersNode), body: T.nilable(Prism::Node), opening_loc: Prism::Location, closing_loc: Prism::Location, location: Prism::Location).returns(Prism::BlockNode) }
6910
- def BlockNode(locals, parameters, body, opening_loc, closing_loc, location); end
7301
+ sig { params(locals: T::Array[Symbol], locals_body_index: Integer, parameters: T.nilable(Prism::Node), body: T.nilable(Prism::Node), opening_loc: Prism::Location, closing_loc: Prism::Location, location: Prism::Location).returns(Prism::BlockNode) }
7302
+ def BlockNode(locals, locals_body_index, parameters, body, opening_loc, closing_loc, location); end
6911
7303
  # Create a new BlockParameterNode node
6912
7304
  sig { params(name: T.nilable(Symbol), name_loc: T.nilable(Prism::Location), operator_loc: Prism::Location, location: Prism::Location).returns(Prism::BlockParameterNode) }
6913
7305
  def BlockParameterNode(name, name_loc, operator_loc, location); end
@@ -6918,20 +7310,26 @@ module Prism::DSL
6918
7310
  sig { params(arguments: T.nilable(Prism::ArgumentsNode), keyword_loc: Prism::Location, location: Prism::Location).returns(Prism::BreakNode) }
6919
7311
  def BreakNode(arguments, keyword_loc, location); end
6920
7312
  # Create a new CallAndWriteNode node
6921
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::CallAndWriteNode) }
6922
- def CallAndWriteNode(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location); end
7313
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::CallAndWriteNode) }
7314
+ def CallAndWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end
6923
7315
  # Create a new CallNode node
6924
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), opening_loc: T.nilable(Prism::Location), arguments: T.nilable(Prism::ArgumentsNode), closing_loc: T.nilable(Prism::Location), block: T.nilable(Prism::Node), flags: Integer, name: Symbol, location: Prism::Location).returns(Prism::CallNode) }
6925
- def CallNode(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, block, flags, name, location); end
7316
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), name: Symbol, message_loc: T.nilable(Prism::Location), opening_loc: T.nilable(Prism::Location), arguments: T.nilable(Prism::ArgumentsNode), closing_loc: T.nilable(Prism::Location), block: T.nilable(Prism::Node), location: Prism::Location).returns(Prism::CallNode) }
7317
+ def CallNode(flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block, location); end
6926
7318
  # Create a new CallOperatorWriteNode node
6927
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), flags: Integer, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::CallOperatorWriteNode) }
6928
- def CallOperatorWriteNode(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator, operator_loc, value, location); end
7319
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::CallOperatorWriteNode) }
7320
+ def CallOperatorWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator, operator_loc, value, location); end
6929
7321
  # Create a new CallOrWriteNode node
6930
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::CallOrWriteNode) }
6931
- def CallOrWriteNode(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location); end
7322
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::CallOrWriteNode) }
7323
+ def CallOrWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end
7324
+ # Create a new CallTargetNode node
7325
+ sig { params(flags: Integer, receiver: Prism::Node, call_operator_loc: Prism::Location, name: Symbol, message_loc: Prism::Location, location: Prism::Location).returns(Prism::CallTargetNode) }
7326
+ def CallTargetNode(flags, receiver, call_operator_loc, name, message_loc, location); end
6932
7327
  # Create a new CapturePatternNode node
6933
7328
  sig { params(value: Prism::Node, target: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).returns(Prism::CapturePatternNode) }
6934
7329
  def CapturePatternNode(value, target, operator_loc, location); end
7330
+ # Create a new CaseMatchNode node
7331
+ sig { params(predicate: T.nilable(Prism::Node), conditions: T::Array[Prism::Node], consequent: T.nilable(Prism::ElseNode), case_keyword_loc: Prism::Location, end_keyword_loc: Prism::Location, location: Prism::Location).returns(Prism::CaseMatchNode) }
7332
+ def CaseMatchNode(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); end
6935
7333
  # Create a new CaseNode node
6936
7334
  sig { params(predicate: T.nilable(Prism::Node), conditions: T::Array[Prism::Node], consequent: T.nilable(Prism::ElseNode), case_keyword_loc: Prism::Location, end_keyword_loc: Prism::Location, location: Prism::Location).returns(Prism::CaseNode) }
6937
7335
  def CaseNode(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); end
@@ -6993,8 +7391,8 @@ module Prism::DSL
6993
7391
  sig { params(name: Symbol, name_loc: Prism::Location, value: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).returns(Prism::ConstantWriteNode) }
6994
7392
  def ConstantWriteNode(name, name_loc, value, operator_loc, location); end
6995
7393
  # Create a new DefNode node
6996
- sig { params(name: Symbol, name_loc: Prism::Location, receiver: T.nilable(Prism::Node), parameters: T.nilable(Prism::ParametersNode), body: T.nilable(Prism::Node), locals: T::Array[Symbol], def_keyword_loc: Prism::Location, operator_loc: T.nilable(Prism::Location), lparen_loc: T.nilable(Prism::Location), rparen_loc: T.nilable(Prism::Location), equal_loc: T.nilable(Prism::Location), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::DefNode) }
6997
- def DefNode(name, name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location); end
7394
+ sig { params(name: Symbol, name_loc: Prism::Location, receiver: T.nilable(Prism::Node), parameters: T.nilable(Prism::ParametersNode), body: T.nilable(Prism::Node), locals: T::Array[Symbol], locals_body_index: Integer, def_keyword_loc: Prism::Location, operator_loc: T.nilable(Prism::Location), lparen_loc: T.nilable(Prism::Location), rparen_loc: T.nilable(Prism::Location), equal_loc: T.nilable(Prism::Location), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::DefNode) }
7395
+ def DefNode(name, name_loc, receiver, parameters, body, locals, locals_body_index, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location); end
6998
7396
  # Create a new DefinedNode node
6999
7397
  sig { params(lparen_loc: T.nilable(Prism::Location), value: Prism::Node, rparen_loc: T.nilable(Prism::Location), keyword_loc: Prism::Location, location: Prism::Location).returns(Prism::DefinedNode) }
7000
7398
  def DefinedNode(lparen_loc, value, rparen_loc, keyword_loc, location); end
@@ -7017,8 +7415,8 @@ module Prism::DSL
7017
7415
  sig { params(constant: T.nilable(Prism::Node), left: Prism::Node, requireds: T::Array[Prism::Node], right: Prism::Node, opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::FindPatternNode) }
7018
7416
  def FindPatternNode(constant, left, requireds, right, opening_loc, closing_loc, location); end
7019
7417
  # Create a new FlipFlopNode node
7020
- sig { params(left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, flags: Integer, location: Prism::Location).returns(Prism::FlipFlopNode) }
7021
- def FlipFlopNode(left, right, operator_loc, flags, location); end
7418
+ sig { params(flags: Integer, left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, location: Prism::Location).returns(Prism::FlipFlopNode) }
7419
+ def FlipFlopNode(flags, left, right, operator_loc, location); end
7022
7420
  # Create a new FloatNode node
7023
7421
  sig { params(location: Prism::Location).returns(Prism::FloatNode) }
7024
7422
  def FloatNode(location); end
@@ -7059,26 +7457,32 @@ module Prism::DSL
7059
7457
  sig { params(constant: T.nilable(Prism::Node), elements: T::Array[Prism::Node], rest: T.nilable(Prism::Node), opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::HashPatternNode) }
7060
7458
  def HashPatternNode(constant, elements, rest, opening_loc, closing_loc, location); end
7061
7459
  # Create a new IfNode node
7062
- sig { params(if_keyword_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::Node), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::IfNode) }
7063
- def IfNode(if_keyword_loc, predicate, statements, consequent, end_keyword_loc, location); end
7460
+ sig { params(if_keyword_loc: T.nilable(Prism::Location), predicate: Prism::Node, then_keyword_loc: T.nilable(Prism::Location), statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::Node), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::IfNode) }
7461
+ def IfNode(if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end
7064
7462
  # Create a new ImaginaryNode node
7065
7463
  sig { params(numeric: Prism::Node, location: Prism::Location).returns(Prism::ImaginaryNode) }
7066
7464
  def ImaginaryNode(numeric, location); end
7067
7465
  # Create a new ImplicitNode node
7068
7466
  sig { params(value: Prism::Node, location: Prism::Location).returns(Prism::ImplicitNode) }
7069
7467
  def ImplicitNode(value, location); end
7468
+ # Create a new ImplicitRestNode node
7469
+ sig { params(location: Prism::Location).returns(Prism::ImplicitRestNode) }
7470
+ def ImplicitRestNode(location); end
7070
7471
  # Create a new InNode node
7071
7472
  sig { params(pattern: Prism::Node, statements: T.nilable(Prism::StatementsNode), in_loc: Prism::Location, then_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::InNode) }
7072
7473
  def InNode(pattern, statements, in_loc, then_loc, location); end
7073
7474
  # Create a new IndexAndWriteNode node
7074
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), flags: Integer, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::IndexAndWriteNode) }
7075
- def IndexAndWriteNode(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location); end
7475
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::IndexAndWriteNode) }
7476
+ def IndexAndWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end
7076
7477
  # Create a new IndexOperatorWriteNode node
7077
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), flags: Integer, operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::IndexOperatorWriteNode) }
7078
- def IndexOperatorWriteNode(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator, operator_loc, value, location); end
7478
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::IndexOperatorWriteNode) }
7479
+ def IndexOperatorWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator, operator_loc, value, location); end
7079
7480
  # Create a new IndexOrWriteNode node
7080
- sig { params(receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), flags: Integer, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::IndexOrWriteNode) }
7081
- def IndexOrWriteNode(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location); end
7481
+ sig { params(flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::IndexOrWriteNode) }
7482
+ def IndexOrWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end
7483
+ # Create a new IndexTargetNode node
7484
+ sig { params(flags: Integer, receiver: Prism::Node, opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), location: Prism::Location).returns(Prism::IndexTargetNode) }
7485
+ def IndexTargetNode(flags, receiver, opening_loc, arguments, closing_loc, block, location); end
7082
7486
  # Create a new InstanceVariableAndWriteNode node
7083
7487
  sig { params(name: Symbol, name_loc: Prism::Location, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location).returns(Prism::InstanceVariableAndWriteNode) }
7084
7488
  def InstanceVariableAndWriteNode(name, name_loc, operator_loc, value, location); end
@@ -7101,11 +7505,11 @@ module Prism::DSL
7101
7505
  sig { params(flags: Integer, location: Prism::Location).returns(Prism::IntegerNode) }
7102
7506
  def IntegerNode(flags, location); end
7103
7507
  # Create a new InterpolatedMatchLastLineNode node
7104
- sig { params(opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, flags: Integer, location: Prism::Location).returns(Prism::InterpolatedMatchLastLineNode) }
7105
- def InterpolatedMatchLastLineNode(opening_loc, parts, closing_loc, flags, location); end
7508
+ sig { params(flags: Integer, opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, location: Prism::Location).returns(Prism::InterpolatedMatchLastLineNode) }
7509
+ def InterpolatedMatchLastLineNode(flags, opening_loc, parts, closing_loc, location); end
7106
7510
  # Create a new InterpolatedRegularExpressionNode node
7107
- sig { params(opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, flags: Integer, location: Prism::Location).returns(Prism::InterpolatedRegularExpressionNode) }
7108
- def InterpolatedRegularExpressionNode(opening_loc, parts, closing_loc, flags, location); end
7511
+ sig { params(flags: Integer, opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, location: Prism::Location).returns(Prism::InterpolatedRegularExpressionNode) }
7512
+ def InterpolatedRegularExpressionNode(flags, opening_loc, parts, closing_loc, location); end
7109
7513
  # Create a new InterpolatedStringNode node
7110
7514
  sig { params(opening_loc: T.nilable(Prism::Location), parts: T::Array[Prism::Node], closing_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::InterpolatedStringNode) }
7111
7515
  def InterpolatedStringNode(opening_loc, parts, closing_loc, location); end
@@ -7116,14 +7520,14 @@ module Prism::DSL
7116
7520
  sig { params(opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, location: Prism::Location).returns(Prism::InterpolatedXStringNode) }
7117
7521
  def InterpolatedXStringNode(opening_loc, parts, closing_loc, location); end
7118
7522
  # Create a new KeywordHashNode node
7119
- sig { params(elements: T::Array[Prism::Node], location: Prism::Location).returns(Prism::KeywordHashNode) }
7120
- def KeywordHashNode(elements, location); end
7523
+ sig { params(flags: Integer, elements: T::Array[Prism::Node], location: Prism::Location).returns(Prism::KeywordHashNode) }
7524
+ def KeywordHashNode(flags, elements, location); end
7121
7525
  # Create a new KeywordRestParameterNode node
7122
7526
  sig { params(name: T.nilable(Symbol), name_loc: T.nilable(Prism::Location), operator_loc: Prism::Location, location: Prism::Location).returns(Prism::KeywordRestParameterNode) }
7123
7527
  def KeywordRestParameterNode(name, name_loc, operator_loc, location); end
7124
7528
  # Create a new LambdaNode node
7125
- sig { params(locals: T::Array[Symbol], operator_loc: Prism::Location, opening_loc: Prism::Location, closing_loc: Prism::Location, parameters: T.nilable(Prism::BlockParametersNode), body: T.nilable(Prism::Node), location: Prism::Location).returns(Prism::LambdaNode) }
7126
- def LambdaNode(locals, operator_loc, opening_loc, closing_loc, parameters, body, location); end
7529
+ sig { params(locals: T::Array[Symbol], locals_body_index: Integer, operator_loc: Prism::Location, opening_loc: Prism::Location, closing_loc: Prism::Location, parameters: T.nilable(Prism::Node), body: T.nilable(Prism::Node), location: Prism::Location).returns(Prism::LambdaNode) }
7530
+ def LambdaNode(locals, locals_body_index, operator_loc, opening_loc, closing_loc, parameters, body, location); end
7127
7531
  # Create a new LocalVariableAndWriteNode node
7128
7532
  sig { params(name_loc: Prism::Location, operator_loc: Prism::Location, value: Prism::Node, name: Symbol, depth: Integer, location: Prism::Location).returns(Prism::LocalVariableAndWriteNode) }
7129
7533
  def LocalVariableAndWriteNode(name_loc, operator_loc, value, name, depth, location); end
@@ -7143,8 +7547,8 @@ module Prism::DSL
7143
7547
  sig { params(name: Symbol, depth: Integer, name_loc: Prism::Location, value: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).returns(Prism::LocalVariableWriteNode) }
7144
7548
  def LocalVariableWriteNode(name, depth, name_loc, value, operator_loc, location); end
7145
7549
  # Create a new MatchLastLineNode node
7146
- sig { params(opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, flags: Integer, location: Prism::Location).returns(Prism::MatchLastLineNode) }
7147
- def MatchLastLineNode(opening_loc, content_loc, closing_loc, unescaped, flags, location); end
7550
+ sig { params(flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).returns(Prism::MatchLastLineNode) }
7551
+ def MatchLastLineNode(flags, opening_loc, content_loc, closing_loc, unescaped, location); end
7148
7552
  # Create a new MatchPredicateNode node
7149
7553
  sig { params(value: Prism::Node, pattern: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).returns(Prism::MatchPredicateNode) }
7150
7554
  def MatchPredicateNode(value, pattern, operator_loc, location); end
@@ -7152,8 +7556,8 @@ module Prism::DSL
7152
7556
  sig { params(value: Prism::Node, pattern: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).returns(Prism::MatchRequiredNode) }
7153
7557
  def MatchRequiredNode(value, pattern, operator_loc, location); end
7154
7558
  # Create a new MatchWriteNode node
7155
- sig { params(call: Prism::CallNode, locals: T::Array[Symbol], location: Prism::Location).returns(Prism::MatchWriteNode) }
7156
- def MatchWriteNode(call, locals, location); end
7559
+ sig { params(call: Prism::CallNode, targets: T::Array[Prism::Node], location: Prism::Location).returns(Prism::MatchWriteNode) }
7560
+ def MatchWriteNode(call, targets, location); end
7157
7561
  # Create a new MissingNode node
7158
7562
  sig { params(location: Prism::Location).returns(Prism::MissingNode) }
7159
7563
  def MissingNode(location); end
@@ -7175,6 +7579,9 @@ module Prism::DSL
7175
7579
  # Create a new NoKeywordsParameterNode node
7176
7580
  sig { params(operator_loc: Prism::Location, keyword_loc: Prism::Location, location: Prism::Location).returns(Prism::NoKeywordsParameterNode) }
7177
7581
  def NoKeywordsParameterNode(operator_loc, keyword_loc, location); end
7582
+ # Create a new NumberedParametersNode node
7583
+ sig { params(maximum: Integer, location: Prism::Location).returns(Prism::NumberedParametersNode) }
7584
+ def NumberedParametersNode(maximum, location); end
7178
7585
  # Create a new NumberedReferenceReadNode node
7179
7586
  sig { params(number: Integer, location: Prism::Location).returns(Prism::NumberedReferenceReadNode) }
7180
7587
  def NumberedReferenceReadNode(number, location); end
@@ -7188,7 +7595,7 @@ module Prism::DSL
7188
7595
  sig { params(left: Prism::Node, right: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).returns(Prism::OrNode) }
7189
7596
  def OrNode(left, right, operator_loc, location); end
7190
7597
  # Create a new ParametersNode node
7191
- sig { params(requireds: T::Array[Prism::Node], optionals: T::Array[Prism::Node], rest: T.nilable(Prism::RestParameterNode), posts: T::Array[Prism::Node], keywords: T::Array[Prism::Node], keyword_rest: T.nilable(Prism::Node), block: T.nilable(Prism::BlockParameterNode), location: Prism::Location).returns(Prism::ParametersNode) }
7598
+ sig { params(requireds: T::Array[Prism::Node], optionals: T::Array[Prism::Node], rest: T.nilable(Prism::Node), posts: T::Array[Prism::Node], keywords: T::Array[Prism::Node], keyword_rest: T.nilable(Prism::Node), block: T.nilable(Prism::BlockParameterNode), location: Prism::Location).returns(Prism::ParametersNode) }
7192
7599
  def ParametersNode(requireds, optionals, rest, posts, keywords, keyword_rest, block, location); end
7193
7600
  # Create a new ParenthesesNode node
7194
7601
  sig { params(body: T.nilable(Prism::Node), opening_loc: Prism::Location, closing_loc: Prism::Location, location: Prism::Location).returns(Prism::ParenthesesNode) }
@@ -7209,8 +7616,8 @@ module Prism::DSL
7209
7616
  sig { params(locals: T::Array[Symbol], statements: Prism::StatementsNode, location: Prism::Location).returns(Prism::ProgramNode) }
7210
7617
  def ProgramNode(locals, statements, location); end
7211
7618
  # Create a new RangeNode node
7212
- sig { params(left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, flags: Integer, location: Prism::Location).returns(Prism::RangeNode) }
7213
- def RangeNode(left, right, operator_loc, flags, location); end
7619
+ sig { params(flags: Integer, left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, location: Prism::Location).returns(Prism::RangeNode) }
7620
+ def RangeNode(flags, left, right, operator_loc, location); end
7214
7621
  # Create a new RationalNode node
7215
7622
  sig { params(numeric: Prism::Node, location: Prism::Location).returns(Prism::RationalNode) }
7216
7623
  def RationalNode(numeric, location); end
@@ -7218,8 +7625,8 @@ module Prism::DSL
7218
7625
  sig { params(location: Prism::Location).returns(Prism::RedoNode) }
7219
7626
  def RedoNode(location); end
7220
7627
  # Create a new RegularExpressionNode node
7221
- sig { params(opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, flags: Integer, location: Prism::Location).returns(Prism::RegularExpressionNode) }
7222
- def RegularExpressionNode(opening_loc, content_loc, closing_loc, unescaped, flags, location); end
7628
+ sig { params(flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).returns(Prism::RegularExpressionNode) }
7629
+ def RegularExpressionNode(flags, opening_loc, content_loc, closing_loc, unescaped, location); end
7223
7630
  # Create a new RequiredKeywordParameterNode node
7224
7631
  sig { params(name: Symbol, name_loc: Prism::Location, location: Prism::Location).returns(Prism::RequiredKeywordParameterNode) }
7225
7632
  def RequiredKeywordParameterNode(name, name_loc, location); end
@@ -7262,9 +7669,6 @@ module Prism::DSL
7262
7669
  # Create a new StatementsNode node
7263
7670
  sig { params(body: T::Array[Prism::Node], location: Prism::Location).returns(Prism::StatementsNode) }
7264
7671
  def StatementsNode(body, location); end
7265
- # Create a new StringConcatNode node
7266
- sig { params(left: Prism::Node, right: Prism::Node, location: Prism::Location).returns(Prism::StringConcatNode) }
7267
- def StringConcatNode(left, right, location); end
7268
7672
  # Create a new StringNode node
7269
7673
  sig { params(flags: Integer, opening_loc: T.nilable(Prism::Location), content_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), unescaped: String, location: Prism::Location).returns(Prism::StringNode) }
7270
7674
  def StringNode(flags, opening_loc, content_loc, closing_loc, unescaped, location); end
@@ -7272,8 +7676,8 @@ module Prism::DSL
7272
7676
  sig { params(keyword_loc: Prism::Location, lparen_loc: T.nilable(Prism::Location), arguments: T.nilable(Prism::ArgumentsNode), rparen_loc: T.nilable(Prism::Location), block: T.nilable(Prism::Node), location: Prism::Location).returns(Prism::SuperNode) }
7273
7677
  def SuperNode(keyword_loc, lparen_loc, arguments, rparen_loc, block, location); end
7274
7678
  # Create a new SymbolNode node
7275
- sig { params(opening_loc: T.nilable(Prism::Location), value_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), unescaped: String, location: Prism::Location).returns(Prism::SymbolNode) }
7276
- def SymbolNode(opening_loc, value_loc, closing_loc, unescaped, location); end
7679
+ sig { params(flags: Integer, opening_loc: T.nilable(Prism::Location), value_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), unescaped: String, location: Prism::Location).returns(Prism::SymbolNode) }
7680
+ def SymbolNode(flags, opening_loc, value_loc, closing_loc, unescaped, location); end
7277
7681
  # Create a new TrueNode node
7278
7682
  sig { params(location: Prism::Location).returns(Prism::TrueNode) }
7279
7683
  def TrueNode(location); end
@@ -7281,20 +7685,20 @@ module Prism::DSL
7281
7685
  sig { params(names: T::Array[Prism::Node], keyword_loc: Prism::Location, location: Prism::Location).returns(Prism::UndefNode) }
7282
7686
  def UndefNode(names, keyword_loc, location); end
7283
7687
  # Create a new UnlessNode node
7284
- sig { params(keyword_loc: Prism::Location, predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::ElseNode), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::UnlessNode) }
7285
- def UnlessNode(keyword_loc, predicate, statements, consequent, end_keyword_loc, location); end
7688
+ sig { params(keyword_loc: Prism::Location, predicate: Prism::Node, then_keyword_loc: T.nilable(Prism::Location), statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::ElseNode), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::UnlessNode) }
7689
+ def UnlessNode(keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end
7286
7690
  # Create a new UntilNode node
7287
- sig { params(keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), flags: Integer, location: Prism::Location).returns(Prism::UntilNode) }
7288
- def UntilNode(keyword_loc, closing_loc, predicate, statements, flags, location); end
7691
+ sig { params(flags: Integer, keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), location: Prism::Location).returns(Prism::UntilNode) }
7692
+ def UntilNode(flags, keyword_loc, closing_loc, predicate, statements, location); end
7289
7693
  # Create a new WhenNode node
7290
7694
  sig { params(keyword_loc: Prism::Location, conditions: T::Array[Prism::Node], statements: T.nilable(Prism::StatementsNode), location: Prism::Location).returns(Prism::WhenNode) }
7291
7695
  def WhenNode(keyword_loc, conditions, statements, location); end
7292
7696
  # Create a new WhileNode node
7293
- sig { params(keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), flags: Integer, location: Prism::Location).returns(Prism::WhileNode) }
7294
- def WhileNode(keyword_loc, closing_loc, predicate, statements, flags, location); end
7697
+ sig { params(flags: Integer, keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), location: Prism::Location).returns(Prism::WhileNode) }
7698
+ def WhileNode(flags, keyword_loc, closing_loc, predicate, statements, location); end
7295
7699
  # Create a new XStringNode node
7296
- sig { params(opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).returns(Prism::XStringNode) }
7297
- def XStringNode(opening_loc, content_loc, closing_loc, unescaped, location); end
7700
+ sig { params(flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, location: Prism::Location).returns(Prism::XStringNode) }
7701
+ def XStringNode(flags, opening_loc, content_loc, closing_loc, unescaped, location); end
7298
7702
  # Create a new YieldNode node
7299
7703
  sig { params(keyword_loc: Prism::Location, lparen_loc: T.nilable(Prism::Location), arguments: T.nilable(Prism::ArgumentsNode), rparen_loc: T.nilable(Prism::Location), location: Prism::Location).returns(Prism::YieldNode) }
7300
7704
  def YieldNode(keyword_loc, lparen_loc, arguments, rparen_loc, location); end