prism 2.0.0.rc2-x86_64-linux-gnu → 2.0.0-x86_64-linux-gnu

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -2
  3. data/docs/serialization.md +19 -6
  4. data/ext/prism/api_node.c +80 -80
  5. data/ext/prism/extension.c +34 -67
  6. data/ext/prism/extension.h +1 -1
  7. data/include/prism/arena.h +8 -0
  8. data/include/prism/arena.hpp +42 -0
  9. data/include/prism/ast.h +11 -1
  10. data/include/prism/ast.hpp +641 -0
  11. data/include/prism/buffer.h +8 -0
  12. data/include/prism/buffer.hpp +55 -0
  13. data/include/prism/comments.h +17 -0
  14. data/include/prism/compiler/branch.h +26 -0
  15. data/include/prism/compiler/cplusplus.hpp +16 -0
  16. data/include/prism/compiler/exceptions.hpp +17 -0
  17. data/include/prism/compiler/format.h +2 -0
  18. data/include/prism/compiler/lifetimebound.hpp +25 -0
  19. data/include/prism/constant_pool.h +25 -0
  20. data/include/prism/diagnostic.h +18 -0
  21. data/include/prism/errors_format.h +8 -0
  22. data/include/prism/internal/node.h +8 -4
  23. data/include/prism/internal/stringy.h +1 -6
  24. data/include/prism/json.h +8 -0
  25. data/include/prism/line_offset_list.h +8 -0
  26. data/include/prism/magic_comments.h +18 -0
  27. data/include/prism/node.h +55 -10
  28. data/include/prism/node.hpp +272 -0
  29. data/include/prism/node_type.hpp +38 -0
  30. data/include/prism/options.h +10 -1
  31. data/include/prism/options.hpp +43 -0
  32. data/include/prism/parser.h +72 -64
  33. data/include/prism/parser.hpp +274 -0
  34. data/include/prism/prettyprint.h +8 -0
  35. data/include/prism/serialize.h +8 -0
  36. data/include/prism/source.h +8 -0
  37. data/include/prism/stream.h +8 -0
  38. data/include/prism/string_query.h +8 -0
  39. data/include/prism/stringy.h +16 -27
  40. data/include/prism/stringy.hpp +31 -0
  41. data/include/prism/version.h +9 -1
  42. data/include/prism.h +0 -8
  43. data/include/prism.hpp +24 -0
  44. data/lib/prism/3.3/prism.so +0 -0
  45. data/lib/prism/3.4/prism.so +0 -0
  46. data/lib/prism/4.0/prism.so +0 -0
  47. data/lib/prism/serialize.rb +2549 -3281
  48. data/prism.gemspec +14 -1
  49. data/rbi/generated/prism/node.rbi +736 -0
  50. data/rbi/generated/prism/serialize.rbi +6 -5
  51. data/sig/generated/prism/node.rbs +736 -0
  52. data/sig/generated/prism/serialize.rbs +7 -5
  53. data/src/comments.c +2 -2
  54. data/src/diagnostic.c +8 -0
  55. data/src/node.c +216 -368
  56. data/src/options.c +7 -13
  57. data/src/parser.c +52 -48
  58. data/src/prism.c +175 -194
  59. data/src/regexp.c +0 -1
  60. data/src/serialize.c +2300 -1950
  61. data/src/source.c +8 -2
  62. data/src/stringy.c +3 -33
  63. metadata +14 -1
@@ -234,6 +234,8 @@ module Prism
234
234
  # alias $foo $bar
235
235
  # ^^^^^^^^^^^^^^^
236
236
  # ```
237
+ #
238
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
237
239
  class AliasGlobalVariableNode < Node
238
240
  # Initialize a new AliasGlobalVariableNode node.
239
241
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, new_name: ::T.any(GlobalVariableReadNode, BackReferenceReadNode, NumberedReferenceReadNode), old_name: ::T.any(GlobalVariableReadNode, BackReferenceReadNode, NumberedReferenceReadNode), keyword_loc: Location).void }
@@ -283,6 +285,8 @@ module Prism
283
285
  # alias $foo $bar
284
286
  # ^^^^
285
287
  # ```
288
+ #
289
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
286
290
  sig { returns(::T.any(GlobalVariableReadNode, BackReferenceReadNode, NumberedReferenceReadNode)) }
287
291
  def new_name; end
288
292
 
@@ -292,6 +296,8 @@ module Prism
292
296
  # alias $foo $bar
293
297
  # ^^^^
294
298
  # ```
299
+ #
300
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
295
301
  sig { returns(::T.any(GlobalVariableReadNode, BackReferenceReadNode, NumberedReferenceReadNode)) }
296
302
  def old_name; end
297
303
 
@@ -301,6 +307,8 @@ module Prism
301
307
  # alias $foo $bar
302
308
  # ^^^^^
303
309
  # ```
310
+ #
311
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgJGZvbyAkYmFyCg)
304
312
  sig { returns(Location) }
305
313
  def keyword_loc; end
306
314
 
@@ -323,6 +331,8 @@ module Prism
323
331
  # alias foo bar
324
332
  # ^^^^^^^^^^^^^
325
333
  # ```
334
+ #
335
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgo)
326
336
  class AliasMethodNode < Node
327
337
  # Initialize a new AliasMethodNode node.
328
338
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, new_name: ::T.any(SymbolNode, InterpolatedSymbolNode), old_name: ::T.any(SymbolNode, InterpolatedSymbolNode), keyword_loc: Location).void }
@@ -378,6 +388,8 @@ module Prism
378
388
  # alias :"#{foo}" :"#{bar}"
379
389
  # ^^^^^^^^^
380
390
  # ```
391
+ #
392
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgoKYWxpYXMgOmZvbyA6YmFyCgphbGlhcyA6IiN7Zm9vfSIgOiIje2Jhcn0iCg)
381
393
  sig { returns(::T.any(SymbolNode, InterpolatedSymbolNode)) }
382
394
  def new_name; end
383
395
 
@@ -393,6 +405,8 @@ module Prism
393
405
  # alias :"#{foo}" :"#{bar}"
394
406
  # ^^^^^^^^^
395
407
  # ```
408
+ #
409
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgoKYWxpYXMgOmZvbyA6YmFyCgphbGlhcyA6IiN7Zm9vfSIgOiIje2Jhcn0iCg)
396
410
  sig { returns(::T.any(SymbolNode, InterpolatedSymbolNode)) }
397
411
  def old_name; end
398
412
 
@@ -402,6 +416,8 @@ module Prism
402
416
  # alias foo bar
403
417
  # ^^^^^
404
418
  # ```
419
+ #
420
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YWxpYXMgZm9vIGJhcgo)
405
421
  sig { returns(Location) }
406
422
  def keyword_loc; end
407
423
 
@@ -424,6 +440,8 @@ module Prism
424
440
  # foo => bar | baz
425
441
  # ^^^^^^^^^
426
442
  # ```
443
+ #
444
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
427
445
  class AlternationPatternNode < Node
428
446
  # Initialize a new AlternationPatternNode node.
429
447
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, left: Node, right: Node, operator_loc: Location).void }
@@ -473,6 +491,8 @@ module Prism
473
491
  # foo => bar | baz
474
492
  # ^^^
475
493
  # ```
494
+ #
495
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
476
496
  sig { returns(Node) }
477
497
  def left; end
478
498
 
@@ -482,6 +502,8 @@ module Prism
482
502
  # foo => bar | baz
483
503
  # ^^^
484
504
  # ```
505
+ #
506
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
485
507
  sig { returns(Node) }
486
508
  def right; end
487
509
 
@@ -491,6 +513,8 @@ module Prism
491
513
  # foo => bar | baz
492
514
  # ^
493
515
  # ```
516
+ #
517
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhciB8IGJhego)
494
518
  sig { returns(Location) }
495
519
  def operator_loc; end
496
520
 
@@ -513,6 +537,8 @@ module Prism
513
537
  # left and right
514
538
  # ^^^^^^^^^^^^^^
515
539
  # ```
540
+ #
541
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBhbmQgcmlnaHQK)
516
542
  class AndNode < Node
517
543
  # Initialize a new AndNode node.
518
544
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, left: Node, right: Node, operator_loc: Location).void }
@@ -565,6 +591,8 @@ module Prism
565
591
  # 1 && 2
566
592
  # ^
567
593
  # ```
594
+ #
595
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBhbmQgcmlnaHQKCjEgJiYgMgo)
568
596
  sig { returns(Node) }
569
597
  def left; end
570
598
 
@@ -577,6 +605,8 @@ module Prism
577
605
  # 1 and 2
578
606
  # ^
579
607
  # ```
608
+ #
609
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCAmJiByaWdodAoKMSBhbmQgMgo)
580
610
  sig { returns(Node) }
581
611
  def right; end
582
612
 
@@ -586,6 +616,8 @@ module Prism
586
616
  # left and right
587
617
  # ^^^
588
618
  # ```
619
+ #
620
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBhbmQgcmlnaHQK)
589
621
  sig { returns(Location) }
590
622
  def operator_loc; end
591
623
 
@@ -608,6 +640,8 @@ module Prism
608
640
  # return foo, bar, baz
609
641
  # ^^^^^^^^^^^^^
610
642
  # ```
643
+ #
644
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmV0dXJuIGZvbywgYmFyLCBiYXoK)
611
645
  class ArgumentsNode < Node
612
646
  # Initialize a new ArgumentsNode node.
613
647
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, arguments: T::Array[Node]).void }
@@ -677,6 +711,8 @@ module Prism
677
711
  # foo(bar, baz)
678
712
  # ^^^^^^^^
679
713
  # ```
714
+ #
715
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhciwgYmF6KQo)
680
716
  sig { returns(T::Array[Node]) }
681
717
  def arguments; end
682
718
 
@@ -690,6 +726,8 @@ module Prism
690
726
  # [1, 2, 3]
691
727
  # ^^^^^^^^^
692
728
  # ```
729
+ #
730
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdCg)
693
731
  class ArrayNode < Node
694
732
  # Initialize a new ArrayNode node.
695
733
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, elements: T::Array[Node], opening_loc: ::T.nilable(Location), closing_loc: ::T.nilable(Location)).void }
@@ -749,6 +787,8 @@ module Prism
749
787
  # %I(apple orange banana) # "%I("
750
788
  # foo = 1, 2, 3 # nil
751
789
  # ```
790
+ #
791
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsMiwzXSAgICAgICAgICAgICAgICAgIyAiWyIKJXdbZm9vIGJhciBiYXpdICAgICAgICAgIyAiJXdbIgolSShhcHBsZSBvcmFuZ2UgYmFuYW5hKSAjICIlSSgiCmZvbyA9IDEsIDIsIDMgICAgICAgICAgICMgbmlsCg)
752
792
  sig { returns(::T.nilable(Location)) }
753
793
  def opening_loc; end
754
794
 
@@ -765,6 +805,8 @@ module Prism
765
805
  # %I(apple orange banana) # ")"
766
806
  # foo = 1, 2, 3 # nil
767
807
  # ```
808
+ #
809
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsMiwzXSAgICAgICAgICAgICAgICAgIyAiXSIKJXdbZm9vIGJhciBiYXpdICAgICAgICAgIyAiXSIKJUkoYXBwbGUgb3JhbmdlIGJhbmFuYSkgIyAiKSIKZm9vID0gMSwgMiwgMyAgICAgICAgICAgIyBuaWwK)
768
810
  sig { returns(::T.nilable(Location)) }
769
811
  def closing_loc; end
770
812
 
@@ -803,6 +845,8 @@ module Prism
803
845
  # foo in Bar[1, 2, 3]
804
846
  # ^^^^^^^^^^^^
805
847
  # ```
848
+ #
849
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIDEsIDIKCmZvbyBpbiBbMSwgMl0KCmZvbyBpbiAqYmFyCgpmb28gaW4gQmFyW10KCmZvbyBpbiBCYXJbMSwgMiwgM10K)
806
850
  class ArrayPatternNode < Node
807
851
  # Initialize a new ArrayPatternNode node.
808
852
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, constant: ::T.nilable(::T.any(ConstantPathNode, ConstantReadNode)), requireds: T::Array[Node], rest: ::T.nilable(::T.any(ImplicitRestNode, SplatNode)), posts: T::Array[Node], opening_loc: ::T.nilable(Location), closing_loc: ::T.nilable(Location)).void }
@@ -858,6 +902,8 @@ module Prism
858
902
  # foo in Bar::Baz[1, 2, 3]
859
903
  # ^^^^^^^^
860
904
  # ```
905
+ #
906
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIEJhcltdCgpmb28gaW4gQmFyWzEsIDIsIDNdCgpmb28gaW4gQmFyOjpCYXpbMSwgMiwgM10K)
861
907
  sig { returns(::T.nilable(::T.any(ConstantPathNode, ConstantReadNode))) }
862
908
  def constant; end
863
909
 
@@ -867,6 +913,8 @@ module Prism
867
913
  # foo in [1, 2]
868
914
  # ^ ^
869
915
  # ```
916
+ #
917
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsxLCAyXQo)
870
918
  sig { returns(T::Array[Node]) }
871
919
  def requireds; end
872
920
 
@@ -876,6 +924,8 @@ module Prism
876
924
  # foo in *bar
877
925
  # ^^^^
878
926
  # ```
927
+ #
928
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIK)
879
929
  sig { returns(::T.nilable(::T.any(ImplicitRestNode, SplatNode))) }
880
930
  def rest; end
881
931
 
@@ -885,6 +935,8 @@ module Prism
885
935
  # foo in *bar, baz
886
936
  # ^^^
887
937
  # ```
938
+ #
939
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJhego)
888
940
  sig { returns(T::Array[Node]) }
889
941
  def posts; end
890
942
 
@@ -894,6 +946,8 @@ module Prism
894
946
  # foo in [1, 2]
895
947
  # ^
896
948
  # ```
949
+ #
950
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsxLCAyXQo)
897
951
  sig { returns(::T.nilable(Location)) }
898
952
  def opening_loc; end
899
953
 
@@ -908,6 +962,8 @@ module Prism
908
962
  # foo in [1, 2]
909
963
  # ^
910
964
  # ```
965
+ #
966
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsxLCAyXQo)
911
967
  sig { returns(::T.nilable(Location)) }
912
968
  def closing_loc; end
913
969
 
@@ -934,6 +990,8 @@ module Prism
934
990
  # { a => b }
935
991
  # ^^^^^^
936
992
  # ```
993
+ #
994
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
937
995
  class AssocNode < Node
938
996
  # Initialize a new AssocNode node.
939
997
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, key: Node, value: Node, operator_loc: ::T.nilable(Location)).void }
@@ -989,6 +1047,8 @@ module Prism
989
1047
  # { def a; end => 1 }
990
1048
  # ^^^^^^^^^^
991
1049
  # ```
1050
+ #
1051
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhOiBiIH0KCnsgZm9vID0-IGJhciB9Cgp7IGRlZiBhOyBlbmQgPT4gMSB9Cg)
992
1052
  sig { returns(Node) }
993
1053
  def key; end
994
1054
 
@@ -1001,6 +1061,8 @@ module Prism
1001
1061
  # { x: 1 }
1002
1062
  # ^
1003
1063
  # ```
1064
+ #
1065
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBmb28gPT4gYmFyIH0KCnsgeDogMSB9Cg)
1004
1066
  sig { returns(Node) }
1005
1067
  def value; end
1006
1068
 
@@ -1010,6 +1072,8 @@ module Prism
1010
1072
  # { foo => bar }
1011
1073
  # ^^
1012
1074
  # ```
1075
+ #
1076
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBmb28gPT4gYmFyIH0K)
1013
1077
  sig { returns(::T.nilable(Location)) }
1014
1078
  def operator_loc; end
1015
1079
 
@@ -1032,6 +1096,8 @@ module Prism
1032
1096
  # { **foo }
1033
1097
  # ^^^^^
1034
1098
  # ```
1099
+ #
1100
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyAqKmZvbyB9Cg)
1035
1101
  class AssocSplatNode < Node
1036
1102
  # Initialize a new AssocSplatNode node.
1037
1103
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, value: ::T.nilable(Node), operator_loc: Location).void }
@@ -1081,6 +1147,8 @@ module Prism
1081
1147
  # { **foo }
1082
1148
  # ^^^
1083
1149
  # ```
1150
+ #
1151
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyAqKmZvbyB9Cg)
1084
1152
  sig { returns(::T.nilable(Node)) }
1085
1153
  def value; end
1086
1154
 
@@ -1090,6 +1158,8 @@ module Prism
1090
1158
  # { **x }
1091
1159
  # ^^
1092
1160
  # ```
1161
+ #
1162
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyAqKnggfQo)
1093
1163
  sig { returns(Location) }
1094
1164
  def operator_loc; end
1095
1165
 
@@ -1112,6 +1182,8 @@ module Prism
1112
1182
  # $'
1113
1183
  # ^^
1114
1184
  # ```
1185
+ #
1186
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JCcK)
1115
1187
  class BackReferenceReadNode < Node
1116
1188
  # Initialize a new BackReferenceReadNode node.
1117
1189
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -1162,6 +1234,8 @@ module Prism
1162
1234
  #
1163
1235
  # $+ # name `:$+`
1164
1236
  # ```
1237
+ #
1238
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JCYgIyBuYW1lIGA6JCZgCgokKyAjIG5hbWUgYDokK2AK)
1165
1239
  sig { returns(Symbol) }
1166
1240
  def name; end
1167
1241
 
@@ -1177,6 +1251,8 @@ module Prism
1177
1251
  # end
1178
1252
  # ^^^^^
1179
1253
  # ```
1254
+ #
1255
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4KICBmb28KZW5kCg)
1180
1256
  class BeginNode < Node
1181
1257
  # Initialize a new BeginNode node.
1182
1258
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, begin_keyword_loc: ::T.nilable(Location), statements: ::T.nilable(StatementsNode), rescue_clause: ::T.nilable(RescueNode), else_clause: ::T.nilable(ElseNode), ensure_clause: ::T.nilable(EnsureNode), end_keyword_loc: ::T.nilable(Location)).void }
@@ -1226,6 +1302,8 @@ module Prism
1226
1302
  # begin x end
1227
1303
  # ^^^^^
1228
1304
  # ```
1305
+ #
1306
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geCBlbmQK)
1229
1307
  sig { returns(::T.nilable(Location)) }
1230
1308
  def begin_keyword_loc; end
1231
1309
 
@@ -1240,6 +1318,8 @@ module Prism
1240
1318
  # begin x end
1241
1319
  # ^
1242
1320
  # ```
1321
+ #
1322
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geCBlbmQK)
1243
1323
  sig { returns(::T.nilable(StatementsNode)) }
1244
1324
  def statements; end
1245
1325
 
@@ -1249,6 +1329,8 @@ module Prism
1249
1329
  # begin x; rescue y; end
1250
1330
  # ^^^^^^^^
1251
1331
  # ```
1332
+ #
1333
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geDsgcmVzY3VlIHk7IGVuZAo)
1252
1334
  sig { returns(::T.nilable(RescueNode)) }
1253
1335
  def rescue_clause; end
1254
1336
 
@@ -1258,6 +1340,8 @@ module Prism
1258
1340
  # begin x; rescue y; else z; end
