prism 0.17.1 → 0.19.0

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