1259
1341
  # ^^^^^^^^^^^
1260
1342
  # ```
1343
+ #
1344
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geDsgcmVzY3VlIHk7IGVsc2UgejsgZW5kCg)
1261
1345
  sig { returns(::T.nilable(ElseNode)) }
1262
1346
  def else_clause; end
1263
1347
 
@@ -1267,6 +1351,8 @@ module Prism
1267
1351
  # begin x; ensure y; end
1268
1352
  # ^^^^^^^^
1269
1353
  # ```
1354
+ #
1355
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geDsgZW5zdXJlIHk7IGVuZAo)
1270
1356
  sig { returns(::T.nilable(EnsureNode)) }
1271
1357
  def ensure_clause; end
1272
1358
 
@@ -1276,6 +1362,8 @@ module Prism
1276
1362
  # begin x end
1277
1363
  # ^^^
1278
1364
  # ```
1365
+ #
1366
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4geCBlbmQK)
1279
1367
  sig { returns(::T.nilable(Location)) }
1280
1368
  def end_keyword_loc; end
1281
1369
 
@@ -1302,6 +1390,8 @@ module Prism
1302
1390
  # bar(&args)
1303
1391
  # ^^^^^
1304
1392
  # ```
1393
+ #
1394
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyKCZhcmdzKQo)
1305
1395
  class BlockArgumentNode < Node
1306
1396
  # Initialize a new BlockArgumentNode node.
1307
1397
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, expression: ::T.nilable(Node), operator_loc: Location).void }
@@ -1351,6 +1441,8 @@ module Prism
1351
1441
  # foo(&args)
1352
1442
  # ^^^^
1353
1443
  # ```
1444
+ #
1445
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKCZhcmdzKQo)
1354
1446
  sig { returns(::T.nilable(Node)) }
1355
1447
  def expression; end
1356
1448
 
@@ -1360,6 +1452,8 @@ module Prism
1360
1452
  # foo(&args)
1361
1453
  # ^
1362
1454
  # ```
1455
+ #
1456
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKCZhcmdzKQo)
1363
1457
  sig { returns(Location) }
1364
1458
  def operator_loc; end
1365
1459
 
@@ -1382,6 +1476,8 @@ module Prism
1382
1476
  # a { |; b| }
1383
1477
  # ^
1384
1478
  # ```
1479
+ #
1480
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSB7IHw7IGJ8IH0K)
1385
1481
  class BlockLocalVariableNode < Node
1386
1482
  # Initialize a new BlockLocalVariableNode node.
1387
1483
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -1435,6 +1531,8 @@ module Prism
1435
1531
  # a { |; b| } # name `:b`
1436
1532
  # ^
1437
1533
  # ```
1534
+ #
1535
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSB7IHw7IGJ8IH0gIyBuYW1lIGA6YmAK)
1438
1536
  sig { returns(Symbol) }
1439
1537
  def name; end
1440
1538
 
@@ -1448,6 +1546,8 @@ module Prism
1448
1546
  # [1, 2, 3].each { |i| puts x }
1449
1547
  # ^^^^^^^^^^^^^^
1450
1548
  # ```
1549
+ #
1550
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
1451
1551
  class BlockNode < Node
1452
1552
  # Initialize a new BlockNode node.
1453
1553
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, locals: T::Array[Symbol], parameters: ::T.nilable(::T.any(BlockParametersNode, NumberedParametersNode, ItParametersNode)), body: ::T.nilable(::T.any(StatementsNode, BeginNode)), opening_loc: Location, closing_loc: Location).void }
@@ -1497,6 +1597,8 @@ module Prism
1497
1597
  # [1, 2, 3].each { |i| puts x } # locals: [:i]
1498
1598
  # ^
1499
1599
  # ```
1600
+ #
1601
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0gIyBsb2NhbHM6IFs6aV0K)
1500
1602
  sig { returns(T::Array[Symbol]) }
1501
1603
  def locals; end
1502
1604
 
@@ -1510,6 +1612,8 @@ module Prism
1510
1612
  # [1, 2, 3].each { puts it }
1511
1613
  # ^^^^^^^^^^^
1512
1614
  # ```
1615
+ #
1616
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0KClsxLCAyLCAzXS5lYWNoIHsgcHV0cyBfMSB9CgpbMSwgMiwgM10uZWFjaCB7IHB1dHMgaXQgfQo)
1513
1617
  sig { returns(::T.nilable(::T.any(BlockParametersNode, NumberedParametersNode, ItParametersNode))) }
1514
1618
  def parameters; end
1515
1619
 
@@ -1519,6 +1623,8 @@ module Prism
1519
1623
  # [1, 2, 3].each { |i| puts x }
1520
1624
  # ^^^^^^
1521
1625
  # ```
1626
+ #
1627
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
1522
1628
  sig { returns(::T.nilable(::T.any(StatementsNode, BeginNode))) }
1523
1629
  def body; end
1524
1630
 
@@ -1528,6 +1634,8 @@ module Prism
1528
1634
  # [1, 2, 3].each { |i| puts x }
1529
1635
  # ^
1530
1636
  # ```
1637
+ #
1638
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
1531
1639
  sig { returns(Location) }
1532
1640
  def opening_loc; end
1533
1641
 
@@ -1542,6 +1650,8 @@ module Prism
1542
1650
  # [1, 2, 3].each { |i| puts x }
1543
1651
  # ^
1544
1652
  # ```
1653
+ #
1654
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WzEsIDIsIDNdLmVhY2ggeyB8aXwgcHV0cyB4IH0K)
1545
1655
  sig { returns(Location) }
1546
1656
  def closing_loc; end
1547
1657
 
@@ -1569,6 +1679,8 @@ module Prism
1569
1679
  # ^^
1570
1680
  # end
1571
1681
  # ```
1682
+ #
1683
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpCgplbmQK)
1572
1684
  class BlockParameterNode < Node
1573
1685
  # Initialize a new BlockParameterNode node.
1574
1686
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: ::T.nilable(Symbol), name_loc: ::T.nilable(Location), operator_loc: Location).void }
@@ -1623,6 +1735,8 @@ module Prism
1623
1735
  # ^
1624
1736
  # end
1625
1737
  # ```
1738
+ #
1739
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpICMgbmFtZSBgOmJgCgplbmQK)
1626
1740
  sig { returns(::T.nilable(Symbol)) }
1627
1741
  def name; end
1628
1742
 
@@ -1632,6 +1746,8 @@ module Prism
1632
1746
  # def a(&b)
1633
1747
  # ^
1634
1748
  # ```
1749
+ #
1750
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpCg)
1635
1751
  sig { returns(::T.nilable(Location)) }
1636
1752
  def name_loc; end
1637
1753
 
@@ -1647,6 +1763,8 @@ module Prism
1647
1763
  # ^
1648
1764
  # end
1649
1765
  # ```
1766
+ #
1767
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJmIpCgplbmQK)
1650
1768
  sig { returns(Location) }
1651
1769
  def operator_loc; end
1652
1770
 
@@ -1673,6 +1791,8 @@ module Prism
1673
1791
  # ^^^^^^^^^^^^^^^^^
1674
1792
  # end
1675
1793
  # ```
1794
+ #
1795
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
1676
1796
  class BlockParametersNode < Node
1677
1797
  # Initialize a new BlockParametersNode node.
1678
1798
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, parameters: ::T.nilable(ParametersNode), locals: T::Array[BlockLocalVariableNode], opening_loc: ::T.nilable(Location), closing_loc: ::T.nilable(Location)).void }
@@ -1726,6 +1846,8 @@ module Prism
1726
1846
  # ^^^^^^^^
1727
1847
  # end
1728
1848
  # ```
1849
+ #
1850
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
1729
1851
  sig { returns(::T.nilable(ParametersNode)) }
1730
1852
  def parameters; end
1731
1853
 
@@ -1739,6 +1861,8 @@ module Prism
1739
1861
  # ^^^^^
1740
1862
  # end
1741
1863
  # ```
1864
+ #
1865
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
1742
1866
  sig { returns(T::Array[BlockLocalVariableNode]) }
1743
1867
  def locals; end
1744
1868
 
@@ -1752,6 +1876,8 @@ module Prism
1752
1876
  # ^
1753
1877
  # end
1754
1878
  # ```
1879
+ #
1880
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
1755
1881
  sig { returns(::T.nilable(Location)) }
1756
1882
  def opening_loc; end
1757
1883
 
@@ -1770,6 +1896,8 @@ module Prism
1770
1896
  # ^
1771
1897
  # end
1772
1898
  # ```
1899
+ #
1900
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4gKGEsIGIgPSAxOyBsb2NhbCkgeyB9Cgpmb28gZG8gfGEsIGIgPSAxOyBsb2NhbHwKCmVuZAo)
1773
1901
  sig { returns(::T.nilable(Location)) }
1774
1902
  def closing_loc; end
1775
1903
 
@@ -1796,6 +1924,8 @@ module Prism
1796
1924
  # break foo
1797
1925
  # ^^^^^^^^^
1798
1926
  # ```
1927
+ #
1928
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YnJlYWsgZm9vCg)
1799
1929
  class BreakNode < Node
1800
1930
  # Initialize a new BreakNode node.
1801
1931
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, arguments: ::T.nilable(ArgumentsNode), keyword_loc: Location).void }
@@ -1845,6 +1975,8 @@ module Prism
1845
1975
  # break foo
1846
1976
  # ^^^
1847
1977
  # ```
1978
+ #
1979
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YnJlYWsgZm9vCg)
1848
1980
  sig { returns(::T.nilable(ArgumentsNode)) }
1849
1981
  def arguments; end
1850
1982
 
@@ -1854,6 +1986,8 @@ module Prism
1854
1986
  # break foo
1855
1987
  # ^^^^^
1856
1988
  # ```
1989
+ #
1990
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YnJlYWsgZm9vCg)
1857
1991
  sig { returns(Location) }
1858
1992
  def keyword_loc; end
1859
1993
 
@@ -1876,6 +2010,8 @@ module Prism
1876
2010
  # foo.bar &&= value
1877
2011
  # ^^^^^^^^^^^^^^^^^
1878
2012
  # ```
2013
+ #
2014
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
1879
2015
  class CallAndWriteNode < Node
1880
2016
  # Initialize a new CallAndWriteNode node.
1881
2017
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: ::T.nilable(Node), call_operator_loc: ::T.nilable(Location), message_loc: ::T.nilable(Location), read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node).void }
@@ -1941,6 +2077,8 @@ module Prism
1941
2077
  # foo.bar &&= value
1942
2078
  # ^^^
1943
2079
  # ```
2080
+ #
2081
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
1944
2082
  sig { returns(::T.nilable(Node)) }
1945
2083
  def receiver; end
1946
2084
 
@@ -1950,6 +2088,8 @@ module Prism
1950
2088
  # foo.bar &&= value
1951
2089
  # ^
1952
2090
  # ```
2091
+ #
2092
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
1953
2093
  sig { returns(::T.nilable(Location)) }
1954
2094
  def call_operator_loc; end
1955
2095
 
@@ -1964,6 +2104,8 @@ module Prism
1964
2104
  # foo.bar &&= value
1965
2105
  # ^^^
1966
2106
  # ```
2107
+ #
2108
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
1967
2109
  sig { returns(::T.nilable(Location)) }
1968
2110
  def message_loc; end
1969
2111
 
@@ -1978,6 +2120,8 @@ module Prism
1978
2120
  # foo.bar &&= value # read_name `:bar`
1979
2121
  # ^^^
1980
2122
  # ```
2123
+ #
2124
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUgIyByZWFkX25hbWUgYDpiYXJgCg)
1981
2125
  sig { returns(Symbol) }
1982
2126
  def read_name; end
1983
2127
 
@@ -1987,6 +2131,8 @@ module Prism
1987
2131
  # foo.bar &&= value # write_name `:bar=`
1988
2132
  # ^^^
1989
2133
  # ```
2134
+ #
2135
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUgIyB3cml0ZV9uYW1lIGA6YmFyPWAK)
1990
2136
  sig { returns(Symbol) }
1991
2137
  def write_name; end
1992
2138
 
@@ -1996,6 +2142,8 @@ module Prism
1996
2142
  # foo.bar &&= value
1997
2143
  # ^^^
1998
2144
  # ```
2145
+ #
2146
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
1999
2147
  sig { returns(Location) }
2000
2148
  def operator_loc; end
2001
2149
 
@@ -2010,6 +2158,8 @@ module Prism
2010
2158
  # foo.bar &&= value
2011
2159
  # ^^^^^
2012
2160
  # ```
2161
+ #
2162
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAmJj0gdmFsdWUK)
2013
2163
  sig { returns(Node) }
2014
2164
  def value; end
2015
2165
 
@@ -2050,6 +2200,8 @@ module Prism
2050
2200
  # foo&.bar
2051
2201
  # ^^^^^^^^
2052
2202
  # ```
2203
+ #
2204
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vCgpmb28oKQoKK2ZvbwoKZm9vICsgYmFyCgpmb28uYmFyCgpmb28mLmJhcgo)
2053
2205
  class CallNode < Node
2054
2206
  # Initialize a new CallNode node.
2055
2207
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: ::T.nilable(Node), call_operator_loc: ::T.nilable(Location), name: Symbol, message_loc: ::T.nilable(Location), opening_loc: ::T.nilable(Location), arguments: ::T.nilable(ArgumentsNode), closing_loc: ::T.nilable(Location), equal_loc: ::T.nilable(Location), block: ::T.nilable(::T.any(BlockNode, BlockArgumentNode))).void }
@@ -2121,6 +2273,8 @@ module Prism
2121
2273
  # foo + bar
2122
2274
  # ^^^
2123
2275
  # ```
2276
+ #
2277
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcgoKK2ZvbwoKZm9vICsgYmFyCg)
2124
2278
  sig { returns(::T.nilable(Node)) }
2125
2279
  def receiver; end
2126
2280
 
@@ -2133,6 +2287,8 @@ module Prism
2133
2287
  # foo&.bar
2134
2288
  # ^^
2135
2289
  # ```
2290
+ #
2291
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcgoKZm9vJi5iYXIK)
2136
2292
  sig { returns(::T.nilable(Location)) }
2137
2293
  def call_operator_loc; end
2138
2294
 
@@ -2147,6 +2303,8 @@ module Prism
2147
2303
  # foo.bar # name `:foo`
2148
2304
  # ^^^
2149
2305
  # ```
2306
+ #
2307
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciAjIG5hbWUgYDpmb29gCg)
2150
2308
  sig { returns(Symbol) }
2151
2309
  def name; end
2152
2310
 
@@ -2156,6 +2314,8 @@ module Prism
2156
2314
  # foo.bar
2157
2315
  # ^^^
2158
2316
  # ```
2317
+ #
2318
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcgo)
2159
2319
  sig { returns(::T.nilable(Location)) }
2160
2320
  def message_loc; end
2161
2321
 
@@ -2170,6 +2330,8 @@ module Prism
2170
2330
  # foo(bar)
2171
2331
  # ^
2172
2332
  # ```
2333
+ #
2334
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhcikK)
2173
2335
  sig { returns(::T.nilable(Location)) }
2174
2336
  def opening_loc; end
2175
2337
 
@@ -2184,6 +2346,8 @@ module Prism
2184
2346
  # foo(bar)
2185
2347
  # ^^^
2186
2348
  # ```
2349
+ #
2350
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhcikK)
2187
2351
  sig { returns(::T.nilable(ArgumentsNode)) }
2188
2352
  def arguments; end
2189
2353
 
@@ -2193,6 +2357,8 @@ module Prism
2193
2357
  # foo(bar)
2194
2358
  # ^
2195
2359
  # ```
2360
+ #
2361
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGJhcikK)
2196
2362
  sig { returns(::T.nilable(Location)) }
2197
2363
  def closing_loc; end
2198
2364
 
@@ -2210,6 +2376,8 @@ module Prism
2210
2376
  # foo[bar] = value
2211
2377
  # ^
2212
2378
  # ```
2379
+ #
2380
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IHZhbHVlCgpmb29bYmFyXSA9IHZhbHVlCg)
2213
2381
  sig { returns(::T.nilable(Location)) }
2214
2382
  def equal_loc; end
2215
2383
 
@@ -2224,6 +2392,8 @@ module Prism
2224
2392
  # foo { |a| a }
2225
2393
  # ^^^^^^^^^
2226
2394
  # ```
2395
+ #
2396
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIHsgfGF8IGEgfQo)
2227
2397
  sig { returns(::T.nilable(::T.any(BlockNode, BlockArgumentNode))) }
2228
2398
  def block; end
2229
2399
 
@@ -2257,6 +2427,8 @@ module Prism
2257
2427
  # foo.bar += baz
2258
2428
  # ^^^^^^^^^^^^^^
2259
2429
  # ```
2430
+ #
2431
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSBiYXoK)
2260
2432
  class CallOperatorWriteNode < Node
2261
2433
  # Initialize a new CallOperatorWriteNode node.
2262
2434
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: ::T.nilable(Node), call_operator_loc: ::T.nilable(Location), message_loc: ::T.nilable(Location), read_name: Symbol, write_name: Symbol, binary_operator: Symbol, binary_operator_loc: Location, value: Node).void }
@@ -2322,6 +2494,8 @@ module Prism
2322
2494
  # foo.bar += value
2323
2495
  # ^^^
2324
2496
  # ```
2497
+ #
2498
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
2325
2499
  sig { returns(::T.nilable(Node)) }
2326
2500
  def receiver; end
2327
2501
 
@@ -2331,6 +2505,8 @@ module Prism
2331
2505
  # foo.bar += value
2332
2506
  # ^
2333
2507
  # ```
2508
+ #
2509
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
2334
2510
  sig { returns(::T.nilable(Location)) }
2335
2511
  def call_operator_loc; end
2336
2512
 
@@ -2345,6 +2521,8 @@ module Prism
2345
2521
  # foo.bar += value
2346
2522
  # ^^^
2347
2523
  # ```
2524
+ #
2525
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
2348
2526
  sig { returns(::T.nilable(Location)) }
2349
2527
  def message_loc; end
2350
2528
 
@@ -2359,6 +2537,8 @@ module Prism
2359
2537
  # foo.bar += value # read_name `:bar`
2360
2538
  # ^^^
2361
2539
  # ```
2540
+ #
2541
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZSAjIHJlYWRfbmFtZSBgOmJhcmAK)
2362
2542
  sig { returns(Symbol) }
2363
2543
  def read_name; end
2364
2544
 
@@ -2368,6 +2548,8 @@ module Prism
2368
2548
  # foo.bar += value # write_name `:bar=`
2369
2549
  # ^^^
2370
2550
  # ```
2551
+ #
2552
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZSAjIHdyaXRlX25hbWUgYDpiYXI9YAo)
2371
2553
  sig { returns(Symbol) }
2372
2554
  def write_name; end
2373
2555
 
@@ -2377,6 +2559,8 @@ module Prism
2377
2559
  # foo.bar += value # binary_operator `:+`
2378
2560
  # ^
2379
2561
  # ```
2562
+ #
2563
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZSAjIGJpbmFyeV9vcGVyYXRvciBgOitgCg)
2380
2564
  sig { returns(Symbol) }
2381
2565
  def binary_operator; end
2382
2566
 
@@ -2386,6 +2570,8 @@ module Prism
2386
2570
  # foo.bar += value
2387
2571
  # ^^
2388
2572
  # ```
2573
+ #
2574
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
2389
2575
  sig { returns(Location) }
2390
2576
  def binary_operator_loc; end
2391
2577
 
@@ -2400,6 +2586,8 @@ module Prism
2400
2586
  # foo.bar += value
2401
2587
  # ^^^^^
2402
2588
  # ```
2589
+ #
2590
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciArPSB2YWx1ZQo)
2403
2591
  sig { returns(Node) }
2404
2592
  def value; end
2405
2593
 
@@ -2421,6 +2609,8 @@ module Prism
2421
2609
  # foo.bar ||= value
2422
2610
  # ^^^^^^^^^^^^^^^^^
2423
2611
  # ```
2612
+ #
2613
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
2424
2614
  class CallOrWriteNode < Node
2425
2615
  # Initialize a new CallOrWriteNode node.
2426
2616
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: ::T.nilable(Node), call_operator_loc: ::T.nilable(Location), message_loc: ::T.nilable(Location), read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node).void }
@@ -2486,6 +2676,8 @@ module Prism
2486
2676
  # foo.bar ||= value
2487
2677
  # ^^^
2488
2678
  # ```
2679
+ #
2680
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
2489
2681
  sig { returns(::T.nilable(Node)) }
2490
2682
  def receiver; end
2491
2683
 
@@ -2495,6 +2687,8 @@ module Prism
2495
2687
  # foo.bar ||= value
2496
2688
  # ^
2497
2689
  # ```
2690
+ #
2691
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
2498
2692
  sig { returns(::T.nilable(Location)) }
2499
2693
  def call_operator_loc; end
2500
2694
 
@@ -2509,6 +2703,8 @@ module Prism
2509
2703
  # foo.bar ||= value
2510
2704
  # ^^^
2511
2705
  # ```
2706
+ #
2707
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
2512
2708
  sig { returns(::T.nilable(Location)) }
2513
2709
  def message_loc; end
2514
2710
 
@@ -2523,6 +2719,8 @@ module Prism
2523
2719
  # foo.bar ||= value # read_name `:bar`
2524
2720
  # ^^^
2525
2721
  # ```
2722
+ #
2723
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUgIyByZWFkX25hbWUgYDpiYXJgCg)
2526
2724
  sig { returns(Symbol) }
2527
2725
  def read_name; end
2528
2726
 
@@ -2532,6 +2730,8 @@ module Prism
2532
2730
  # foo.bar ||= value # write_name `:bar=`
2533
2731
  # ^^^
2534
2732
  # ```
2733
+ #
2734
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUgIyB3cml0ZV9uYW1lIGA6YmFyPWAK)
2535
2735
  sig { returns(Symbol) }
2536
2736
  def write_name; end
2537
2737
 
@@ -2541,6 +2741,8 @@ module Prism
2541
2741
  # foo.bar ||= value
2542
2742
  # ^^^
2543
2743
  # ```
2744
+ #
2745
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
2544
2746
  sig { returns(Location) }
2545
2747
  def operator_loc; end
2546
2748
 
@@ -2555,6 +2757,8 @@ module Prism
2555
2757
  # foo.bar ||= value
2556
2758
  # ^^^^^
2557
2759
  # ```
2760
+ #
2761
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciB8fD0gdmFsdWUK)
2558
2762
  sig { returns(Node) }
2559
2763
  def value; end
2560
2764
 
@@ -2588,6 +2792,8 @@ module Prism
2588
2792
  # for foo.bar in baz do end
2589
2793
  # ^^^^^^^
2590
2794
  # ```
2795
+ #
2796
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciwgPSAxCgpiZWdpbgpyZXNjdWUgPT4gZm9vLmJhcgoKZW5kCgpmb3IgZm9vLmJhciBpbiBiYXogZG8gZW5kCg)
2591
2797
  class CallTargetNode < Node
2592
2798
  # Initialize a new CallTargetNode node.
2593
2799
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: Node, call_operator_loc: Location, name: Symbol, message_loc: Location).void }
@@ -2653,6 +2859,8 @@ module Prism
2653
2859
  # foo.bar = 1
2654
2860
  # ^^^
2655
2861
  # ```
2862
+ #
2863
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEK)
2656
2864
  sig { returns(Node) }
2657
2865
  def receiver; end
2658
2866
 
@@ -2662,6 +2870,8 @@ module Prism
2662
2870
  # foo.bar = 1
2663
2871
  # ^
2664
2872
  # ```
2873
+ #
2874
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEK)
2665
2875
  sig { returns(Location) }
2666
2876
  def call_operator_loc; end
2667
2877
 
@@ -2676,6 +2886,8 @@ module Prism
2676
2886
  # foo.bar = 1 # name `:foo`
2677
2887
  # ^^^
2678
2888
  # ```
2889
+ #
2890
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEgIyBuYW1lIGA6Zm9vYAo)
2679
2891
  sig { returns(Symbol) }
2680
2892
  def name; end
2681
2893
 
@@ -2685,6 +2897,8 @@ module Prism
2685
2897
  # foo.bar = 1
2686
2898
  # ^^^
2687
2899
  # ```
2900
+ #
2901
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhciA9IDEK)
2688
2902
  sig { returns(Location) }
2689
2903
  def message_loc; end
2690
2904
 
@@ -2711,6 +2925,8 @@ module Prism
2711
2925
  # foo => [bar => baz]
2712
2926
  # ^^^^^^^^^^
2713
2927
  # ```
2928
+ #
2929
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IFtiYXIgPT4gYmF6XQo)
2714
2930
  class CapturePatternNode < Node
2715
2931
  # Initialize a new CapturePatternNode node.
2716
2932
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, value: Node, target: LocalVariableTargetNode, operator_loc: Location).void }
@@ -2760,6 +2976,8 @@ module Prism
2760
2976
  # foo => bar
2761
2977
  # ^^^
2762
2978
  # ```
2979
+ #
2980
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
2763
2981
  sig { returns(Node) }
2764
2982
  def value; end
2765
2983
 
@@ -2769,6 +2987,8 @@ module Prism
2769
2987
  # foo => bar
2770
2988
  # ^^^
2771
2989
  # ```
2990
+ #
2991
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
2772
2992
  sig { returns(LocalVariableTargetNode) }
2773
2993
  def target; end
2774
2994
 
@@ -2778,6 +2998,8 @@ module Prism
2778
2998
  # foo => bar
2779
2999
  # ^^
2780
3000
  # ```
3001
+ #
3002
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
2781
3003
  sig { returns(Location) }
2782
3004
  def operator_loc; end
2783
3005
 
@@ -2802,6 +3024,8 @@ module Prism
2802
3024
  # end
2803
3025
  # ^^^^^^^^^
2804
3026
  # ```
3027
+ #
3028
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlCmluIGZhbHNlCmVuZAo)
2805
3029
  class CaseMatchNode < Node
2806
3030
  # Initialize a new CaseMatchNode node.
2807
3031
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, predicate: ::T.nilable(Node), conditions: T::Array[InNode], else_clause: ::T.nilable(ElseNode), case_keyword_loc: Location, end_keyword_loc: Location).void }
@@ -2851,6 +3075,8 @@ module Prism
2851
3075
  # case true; in false; end
2852
3076
  # ^^^^
2853
3077
  # ```
3078
+ #
3079
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
2854
3080
  sig { returns(::T.nilable(Node)) }
2855
3081
  def predicate; end
2856
3082
 
@@ -2860,6 +3086,8 @@ module Prism
2860
3086
  # case true; in false; end
2861
3087
  # ^^^^^^^^
2862
3088
  # ```
3089
+ #
3090
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
2863
3091
  sig { returns(T::Array[InNode]) }
2864
3092
  def conditions; end
2865
3093
 
@@ -2869,6 +3097,8 @@ module Prism
2869
3097
  # case true; in false; else; end
2870
3098
  # ^^^^^^^^^
2871
3099
  # ```
3100
+ #
3101
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZWxzZTsgZW5kCg)
2872
3102
  sig { returns(::T.nilable(ElseNode)) }
2873
3103
  def else_clause; end
2874
3104
 
@@ -2878,6 +3108,8 @@ module Prism
2878
3108
  # case true; in false; end
2879
3109
  # ^^^^
2880
3110
  # ```
3111
+ #
3112
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
2881
3113
  sig { returns(Location) }
2882
3114
  def case_keyword_loc; end
2883
3115
 
@@ -2892,6 +3124,8 @@ module Prism
2892
3124
  # case true; in false; end
2893
3125
  # ^^^
2894
3126
  # ```
3127
+ #
3128
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyBpbiBmYWxzZTsgZW5kCg)
2895
3129
  sig { returns(Location) }
2896
3130
  def end_keyword_loc; end
2897
3131
 
@@ -2920,6 +3154,8 @@ module Prism
2920
3154
  # end
2921
3155
  # ^^^^^^^^^^
2922
3156
  # ```
3157
+ #
3158
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlCndoZW4gZmFsc2UKZW5kCg)
2923
3159
  class CaseNode < Node
2924
3160
  # Initialize a new CaseNode node.
2925
3161
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, predicate: ::T.nilable(Node), conditions: T::Array[WhenNode], else_clause: ::T.nilable(ElseNode), case_keyword_loc: Location, end_keyword_loc: Location).void }
@@ -2969,6 +3205,8 @@ module Prism
2969
3205
  # case true; when false; end
2970
3206
  # ^^^^
2971
3207
  # ```
3208
+ #
3209
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
2972
3210
  sig { returns(::T.nilable(Node)) }
2973
3211
  def predicate; end
2974
3212
 
@@ -2978,6 +3216,8 @@ module Prism
2978
3216
  # case true; when false; end
2979
3217
  # ^^^^^^^^^^
2980
3218
  # ```
3219
+ #
3220
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
2981
3221
  sig { returns(T::Array[WhenNode]) }
2982
3222
  def conditions; end
2983
3223
 
@@ -2987,6 +3227,8 @@ module Prism
2987
3227
  # case true; when false; else; end
2988
3228
  # ^^^^^^^^^
2989
3229
  # ```
3230
+ #
3231
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbHNlOyBlbmQK)
2990
3232
  sig { returns(::T.nilable(ElseNode)) }
2991
3233
  def else_clause; end
2992
3234
 
@@ -2996,6 +3238,8 @@ module Prism
2996
3238
  # case true; when false; end
2997
3239
  # ^^^^
2998
3240
  # ```
3241
+ #
3242
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
2999
3243
  sig { returns(Location) }
3000
3244
  def case_keyword_loc; end
3001
3245
 
@@ -3010,6 +3254,8 @@ module Prism
3010
3254
  # case true; when false; end
3011
3255
  # ^^^
3012
3256
  # ```
3257
+ #
3258
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlOyB3aGVuIGZhbHNlOyBlbmQK)
3013
3259
  sig { returns(Location) }
3014
3260
  def end_keyword_loc; end
3015
3261
 
@@ -3036,6 +3282,8 @@ module Prism
3036
3282
  # class Foo end
3037
3283
  # ^^^^^^^^^^^^^
3038
3284
  # ```
3285
+ #
3286
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZAo)
3039
3287
  class ClassNode < Node
3040
3288
  # Initialize a new ClassNode node.
3041
3289
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, locals: T::Array[Symbol], class_keyword_loc: Location, constant_path: ::T.any(ConstantReadNode, ConstantPathNode), inheritance_operator_loc: ::T.nilable(Location), superclass: ::T.nilable(Node), body: ::T.nilable(::T.any(StatementsNode, BeginNode)), end_keyword_loc: Location, name: Symbol).void }
@@ -3089,6 +3337,8 @@ module Prism
3089
3337
  # class Foo end
3090
3338
  # ^^^^^
3091
3339
  # ```
3340
+ #
3341
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZAo)
3092
3342
  sig { returns(Location) }
3093
3343
  def class_keyword_loc; end
3094
3344
 
@@ -3107,6 +3357,8 @@ module Prism
3107
3357
  # class Foo < Bar
3108
3358
  # ^
3109
3359
  # ```
3360
+ #
3361
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIDwgQmFyCg)
3110
3362
  sig { returns(::T.nilable(Location)) }
3111
3363
  def inheritance_operator_loc; end
3112
3364
 
@@ -3121,6 +3373,8 @@ module Prism
3121
3373
  # class Foo < Bar
3122
3374
  # ^^^
3123
3375
  # ```
3376
+ #
3377
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIDwgQmFyCg)
3124
3378
  sig { returns(::T.nilable(Node)) }
3125
3379
  def superclass; end
3126
3380
 
@@ -3130,6 +3384,8 @@ module Prism
3130
3384
  # class Foo; bar; end
3131
3385
  # ^^^
3132
3386
  # ```
3387
+ #
3388
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vOyBiYXI7IGVuZAo)
3133
3389
  sig { returns(::T.nilable(::T.any(StatementsNode, BeginNode))) }
3134
3390
  def body; end
3135
3391
 
@@ -3139,6 +3395,8 @@ module Prism
3139
3395
  # class Foo end
3140
3396
  # ^^^
3141
3397
  # ```
3398
+ #
3399
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZAo)
3142
3400
  sig { returns(Location) }
3143
3401
  def end_keyword_loc; end
3144
3402
 
@@ -3152,6 +3410,8 @@ module Prism
3152
3410
  # ```rb
3153
3411
  # class Foo end # name `:Foo`
3154
3412
  # ```
3413
+ #
3414
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgRm9vIGVuZCAjIG5hbWUgYDpGb29gCg)
3155
3415
  sig { returns(Symbol) }
3156
3416
  def name; end
3157
3417
 
@@ -3177,6 +3437,8 @@ module Prism
3177
3437
  # @@target &&= value
3178
3438
  # ^^^^^^^^^^^^^^^^^^
3179
3439
  # ```
3440
+ #
3441
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
3180
3442
  class ClassVariableAndWriteNode < Node
3181
3443
  # Initialize a new ClassVariableAndWriteNode node.
3182
3444
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -3226,6 +3488,8 @@ module Prism
3226
3488
  # @@target &&= value # name `:@@target`
3227
3489
  # ^^^^^^^^
3228
3490
  # ```
3491
+ #
3492
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlICMgbmFtZSBgOkBAdGFyZ2V0YAo)
3229
3493
  sig { returns(Symbol) }
3230
3494
  def name; end
3231
3495
 
@@ -3235,6 +3499,8 @@ module Prism
3235
3499
  # @@target &&= value
3236
3500
  # ^^^^^^^^
3237
3501
  # ```
3502
+ #
3503
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
3238
3504
  sig { returns(Location) }
3239
3505
  def name_loc; end
3240
3506
 
@@ -3249,6 +3515,8 @@ module Prism
3249
3515
  # @@target &&= value
3250
3516
  # ^^^
3251
3517
  # ```
3518
+ #
3519
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
3252
3520
  sig { returns(Location) }
3253
3521
  def operator_loc; end
3254
3522
 
@@ -3263,6 +3531,8 @@ module Prism
3263
3531
  # @@target &&= value
3264
3532
  # ^^^^^
3265
3533
  # ```
3534
+ #
3535
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgJiY9IHZhbHVlCg)
3266
3536
  sig { returns(Node) }
3267
3537
  def value; end
3268
3538
 
@@ -3280,6 +3550,8 @@ module Prism
3280
3550
  # @@target += value
3281
3551
  # ^^^^^^^^^^^^^^^^^
3282
3552
  # ```
3553
+ #
3554
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgKz0gdmFsdWUK)
3283
3555
  class ClassVariableOperatorWriteNode < Node
3284
3556
  # Initialize a new ClassVariableOperatorWriteNode node.
3285
3557
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Node, binary_operator: Symbol).void }
@@ -3363,6 +3635,8 @@ module Prism
3363
3635
  # @@target ||= value
3364
3636
  # ^^^^^^^^^^^^^^^^^^
3365
3637
  # ```
3638
+ #
3639
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEB0YXJnZXQgfHw9IHZhbHVlCg)
3366
3640
  class ClassVariableOrWriteNode < Node
3367
3641
  # Initialize a new ClassVariableOrWriteNode node.
3368
3642
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -3446,6 +3720,8 @@ module Prism
3446
3720
  # @@foo
3447
3721
  # ^^^^^
3448
3722
  # ```
3723
+ #
3724
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28K)
3449
3725
  class ClassVariableReadNode < Node
3450
3726
  # Initialize a new ClassVariableReadNode node.
3451
3727
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -3496,6 +3772,8 @@ module Prism
3496
3772
  #
3497
3773
  # @@_test # name `:@@_test`
3498
3774
  # ```
3775
+ #
3776
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBhYmMgICAjIG5hbWUgYDpAQGFiY2AKCkBAX3Rlc3QgIyBuYW1lIGA6QEBfdGVzdGAK)
3499
3777
  sig { returns(Symbol) }
3500
3778
  def name; end
3501
3779
 
@@ -3509,6 +3787,8 @@ module Prism
3509
3787
  # @@foo, @@bar = baz
3510
3788
  # ^^^^^ ^^^^^
3511
3789
  # ```
3790
+ #
3791
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28sIEBAYmFyID0gYmF6Cg)
3512
3792
  class ClassVariableTargetNode < Node
3513
3793
  # Initialize a new ClassVariableTargetNode node.
3514
3794
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -3566,6 +3846,8 @@ module Prism
3566
3846
  # @@foo = 1
3567
3847
  # ^^^^^^^^^
3568
3848
  # ```
3849
+ #
3850
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSAxCg)
3569
3851
  class ClassVariableWriteNode < Node
3570
3852
  # Initialize a new ClassVariableWriteNode node.
3571
3853
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, value: Node, operator_loc: Location).void }
@@ -3616,6 +3898,8 @@ module Prism
3616
3898
  #
3617
3899
  # @@_test = :test # name `@@_test`
3618
3900
  # ```
3901
+ #
3902
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBhYmMgPSAxMjMgICAgICMgbmFtZSBgQEBhYmNgCgpAQF90ZXN0ID0gOnRlc3QgIyBuYW1lIGBAQF90ZXN0YAo)
3619
3903
  sig { returns(Symbol) }
3620
3904
  def name; end
3621
3905
 
@@ -3625,6 +3909,8 @@ module Prism
3625
3909
  # @@foo = :bar
3626
3910
  # ^^^^^
3627
3911
  # ```
3912
+ #
3913
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSA6YmFyCg)
3628
3914
  sig { returns(Location) }
3629
3915
  def name_loc; end
3630
3916
 
@@ -3642,6 +3928,8 @@ module Prism
3642
3928
  # @@_xyz = 123
3643
3929
  # ^^^
3644
3930
  # ```
3931
+ #
3932
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSA6YmFyCgpAQF94eXogPSAxMjMK)
3645
3933
  sig { returns(Node) }
3646
3934
  def value; end
3647
3935
 
@@ -3651,6 +3939,8 @@ module Prism
3651
3939
  # @@foo = :bar
3652
3940
  # ^
3653
3941
  # ```
3942
+ #
3943
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QEBmb28gPSA6YmFyCg)
3654
3944
  sig { returns(Location) }
3655
3945
  def operator_loc; end
3656
3946
 
@@ -3673,6 +3963,8 @@ module Prism
3673
3963
  # Target &&= value
3674
3964
  # ^^^^^^^^^^^^^^^^
3675
3965
  # ```
3966
+ #
3967
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#VGFyZ2V0ICYmPSB2YWx1ZQo)
3676
3968
  class ConstantAndWriteNode < Node
3677
3969
  # Initialize a new ConstantAndWriteNode node.
3678
3970
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -3756,6 +4048,8 @@ module Prism
3756
4048
  # Target += value
3757
4049
  # ^^^^^^^^^^^^^^^
3758
4050
  # ```
4051
+ #
4052
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#VGFyZ2V0ICs9IHZhbHVlCg)
3759
4053
  class ConstantOperatorWriteNode < Node
3760
4054
  # Initialize a new ConstantOperatorWriteNode node.
3761
4055
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Node, binary_operator: Symbol).void }
@@ -3839,6 +4133,8 @@ module Prism
3839
4133
  # Target ||= value
3840
4134
  # ^^^^^^^^^^^^^^^^
3841
4135
  # ```
4136
+ #
4137
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#VGFyZ2V0IHx8PSB2YWx1ZQo)
3842
4138
  class ConstantOrWriteNode < Node
3843
4139
  # Initialize a new ConstantOrWriteNode node.
3844
4140
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -3922,6 +4218,8 @@ module Prism
3922
4218
  # Parent::Child &&= value
3923
4219
  # ^^^^^^^^^^^^^^^^^^^^^^^
3924
4220
  # ```
4221
+ #
4222
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#UGFyZW50OjpDaGlsZCAmJj0gdmFsdWUK)
3925
4223
  class ConstantPathAndWriteNode < Node
3926
4224
  # Initialize a new ConstantPathAndWriteNode node.
3927
4225
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, target: ConstantPathNode, operator_loc: Location, value: Node).void }
@@ -3996,6 +4294,8 @@ module Prism
3996
4294
  # Foo::Bar
3997
4295
  # ^^^^^^^^
3998
4296
  # ```
4297
+ #
4298
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpCYXIK)
3999
4299
  class ConstantPathNode < Node
4000
4300
  # Initialize a new ConstantPathNode node.
4001
4301
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, parent: ::T.nilable(Node), name: ::T.nilable(Symbol), delimiter_loc: Location, name_loc: Location).void }
@@ -4051,6 +4351,8 @@ module Prism
4051
4351
  # a.b::C
4052
4352
  # ^^^
4053
4353
  # ```
4354
+ #
4355
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpCYXIKCnNlbGY6OlRlc3QKCmEuYjo6Qwo)
4054
4356
  sig { returns(::T.nilable(Node)) }
4055
4357
  def parent; end
4056
4358
 
@@ -4066,6 +4368,8 @@ module Prism
4066
4368
  # One::Two
4067
4369
  # ^^
4068
4370
  # ```
4371
+ #
4372
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpGb28KCk9uZTo6VHdvCg)
4069
4373
  sig { returns(Location) }
4070
4374
  def delimiter_loc; end
4071
4375
 
@@ -4082,6 +4386,8 @@ module Prism
4082
4386
  # One::Two
4083
4387
  # ^^^
4084
4388
  # ```
4389
+ #
4390
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpGb28KCk9uZTo6VHdvCg)
4085
4391
  sig { returns(Location) }
4086
4392
  def name_loc; end
4087
4393
 
@@ -4104,6 +4410,8 @@ module Prism
4104
4410
  # Parent::Child += value
4105
4411
  # ^^^^^^^^^^^^^^^^^^^^^^
4106
4412
  # ```
4413
+ #
4414
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#UGFyZW50OjpDaGlsZCArPSB2YWx1ZQo)
4107
4415
  class ConstantPathOperatorWriteNode < Node
4108
4416
  # Initialize a new ConstantPathOperatorWriteNode node.
4109
4417
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, target: ConstantPathNode, binary_operator_loc: Location, value: Node, binary_operator: Symbol).void }
@@ -4178,6 +4486,8 @@ module Prism
4178
4486
  # Parent::Child ||= value
4179
4487
  # ^^^^^^^^^^^^^^^^^^^^^^^
4180
4488
  # ```
4489
+ #
4490
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#UGFyZW50OjpDaGlsZCB8fD0gdmFsdWUK)
4181
4491
  class ConstantPathOrWriteNode < Node
4182
4492
  # Initialize a new ConstantPathOrWriteNode node.
4183
4493
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, target: ConstantPathNode, operator_loc: Location, value: Node).void }
@@ -4252,6 +4562,8 @@ module Prism
4252
4562
  # Foo::Foo, Bar::Bar = baz
4253
4563
  # ^^^^^^^^ ^^^^^^^^
4254
4564
  # ```
4565
+ #
4566
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpGb28sIEJhcjo6QmFyID0gYmF6Cg)
4255
4567
  class ConstantPathTargetNode < Node
4256
4568
  # Initialize a new ConstantPathTargetNode node.
4257
4569
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, parent: ::T.nilable(Node), name: ::T.nilable(Symbol), delimiter_loc: Location, name_loc: Location).void }
@@ -4338,6 +4650,8 @@ module Prism
4338
4650
  # ^^^^^^^^^^^^
4339
4651
  # ^^^^^^^^^^^^^^
4340
4652
  # ```
4653
+ #
4654
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpGb28gPSAxCgpGb286OkJhciA9IDEKCjo6Rm9vOjpCYXIgPSAxCg)
4341
4655
  class ConstantPathWriteNode < Node
4342
4656
  # Initialize a new ConstantPathWriteNode node.
4343
4657
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, target: ConstantPathNode, operator_loc: Location, value: Node).void }
@@ -4388,6 +4702,8 @@ module Prism
4388
4702
  # ^^^^^^^^
4389
4703
  # ^^^^^
4390
4704
  # ```
4705
+ #
4706
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vOjpCYXIgPSAxCgo6OkZvbyA9IDphYmMK)
4391
4707
  sig { returns(ConstantPathNode) }
4392
4708
  def target; end
4393
4709
 
@@ -4396,6 +4712,8 @@ module Prism
4396
4712
  # ```rb
4397
4713
  # ^
4398
4714
  # ```
4715
+ #
4716
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OjpBQkMgPSAxMjMK)
4399
4717
  sig { returns(Location) }
4400
4718
  def operator_loc; end
4401
4719
 
@@ -4410,6 +4728,8 @@ module Prism
4410
4728
  # FOO::BAR = :abc
4411
4729
  # ^^^^
4412
4730
  # ```
4731
+ #
4732
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9POjpCQVIgPSA6YWJjCg)
4413
4733
  sig { returns(Node) }
4414
4734
  def value; end
4415
4735
 
@@ -4427,6 +4747,8 @@ module Prism
4427
4747
  # Foo
4428
4748
  # ^^^
4429
4749
  # ```
4750
+ #
4751
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vCg)
4430
4752
  class ConstantReadNode < Node
4431
4753
  # Initialize a new ConstantReadNode node.
4432
4754
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -4477,6 +4799,8 @@ module Prism
4477
4799
  #
4478
4800
  # SOME_CONSTANT # name `:SOME_CONSTANT`
4479
4801
  # ```
4802
+ #
4803
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WCAgICAgICAgICAgICAgIyBuYW1lIGA6WGAKClNPTUVfQ09OU1RBTlQgICMgbmFtZSBgOlNPTUVfQ09OU1RBTlRgCg)
4480
4804
  sig { returns(Symbol) }
4481
4805
  def name; end
4482
4806
 
@@ -4490,6 +4814,8 @@ module Prism
4490
4814
  # Foo, Bar = baz
4491
4815
  # ^^^ ^^^
4492
4816
  # ```
4817
+ #
4818
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vLCBCYXIgPSBiYXoK)
4493
4819
  class ConstantTargetNode < Node
4494
4820
  # Initialize a new ConstantTargetNode node.
4495
4821
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -4547,6 +4873,8 @@ module Prism
4547
4873
  # Foo = 1
4548
4874
  # ^^^^^^^
4549
4875
  # ```
4876
+ #
4877
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vID0gMQo)
4550
4878
  class ConstantWriteNode < Node
4551
4879
  # Initialize a new ConstantWriteNode node.
4552
4880
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, value: Node, operator_loc: Location).void }
@@ -4597,6 +4925,8 @@ module Prism
4597
4925
  #
4598
4926
  # XYZ = 1 # name `:XYZ`
4599
4927
  # ```
4928
+ #
4929
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rm9vID0gOmJhciAjIG5hbWUgYDpGb29gCgpYWVogPSAxICAgICMgbmFtZSBgOlhZWmAK)
4600
4930
  sig { returns(Symbol) }
4601
4931
  def name; end
4602
4932
 
@@ -4606,6 +4936,8 @@ module Prism
4606
4936
  # FOO = 1
4607
4937
  # ^^^
4608
4938
  # ```
4939
+ #
4940
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9PID0gMQo)
4609
4941
  sig { returns(Location) }
4610
4942
  def name_loc; end
4611
4943
 
@@ -4623,6 +4955,8 @@ module Prism
4623
4955
  # MyClass = Class.new
4624
4956
  # ^^^^^^^^^
4625
4957
  # ```
4958
+ #
4959
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9PID0gOmJhcgoKTXlDbGFzcyA9IENsYXNzLm5ldwo)
4626
4960
  sig { returns(Node) }
4627
4961
  def value; end
4628
4962
 
@@ -4632,6 +4966,8 @@ module Prism
4632
4966
  # FOO = :bar
4633
4967
  # ^
4634
4968
  # ```
4969
+ #
4970
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Rk9PID0gOmJhcgo)
4635
4971
  sig { returns(Location) }
4636
4972
  def operator_loc; end
4637
4973
 
@@ -4655,6 +4991,8 @@ module Prism
4655
4991
  # end
4656
4992
  # ^^^^^^^^^^
4657
4993
  # ```
4994
+ #
4995
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIG1ldGhvZAplbmQK)
4658
4996
  class DefNode < Node
4659
4997
  # Initialize a new DefNode node.
4660
4998
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, receiver: ::T.nilable(Node), parameters: ::T.nilable(ParametersNode), body: ::T.nilable(::T.any(StatementsNode, BeginNode)), locals: T::Array[Symbol], def_keyword_loc: Location, operator_loc: ::T.nilable(Location), lparen_loc: ::T.nilable(Location), rparen_loc: ::T.nilable(Location), equal_loc: ::T.nilable(Location), end_keyword_loc: ::T.nilable(Location)).void }
@@ -4815,6 +5153,8 @@ module Prism
4815
5153
  # defined?(a)
4816
5154
  # ^^^^^^^^^^^
4817
5155
  # ```
5156
+ #
5157
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmaW5lZD8oYSkK)
4818
5158
  class DefinedNode < Node
4819
5159
  # Initialize a new DefinedNode node.
4820
5160
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, lparen_loc: ::T.nilable(Location), value: Node, rparen_loc: ::T.nilable(Location), keyword_loc: Location).void }
@@ -4911,6 +5251,8 @@ module Prism
4911
5251
  # if a then b else c end
4912
5252
  # ^^^^^^^^^^
4913
5253
  # ```
5254
+ #
5255
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgYSB0aGVuIGIgZWxzZSBjIGVuZAo)
4914
5256
  class ElseNode < Node
4915
5257
  # Initialize a new ElseNode node.
4916
5258
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, else_keyword_loc: Location, statements: ::T.nilable(StatementsNode), end_keyword_loc: ::T.nilable(Location)).void }
@@ -4994,6 +5336,8 @@ module Prism
4994
5336
  # "foo #{bar}"
4995
5337
  # ^^^^^^
4996
5338
  # ```
5339
+ #
5340
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyAje2Jhcn0iCg)
4997
5341
  class EmbeddedStatementsNode < Node
4998
5342
  # Initialize a new EmbeddedStatementsNode node.
4999
5343
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, statements: ::T.nilable(StatementsNode), closing_loc: Location).void }
@@ -5077,6 +5421,8 @@ module Prism
5077
5421
  # "foo #@bar"
5078
5422
  # ^^^^^
5079
5423
  # ```
5424
+ #
5425
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyAjQGJhciIK)
5080
5426
  class EmbeddedVariableNode < Node
5081
5427
  # Initialize a new EmbeddedVariableNode node.
5082
5428
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, operator_loc: Location, variable: ::T.any(InstanceVariableReadNode, ClassVariableReadNode, GlobalVariableReadNode, BackReferenceReadNode, NumberedReferenceReadNode)).void }
@@ -5151,6 +5497,8 @@ module Prism
5151
5497
  # bar
5152
5498
  # end
5153
5499
  # ```
5500
+ #
5501
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4KICBmb28KZW5zdXJlCgogIGJhcgplbmQK)
5154
5502
  class EnsureNode < Node
5155
5503
  # Initialize a new EnsureNode node.
5156
5504
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, ensure_keyword_loc: Location, statements: ::T.nilable(StatementsNode), end_keyword_loc: Location).void }
@@ -5286,6 +5634,8 @@ module Prism
5286
5634
  # false
5287
5635
  # ^^^^^
5288
5636
  # ```
5637
+ #
5638
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZmFsc2UK)
5289
5639
  class FalseNode < Node
5290
5640
  # Initialize a new FalseNode node.
5291
5641
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -5348,6 +5698,8 @@ module Prism
5348
5698
  # foo => *bar, baz, *qux
5349
5699
  # ^^^^^^^^^^^^^^^
5350
5700
  # ```
5701
+ #
5702
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIFsqYmFyLCBiYXosICpxdXhdCgpmb28gaW4gRm9vKCpiYXIsIGJheiwgKnF1eCkKCmZvbyA9PiAqYmFyLCBiYXosICpxdXgK)
5351
5703
  class FindPatternNode < Node
5352
5704
  # Initialize a new FindPatternNode node.
5353
5705
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, constant: ::T.nilable(::T.any(ConstantPathNode, ConstantReadNode)), left: SplatNode, requireds: T::Array[Node], right: SplatNode, opening_loc: ::T.nilable(Location), closing_loc: ::T.nilable(Location)).void }
@@ -5397,6 +5749,8 @@ module Prism
5397
5749
  # foo in Foo(*bar, baz, *qux)
5398
5750
  # ^^^
5399
5751
  # ```
5752
+ #
5753
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIEZvbygqYmFyLCBiYXosICpxdXgpCg)
5400
5754
  sig { returns(::T.nilable(::T.any(ConstantPathNode, ConstantReadNode))) }
5401
5755
  def constant; end
5402
5756
 
@@ -5409,6 +5763,8 @@ module Prism
5409
5763
  # foo in Foo(*bar, baz, *qux)
5410
5764
  # ^^^^
5411
5765
  # ```
5766
+ #
5767
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIEZvbygqYmFyLCBiYXosICpxdXgpCg)
5412
5768
  sig { returns(SplatNode) }
5413
5769
  def left; end
5414
5770
 
@@ -5421,6 +5777,8 @@ module Prism
5421
5777
  # foo in Foo(*bar, baz, 1, *qux)
5422
5778
  # ^^^^^^
5423
5779
  # ```
5780
+ #
5781
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIEZvbygqYmFyLCBiYXosIDEsICpxdXgpCg)
5424
5782
  sig { returns(T::Array[Node]) }
5425
5783
  def requireds; end
5426
5784
 
@@ -5433,6 +5791,8 @@ module Prism
5433
5791
  # foo in Foo(*bar, baz, *qux)
5434
5792
  # ^^^^
5435
5793
  # ```
5794
+ #
5795
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluICpiYXIsIGJheiwgKnF1eAoKZm9vIGluIEZvbygqYmFyLCBiYXosICpxdXgpCg)
5436
5796
  sig { returns(SplatNode) }
5437
5797
  def right; end
5438
5798
 
@@ -5445,6 +5805,8 @@ module Prism
5445
5805
  # foo in Foo(*bar, baz, *qux)
5446
5806
  # ^
5447
5807
  # ```
5808
+ #
5809
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsqYmFyLCBiYXosICpxdXhdCgpmb28gaW4gRm9vKCpiYXIsIGJheiwgKnF1eCkK)
5448
5810
  sig { returns(::T.nilable(Location)) }
5449
5811
  def opening_loc; end
5450
5812
 
@@ -5462,6 +5824,8 @@ module Prism
5462
5824
  # foo in Foo(*bar, baz, *qux)
5463
5825
  # ^
5464
5826
  # ```
5827
+ #
5828
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIFsqYmFyLCBiYXosICpxdXhdCgpmb28gaW4gRm9vKCpiYXIsIGJheiwgKnF1eCkK)
5465
5829
  sig { returns(::T.nilable(Location)) }
5466
5830
  def closing_loc; end
5467
5831
 
@@ -5488,6 +5852,8 @@ module Prism
5488
5852
  # baz if foo .. bar
5489
5853
  # ^^^^^^^^^^
5490
5854
  # ```
5855
+ #
5856
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmF6IGlmIGZvbyAuLiBiYXIK)
5491
5857
  class FlipFlopNode < Node
5492
5858
  # Initialize a new FlipFlopNode node.
5493
5859
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, left: ::T.nilable(Node), right: ::T.nilable(Node), operator_loc: Location).void }
@@ -5566,6 +5932,8 @@ module Prism
5566
5932
  # 1.0
5567
5933
  # ^^^
5568
5934
  # ```
5935
+ #
5936
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4wCg)
5569
5937
  class FloatNode < Node
5570
5938
  # Initialize a new FloatNode node.
5571
5939
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, value: Float).void }
@@ -5623,6 +5991,8 @@ module Prism
5623
5991
  # for i in a end
5624
5992
  # ^^^^^^^^^^^^^^
5625
5993
  # ```
5994
+ #
5995
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
5626
5996
  class ForNode < Node
5627
5997
  # Initialize a new ForNode node.
5628
5998
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, index: ::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode), collection: Node, statements: ::T.nilable(StatementsNode), for_keyword_loc: Location, in_keyword_loc: Location, do_keyword_loc: ::T.nilable(Location), end_keyword_loc: Location).void }
@@ -5672,6 +6042,8 @@ module Prism
5672
6042
  # for i in a end
5673
6043
  # ^
5674
6044
  # ```
6045
+ #
6046
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
5675
6047
  sig { returns(::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode)) }
5676
6048
  def index; end
5677
6049
 
@@ -5681,6 +6053,8 @@ module Prism
5681
6053
  # for i in a end
5682
6054
  # ^
5683
6055
  # ```
6056
+ #
6057
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
5684
6058
  sig { returns(Node) }
5685
6059
  def collection; end
5686
6060
 
@@ -5692,6 +6066,8 @@ module Prism
5692
6066
  # ^^^^^^
5693
6067
  # end
5694
6068
  # ```
6069
+ #
6070
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYQogIGZvbyhpKQoKZW5kCg)
5695
6071
  sig { returns(::T.nilable(StatementsNode)) }
5696
6072
  def statements; end
5697
6073
 
@@ -5701,6 +6077,8 @@ module Prism
5701
6077
  # for i in a end
5702
6078
  # ^^^
5703
6079
  # ```
6080
+ #
6081
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
5704
6082
  sig { returns(Location) }
5705
6083
  def for_keyword_loc; end
5706
6084
 
@@ -5715,6 +6093,8 @@ module Prism
5715
6093
  # for i in a end
5716
6094
  # ^^
5717
6095
  # ```
6096
+ #
6097
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
5718
6098
  sig { returns(Location) }
5719
6099
  def in_keyword_loc; end
5720
6100
 
@@ -5729,6 +6109,8 @@ module Prism
5729
6109
  # for i in a do end
5730
6110
  # ^^
5731
6111
  # ```
6112
+ #
6113
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBkbyBlbmQK)
5732
6114
  sig { returns(::T.nilable(Location)) }
5733
6115
  def do_keyword_loc; end
5734
6116
 
@@ -5743,6 +6125,8 @@ module Prism
5743
6125
  # for i in a end
5744
6126
  # ^^^
5745
6127
  # ```
6128
+ #
6129
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGkgaW4gYSBlbmQK)
5746
6130
  sig { returns(Location) }
5747
6131
  def end_keyword_loc; end
5748
6132
 
@@ -5779,6 +6163,8 @@ module Prism
5779
6163
  # ^^^
5780
6164
  # end
5781
6165
  # ```
6166
+ #
6167
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGZvbyguLi4pCiAgYmFyKC4uLikKCmVuZAo)
5782
6168
  class ForwardingArgumentsNode < Node
5783
6169
  # Initialize a new ForwardingArgumentsNode node.
5784
6170
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -5833,6 +6219,8 @@ module Prism
5833
6219
  # ^^^
5834
6220
  # end
5835
6221
  # ```
6222
+ #
6223
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGZvbyguLi4pCgplbmQK)
5836
6224
  class ForwardingParameterNode < Node
5837
6225
  # Initialize a new ForwardingParameterNode node.
5838
6226
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -5890,6 +6278,8 @@ module Prism
5890
6278
  # ^^^^^^^^^^^^^
5891
6279
  #
5892
6280
  # ```
6281
+ #
6282
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#c3VwZXIKCnN1cGVyIHsgMTIzIH0K)
5893
6283
  # If it has any other arguments, it would be a `SuperNode` instead.
5894
6284
  class ForwardingSuperNode < Node
5895
6285
  # Initialize a new ForwardingSuperNode node.
@@ -5965,6 +6355,8 @@ module Prism
5965
6355
  # $target &&= value
5966
6356
  # ^^^^^^^^^^^^^^^^^
5967
6357
  # ```
6358
+ #
6359
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JHRhcmdldCAmJj0gdmFsdWUK)
5968
6360
  class GlobalVariableAndWriteNode < Node
5969
6361
  # Initialize a new GlobalVariableAndWriteNode node.
5970
6362
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -6048,6 +6440,8 @@ module Prism
6048
6440
  # $target += value
6049
6441
  # ^^^^^^^^^^^^^^^^
6050
6442
  # ```
6443
+ #
6444
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JHRhcmdldCArPSB2YWx1ZQo)
6051
6445
  class GlobalVariableOperatorWriteNode < Node
6052
6446
  # Initialize a new GlobalVariableOperatorWriteNode node.
6053
6447
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Node, binary_operator: Symbol).void }
@@ -6131,6 +6525,8 @@ module Prism
6131
6525
  # $target ||= value
6132
6526
  # ^^^^^^^^^^^^^^^^^
6133
6527
  # ```
6528
+ #
6529
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JHRhcmdldCB8fD0gdmFsdWUK)
6134
6530
  class GlobalVariableOrWriteNode < Node
6135
6531
  # Initialize a new GlobalVariableOrWriteNode node.
6136
6532
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -6214,6 +6610,8 @@ module Prism
6214
6610
  # $foo
6215
6611
  # ^^^^
6216
6612
  # ```
6613
+ #
6614
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbwo)
6217
6615
  class GlobalVariableReadNode < Node
6218
6616
  # Initialize a new GlobalVariableReadNode node.
6219
6617
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -6264,6 +6662,8 @@ module Prism
6264
6662
  #
6265
6663
  # $_Test # name `:$_Test`
6266
6664
  # ```
6665
+ #
6666
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyAgICMgbmFtZSBgOiRmb29gCgokX1Rlc3QgIyBuYW1lIGA6JF9UZXN0YAo)
6267
6667
  sig { returns(Symbol) }
6268
6668
  def name; end
6269
6669
 
@@ -6277,6 +6677,8 @@ module Prism
6277
6677
  # $foo, $bar = baz
6278
6678
  # ^^^^ ^^^^
6279
6679
  # ```
6680
+ #
6681
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbywgJGJhciA9IGJhego)
6280
6682
  class GlobalVariableTargetNode < Node
6281
6683
  # Initialize a new GlobalVariableTargetNode node.
6282
6684
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -6334,6 +6736,8 @@ module Prism
6334
6736
  # $foo = 1
6335
6737
  # ^^^^^^^^
6336
6738
  # ```
6739
+ #
6740
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDEK)
6337
6741
  class GlobalVariableWriteNode < Node
6338
6742
  # Initialize a new GlobalVariableWriteNode node.
6339
6743
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, value: Node, operator_loc: Location).void }
@@ -6384,6 +6788,8 @@ module Prism
6384
6788
  #
6385
6789
  # $_Test = 123 # name `:$_Test`
6386
6790
  # ```
6791
+ #
6792
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIgICMgbmFtZSBgOiRmb29gCgokX1Rlc3QgPSAxMjMgIyBuYW1lIGA6JF9UZXN0YAo)
6387
6793
  sig { returns(Symbol) }
6388
6794
  def name; end
6389
6795
 
@@ -6393,6 +6799,8 @@ module Prism
6393
6799
  # $foo = :bar
6394
6800
  # ^^^^
6395
6801
  # ```
6802
+ #
6803
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIK)
6396
6804
  sig { returns(Location) }
6397
6805
  def name_loc; end
6398
6806
 
@@ -6410,6 +6818,8 @@ module Prism
6410
6818
  # $-xyz = 123
6411
6819
  # ^^^
6412
6820
  # ```
6821
+ #
6822
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIKCiQteHl6ID0gMTIzCg)
6413
6823
  sig { returns(Node) }
6414
6824
  def value; end
6415
6825
 
@@ -6419,6 +6829,8 @@ module Prism
6419
6829
  # $foo = :bar
6420
6830
  # ^
6421
6831
  # ```
6832
+ #
6833
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JGZvbyA9IDpiYXIK)
6422
6834
  sig { returns(Location) }
6423
6835
  def operator_loc; end
6424
6836
 
@@ -6441,6 +6853,8 @@ module Prism
6441
6853
  # { a => b }
6442
6854
  # ^^^^^^^^^^
6443
6855
  # ```
6856
+ #
6857
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
6444
6858
  class HashNode < Node
6445
6859
  # Initialize a new HashNode node.
6446
6860
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, elements: T::Array[::T.any(AssocNode, AssocSplatNode)], closing_loc: Location).void }
@@ -6490,6 +6904,8 @@ module Prism
6490
6904
  # { a => b }
6491
6905
  # ^
6492
6906
  # ```
6907
+ #
6908
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
6493
6909
  sig { returns(Location) }
6494
6910
  def opening_loc; end
6495
6911
 
@@ -6507,6 +6923,8 @@ module Prism
6507
6923
  # { **foo }
6508
6924
  # ^^^^^
6509
6925
  # ```
6926
+ #
6927
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhOiBiIH0KCnsgKipmb28gfQo)
6510
6928
  sig { returns(T::Array[::T.any(AssocNode, AssocSplatNode)]) }
6511
6929
  def elements; end
6512
6930
 
@@ -6516,6 +6934,8 @@ module Prism
6516
6934
  # { a => b }
6517
6935
  # ^
6518
6936
  # ```
6937
+ #
6938
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBhID0-IGIgfQo)
6519
6939
  sig { returns(Location) }
6520
6940
  def closing_loc; end
6521
6941
 
@@ -6551,6 +6971,8 @@ module Prism
6551
6971
  # foo in { a: 1, b: 2 }
6552
6972
  # ^^^^^^^^^^^^^^
6553
6973
  # ```
6974
+ #
6975
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjogMiB9Cgpmb28gPT4geyBhOiAxLCBiOiAyLCAqKmMgfQoKZm9vID0-IEJhclthOiAxLCBiOiAyXQoKZm9vIGluIHsgYTogMSwgYjogMiB9Cg)
6554
6976
  class HashPatternNode < Node
6555
6977
  # Initialize a new HashPatternNode node.
6556
6978
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, constant: ::T.nilable(::T.any(ConstantPathNode, ConstantReadNode)), elements: T::Array[AssocNode], rest: ::T.nilable(::T.any(AssocSplatNode, NoKeywordsParameterNode)), opening_loc: ::T.nilable(Location), closing_loc: ::T.nilable(Location)).void }
@@ -6603,6 +7025,8 @@ module Prism
6603
7025
  # foo => Bar::Baz[a: 1, b: 2]
6604
7026
  # ^^^^^^^^
6605
7027
  # ```
7028
+ #
7029
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IEJhclthOiAxLCBiOiAyXQoKZm9vID0-IEJhcjo6QmF6W2E6IDEsIGI6IDJdCg)
6606
7030
  sig { returns(::T.nilable(::T.any(ConstantPathNode, ConstantReadNode))) }
6607
7031
  def constant; end
6608
7032
 
@@ -6612,6 +7036,8 @@ module Prism
6612
7036
  # foo => { a: 1, b:, ** }
6613
7037
  # ^^^^^^^^
6614
7038
  # ```
7039
+ #
7040
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjosICoqIH0K)
6615
7041
  sig { returns(T::Array[AssocNode]) }
6616
7042
  def elements; end
6617
7043
 
@@ -6627,6 +7053,8 @@ module Prism
6627
7053
  # foo => { a: 1, b:, **nil }
6628
7054
  # ^^^^^
6629
7055
  # ```
7056
+ #
7057
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjosICoqYyB9Cgpmb28gPT4geyBhOiAxLCBiOiwgKiogfQoKZm9vID0-IHsgYTogMSwgYjosICoqbmlsIH0K)
6630
7058
  sig { returns(::T.nilable(::T.any(AssocSplatNode, NoKeywordsParameterNode))) }
6631
7059
  def rest; end
6632
7060
 
@@ -6639,6 +7067,8 @@ module Prism
6639
7067
  # foo => Bar[a: 1]
6640
7068
  # ^
6641
7069
  # ```
7070
+ #
7071
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSB9Cgpmb28gPT4gQmFyW2E6IDFdCg)
6642
7072
  sig { returns(::T.nilable(Location)) }
6643
7073
  def opening_loc; end
6644
7074
 
@@ -6656,6 +7086,8 @@ module Prism
6656
7086
  # foo => Bar[a: 1]
6657
7087
  # ^
6658
7088
  # ```
7089
+ #
7090
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSB9Cgpmb28gPT4gQmFyW2E6IDFdCg)
6659
7091
  sig { returns(::T.nilable(Location)) }
6660
7092
  def closing_loc; end
6661
7093
 
@@ -6688,6 +7120,8 @@ module Prism
6688
7120
  # foo ? bar : baz
6689
7121
  # ^^^^^^^^^^^^^^^
6690
7122
  # ```
7123
+ #
7124
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIGlmIGZvbwoKaWYgZm9vIHRoZW4gYmFyIGVuZAoKZm9vID8gYmFyIDogYmF6Cg)
6691
7125
  class IfNode < Node
6692
7126
  # Initialize a new IfNode node.
6693
7127
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, if_keyword_loc: ::T.nilable(Location), predicate: Node, then_keyword_loc: ::T.nilable(Location), statements: ::T.nilable(StatementsNode), subsequent: ::T.nilable(::T.any(ElseNode, IfNode)), end_keyword_loc: ::T.nilable(Location)).void }
@@ -6738,6 +7172,8 @@ module Prism
6738
7172
  # ^^
6739
7173
  #
6740
7174
  # ```
7175
+ #
7176
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIGlmIGZvbwo)
6741
7177
  # The `if_keyword_loc` field will be `nil` when the `IfNode` represents a ternary expression.
6742
7178
  sig { returns(::T.nilable(Location)) }
6743
7179
  def if_keyword_loc; end
@@ -6761,6 +7197,8 @@ module Prism
6761
7197
  # foo ? bar : baz
6762
7198
  # ^^^
6763
7199
  # ```
7200
+ #
7201
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCgogIGJhcgplbmQKCmJhciBpZiBmb28KCmZvbyA_IGJhciA6IGJhego)
6764
7202
  sig { returns(Node) }
6765
7203
  def predicate; end
6766
7204
 
@@ -6773,6 +7211,8 @@ module Prism
6773
7211
  # a ? b : c
6774
7212
  # ^
6775
7213
  # ```
7214
+ #
7215
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vIHRoZW4gYmFyIGVuZAoKYSA_IGIgOiBjCg)
6776
7216
  sig { returns(::T.nilable(Location)) }
6777
7217
  def then_keyword_loc; end
6778
7218
 
@@ -6791,6 +7231,8 @@ module Prism
6791
7231
  # ^^^
6792
7232
  # end
6793
7233
  # ```
7234
+ #
7235
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCiAgYmFyCgogIGJhegoKZW5kCg)
6794
7236
  sig { returns(::T.nilable(StatementsNode)) }
6795
7237
  def statements; end
6796
7238
 
@@ -6809,6 +7251,8 @@ module Prism
6809
7251
  # if foo then bar else baz end
6810
7252
  # ^^^^^^^^^^^^
6811
7253
  # ```
7254
+ #
7255
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCiAgYmFyCmVsc2lmIGJhegoKICBxdXgKCmVuZAoKaWYgZm9vIHRoZW4gYmFyIGVsc2UgYmF6IGVuZAo)
6812
7256
  sig { returns(::T.nilable(::T.any(ElseNode, IfNode))) }
6813
7257
  def subsequent; end
6814
7258
 
@@ -6820,6 +7264,8 @@ module Prism
6820
7264
  # end
6821
7265
  # ^^^
6822
7266
  # ```
7267
+ #
7268
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgZm9vCiAgYmFyCmVuZAo)
6823
7269
  sig { returns(::T.nilable(Location)) }
6824
7270
  def end_keyword_loc; end
6825
7271
 
@@ -6850,6 +7296,8 @@ module Prism
6850
7296
  # 1.0i
6851
7297
  # ^^^^
6852
7298
  # ```
7299
+ #
7300
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4waQo)
6853
7301
  class ImaginaryNode < Node
6854
7302
  # Initialize a new ImaginaryNode node.
6855
7303
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, numeric: ::T.any(FloatNode, IntegerNode, RationalNode)).void }
@@ -6913,6 +7361,8 @@ module Prism
6913
7361
  # foo in { bar: }
6914
7362
  # ^^^^
6915
7363
  # ```
7364
+ #
7365
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eyBmb286IH0KCnsgRm9vOiB9Cgpmb28gaW4geyBiYXI6IH0K)
6916
7366
  class ImplicitNode < Node
6917
7367
  # Initialize a new ImplicitNode node.
6918
7368
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, value: ::T.any(LocalVariableReadNode, CallNode, ConstantReadNode, LocalVariableTargetNode)).void }
@@ -6979,6 +7429,8 @@ module Prism
6979
7429
  # foo, = bar
6980
7430
  # ^
6981
7431
  # ```
7432
+ #
7433
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIHsgfGJhcix8IH0KCmZvbyBpbiBbYmFyLF0KCmZvciBmb28sIGluIGJhciBkbyBlbmQKCmZvbywgPSBiYXIK)
6982
7434
  class ImplicitRestNode < Node
6983
7435
  # Initialize a new ImplicitRestNode node.
6984
7436
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -7032,6 +7484,8 @@ module Prism
7032
7484
  # case a; in b then c end
7033
7485
  # ^^^^^^^^^^^
7034
7486
  # ```
7487
+ #
7488
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSBhOyBpbiBiIHRoZW4gYyBlbmQK)
7035
7489
  class InNode < Node
7036
7490
  # Initialize a new InNode node.
7037
7491
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, pattern: Node, statements: ::T.nilable(StatementsNode), in_keyword_loc: Location, then_keyword_loc: ::T.nilable(Location)).void }
@@ -7119,6 +7573,8 @@ module Prism
7119
7573
  # foo.bar[baz] &&= value
7120
7574
  # ^^^^^^^^^^^^^^^^^^^^^^
7121
7575
  # ```
7576
+ #
7577
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcltiYXpdICYmPSB2YWx1ZQo)
7122
7578
  class IndexAndWriteNode < Node
7123
7579
  # Initialize a new IndexAndWriteNode node.
7124
7580
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: ::T.nilable(Node), call_operator_loc: ::T.nilable(Location), opening_loc: Location, arguments: ::T.nilable(ArgumentsNode), closing_loc: Location, block: ::T.nilable(BlockArgumentNode), operator_loc: Location, value: Node).void }
@@ -7256,6 +7712,8 @@ module Prism
7256
7712
  # foo.bar[baz] += value
7257
7713
  # ^^^^^^^^^^^^^^^^^^^^^
7258
7714
  # ```
7715
+ #
7716
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcltiYXpdICs9IHZhbHVlCg)
7259
7717
  class IndexOperatorWriteNode < Node
7260
7718
  # Initialize a new IndexOperatorWriteNode node.
7261
7719
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: ::T.nilable(Node), call_operator_loc: ::T.nilable(Location), opening_loc: Location, arguments: ::T.nilable(ArgumentsNode), closing_loc: Location, block: ::T.nilable(BlockArgumentNode), binary_operator: Symbol, binary_operator_loc: Location, value: Node).void }
@@ -7393,6 +7851,8 @@ module Prism
7393
7851
  # foo.bar[baz] ||= value
7394
7852
  # ^^^^^^^^^^^^^^^^^^^^^^
7395
7853
  # ```
7854
+ #
7855
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLmJhcltiYXpdIHx8PSB2YWx1ZQo)
7396
7856
  class IndexOrWriteNode < Node
7397
7857
  # Initialize a new IndexOrWriteNode node.
7398
7858
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: ::T.nilable(Node), call_operator_loc: ::T.nilable(Location), opening_loc: Location, arguments: ::T.nilable(ArgumentsNode), closing_loc: Location, block: ::T.nilable(BlockArgumentNode), operator_loc: Location, value: Node).void }
@@ -7538,6 +7998,8 @@ module Prism
7538
7998
  # for foo[bar] in baz do end
7539
7999
  # ^^^^^^^^
7540
8000
  # ```
8001
+ #
8002
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vW2Jhcl0sID0gMQoKYmVnaW4KcmVzY3VlID0-IGZvb1tiYXJdCgplbmQKCmZvciBmb29bYmFyXSBpbiBiYXogZG8gZW5kCg)
7541
8003
  class IndexTargetNode < Node
7542
8004
  # Initialize a new IndexTargetNode node.
7543
8005
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, receiver: Node, opening_loc: Location, arguments: ::T.nilable(ArgumentsNode), closing_loc: Location, block: ::T.nilable(BlockArgumentNode)).void }
@@ -7645,6 +8107,8 @@ module Prism
7645
8107
  # @target &&= value
7646
8108
  # ^^^^^^^^^^^^^^^^^
7647
8109
  # ```
8110
+ #
8111
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHRhcmdldCAmJj0gdmFsdWUK)
7648
8112
  class InstanceVariableAndWriteNode < Node
7649
8113
  # Initialize a new InstanceVariableAndWriteNode node.
7650
8114
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -7728,6 +8192,8 @@ module Prism
7728
8192
  # @target += value
7729
8193
  # ^^^^^^^^^^^^^^^^
7730
8194
  # ```
8195
+ #
8196
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHRhcmdldCArPSB2YWx1ZQo)
7731
8197
  class InstanceVariableOperatorWriteNode < Node
7732
8198
  # Initialize a new InstanceVariableOperatorWriteNode node.
7733
8199
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Node, binary_operator: Symbol).void }
@@ -7811,6 +8277,8 @@ module Prism
7811
8277
  # @target ||= value
7812
8278
  # ^^^^^^^^^^^^^^^^^
7813
8279
  # ```
8280
+ #
8281
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHRhcmdldCB8fD0gdmFsdWUK)
7814
8282
  class InstanceVariableOrWriteNode < Node
7815
8283
  # Initialize a new InstanceVariableOrWriteNode node.
7816
8284
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -7894,6 +8362,8 @@ module Prism
7894
8362
  # @foo
7895
8363
  # ^^^^
7896
8364
  # ```
8365
+ #
8366
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbwo)
7897
8367
  class InstanceVariableReadNode < Node
7898
8368
  # Initialize a new InstanceVariableReadNode node.
7899
8369
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -7944,6 +8414,8 @@ module Prism
7944
8414
  #
7945
8415
  # @_test # name `:@_test`
7946
8416
  # ```
8417
+ #
8418
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHggICAgICMgbmFtZSBgOkB4YAoKQF90ZXN0ICMgbmFtZSBgOkBfdGVzdGAK)
7947
8419
  sig { returns(Symbol) }
7948
8420
  def name; end
7949
8421
 
@@ -7957,6 +8429,8 @@ module Prism
7957
8429
  # @foo, @bar = baz
7958
8430
  # ^^^^ ^^^^
7959
8431
  # ```
8432
+ #
8433
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbywgQGJhciA9IGJhego)
7960
8434
  class InstanceVariableTargetNode < Node
7961
8435
  # Initialize a new InstanceVariableTargetNode node.
7962
8436
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -8014,6 +8488,8 @@ module Prism
8014
8488
  # @foo = 1
8015
8489
  # ^^^^^^^^
8016
8490
  # ```
8491
+ #
8492
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbyA9IDEK)
8017
8493
  class InstanceVariableWriteNode < Node
8018
8494
  # Initialize a new InstanceVariableWriteNode node.
8019
8495
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, value: Node, operator_loc: Location).void }
@@ -8064,6 +8540,8 @@ module Prism
8064
8540
  #
8065
8541
  # @_foo = "bar" # name `@_foo`
8066
8542
  # ```
8543
+ #
8544
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHggPSA6eSAgICAgICAjIG5hbWUgYDpAeGAKCkBfZm9vID0gImJhciIgIyBuYW1lIGBAX2Zvb2AK)
8067
8545
  sig { returns(Symbol) }
8068
8546
  def name; end
8069
8547
 
@@ -8073,6 +8551,8 @@ module Prism
8073
8551
  # @_x = 1
8074
8552
  # ^^^
8075
8553
  # ```
8554
+ #
8555
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QF94ID0gMQo)
8076
8556
  sig { returns(Location) }
8077
8557
  def name_loc; end
8078
8558
 
@@ -8090,6 +8570,8 @@ module Prism
8090
8570
  # @_x = 1234
8091
8571
  # ^^^^
8092
8572
  # ```
8573
+ #
8574
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QGZvbyA9IDpiYXIKCkBfeCA9IDEyMzQK)
8093
8575
  sig { returns(Node) }
8094
8576
  def value; end
8095
8577
 
@@ -8099,6 +8581,8 @@ module Prism
8099
8581
  # @x = y
8100
8582
  # ^
8101
8583
  # ```
8584
+ #
8585
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QHggPSB5Cg)
8102
8586
  sig { returns(Location) }
8103
8587
  def operator_loc; end
8104
8588
 
@@ -8121,6 +8605,8 @@ module Prism
8121
8605
  # 1
8122
8606
  # ^
8123
8607
  # ```
8608
+ #
8609
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MQo)
8124
8610
  class IntegerNode < Node
8125
8611
  # Initialize a new IntegerNode node.
8126
8612
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, value: Integer).void }
@@ -8194,6 +8680,8 @@ module Prism
8194
8680
  # if /foo #{bar} baz/ then end
8195
8681
  # ^^^^^^^^^^^^^^^^
8196
8682
  # ```
8683
+ #
8684
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgL2ZvbyAje2Jhcn0gYmF6LyB0aGVuIGVuZAo)
8197
8685
  class InterpolatedMatchLastLineNode < Node
8198
8686
  # Initialize a new InterpolatedMatchLastLineNode node.
8199
8687
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, parts: T::Array[::T.any(StringNode, EmbeddedStatementsNode, EmbeddedVariableNode)], closing_loc: Location).void }
@@ -8321,6 +8809,8 @@ module Prism
8321
8809
  # /foo #{bar} baz/
8322
8810
  # ^^^^^^^^^^^^^^^^
8323
8811
  # ```
8812
+ #
8813
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#L2ZvbyAje2Jhcn0gYmF6Lwo)
8324
8814
  class InterpolatedRegularExpressionNode < Node
8325
8815
  # Initialize a new InterpolatedRegularExpressionNode node.
8326
8816
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, parts: T::Array[::T.any(StringNode, EmbeddedStatementsNode, EmbeddedVariableNode)], closing_loc: Location).void }
@@ -8448,6 +8938,8 @@ module Prism
8448
8938
  # "foo #{bar} baz"
8449
8939
  # ^^^^^^^^^^^^^^^^
8450
8940
  # ```
8941
+ #
8942
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyAje2Jhcn0gYmF6Igo)
8451
8943
  class InterpolatedStringNode < Node
8452
8944
  # Initialize a new InterpolatedStringNode node.
8453
8945
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: ::T.nilable(Location), parts: T::Array[::T.any(StringNode, EmbeddedStatementsNode, EmbeddedVariableNode, InterpolatedStringNode)], closing_loc: ::T.nilable(Location)).void }
@@ -8538,6 +9030,8 @@ module Prism
8538
9030
  # ```rb
8539
9031
  # ^^^^^^^^^^^^^^^^^
8540
9032
  # ```
9033
+ #
9034
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OiJmb28gI3tiYXJ9IGJheiIK)
8541
9035
  class InterpolatedSymbolNode < Node
8542
9036
  # Initialize a new InterpolatedSymbolNode node.
8543
9037
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: ::T.nilable(Location), parts: T::Array[::T.any(StringNode, EmbeddedStatementsNode, EmbeddedVariableNode)], closing_loc: ::T.nilable(Location)).void }
@@ -8621,6 +9115,8 @@ module Prism
8621
9115
  # `foo #{bar} baz`
8622
9116
  # ^^^^^^^^^^^^^^^^
8623
9117
  # ```
9118
+ #
9119
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YGZvbyAje2Jhcn0gYmF6YAo)
8624
9120
  class InterpolatedXStringNode < Node
8625
9121
  # Initialize a new InterpolatedXStringNode node.
8626
9122
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, parts: T::Array[::T.any(StringNode, EmbeddedStatementsNode, EmbeddedVariableNode)], closing_loc: Location).void }
@@ -8704,6 +9200,8 @@ module Prism
8704
9200
  # -> { it }
8705
9201
  # ^^
8706
9202
  # ```
9203
+ #
9204
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4geyBpdCB9Cg)
8707
9205
  class ItLocalVariableReadNode < Node
8708
9206
  # Initialize a new ItLocalVariableReadNode node.
8709
9207
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -8757,6 +9255,8 @@ module Prism
8757
9255
  # -> { it + it }
8758
9256
  # ^^^^^^^^^^^^^^
8759
9257
  # ```
9258
+ #
9259
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4geyBpdCArIGl0IH0K)
8760
9260
  class ItParametersNode < Node
8761
9261
  # Initialize a new ItParametersNode node.
8762
9262
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -8810,6 +9310,8 @@ module Prism
8810
9310
  # foo(a: b)
8811
9311
  # ^^^^
8812
9312
  # ```
9313
+ #
9314
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vKGE6IGIpCg)
8813
9315
  class KeywordHashNode < Node
8814
9316
  # Initialize a new KeywordHashNode node.
8815
9317
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, elements: T::Array[::T.any(AssocNode, AssocSplatNode)]).void }
@@ -8872,6 +9374,8 @@ module Prism
8872
9374
  # ^^^
8873
9375
  # end
8874
9376
  # ```
9377
+ #
9378
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoKipiKQoKZW5kCg)
8875
9379
  class KeywordRestParameterNode < Node
8876
9380
  # Initialize a new KeywordRestParameterNode node.
8877
9381
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: ::T.nilable(Symbol), name_loc: ::T.nilable(Location), operator_loc: Location).void }
@@ -8955,6 +9459,8 @@ module Prism
8955
9459
  # ->(value) { value * 2 }
8956
9460
  # ^^^^^^^^^^^^^^^^^^^^^^^
8957
9461
  # ```
9462
+ #
9463
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4odmFsdWUpIHsgdmFsdWUgKiAyIH0K)
8958
9464
  class LambdaNode < Node
8959
9465
  # Initialize a new LambdaNode node.
8960
9466
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, locals: T::Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: ::T.nilable(::T.any(BlockParametersNode, NumberedParametersNode, ItParametersNode)), body: ::T.nilable(::T.any(StatementsNode, BeginNode))).void }
@@ -9059,6 +9565,8 @@ module Prism
9059
9565
  # target &&= value
9060
9566
  # ^^^^^^^^^^^^^^^^
9061
9567
  # ```
9568
+ #
9569
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dGFyZ2V0ICYmPSB2YWx1ZQo)
9062
9570
  class LocalVariableAndWriteNode < Node
9063
9571
  # Initialize a new LocalVariableAndWriteNode node.
9064
9572
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name_loc: Location, operator_loc: Location, value: Node, name: Symbol, depth: Integer).void }
@@ -9146,6 +9654,8 @@ module Prism
9146
9654
  # target += value
9147
9655
  # ^^^^^^^^^^^^^^^
9148
9656
  # ```
9657
+ #
9658
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dGFyZ2V0ICs9IHZhbHVlCg)
9149
9659
  class LocalVariableOperatorWriteNode < Node
9150
9660
  # Initialize a new LocalVariableOperatorWriteNode node.
9151
9661
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name_loc: Location, binary_operator_loc: Location, value: Node, name: Symbol, binary_operator: Symbol, depth: Integer).void }
@@ -9233,6 +9743,8 @@ module Prism
9233
9743
  # target ||= value
9234
9744
  # ^^^^^^^^^^^^^^^^
9235
9745
  # ```
9746
+ #
9747
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dGFyZ2V0IHx8PSB2YWx1ZQo)
9236
9748
  class LocalVariableOrWriteNode < Node
9237
9749
  # Initialize a new LocalVariableOrWriteNode node.
9238
9750
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name_loc: Location, operator_loc: Location, value: Node, name: Symbol, depth: Integer).void }
@@ -9320,6 +9832,8 @@ module Prism
9320
9832
  # foo
9321
9833
  # ^^^
9322
9834
  # ```
9835
+ #
9836
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vCg)
9323
9837
  class LocalVariableReadNode < Node
9324
9838
  # Initialize a new LocalVariableReadNode node.
9325
9839
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, depth: Integer).void }
@@ -9371,11 +9885,15 @@ module Prism
9371
9885
  # _Test # name `:_Test`
9372
9886
  #
9373
9887
  # ```
9888
+ #
9889
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eCAgICAgICMgbmFtZSBgOnhgCgpfVGVzdCAgIyBuYW1lIGA6X1Rlc3RgCg)
9374
9890
  # Note that this can also be an underscore followed by a number for the default block parameters.
9375
9891
  #
9376
9892
  # ```rb
9377
9893
  # _1 # name `:_1`
9378
9894
  # ```
9895
+ #
9896
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#XzEgICAgICMgbmFtZSBgOl8xYAo)
9379
9897
  sig { returns(Symbol) }
9380
9898
  def name; end
9381
9899
 
@@ -9387,6 +9905,8 @@ module Prism
9387
9905
  # bar = 2; tap { bar } # depth 1
9388
9906
  #
9389
9907
  # ```
9908
+ #
9909
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gMTsgZm9vICMgZGVwdGggMAoKYmFyID0gMjsgdGFwIHsgYmFyIH0gIyBkZXB0aCAxCg)
9390
9910
  # The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see [the Prism documentation](https://github.com/ruby/prism/blob/main/docs/local_variable_depth.md).
9391
9911
  sig { returns(Integer) }
9392
9912
  def depth; end
@@ -9404,6 +9924,8 @@ module Prism
9404
9924
  # foo => baz
9405
9925
  # ^^^
9406
9926
  # ```
9927
+ #
9928
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vLCBiYXIgPSBiYXoKCmZvbyA9PiBiYXoK)
9407
9929
  class LocalVariableTargetNode < Node
9408
9930
  # Initialize a new LocalVariableTargetNode node.
9409
9931
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, depth: Integer).void }
@@ -9465,6 +9987,8 @@ module Prism
9465
9987
  # foo = 1
9466
9988
  # ^^^^^^^
9467
9989
  # ```
9990
+ #
9991
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gMQo)
9468
9992
  class LocalVariableWriteNode < Node
9469
9993
  # Initialize a new LocalVariableWriteNode node.
9470
9994
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, depth: Integer, name_loc: Location, value: Node, operator_loc: Location).void }
@@ -9515,6 +10039,8 @@ module Prism
9515
10039
  #
9516
10040
  # abc = 123 # name `:abc`
9517
10041
  # ```
10042
+ #
10043
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gOmJhciAjIG5hbWUgYDpmb29gCgphYmMgPSAxMjMgICMgbmFtZSBgOmFiY2AK)
9518
10044
  sig { returns(Symbol) }
9519
10045
  def name; end
9520
10046
 
@@ -9526,6 +10052,8 @@ module Prism
9526
10052
  # tap { foo = 1 } # depth 1
9527
10053
  #
9528
10054
  # ```
10055
+ #
10056
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gMSAgICAgICAgICMgZGVwdGggMAoKdGFwIHsgZm9vID0gMSB9ICMgZGVwdGggMQo)
9529
10057
  # The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see [the Prism documentation](https://github.com/ruby/prism/blob/main/docs/local_variable_depth.md).
9530
10058
  sig { returns(Integer) }
9531
10059
  def depth; end
@@ -9536,6 +10064,8 @@ module Prism
9536
10064
  # foo = :bar
9537
10065
  # ^^^
9538
10066
  # ```
10067
+ #
10068
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gOmJhcgo)
9539
10069
  sig { returns(Location) }
9540
10070
  def name_loc; end
9541
10071
 
@@ -9554,11 +10084,15 @@ module Prism
9554
10084
  # ^^^^
9555
10085
  #
9556
10086
  # ```
10087
+ #
10088
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gOmJhcgoKYWJjID0gMTIzNAo)
9557
10089
  # Note that since the name of a local variable is known before the value is parsed, it is valid for a local variable to appear within the value of its own write.
9558
10090
  #
9559
10091
  # ```rb
9560
10092
  # foo = foo
9561
10093
  # ```
10094
+ #
10095
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0gZm9vCg)
9562
10096
  sig { returns(Node) }
9563
10097
  def value; end
9564
10098
 
@@ -9568,6 +10102,8 @@ module Prism
9568
10102
  # x = :y
9569
10103
  # ^
9570
10104
  # ```
10105
+ #
10106
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eCA9IDp5Cg)
9571
10107
  sig { returns(Location) }
9572
10108
  def operator_loc; end
9573
10109
 
@@ -9590,6 +10126,8 @@ module Prism
9590
10126
  # if /foo/i then end
9591
10127
  # ^^^^^^
9592
10128
  # ```
10129
+ #
10130
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#aWYgL2Zvby9pIHRoZW4gZW5kCg)
9593
10131
  class MatchLastLineNode < Node
9594
10132
  # Initialize a new MatchLastLineNode node.
9595
10133
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String).void }
@@ -9730,6 +10268,8 @@ module Prism
9730
10268
  # foo in bar
9731
10269
  # ^^^^^^^^^^
9732
10270
  # ```
10271
+ #
10272
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIGJhcgo)
9733
10273
  class MatchPredicateNode < Node
9734
10274
  # Initialize a new MatchPredicateNode node.
9735
10275
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, value: Node, pattern: Node, keyword_loc: Location).void }
@@ -9804,6 +10344,8 @@ module Prism
9804
10344
  # foo => bar
9805
10345
  # ^^^^^^^^^^
9806
10346
  # ```
10347
+ #
10348
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
9807
10349
  class MatchRequiredNode < Node
9808
10350
  # Initialize a new MatchRequiredNode node.
9809
10351
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, value: Node, pattern: Node, operator_loc: Location).void }
@@ -9853,6 +10395,8 @@ module Prism
9853
10395
  # foo => bar
9854
10396
  # ^^^
9855
10397
  # ```
10398
+ #
10399
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
9856
10400
  sig { returns(Node) }
9857
10401
  def value; end
9858
10402
 
@@ -9865,6 +10409,8 @@ module Prism
9865
10409
  # ^
9866
10410
  #
9867
10411
  # ```
10412
+ #
10413
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGEgIyBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gd3JpdGluZyBgYSA9IGZvb2AK)
9868
10414
  # Using an explicit `Array` or combining expressions with `,` will result in a `ArrayPatternNode`. This can be preceded by a constant.
9869
10415
  #
9870
10416
  # ```rb
@@ -9878,6 +10424,8 @@ module Prism
9878
10424
  # ^^^^^^^^^
9879
10425
  #
9880
10426
  # ```
10427
+ #
10428
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IFthXQoKZm9vID0-IGEsIGIKCmZvbyA9PiBCYXJbYSwgYl0K)
9881
10429
  # If the array pattern contains at least two wildcard matches, a `FindPatternNode` is created instead.
9882
10430
  #
9883
10431
  # ```rb
@@ -9885,6 +10433,8 @@ module Prism
9885
10433
  # ^^^^^
9886
10434
  #
9887
10435
  # ```
10436
+ #
10437
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-ICosIDEsICphCg)
9888
10438
  # Using an explicit `Hash` or a constant with square brackets and hash keys in the square brackets will result in a `HashPatternNode`.
9889
10439
  #
9890
10440
  # ```rb
@@ -9895,6 +10445,8 @@ module Prism
9895
10445
  # foo => Bar[**]
9896
10446
  #
9897
10447
  # ```
10448
+ #
10449
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IHsgYTogMSwgYjogfQoKZm9vID0-IEJhclthOiAxLCBiOl0KCmZvbyA9PiBCYXJbKipdCg)
9898
10450
  # To use any variable that needs run time evaluation, pinning is required. This results in a `PinnedVariableNode`
9899
10451
  #
9900
10452
  # ```rb
@@ -9902,17 +10454,23 @@ module Prism
9902
10454
  # ^^
9903
10455
  #
9904
10456
  # ```
10457
+ #
10458
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IF5hCg)
9905
10459
  # Similar, any expression can be used with pinning. This results in a `PinnedExpressionNode`.
9906
10460
  #
9907
10461
  # ```rb
9908
10462
  # foo => ^(a + 1)
9909
10463
  #
9910
10464
  # ```
10465
+ #
10466
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IF4oYSArIDEpCg)
9911
10467
  # Anything else will result in the regular node for that expression, for example a `ConstantReadNode`.
9912
10468
  #
9913
10469
  # ```rb
9914
10470
  # foo => CONST
9915
10471
  # ```
10472
+ #
10473
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IENPTlNUCg)
9916
10474
  sig { returns(Node) }
9917
10475
  def pattern; end
9918
10476
 
@@ -9922,6 +10480,8 @@ module Prism
9922
10480
  # foo => bar
9923
10481
  # ^^
9924
10482
  # ```
10483
+ #
10484
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vID0-IGJhcgo)
9925
10485
  sig { returns(Location) }
9926
10486
  def operator_loc; end
9927
10487
 
@@ -9944,6 +10504,8 @@ module Prism
9944
10504
  # /(?<foo>bar)/ =~ baz
9945
10505
  # ^^^^^^^^^^^^^^^^^^^^
9946
10506
  # ```
10507
+ #
10508
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Lyg_PGZvbz5iYXIpLyA9fiBiYXoK)
9947
10509
  class MatchWriteNode < Node
9948
10510
  # Initialize a new MatchWriteNode node.
9949
10511
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, call: CallNode, targets: T::Array[LocalVariableTargetNode]).void }
@@ -10005,6 +10567,8 @@ module Prism
10005
10567
  # module Foo end
10006
10568
  # ^^^^^^^^^^^^^^
10007
10569
  # ```
10570
+ #
10571
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bW9kdWxlIEZvbyBlbmQK)
10008
10572
  class ModuleNode < Node
10009
10573
  # Initialize a new ModuleNode node.
10010
10574
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, locals: T::Array[Symbol], module_keyword_loc: Location, constant_path: ::T.any(ConstantReadNode, ConstantPathNode), body: ::T.nilable(::T.any(StatementsNode, BeginNode)), end_keyword_loc: Location, name: Symbol).void }
@@ -10101,12 +10665,16 @@ module Prism
10101
10665
  # ^^^^^^
10102
10666
  #
10103
10667
  # ```
10668
+ #
10669
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMwo)
10104
10670
  # This can be a part of `MultiWriteNode` as above, or the target of a `for` loop
10105
10671
  #
10106
10672
  # ```rb
10107
10673
  # for a, b in [[1, 2], [3, 4]]
10108
10674
  # ^^^^
10109
10675
  # ```
10676
+ #
10677
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9yIGEsIGIgaW4gW1sxLCAyXSwgWzMsIDRdXQo)
10110
10678
  class MultiTargetNode < Node
10111
10679
  # Initialize a new MultiTargetNode node.
10112
10680
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, lefts: T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode, RequiredParameterNode)], rest: ::T.nilable(::T.any(ImplicitRestNode, SplatNode)), rights: T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode, RequiredParameterNode)], lparen_loc: ::T.nilable(Location), rparen_loc: ::T.nilable(Location)).void }
@@ -10157,12 +10725,16 @@ module Prism
10157
10725
  # ^^^^
10158
10726
  #
10159
10727
  # ```
10728
+ #
10729
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMsICopID0gMSwgMiwgMywgNCwgNQo)
10160
10730
  # The splat node can be absent, in that case all target expressions are in the left field.
10161
10731
  #
10162
10732
  # ```rb
10163
10733
  # a, (b, c) = 1, 2, 3, 4, 5
10164
10734
  # ^^^^
10165
10735
  # ```
10736
+ #
10737
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMywgNCwgNQo)
10166
10738
  sig { returns(T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode, RequiredParameterNode)]) }
10167
10739
  def lefts; end
10168
10740
 
@@ -10173,6 +10745,8 @@ module Prism
10173
10745
  # ^^
10174
10746
  #
10175
10747
  # ```
10748
+ #
10749
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsICpjKSA9IDEsIDIsIDMsIDQK)
10176
10750
  # The variable can be empty, this results in a `SplatNode` with a `nil` expression field.
10177
10751
  #
10178
10752
  # ```rb
@@ -10180,12 +10754,16 @@ module Prism
10180
10754
  # ^
10181
10755
  #
10182
10756
  # ```
10757
+ #
10758
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsICopID0gMSwgMiwgMywgNAo)
10183
10759
  # If the `*` is omitted, this field will contain an `ImplicitRestNode`
10184
10760
  #
10185
10761
  # ```rb
10186
10762
  # a, (b,) = 1, 2, 3, 4
10187
10763
  # ^
10188
10764
  # ```
10765
+ #
10766
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsKSA9IDEsIDIsIDMsIDQK)
10189
10767
  sig { returns(::T.nilable(::T.any(ImplicitRestNode, SplatNode))) }
10190
10768
  def rest; end
10191
10769
 
@@ -10195,6 +10773,8 @@ module Prism
10195
10773
  # a, (*, b, c) = 1, 2, 3, 4, 5
10196
10774
  # ^^^^
10197
10775
  # ```
10776
+ #
10777
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKCosIGIsIGMpID0gMSwgMiwgMywgNCwgNQo)
10198
10778
  sig { returns(T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode, RequiredParameterNode)]) }
10199
10779
  def rights; end
10200
10780
 
@@ -10204,6 +10784,8 @@ module Prism
10204
10784
  # a, (b, c) = 1, 2, 3
10205
10785
  # ^
10206
10786
  # ```
10787
+ #
10788
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMwo)
10207
10789
  sig { returns(::T.nilable(Location)) }
10208
10790
  def lparen_loc; end
10209
10791
 
@@ -10218,6 +10800,8 @@ module Prism
10218
10800
  # a, (b, c) = 1, 2, 3
10219
10801
  # ^
10220
10802
  # ```
10803
+ #
10804
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKGIsIGMpID0gMSwgMiwgMwo)
10221
10805
  sig { returns(::T.nilable(Location)) }
10222
10806
  def rparen_loc; end
10223
10807
 
@@ -10244,6 +10828,8 @@ module Prism
10244
10828
  # a, b, c = 1, 2, 3
10245
10829
  # ^^^^^^^^^^^^^^^^^
10246
10830
  # ```
10831
+ #
10832
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMK)
10247
10833
  class MultiWriteNode < Node
10248
10834
  # Initialize a new MultiWriteNode node.
10249
10835
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, lefts: T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode)], rest: ::T.nilable(::T.any(ImplicitRestNode, SplatNode)), rights: T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode)], lparen_loc: ::T.nilable(Location), rparen_loc: ::T.nilable(Location), operator_loc: Location, value: Node).void }
@@ -10294,12 +10880,16 @@ module Prism
10294
10880
  # ^^^^
10295
10881
  #
10296
10882
  # ```
10883
+ #
10884
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgKiA9IDEsIDIsIDMsIDQsIDUK)
10297
10885
  # The splat node can be absent, in that case all target expressions are in the left field.
10298
10886
  #
10299
10887
  # ```rb
10300
10888
  # a, b, c = 1, 2, 3, 4, 5
10301
10889
  # ^^^^^^^
10302
10890
  # ```
10891
+ #
10892
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMsIDQsIDUK)
10303
10893
  sig { returns(T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode)]) }
10304
10894
  def lefts; end
10305
10895
 
@@ -10310,6 +10900,8 @@ module Prism
10310
10900
  # ^^
10311
10901
  #
10312
10902
  # ```
10903
+ #
10904
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgKmMgPSAxLCAyLCAzLCA0Cg)
10313
10905
  # The variable can be empty, this results in a `SplatNode` with a `nil` expression field.
10314
10906
  #
10315
10907
  # ```rb
@@ -10317,12 +10909,16 @@ module Prism
10317
10909
  # ^
10318
10910
  #
10319
10911
  # ```
10912
+ #
10913
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgKiA9IDEsIDIsIDMsIDQK)
10320
10914
  # If the `*` is omitted, this field will contain an `ImplicitRestNode`
10321
10915
  #
10322
10916
  # ```rb
10323
10917
  # a, b, = 1, 2, 3, 4
10324
10918
  # ^
10325
10919
  # ```
10920
+ #
10921
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgPSAxLCAyLCAzLCA0Cg)
10326
10922
  sig { returns(::T.nilable(::T.any(ImplicitRestNode, SplatNode))) }
10327
10923
  def rest; end
10328
10924
 
@@ -10332,6 +10928,8 @@ module Prism
10332
10928
  # a, *, b, c = 1, 2, 3, 4, 5
10333
10929
  # ^^^^
10334
10930
  # ```
10931
+ #
10932
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgKiwgYiwgYyA9IDEsIDIsIDMsIDQsIDUK)
10335
10933
  sig { returns(T::Array[::T.any(LocalVariableTargetNode, InstanceVariableTargetNode, ClassVariableTargetNode, GlobalVariableTargetNode, ConstantTargetNode, ConstantPathTargetNode, CallTargetNode, IndexTargetNode, MultiTargetNode)]) }
10336
10934
  def rights; end
10337
10935
 
@@ -10341,6 +10939,8 @@ module Prism
10341
10939
  # (a, b, c) = 1, 2, 3
10342
10940
  # ^
10343
10941
  # ```
10942
+ #
10943
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#KGEsIGIsIGMpID0gMSwgMiwgMwo)
10344
10944
  sig { returns(::T.nilable(Location)) }
10345
10945
  def lparen_loc; end
10346
10946
 
@@ -10355,6 +10955,8 @@ module Prism
10355
10955
  # (a, b, c) = 1, 2, 3
10356
10956
  # ^
10357
10957
  # ```
10958
+ #
10959
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#KGEsIGIsIGMpID0gMSwgMiwgMwo)
10358
10960
  sig { returns(::T.nilable(Location)) }
10359
10961
  def rparen_loc; end
10360
10962
 
@@ -10369,6 +10971,8 @@ module Prism
10369
10971
  # a, b, c = 1, 2, 3
10370
10972
  # ^
10371
10973
  # ```
10974
+ #
10975
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMK)
10372
10976
  sig { returns(Location) }
10373
10977
  def operator_loc; end
10374
10978
 
@@ -10383,6 +10987,8 @@ module Prism
10383
10987
  # a, b, c = 1, 2, 3
10384
10988
  # ^^^^^^^
10385
10989
  # ```
10990
+ #
10991
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YSwgYiwgYyA9IDEsIDIsIDMK)
10386
10992
  sig { returns(Node) }
10387
10993
  def value; end
10388
10994
 
@@ -10408,6 +11014,8 @@ module Prism
10408
11014
  # next 1
10409
11015
  # ^^^^^^
10410
11016
  # ```
11017
+ #
11018
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bmV4dCAxCg)
10411
11019
  class NextNode < Node
10412
11020
  # Initialize a new NextNode node.
10413
11021
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, arguments: ::T.nilable(ArgumentsNode), keyword_loc: Location).void }
@@ -10478,6 +11086,8 @@ module Prism
10478
11086
  # nil
10479
11087
  # ^^^
10480
11088
  # ```
11089
+ #
11090
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bmlsCg)
10481
11091
  class NilNode < Node
10482
11092
  # Initialize a new NilNode node.
10483
11093
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -10532,6 +11142,8 @@ module Prism
10532
11142
  # ^^^^
10533
11143
  # end
10534
11144
  # ```
11145
+ #
11146
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoJm5pbCkKCmVuZAo)
10535
11147
  class NoBlockParameterNode < Node
10536
11148
  # Initialize a new NoBlockParameterNode node.
10537
11149
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, operator_loc: Location, keyword_loc: Location).void }
@@ -10612,6 +11224,8 @@ module Prism
10612
11224
  # ^^^^^
10613
11225
  # end
10614
11226
  # ```
11227
+ #
11228
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoKipuaWwpCgplbmQK)
10615
11229
  class NoKeywordsParameterNode < Node
10616
11230
  # Initialize a new NoKeywordsParameterNode node.
10617
11231
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, operator_loc: Location, keyword_loc: Location).void }
@@ -10691,6 +11305,8 @@ module Prism
10691
11305
  # -> { _1 + _2 }
10692
11306
  # ^^^^^^^^^^^^^^
10693
11307
  # ```
11308
+ #
11309
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#LT4geyBfMSArIF8yIH0K)
10694
11310
  class NumberedParametersNode < Node
10695
11311
  # Initialize a new NumberedParametersNode node.
10696
11312
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, maximum: Integer).void }
@@ -10748,6 +11364,8 @@ module Prism
10748
11364
  # $1
10749
11365
  # ^^
10750
11366
  # ```
11367
+ #
11368
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JDEK)
10751
11369
  class NumberedReferenceReadNode < Node
10752
11370
  # Initialize a new NumberedReferenceReadNode node.
10753
11371
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, number: Integer).void }
@@ -10800,6 +11418,8 @@ module Prism
10800
11418
  #
10801
11419
  # $4294967296 # number `0`
10802
11420
  # ```
11421
+ #
11422
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#JDEgICAgICAgICAgIyBudW1iZXIgYDFgCgokNTQzMiAgICAgICAjIG51bWJlciBgNTQzMmAKCiQ0Mjk0OTY3Mjk2ICMgbnVtYmVyIGAwYAo)
10803
11423
  sig { returns(Integer) }
10804
11424
  def number; end
10805
11425
 
@@ -10814,6 +11434,8 @@ module Prism
10814
11434
  # ^^^^
10815
11435
  # end
10816
11436
  # ```
11437
+ #
11438
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYjogMSkKCmVuZAo)
10817
11439
  class OptionalKeywordParameterNode < Node
10818
11440
  # Initialize a new OptionalKeywordParameterNode node.
10819
11441
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, value: Node).void }
@@ -10889,6 +11511,8 @@ module Prism
10889
11511
  # ^^^^^
10890
11512
  # end
10891
11513
  # ```
11514
+ #
11515
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYiA9IDEpCgplbmQK)
10892
11516
  class OptionalParameterNode < Node
10893
11517
  # Initialize a new OptionalParameterNode node.
10894
11518
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node).void }
@@ -10976,6 +11600,8 @@ module Prism
10976
11600
  # left or right
10977
11601
  # ^^^^^^^^^^^^^
10978
11602
  # ```
11603
+ #
11604
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBvciByaWdodAo)
10979
11605
  class OrNode < Node
10980
11606
  # Initialize a new OrNode node.
10981
11607
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, left: Node, right: Node, operator_loc: Location).void }
@@ -11028,6 +11654,8 @@ module Prism
11028
11654
  # 1 || 2
11029
11655
  # ^
11030
11656
  # ```
11657
+ #
11658
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBvciByaWdodAoKMSB8fCAyCg)
11031
11659
  sig { returns(Node) }
11032
11660
  def left; end
11033
11661
 
@@ -11040,6 +11668,8 @@ module Prism
11040
11668
  # 1 or 2
11041
11669
  # ^
11042
11670
  # ```
11671
+ #
11672
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCB8fCByaWdodAoKMSBvciAyCg)
11043
11673
  sig { returns(Node) }
11044
11674
  def right; end
11045
11675
 
@@ -11049,6 +11679,8 @@ module Prism
11049
11679
  # left or right
11050
11680
  # ^^
11051
11681
  # ```
11682
+ #
11683
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#bGVmdCBvciByaWdodAo)
11052
11684
  sig { returns(Location) }
11053
11685
  def operator_loc; end
11054
11686
 
@@ -11072,6 +11704,8 @@ module Prism
11072
11704
  # ^^^^^^^
11073
11705
  # end
11074
11706
  # ```
11707
+ #
11708
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYiwgYywgZCkKCmVuZAo)
11075
11709
  class ParametersNode < Node
11076
11710
  # Initialize a new ParametersNode node.
11077
11711
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, requireds: T::Array[::T.any(RequiredParameterNode, MultiTargetNode)], optionals: T::Array[OptionalParameterNode], rest: ::T.nilable(::T.any(RestParameterNode, ImplicitRestNode)), posts: T::Array[::T.any(RequiredParameterNode, MultiTargetNode)], keywords: T::Array[::T.any(RequiredKeywordParameterNode, OptionalKeywordParameterNode)], keyword_rest: ::T.nilable(::T.any(KeywordRestParameterNode, ForwardingParameterNode, NoKeywordsParameterNode)), block: ::T.nilable(::T.any(BlockParameterNode, NoBlockParameterNode))).void }
@@ -11153,6 +11787,8 @@ module Prism
11153
11787
  # (10 + 34)
11154
11788
  # ^^^^^^^^^
11155
11789
  # ```
11790
+ #
11791
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#KDEwICsgMzQpCg)
11156
11792
  class ParenthesesNode < Node
11157
11793
  # Initialize a new ParenthesesNode node.
11158
11794
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, body: ::T.nilable(Node), opening_loc: Location, closing_loc: Location).void }
@@ -11240,6 +11876,8 @@ module Prism
11240
11876
  # foo in ^(bar)
11241
11877
  # ^^^^^^
11242
11878
  # ```
11879
+ #
11880
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
11243
11881
  class PinnedExpressionNode < Node
11244
11882
  # Initialize a new PinnedExpressionNode node.
11245
11883
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, expression: Node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location).void }
@@ -11289,6 +11927,8 @@ module Prism
11289
11927
  # foo in ^(bar)
11290
11928
  # ^^^
11291
11929
  # ```
11930
+ #
11931
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
11292
11932
  sig { returns(Node) }
11293
11933
  def expression; end
11294
11934
 
@@ -11298,6 +11938,8 @@ module Prism
11298
11938
  # foo in ^(bar)
11299
11939
  # ^
11300
11940
  # ```
11941
+ #
11942
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
11301
11943
  sig { returns(Location) }
11302
11944
  def operator_loc; end
11303
11945
 
@@ -11312,6 +11954,8 @@ module Prism
11312
11954
  # foo in ^(bar)
11313
11955
  # ^
11314
11956
  # ```
11957
+ #
11958
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
11315
11959
  sig { returns(Location) }
11316
11960
  def lparen_loc; end
11317
11961
 
@@ -11326,6 +11970,8 @@ module Prism
11326
11970
  # foo in ^(bar)
11327
11971
  # ^
11328
11972
  # ```
11973
+ #
11974
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF4oYmFyKQo)
11329
11975
  sig { returns(Location) }
11330
11976
  def rparen_loc; end
11331
11977
 
@@ -11356,6 +12002,8 @@ module Prism
11356
12002
  # foo in ^bar
11357
12003
  # ^^^^
11358
12004
  # ```
12005
+ #
12006
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF5iYXIK)
11359
12007
  class PinnedVariableNode < Node
11360
12008
  # Initialize a new PinnedVariableNode node.
11361
12009
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, variable: ::T.any(LocalVariableReadNode, InstanceVariableReadNode, ClassVariableReadNode, GlobalVariableReadNode, BackReferenceReadNode, NumberedReferenceReadNode, ItLocalVariableReadNode), operator_loc: Location).void }
@@ -11405,6 +12053,8 @@ module Prism
11405
12053
  # foo in ^bar
11406
12054
  # ^^^
11407
12055
  # ```
12056
+ #
12057
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF5iYXIK)
11408
12058
  sig { returns(::T.any(LocalVariableReadNode, InstanceVariableReadNode, ClassVariableReadNode, GlobalVariableReadNode, BackReferenceReadNode, NumberedReferenceReadNode, ItLocalVariableReadNode)) }
11409
12059
  def variable; end
11410
12060
 
@@ -11414,6 +12064,8 @@ module Prism
11414
12064
  # foo in ^bar
11415
12065
  # ^
11416
12066
  # ```
12067
+ #
12068
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIGluIF5iYXIK)
11417
12069
  sig { returns(Location) }
11418
12070
  def operator_loc; end
11419
12071
 
@@ -11436,6 +12088,8 @@ module Prism
11436
12088
  # END { foo }
11437
12089
  # ^^^^^^^^^^^
11438
12090
  # ```
12091
+ #
12092
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#RU5EIHsgZm9vIH0K)
11439
12093
  class PostExecutionNode < Node
11440
12094
  # Initialize a new PostExecutionNode node.
11441
12095
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, statements: ::T.nilable(StatementsNode), keyword_loc: Location, opening_loc: Location, closing_loc: Location).void }
@@ -11532,6 +12186,8 @@ module Prism
11532
12186
  # BEGIN { foo }
11533
12187
  # ^^^^^^^^^^^^^
11534
12188
  # ```
12189
+ #
12190
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#QkVHSU4geyBmb28gfQo)
11535
12191
  class PreExecutionNode < Node
11536
12192
  # Initialize a new PreExecutionNode node.
11537
12193
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, statements: ::T.nilable(StatementsNode), keyword_loc: Location, opening_loc: Location, closing_loc: Location).void }
@@ -11687,6 +12343,8 @@ module Prism
11687
12343
  # c if a =~ /left/ ... b =~ /right/
11688
12344
  # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11689
12345
  # ```
12346
+ #
12347
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4uMgoKYyBpZiBhID1-IC9sZWZ0LyAuLi4gYiA9fiAvcmlnaHQvCg)
11690
12348
  class RangeNode < Node
11691
12349
  # Initialize a new RangeNode node.
11692
12350
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, left: ::T.nilable(Node), right: ::T.nilable(Node), operator_loc: Location).void }
@@ -11743,6 +12401,8 @@ module Prism
11743
12401
  # hello...goodbye
11744
12402
  # ^^^^^
11745
12403
  # ```
12404
+ #
12405
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4uLgoKaGVsbG8uLi5nb29kYnllCg)
11746
12406
  sig { returns(::T.nilable(Node)) }
11747
12407
  def left; end
11748
12408
 
@@ -11755,6 +12415,8 @@ module Prism
11755
12415
  # 1...foo
11756
12416
  # ^^^
11757
12417
  # ```
12418
+ #
12419
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Li41CgoxLi4uZm9vCg)
11758
12420
  # If neither right-hand or left-hand side was included, this will be an ErrorRecoveryNode.
11759
12421
  sig { returns(::T.nilable(Node)) }
11760
12422
  def right; end
@@ -11782,6 +12444,8 @@ module Prism
11782
12444
  # 1.0r
11783
12445
  # ^^^^
11784
12446
  # ```
12447
+ #
12448
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS4wcgo)
11785
12449
  class RationalNode < Node
11786
12450
  # Initialize a new RationalNode node.
11787
12451
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, numerator: Integer, denominator: Integer).void }
@@ -11846,6 +12510,8 @@ module Prism
11846
12510
  # ```rb
11847
12511
  # 1.5r # numerator 3
11848
12512
  # ```
12513
+ #
12514
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS41ciAjIG51bWVyYXRvciAzCg)
11849
12515
  sig { returns(Integer) }
11850
12516
  def numerator; end
11851
12517
 
@@ -11854,6 +12520,8 @@ module Prism
11854
12520
  # ```rb
11855
12521
  # 1.5r # denominator 2
11856
12522
  # ```
12523
+ #
12524
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#MS41ciAjIGRlbm9taW5hdG9yIDIK)
11857
12525
  sig { returns(Integer) }
11858
12526
  def denominator; end
11859
12527
 
@@ -11867,6 +12535,8 @@ module Prism
11867
12535
  # redo
11868
12536
  # ^^^^
11869
12537
  # ```
12538
+ #
12539
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmVkbwo)
11870
12540
  class RedoNode < Node
11871
12541
  # Initialize a new RedoNode node.
11872
12542
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -11920,6 +12590,8 @@ module Prism
11920
12590
  # /foo/i
11921
12591
  # ^^^^^^
11922
12592
  # ```
12593
+ #
12594
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#L2Zvby9pCg)
11923
12595
  class RegularExpressionNode < Node
11924
12596
  # Initialize a new RegularExpressionNode node.
11925
12597
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String).void }
@@ -12061,6 +12733,8 @@ module Prism
12061
12733
  # ^^
12062
12734
  # end
12063
12735
  # ```
12736
+ #
12737
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYjogKQoKZW5kCg)
12064
12738
  class RequiredKeywordParameterNode < Node
12065
12739
  # Initialize a new RequiredKeywordParameterNode node.
12066
12740
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol, name_loc: Location).void }
@@ -12132,6 +12806,8 @@ module Prism
12132
12806
  # ^
12133
12807
  # end
12134
12808
  # ```
12809
+ #
12810
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoYikKCmVuZAo)
12135
12811
  class RequiredParameterNode < Node
12136
12812
  # Initialize a new RequiredParameterNode node.
12137
12813
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: Symbol).void }
@@ -12193,6 +12869,8 @@ module Prism
12193
12869
  # foo rescue nil
12194
12870
  # ^^^^^^^^^^^^^^
12195
12871
  # ```
12872
+ #
12873
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vIHJlc2N1ZSBuaWwK)
12196
12874
  class RescueModifierNode < Node
12197
12875
  # Initialize a new RescueModifierNode node.
12198
12876
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, expression: Node, keyword_loc: Location, rescue_expression: Node).void }
@@ -12271,6 +12949,8 @@ module Prism
12271
12949
  # end
12272
12950
  #
12273
12951
  # ```
12952
+ #
12953
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmVnaW4KcmVzY3VlIEZvbywgKnNwbGF0LCBCYXIgPT4gZXgKICBmb28KCmVuZAo)
12274
12954
  # `Foo, *splat, Bar` are in the `exceptions` field. `ex` is in the `reference` field.
12275
12955
  class RescueNode < Node
12276
12956
  # Initialize a new RescueNode node.
@@ -12381,6 +13061,8 @@ module Prism
12381
13061
  # ^^
12382
13062
  # end
12383
13063
  # ```
13064
+ #
13065
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ZGVmIGEoKmIpCgplbmQK)
12384
13066
  class RestParameterNode < Node
12385
13067
  # Initialize a new RestParameterNode node.
12386
13068
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, name: ::T.nilable(Symbol), name_loc: ::T.nilable(Location), operator_loc: Location).void }
@@ -12464,6 +13146,8 @@ module Prism
12464
13146
  # retry
12465
13147
  # ^^^^^
12466
13148
  # ```
13149
+ #
13150
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmV0cnkK)
12467
13151
  class RetryNode < Node
12468
13152
  # Initialize a new RetryNode node.
12469
13153
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -12517,6 +13201,8 @@ module Prism
12517
13201
  # return 1
12518
13202
  # ^^^^^^^^
12519
13203
  # ```
13204
+ #
13205
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#cmV0dXJuIDEK)
12520
13206
  class ReturnNode < Node
12521
13207
  # Initialize a new ReturnNode node.
12522
13208
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, keyword_loc: Location, arguments: ::T.nilable(ArgumentsNode)).void }
@@ -12587,6 +13273,8 @@ module Prism
12587
13273
  # self
12588
13274
  # ^^^^
12589
13275
  # ```
13276
+ #
13277
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#c2VsZgo)
12590
13278
  class SelfNode < Node
12591
13279
  # Initialize a new SelfNode node.
12592
13280
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -12641,6 +13329,8 @@ module Prism
12641
13329
  # C = { a: 1 }
12642
13330
  # ^^^^^^^^^^^^
12643
13331
  # ```
13332
+ #
13333
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#IyBzaGFyZWFibGVfY29uc3RhbnRfdmFsdWU6IGxpdGVyYWwKQyA9IHsgYTogMSB9Cg)
12644
13334
  class ShareableConstantNode < Node
12645
13335
  # Initialize a new ShareableConstantNode node.
12646
13336
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, write: ::T.any(ConstantWriteNode, ConstantAndWriteNode, ConstantOrWriteNode, ConstantOperatorWriteNode, ConstantPathWriteNode, ConstantPathAndWriteNode, ConstantPathOrWriteNode, ConstantPathOperatorWriteNode)).void }
@@ -12710,6 +13400,8 @@ module Prism
12710
13400
  # class << self end
12711
13401
  # ^^^^^^^^^^^^^^^^^
12712
13402
  # ```
13403
+ #
13404
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2xhc3MgPDwgc2VsZiBlbmQK)
12713
13405
  class SingletonClassNode < Node
12714
13406
  # Initialize a new SingletonClassNode node.
12715
13407
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, locals: T::Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Node, body: ::T.nilable(::T.any(StatementsNode, BeginNode)), end_keyword_loc: Location).void }
@@ -12814,6 +13506,8 @@ module Prism
12814
13506
  # __ENCODING__
12815
13507
  # ^^^^^^^^^^^^
12816
13508
  # ```
13509
+ #
13510
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#X19FTkNPRElOR19fCg)
12817
13511
  class SourceEncodingNode < Node
12818
13512
  # Initialize a new SourceEncodingNode node.
12819
13513
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -12867,6 +13561,8 @@ module Prism
12867
13561
  # __FILE__
12868
13562
  # ^^^^^^^^
12869
13563
  # ```
13564
+ #
13565
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#X19GSUxFX18K)
12870
13566
  class SourceFileNode < Node
12871
13567
  # Initialize a new SourceFileNode node.
12872
13568
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, filepath: String).void }
@@ -12940,6 +13636,8 @@ module Prism
12940
13636
  # __LINE__
12941
13637
  # ^^^^^^^^
12942
13638
  # ```
13639
+ #
13640
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#X19MSU5FX18K)
12943
13641
  class SourceLineNode < Node
12944
13642
  # Initialize a new SourceLineNode node.
12945
13643
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -12993,6 +13691,8 @@ module Prism
12993
13691
  # [*a]
12994
13692
  # ^^
12995
13693
  # ```
13694
+ #
13695
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#WyphXQo)
12996
13696
  class SplatNode < Node
12997
13697
  # Initialize a new SplatNode node.
12998
13698
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, operator_loc: Location, expression: ::T.nilable(Node)).void }
@@ -13063,6 +13763,8 @@ module Prism
13063
13763
  # foo; bar; baz
13064
13764
  # ^^^^^^^^^^^^^
13065
13765
  # ```
13766
+ #
13767
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Zm9vOyBiYXI7IGJhego)
13066
13768
  class StatementsNode < Node
13067
13769
  # Initialize a new StatementsNode node.
13068
13770
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, body: T::Array[Node]).void }
@@ -13126,6 +13828,8 @@ module Prism
13126
13828
  # "foo #{bar} baz"
13127
13829
  # ^^^^ ^^^^
13128
13830
  # ```
13831
+ #
13832
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#ImZvbyIKCiV3W2Zvb10KCiJmb28gI3tiYXJ9IGJheiIK)
13129
13833
  class StringNode < Node
13130
13834
  # Initialize a new StringNode node.
13131
13835
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: ::T.nilable(Location), content_loc: Location, closing_loc: ::T.nilable(Location), unescaped: String).void }
@@ -13242,6 +13946,8 @@ module Prism
13242
13946
  # ^^^^^^^^^^^^^^
13243
13947
  #
13244
13948
  # ```
13949
+ #
13950
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#c3VwZXIoKQoKc3VwZXIgZm9vLCBiYXIK)
13245
13951
  # If no arguments are provided (except for a block), it would be a `ForwardingSuperNode` instead.
13246
13952
  class SuperNode < Node
13247
13953
  # Initialize a new SuperNode node.
@@ -13345,6 +14051,8 @@ module Prism
13345
14051
  # %i[foo]
13346
14052
  # ^^^
13347
14053
  # ```
14054
+ #
14055
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#OmZvbwoKJWlbZm9vXQo)
13348
14056
  class SymbolNode < Node
13349
14057
  # Initialize a new SymbolNode node.
13350
14058
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: ::T.nilable(Location), content_loc: Location, closing_loc: ::T.nilable(Location), unescaped: String).void }
@@ -13453,6 +14161,8 @@ module Prism
13453
14161
  # true
13454
14162
  # ^^^^
13455
14163
  # ```
14164
+ #
14165
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dHJ1ZQo)
13456
14166
  class TrueNode < Node
13457
14167
  # Initialize a new TrueNode node.
13458
14168
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer).void }
@@ -13506,6 +14216,8 @@ module Prism
13506
14216
  # undef :foo, :bar, :baz
13507
14217
  # ^^^^^^^^^^^^^^^^^^^^^^
13508
14218
  # ```
14219
+ #
14220
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5kZWYgOmZvbywgOmJhciwgOmJhego)
13509
14221
  class UndefNode < Node
13510
14222
  # Initialize a new UndefNode node.
13511
14223
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, names: T::Array[::T.any(SymbolNode, InterpolatedSymbolNode)], keyword_loc: Location).void }
@@ -13579,6 +14291,8 @@ module Prism
13579
14291
  # unless foo then bar end
13580
14292
  # ^^^^^^^^^^^^^^^^^^^^^^^
13581
14293
  # ```
14294
+ #
14295
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIHVubGVzcyBmb28KCnVubGVzcyBmb28gdGhlbiBiYXIgZW5kCg)
13582
14296
  class UnlessNode < Node
13583
14297
  # Initialize a new UnlessNode node.
13584
14298
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, unless_keyword_loc: Location, predicate: Node, then_keyword_loc: ::T.nilable(Location), statements: ::T.nilable(StatementsNode), else_clause: ::T.nilable(ElseNode), end_keyword_loc: ::T.nilable(Location)).void }
@@ -13631,6 +14345,8 @@ module Prism
13631
14345
  # bar unless cond
13632
14346
  # ^^^^^^
13633
14347
  # ```
14348
+ #
14349
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCgpiYXIgdW5sZXNzIGNvbmQK)
13634
14350
  sig { returns(Location) }
13635
14351
  def unless_keyword_loc; end
13636
14352
 
@@ -13648,6 +14364,8 @@ module Prism
13648
14364
  # bar unless cond
13649
14365
  # ^^^^
13650
14366
  # ```
14367
+ #
14368
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCgpiYXIgdW5sZXNzIGNvbmQK)
13651
14369
  sig { returns(Node) }
13652
14370
  def predicate; end
13653
14371
 
@@ -13657,6 +14375,8 @@ module Prism
13657
14375
  # unless cond then bar end
13658
14376
  # ^^^^
13659
14377
  # ```
14378
+ #
14379
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCg)
13660
14380
  sig { returns(::T.nilable(Location)) }
13661
14381
  def then_keyword_loc; end
13662
14382
 
@@ -13672,6 +14392,8 @@ module Prism
13672
14392
  # unless cond then bar end
13673
14393
  # ^^^
13674
14394
  # ```
14395
+ #
14396
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCg)
13675
14397
  sig { returns(::T.nilable(StatementsNode)) }
13676
14398
  def statements; end
13677
14399
 
@@ -13681,6 +14403,8 @@ module Prism
13681
14403
  # unless cond then bar else baz end
13682
14404
  # ^^^^^^^^^^^^
13683
14405
  # ```
14406
+ #
14407
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZWxzZSBiYXogZW5kCg)
13684
14408
  sig { returns(::T.nilable(ElseNode)) }
13685
14409
  def else_clause; end
13686
14410
 
@@ -13690,6 +14414,8 @@ module Prism
13690
14414
  # unless cond then bar end
13691
14415
  # ^^^
13692
14416
  # ```
14417
+ #
14418
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#dW5sZXNzIGNvbmQgdGhlbiBiYXIgZW5kCg)
13693
14419
  sig { returns(::T.nilable(Location)) }
13694
14420
  def end_keyword_loc; end
13695
14421
 
@@ -13723,6 +14449,8 @@ module Prism
13723
14449
  # until foo do bar end
13724
14450
  # ^^^^^^^^^^^^^^^^^^^^
13725
14451
  # ```
14452
+ #
14453
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIHVudGlsIGZvbwoKdW50aWwgZm9vIGRvIGJhciBlbmQK)
13726
14454
  class UntilNode < Node
13727
14455
  # Initialize a new UntilNode node.
13728
14456
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, until_keyword_loc: Location, do_keyword_loc: ::T.nilable(Location), end_keyword_loc: ::T.nilable(Location), predicate: Node, statements: ::T.nilable(StatementsNode)).void }
@@ -13829,6 +14557,8 @@ module Prism
13829
14557
  # ^^^^^^^^^
13830
14558
  # end
13831
14559
  # ```
14560
+ #
14561
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#Y2FzZSB0cnVlCndoZW4gdHJ1ZQoKZW5kCg)
13832
14562
  class WhenNode < Node
13833
14563
  # Initialize a new WhenNode node.
13834
14564
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, when_keyword_loc: Location, conditions: T::Array[Node], then_keyword_loc: ::T.nilable(Location), statements: ::T.nilable(StatementsNode)).void }
@@ -13919,6 +14649,8 @@ module Prism
13919
14649
  # while foo do bar end
13920
14650
  # ^^^^^^^^^^^^^^^^^^^^
13921
14651
  # ```
14652
+ #
14653
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YmFyIHdoaWxlIGZvbwoKd2hpbGUgZm9vIGRvIGJhciBlbmQK)
13922
14654
  class WhileNode < Node
13923
14655
  # Initialize a new WhileNode node.
13924
14656
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, while_keyword_loc: Location, do_keyword_loc: ::T.nilable(Location), end_keyword_loc: ::T.nilable(Location), predicate: Node, statements: ::T.nilable(StatementsNode)).void }
@@ -14023,6 +14755,8 @@ module Prism
14023
14755
  # `foo`
14024
14756
  # ^^^^^
14025
14757
  # ```
14758
+ #
14759
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#YGZvb2AK)
14026
14760
  class XStringNode < Node
14027
14761
  # Initialize a new XStringNode node.
14028
14762
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String).void }
@@ -14127,6 +14861,8 @@ module Prism
14127
14861
  # yield 1
14128
14862
  # ^^^^^^^
14129
14863
  # ```
14864
+ #
14865
+ # [Explore code sample](https://ruby.github.io/prism/playground.html#eWllbGQgMQo)
14130
14866
  class YieldNode < Node
14131
14867
  # Initialize a new YieldNode node.
14132
14868
  sig { params(source: Source, node_id: Integer, location: Location, flags: Integer, keyword_loc: Location, lparen_loc: ::T.nilable(Location), arguments: ::T.nilable(ArgumentsNode), rparen_loc: ::T.nilable(Location)).void }