mangrove 0.24.0 → 0.30.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +32 -5
  3. data/lib/mangrove/result.rb +73 -64
  4. data/lib/mangrove/version.rb +1 -1
  5. data/rbi/mangrove.rbi +20 -0
  6. data/sorbet/rbi/annotations/rainbow.rbi +3 -3
  7. data/sorbet/rbi/gems/{diff-lcs@1.5.0.rbi → diff-lcs@1.5.1.rbi} +100 -48
  8. data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +1 -0
  9. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.2.rbi} +95 -74
  10. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.24.0.rbi} +9 -1
  11. data/sorbet/rbi/gems/{parser@3.2.2.4.rbi → parser@3.3.2.0.rbi} +1267 -1282
  12. data/sorbet/rbi/gems/prism@0.29.0.rbi +37987 -0
  13. data/sorbet/rbi/gems/{psych@5.1.1.1.rbi → psych@5.1.2.rbi} +231 -267
  14. data/sorbet/rbi/gems/{racc@1.7.1.rbi → racc@1.8.0.rbi} +37 -36
  15. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.2.1.rbi} +217 -73
  16. data/sorbet/rbi/gems/{rbi@0.1.3.rbi → rbi@0.1.13.rbi} +322 -166
  17. data/sorbet/rbi/gems/{rdoc@6.6.0.rbi → rdoc@6.7.0.rbi} +735 -685
  18. data/sorbet/rbi/gems/{regexp_parser@2.8.2.rbi → regexp_parser@2.9.2.rbi} +192 -169
  19. data/sorbet/rbi/gems/{reline@0.4.0.rbi → reline@0.5.8.rbi} +1 -0
  20. data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.2.8.rbi} +122 -109
  21. data/sorbet/rbi/gems/{rspec-core@3.12.2.rbi → rspec-core@3.13.0.rbi} +400 -300
  22. data/sorbet/rbi/gems/{rspec-expectations@3.12.3.rbi → rspec-expectations@3.13.0.rbi} +173 -119
  23. data/sorbet/rbi/gems/{rspec-mocks@3.12.6.rbi → rspec-mocks@3.13.1.rbi} +195 -160
  24. data/sorbet/rbi/gems/{rspec-support@3.12.1.rbi → rspec-support@3.13.1.rbi} +319 -298
  25. data/sorbet/rbi/gems/{rspec@3.12.0.rbi → rspec@3.13.0.rbi} +23 -22
  26. data/sorbet/rbi/gems/ruboclean@0.6.0.rbi +315 -0
  27. data/sorbet/rbi/gems/{rubocop-ast@1.29.0.rbi → rubocop-ast@1.31.3.rbi} +348 -285
  28. data/sorbet/rbi/gems/{rubocop-capybara@2.19.0.rbi → rubocop-capybara@2.20.0.rbi} +148 -65
  29. data/sorbet/rbi/gems/{rubocop-factory_bot@2.24.0.rbi → rubocop-factory_bot@2.25.1.rbi} +70 -20
  30. data/sorbet/rbi/gems/{rubocop-rspec@2.24.1.rbi → rubocop-rspec@2.30.0.rbi} +678 -389
  31. data/sorbet/rbi/gems/rubocop-rspec_rails@2.28.3.rbi +911 -0
  32. data/sorbet/rbi/gems/{rubocop@1.57.1.rbi → rubocop@1.64.1.rbi} +3225 -1915
  33. data/sorbet/rbi/gems/{ruby-lsp@0.12.0.rbi → ruby-lsp@0.17.2.rbi} +1 -0
  34. data/sorbet/rbi/gems/{spoom@1.2.4.rbi → spoom@1.3.2.rbi} +1057 -413
  35. data/sorbet/rbi/gems/strscan@3.1.0.rbi +9 -0
  36. data/sorbet/rbi/gems/{tapioca@0.11.10.rbi → tapioca@0.14.3.rbi} +268 -234
  37. data/sorbet/rbi/gems/{thor@1.3.0.rbi → thor@1.3.1.rbi} +57 -50
  38. data/sorbet/rbi/gems/{yard@0.9.34.rbi → yard@0.9.36.rbi} +154 -82
  39. metadata +38 -38
  40. data/sorbet/rbi/gems/base64@0.1.1.rbi +0 -172
  41. data/sorbet/rbi/gems/irb@1.9.0.rbi +0 -342
  42. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +0 -951
  43. data/sorbet/rbi/gems/prism@0.15.1.rbi +0 -23922
  44. data/sorbet/rbi/gems/ruboclean@0.4.0.rbi +0 -189
  45. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +0 -23136
  46. /data/sorbet/rbi/gems/{stringio@3.0.9.rbi → stringio@3.1.0.rbi} +0 -0
@@ -4,16 +4,17 @@
4
4
  # This is an autogenerated file for types exported from the `rbi` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem rbi`.
6
6
 
7
+
7
8
  # source://rbi//lib/rbi/loc.rb#4
8
9
  module RBI; end
9
10
 
10
- # source://rbi//lib/rbi/model.rb#968
11
+ # source://rbi//lib/rbi/model.rb#1041
11
12
  class RBI::Arg < ::RBI::Node
12
- # source://rbi//lib/rbi/model.rb#980
13
+ # source://rbi//lib/rbi/model.rb#1053
13
14
  sig { params(value: ::String, loc: T.nilable(::RBI::Loc)).void }
14
15
  def initialize(value, loc: T.unsafe(nil)); end
15
16
 
16
- # source://rbi//lib/rbi/model.rb#986
17
+ # source://rbi//lib/rbi/model.rb#1059
17
18
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
18
19
  def ==(other); end
19
20
 
@@ -21,11 +22,11 @@ class RBI::Arg < ::RBI::Node
21
22
  sig { override.params(v: ::RBI::Printer).void }
22
23
  def accept_printer(v); end
23
24
 
24
- # source://rbi//lib/rbi/model.rb#991
25
+ # source://rbi//lib/rbi/model.rb#1064
25
26
  sig { returns(::String) }
26
27
  def to_s; end
27
28
 
28
- # source://rbi//lib/rbi/model.rb#972
29
+ # source://rbi//lib/rbi/model.rb#1045
29
30
  sig { returns(::String) }
30
31
  def value; end
31
32
  end
@@ -197,9 +198,9 @@ class RBI::BlankLine < ::RBI::Comment
197
198
  def accept_printer(v); end
198
199
  end
199
200
 
200
- # source://rbi//lib/rbi/model.rb#741
201
+ # source://rbi//lib/rbi/model.rb#814
201
202
  class RBI::BlockParam < ::RBI::Param
202
- # source://rbi//lib/rbi/model.rb#752
203
+ # source://rbi//lib/rbi/model.rb#825
203
204
  sig do
204
205
  params(
205
206
  name: ::String,
@@ -210,7 +211,7 @@ class RBI::BlockParam < ::RBI::Param
210
211
  end
211
212
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
212
213
 
213
- # source://rbi//lib/rbi/model.rb#763
214
+ # source://rbi//lib/rbi/model.rb#836
214
215
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
215
216
  def ==(other); end
216
217
 
@@ -222,7 +223,7 @@ class RBI::BlockParam < ::RBI::Param
222
223
  sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
223
224
  def print_comment_leading_space(v, last:); end
224
225
 
225
- # source://rbi//lib/rbi/model.rb#758
226
+ # source://rbi//lib/rbi/model.rb#831
226
227
  sig { override.returns(::String) }
227
228
  def to_s; end
228
229
  end
@@ -379,11 +380,11 @@ class RBI::Const < ::RBI::NodeWithComments
379
380
  def value; end
380
381
  end
381
382
 
382
- # source://rbi//lib/rbi/model.rb#816
383
+ # source://rbi//lib/rbi/model.rb#889
383
384
  class RBI::Extend < ::RBI::Mixin
384
385
  include ::RBI::Indexable
385
386
 
386
- # source://rbi//lib/rbi/model.rb#828
387
+ # source://rbi//lib/rbi/model.rb#901
387
388
  sig do
388
389
  params(
389
390
  name: ::String,
@@ -403,7 +404,7 @@ class RBI::Extend < ::RBI::Mixin
403
404
  sig { override.returns(T::Array[::String]) }
404
405
  def index_ids; end
405
406
 
406
- # source://rbi//lib/rbi/model.rb#834
407
+ # source://rbi//lib/rbi/model.rb#907
407
408
  sig { override.returns(::String) }
408
409
  def to_s; end
409
410
  end
@@ -568,11 +569,11 @@ end
568
569
 
569
570
  # Sorbet's misc.
570
571
  #
571
- # source://rbi//lib/rbi/model.rb#1294
572
+ # source://rbi//lib/rbi/model.rb#1372
572
573
  class RBI::Helper < ::RBI::NodeWithComments
573
574
  include ::RBI::Indexable
574
575
 
575
- # source://rbi//lib/rbi/model.rb#1308
576
+ # source://rbi//lib/rbi/model.rb#1386
576
577
  sig do
577
578
  params(
578
579
  name: ::String,
@@ -595,20 +596,20 @@ class RBI::Helper < ::RBI::NodeWithComments
595
596
  sig { override.returns(T::Array[::String]) }
596
597
  def index_ids; end
597
598
 
598
- # source://rbi//lib/rbi/model.rb#1298
599
+ # source://rbi//lib/rbi/model.rb#1376
599
600
  sig { returns(::String) }
600
601
  def name; end
601
602
 
602
- # source://rbi//lib/rbi/model.rb#1315
603
+ # source://rbi//lib/rbi/model.rb#1393
603
604
  sig { override.returns(::String) }
604
605
  def to_s; end
605
606
  end
606
607
 
607
- # source://rbi//lib/rbi/model.rb#793
608
+ # source://rbi//lib/rbi/model.rb#866
608
609
  class RBI::Include < ::RBI::Mixin
609
610
  include ::RBI::Indexable
610
611
 
611
- # source://rbi//lib/rbi/model.rb#805
612
+ # source://rbi//lib/rbi/model.rb#878
612
613
  sig do
613
614
  params(
614
615
  name: ::String,
@@ -628,7 +629,7 @@ class RBI::Include < ::RBI::Mixin
628
629
  sig { override.returns(T::Array[::String]) }
629
630
  def index_ids; end
630
631
 
631
- # source://rbi//lib/rbi/model.rb#811
632
+ # source://rbi//lib/rbi/model.rb#884
632
633
  sig { override.returns(::String) }
633
634
  def to_s; end
634
635
  end
@@ -668,7 +669,7 @@ class RBI::Index < ::RBI::Visitor
668
669
  end
669
670
  end
670
671
 
671
- # A Node that can be refered to by a unique ID inside an index
672
+ # A Node that can be referred to by a unique ID inside an index
672
673
  #
673
674
  # @abstract Subclasses must implement the `abstract` methods below.
674
675
  #
@@ -688,13 +689,13 @@ module RBI::Indexable
688
689
  def index_ids; end
689
690
  end
690
691
 
691
- # source://rbi//lib/rbi/model.rb#996
692
+ # source://rbi//lib/rbi/model.rb#1069
692
693
  class RBI::KwArg < ::RBI::Arg
693
- # source://rbi//lib/rbi/model.rb#1009
694
+ # source://rbi//lib/rbi/model.rb#1082
694
695
  sig { params(keyword: ::String, value: ::String, loc: T.nilable(::RBI::Loc)).void }
695
696
  def initialize(keyword, value, loc: T.unsafe(nil)); end
696
697
 
697
- # source://rbi//lib/rbi/model.rb#1015
698
+ # source://rbi//lib/rbi/model.rb#1088
698
699
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
699
700
  def ==(other); end
700
701
 
@@ -702,18 +703,18 @@ class RBI::KwArg < ::RBI::Arg
702
703
  sig { override.params(v: ::RBI::Printer).void }
703
704
  def accept_printer(v); end
704
705
 
705
- # source://rbi//lib/rbi/model.rb#1000
706
+ # source://rbi//lib/rbi/model.rb#1073
706
707
  sig { returns(::String) }
707
708
  def keyword; end
708
709
 
709
- # source://rbi//lib/rbi/model.rb#1020
710
+ # source://rbi//lib/rbi/model.rb#1093
710
711
  sig { returns(::String) }
711
712
  def to_s; end
712
713
  end
713
714
 
714
- # source://rbi//lib/rbi/model.rb#682
715
+ # source://rbi//lib/rbi/model.rb#755
715
716
  class RBI::KwOptParam < ::RBI::Param
716
- # source://rbi//lib/rbi/model.rb#697
717
+ # source://rbi//lib/rbi/model.rb#770
717
718
  sig do
718
719
  params(
719
720
  name: ::String,
@@ -725,7 +726,7 @@ class RBI::KwOptParam < ::RBI::Param
725
726
  end
726
727
  def initialize(name, value, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
727
728
 
728
- # source://rbi//lib/rbi/model.rb#709
729
+ # source://rbi//lib/rbi/model.rb#782
729
730
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
730
731
  def ==(other); end
731
732
 
@@ -737,18 +738,18 @@ class RBI::KwOptParam < ::RBI::Param
737
738
  sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
738
739
  def print_comment_leading_space(v, last:); end
739
740
 
740
- # source://rbi//lib/rbi/model.rb#704
741
+ # source://rbi//lib/rbi/model.rb#777
741
742
  sig { override.returns(::String) }
742
743
  def to_s; end
743
744
 
744
- # source://rbi//lib/rbi/model.rb#686
745
+ # source://rbi//lib/rbi/model.rb#759
745
746
  sig { returns(::String) }
746
747
  def value; end
747
748
  end
748
749
 
749
- # source://rbi//lib/rbi/model.rb#655
750
+ # source://rbi//lib/rbi/model.rb#728
750
751
  class RBI::KwParam < ::RBI::Param
751
- # source://rbi//lib/rbi/model.rb#666
752
+ # source://rbi//lib/rbi/model.rb#739
752
753
  sig do
753
754
  params(
754
755
  name: ::String,
@@ -759,7 +760,7 @@ class RBI::KwParam < ::RBI::Param
759
760
  end
760
761
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
761
762
 
762
- # source://rbi//lib/rbi/model.rb#677
763
+ # source://rbi//lib/rbi/model.rb#750
763
764
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
764
765
  def ==(other); end
765
766
 
@@ -771,14 +772,14 @@ class RBI::KwParam < ::RBI::Param
771
772
  sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
772
773
  def print_comment_leading_space(v, last:); end
773
774
 
774
- # source://rbi//lib/rbi/model.rb#672
775
+ # source://rbi//lib/rbi/model.rb#745
775
776
  sig { override.returns(::String) }
776
777
  def to_s; end
777
778
  end
778
779
 
779
- # source://rbi//lib/rbi/model.rb#714
780
+ # source://rbi//lib/rbi/model.rb#787
780
781
  class RBI::KwRestParam < ::RBI::Param
781
- # source://rbi//lib/rbi/model.rb#725
782
+ # source://rbi//lib/rbi/model.rb#798
782
783
  sig do
783
784
  params(
784
785
  name: ::String,
@@ -789,7 +790,7 @@ class RBI::KwRestParam < ::RBI::Param
789
790
  end
790
791
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
791
792
 
792
- # source://rbi//lib/rbi/model.rb#736
793
+ # source://rbi//lib/rbi/model.rb#809
793
794
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
794
795
  def ==(other); end
795
796
 
@@ -801,7 +802,7 @@ class RBI::KwRestParam < ::RBI::Param
801
802
  sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
802
803
  def print_comment_leading_space(v, last:); end
803
804
 
804
- # source://rbi//lib/rbi/model.rb#731
805
+ # source://rbi//lib/rbi/model.rb#804
805
806
  sig { override.returns(::String) }
806
807
  def to_s; end
807
808
  end
@@ -907,11 +908,55 @@ class RBI::Method < ::RBI::NodeWithComments
907
908
  sig { override.params(v: ::RBI::Printer).void }
908
909
  def accept_printer(v); end
909
910
 
911
+ # source://rbi//lib/rbi/model.rb#568
912
+ sig { params(name: ::String).void }
913
+ def add_block_param(name); end
914
+
915
+ # source://rbi//lib/rbi/model.rb#558
916
+ sig { params(name: ::String, default_value: ::String).void }
917
+ def add_kw_opt_param(name, default_value); end
918
+
919
+ # source://rbi//lib/rbi/model.rb#553
920
+ sig { params(name: ::String).void }
921
+ def add_kw_param(name); end
922
+
923
+ # source://rbi//lib/rbi/model.rb#563
924
+ sig { params(name: ::String).void }
925
+ def add_kw_rest_param(name); end
926
+
927
+ # source://rbi//lib/rbi/model.rb#543
928
+ sig { params(name: ::String, default_value: ::String).void }
929
+ def add_opt_param(name, default_value); end
930
+
931
+ # source://rbi//lib/rbi/model.rb#538
932
+ sig { params(name: ::String).void }
933
+ def add_param(name); end
934
+
935
+ # source://rbi//lib/rbi/model.rb#548
936
+ sig { params(name: ::String).void }
937
+ def add_rest_param(name); end
938
+
939
+ # source://rbi//lib/rbi/model.rb#585
940
+ sig do
941
+ params(
942
+ params: T::Array[::RBI::SigParam],
943
+ return_type: T.nilable(::String),
944
+ is_abstract: T::Boolean,
945
+ is_override: T::Boolean,
946
+ is_overridable: T::Boolean,
947
+ is_final: T::Boolean,
948
+ type_params: T::Array[::String],
949
+ checked: T.nilable(::Symbol),
950
+ block: T.proc.params(node: ::RBI::Sig).void
951
+ ).void
952
+ end
953
+ def add_sig(params: T.unsafe(nil), return_type: T.unsafe(nil), is_abstract: T.unsafe(nil), is_override: T.unsafe(nil), is_overridable: T.unsafe(nil), is_final: T.unsafe(nil), type_params: T.unsafe(nil), checked: T.unsafe(nil), &block); end
954
+
910
955
  # source://rbi//lib/rbi/rewriters/merge_trees.rb#461
911
956
  sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
912
957
  def compatible_with?(other); end
913
958
 
914
- # source://rbi//lib/rbi/model.rb#538
959
+ # source://rbi//lib/rbi/model.rb#611
915
960
  sig { returns(::String) }
916
961
  def fully_qualified_name; end
917
962
 
@@ -962,7 +1007,7 @@ class RBI::Method < ::RBI::NodeWithComments
962
1007
  # source://rbi//lib/rbi/model.rb#499
963
1008
  def sigs=(_arg0); end
964
1009
 
965
- # source://rbi//lib/rbi/model.rb#547
1010
+ # source://rbi//lib/rbi/model.rb#620
966
1011
  sig { override.returns(::String) }
967
1012
  def to_s; end
968
1013
 
@@ -976,11 +1021,11 @@ class RBI::Method < ::RBI::NodeWithComments
976
1021
  def visibility=(_arg0); end
977
1022
  end
978
1023
 
979
- # source://rbi//lib/rbi/model.rb#1355
1024
+ # source://rbi//lib/rbi/model.rb#1433
980
1025
  class RBI::MixesInClassMethods < ::RBI::Mixin
981
1026
  include ::RBI::Indexable
982
1027
 
983
- # source://rbi//lib/rbi/model.rb#1367
1028
+ # source://rbi//lib/rbi/model.rb#1445
984
1029
  sig do
985
1030
  params(
986
1031
  name: ::String,
@@ -1000,7 +1045,7 @@ class RBI::MixesInClassMethods < ::RBI::Mixin
1000
1045
  sig { override.returns(T::Array[::String]) }
1001
1046
  def index_ids; end
1002
1047
 
1003
- # source://rbi//lib/rbi/model.rb#1373
1048
+ # source://rbi//lib/rbi/model.rb#1451
1004
1049
  sig { override.returns(::String) }
1005
1050
  def to_s; end
1006
1051
  end
@@ -1009,11 +1054,11 @@ end
1009
1054
  #
1010
1055
  # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1011
1056
  #
1012
- # source://rbi//lib/rbi/model.rb#770
1057
+ # source://rbi//lib/rbi/model.rb#843
1013
1058
  class RBI::Mixin < ::RBI::NodeWithComments
1014
1059
  abstract!
1015
1060
 
1016
- # source://rbi//lib/rbi/model.rb#787
1061
+ # source://rbi//lib/rbi/model.rb#860
1017
1062
  sig do
1018
1063
  params(
1019
1064
  name: ::String,
@@ -1032,7 +1077,7 @@ class RBI::Mixin < ::RBI::NodeWithComments
1032
1077
  sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
1033
1078
  def compatible_with?(other); end
1034
1079
 
1035
- # source://rbi//lib/rbi/model.rb#777
1080
+ # source://rbi//lib/rbi/model.rb#850
1036
1081
  sig { returns(T::Array[::String]) }
1037
1082
  def names; end
1038
1083
  end
@@ -1157,6 +1202,10 @@ class RBI::Node
1157
1202
  sig { params(node: ::RBI::Node).void }
1158
1203
  def replace(node); end
1159
1204
 
1205
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#94
1206
+ sig { params(version: ::Gem::Version).returns(T::Boolean) }
1207
+ def satisfies_version?(version); end
1208
+
1160
1209
  # source://rbi//lib/rbi/printer.rb#162
1161
1210
  sig { params(indent: ::Integer, print_locs: T::Boolean, max_line_length: T.nilable(::Integer)).returns(::String) }
1162
1211
  def string(indent: T.unsafe(nil), print_locs: T.unsafe(nil), max_line_length: T.unsafe(nil)); end
@@ -1192,11 +1241,15 @@ class RBI::NodeWithComments < ::RBI::Node
1192
1241
  # source://rbi//lib/rbi/printer.rb#188
1193
1242
  sig { override.returns(T::Boolean) }
1194
1243
  def oneline?; end
1244
+
1245
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#104
1246
+ sig { returns(T::Array[::Gem::Requirement]) }
1247
+ def version_requirements; end
1195
1248
  end
1196
1249
 
1197
- # source://rbi//lib/rbi/model.rb#601
1250
+ # source://rbi//lib/rbi/model.rb#674
1198
1251
  class RBI::OptParam < ::RBI::Param
1199
- # source://rbi//lib/rbi/model.rb#616
1252
+ # source://rbi//lib/rbi/model.rb#689
1200
1253
  sig do
1201
1254
  params(
1202
1255
  name: ::String,
@@ -1208,7 +1261,7 @@ class RBI::OptParam < ::RBI::Param
1208
1261
  end
1209
1262
  def initialize(name, value, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
1210
1263
 
1211
- # source://rbi//lib/rbi/model.rb#623
1264
+ # source://rbi//lib/rbi/model.rb#696
1212
1265
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
1213
1266
  def ==(other); end
1214
1267
 
@@ -1220,18 +1273,18 @@ class RBI::OptParam < ::RBI::Param
1220
1273
  sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
1221
1274
  def print_comment_leading_space(v, last:); end
1222
1275
 
1223
- # source://rbi//lib/rbi/model.rb#605
1276
+ # source://rbi//lib/rbi/model.rb#678
1224
1277
  sig { returns(::String) }
1225
1278
  def value; end
1226
1279
  end
1227
1280
 
1228
1281
  # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1229
1282
  #
1230
- # source://rbi//lib/rbi/model.rb#552
1283
+ # source://rbi//lib/rbi/model.rb#625
1231
1284
  class RBI::Param < ::RBI::NodeWithComments
1232
1285
  abstract!
1233
1286
 
1234
- # source://rbi//lib/rbi/model.rb#568
1287
+ # source://rbi//lib/rbi/model.rb#641
1235
1288
  sig { params(name: ::String, loc: T.nilable(::RBI::Loc), comments: T::Array[::RBI::Comment]).void }
1236
1289
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil)); end
1237
1290
 
@@ -1243,7 +1296,7 @@ class RBI::Param < ::RBI::NodeWithComments
1243
1296
  sig { returns(T::Array[::String]) }
1244
1297
  def comments_lines; end
1245
1298
 
1246
- # source://rbi//lib/rbi/model.rb#559
1299
+ # source://rbi//lib/rbi/model.rb#632
1247
1300
  sig { returns(::String) }
1248
1301
  def name; end
1249
1302
 
@@ -1251,7 +1304,7 @@ class RBI::Param < ::RBI::NodeWithComments
1251
1304
  sig { params(v: ::RBI::Printer, last: T::Boolean).void }
1252
1305
  def print_comment_leading_space(v, last:); end
1253
1306
 
1254
- # source://rbi//lib/rbi/model.rb#574
1307
+ # source://rbi//lib/rbi/model.rb#647
1255
1308
  sig { override.returns(::String) }
1256
1309
  def to_s; end
1257
1310
  end
@@ -1302,21 +1355,21 @@ class RBI::Parser
1302
1355
  end
1303
1356
  end
1304
1357
 
1305
- # source://rbi//lib/rbi/parser.rb#793
1358
+ # source://rbi//lib/rbi/parser.rb#791
1306
1359
  class RBI::Parser::SigBuilder < ::RBI::Parser::Visitor
1307
- # source://rbi//lib/rbi/parser.rb#800
1360
+ # source://rbi//lib/rbi/parser.rb#798
1308
1361
  sig { params(content: ::String, file: ::String).void }
1309
1362
  def initialize(content, file:); end
1310
1363
 
1311
- # source://rbi//lib/rbi/parser.rb#797
1364
+ # source://rbi//lib/rbi/parser.rb#795
1312
1365
  sig { returns(::RBI::Sig) }
1313
1366
  def current; end
1314
1367
 
1315
- # source://rbi//lib/rbi/parser.rb#852
1368
+ # source://rbi//lib/rbi/parser.rb#850
1316
1369
  sig { override.params(node: ::Prism::AssocNode).void }
1317
1370
  def visit_assoc_node(node); end
1318
1371
 
1319
- # source://rbi//lib/rbi/parser.rb#807
1372
+ # source://rbi//lib/rbi/parser.rb#805
1320
1373
  sig { override.params(node: ::Prism::CallNode).void }
1321
1374
  def visit_call_node(node); end
1322
1375
  end
@@ -1413,11 +1466,11 @@ class RBI::Parser::TreeBuilder < ::RBI::Parser::Visitor
1413
1466
  sig { params(node: T.nilable(::Prism::Node)).returns(T::Array[::RBI::Arg]) }
1414
1467
  def parse_send_args(node); end
1415
1468
 
1416
- # source://rbi//lib/rbi/parser.rb#650
1469
+ # source://rbi//lib/rbi/parser.rb#648
1417
1470
  sig { params(node: ::Prism::CallNode).returns(::RBI::Sig) }
1418
1471
  def parse_sig(node); end
1419
1472
 
1420
- # source://rbi//lib/rbi/parser.rb#660
1473
+ # source://rbi//lib/rbi/parser.rb#658
1421
1474
  sig do
1422
1475
  params(
1423
1476
  node: T.any(::Prism::ConstantPathWriteNode, ::Prism::ConstantWriteNode)
@@ -1425,23 +1478,23 @@ class RBI::Parser::TreeBuilder < ::RBI::Parser::Visitor
1425
1478
  end
1426
1479
  def parse_struct(node); end
1427
1480
 
1428
- # source://rbi//lib/rbi/parser.rb#710
1481
+ # source://rbi//lib/rbi/parser.rb#708
1429
1482
  sig { params(send: ::Prism::CallNode).void }
1430
1483
  def parse_tstruct_field(send); end
1431
1484
 
1432
- # source://rbi//lib/rbi/parser.rb#747
1485
+ # source://rbi//lib/rbi/parser.rb#745
1433
1486
  sig { params(name: ::String, node: ::Prism::Node).returns(::RBI::Visibility) }
1434
1487
  def parse_visibility(name, node); end
1435
1488
 
1436
- # source://rbi//lib/rbi/parser.rb#761
1489
+ # source://rbi//lib/rbi/parser.rb#759
1437
1490
  sig { void }
1438
1491
  def separate_header_comments; end
1439
1492
 
1440
- # source://rbi//lib/rbi/parser.rb#771
1493
+ # source://rbi//lib/rbi/parser.rb#769
1441
1494
  sig { void }
1442
1495
  def set_root_tree_loc; end
1443
1496
 
1444
- # source://rbi//lib/rbi/parser.rb#785
1497
+ # source://rbi//lib/rbi/parser.rb#783
1445
1498
  sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
1446
1499
  def type_variable_definition?(node); end
1447
1500
  end
@@ -1558,9 +1611,9 @@ class RBI::Printer < ::RBI::Visitor
1558
1611
  def visit_file(file); end
1559
1612
  end
1560
1613
 
1561
- # source://rbi//lib/rbi/model.rb#909
1614
+ # source://rbi//lib/rbi/model.rb#982
1562
1615
  class RBI::Private < ::RBI::Visibility
1563
- # source://rbi//lib/rbi/model.rb#919
1616
+ # source://rbi//lib/rbi/model.rb#992
1564
1617
  sig do
1565
1618
  params(
1566
1619
  loc: T.nilable(::RBI::Loc),
@@ -1571,9 +1624,9 @@ class RBI::Private < ::RBI::Visibility
1571
1624
  def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
1572
1625
  end
1573
1626
 
1574
- # source://rbi//lib/rbi/model.rb#893
1627
+ # source://rbi//lib/rbi/model.rb#966
1575
1628
  class RBI::Protected < ::RBI::Visibility
1576
- # source://rbi//lib/rbi/model.rb#903
1629
+ # source://rbi//lib/rbi/model.rb#976
1577
1630
  sig do
1578
1631
  params(
1579
1632
  loc: T.nilable(::RBI::Loc),
@@ -1584,9 +1637,9 @@ class RBI::Protected < ::RBI::Visibility
1584
1637
  def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
1585
1638
  end
1586
1639
 
1587
- # source://rbi//lib/rbi/model.rb#877
1640
+ # source://rbi//lib/rbi/model.rb#950
1588
1641
  class RBI::Public < ::RBI::Visibility
1589
- # source://rbi//lib/rbi/model.rb#887
1642
+ # source://rbi//lib/rbi/model.rb#960
1590
1643
  sig do
1591
1644
  params(
1592
1645
  loc: T.nilable(::RBI::Loc),
@@ -1597,9 +1650,9 @@ class RBI::Public < ::RBI::Visibility
1597
1650
  def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
1598
1651
  end
1599
1652
 
1600
- # source://rbi//lib/rbi/model.rb#579
1653
+ # source://rbi//lib/rbi/model.rb#652
1601
1654
  class RBI::ReqParam < ::RBI::Param
1602
- # source://rbi//lib/rbi/model.rb#590
1655
+ # source://rbi//lib/rbi/model.rb#663
1603
1656
  sig do
1604
1657
  params(
1605
1658
  name: ::String,
@@ -1610,16 +1663,16 @@ class RBI::ReqParam < ::RBI::Param
1610
1663
  end
1611
1664
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
1612
1665
 
1613
- # source://rbi//lib/rbi/model.rb#596
1666
+ # source://rbi//lib/rbi/model.rb#669
1614
1667
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
1615
1668
  def ==(other); end
1616
1669
  end
1617
1670
 
1618
- # source://rbi//lib/rbi/model.rb#1378
1671
+ # source://rbi//lib/rbi/model.rb#1456
1619
1672
  class RBI::RequiresAncestor < ::RBI::NodeWithComments
1620
1673
  include ::RBI::Indexable
1621
1674
 
1622
- # source://rbi//lib/rbi/model.rb#1391
1675
+ # source://rbi//lib/rbi/model.rb#1469
1623
1676
  sig { params(name: ::String, loc: T.nilable(::RBI::Loc), comments: T::Array[::RBI::Comment]).void }
1624
1677
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil)); end
1625
1678
 
@@ -1631,18 +1684,18 @@ class RBI::RequiresAncestor < ::RBI::NodeWithComments
1631
1684
  sig { override.returns(T::Array[::String]) }
1632
1685
  def index_ids; end
1633
1686
 
1634
- # source://rbi//lib/rbi/model.rb#1382
1687
+ # source://rbi//lib/rbi/model.rb#1460
1635
1688
  sig { returns(::String) }
1636
1689
  def name; end
1637
1690
 
1638
- # source://rbi//lib/rbi/model.rb#1397
1691
+ # source://rbi//lib/rbi/model.rb#1475
1639
1692
  sig { override.returns(::String) }
1640
1693
  def to_s; end
1641
1694
  end
1642
1695
 
1643
- # source://rbi//lib/rbi/model.rb#628
1696
+ # source://rbi//lib/rbi/model.rb#701
1644
1697
  class RBI::RestParam < ::RBI::Param
1645
- # source://rbi//lib/rbi/model.rb#639
1698
+ # source://rbi//lib/rbi/model.rb#712
1646
1699
  sig do
1647
1700
  params(
1648
1701
  name: ::String,
@@ -1653,7 +1706,7 @@ class RBI::RestParam < ::RBI::Param
1653
1706
  end
1654
1707
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
1655
1708
 
1656
- # source://rbi//lib/rbi/model.rb#650
1709
+ # source://rbi//lib/rbi/model.rb#723
1657
1710
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
1658
1711
  def ==(other); end
1659
1712
 
@@ -1665,7 +1718,7 @@ class RBI::RestParam < ::RBI::Param
1665
1718
  sig { override.params(v: ::RBI::Printer, last: T::Boolean).void }
1666
1719
  def print_comment_leading_space(v, last:); end
1667
1720
 
1668
- # source://rbi//lib/rbi/model.rb#645
1721
+ # source://rbi//lib/rbi/model.rb#718
1669
1722
  sig { override.returns(::String) }
1670
1723
  def to_s; end
1671
1724
  end
@@ -1736,6 +1789,78 @@ class RBI::Rewriters::Deannotate < ::RBI::Visitor
1736
1789
  def deannotate_node(node); end
1737
1790
  end
1738
1791
 
1792
+ # Take a gem version and filter out all RBI that is not relevant to that version based on @version annotations
1793
+ # in comments. As an example:
1794
+ #
1795
+ # ~~~rb
1796
+ # tree = Parser.parse_string(<<~RBI)
1797
+ # class Foo
1798
+ # # @version > 0.3.0
1799
+ # def bar
1800
+ # end
1801
+ #
1802
+ # # @version <= 0.3.0
1803
+ # def bar(arg1)
1804
+ # end
1805
+ # end
1806
+ # RBI
1807
+ #
1808
+ # Rewriters::FilterVersions.filter(tree, Gem::Version.new("0.3.1"))
1809
+ #
1810
+ # assert_equal(<<~RBI, tree.string)
1811
+ # class Foo
1812
+ # # @version > 0.3.0
1813
+ # def bar
1814
+ # end
1815
+ # end
1816
+ # RBI
1817
+ # ~~~
1818
+ #
1819
+ # Supported operators:
1820
+ # - equals `=`
1821
+ # - not equals `!=`
1822
+ # - greater than `>`
1823
+ # - greater than or equal to `>=`
1824
+ # - less than `<`
1825
+ # - less than or equal to `<=`
1826
+ # - pessimistic or twiddle-wakka`~>`
1827
+ #
1828
+ # And/or logic:
1829
+ # - "And" logic: put multiple versions on the same line
1830
+ # - e.g. `@version > 0.3.0, <1.0.0` means version must be greater than 0.3.0 AND less than 1.0.0
1831
+ # - "Or" logic: put multiple versions on subsequent lines
1832
+ # - e.g. the following means version must be less than 0.3.0 OR greater than 1.0.0
1833
+ # ```
1834
+ # # @version < 0.3.0
1835
+ # # @version > 1.0.0
1836
+ # ```
1837
+ # Prerelease versions:
1838
+ # - Prerelease versions are considered less than their non-prerelease counterparts
1839
+ # - e.g. `0.4.0-prerelease` is less than `0.4.0`
1840
+ #
1841
+ # RBI with no versions:
1842
+ # - RBI with no version annotations are automatically counted towards ALL versions
1843
+ #
1844
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#57
1845
+ class RBI::Rewriters::FilterVersions < ::RBI::Visitor
1846
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#73
1847
+ sig { params(version: ::Gem::Version).void }
1848
+ def initialize(version); end
1849
+
1850
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#79
1851
+ sig { override.params(node: T.nilable(::RBI::Node)).void }
1852
+ def visit(node); end
1853
+
1854
+ class << self
1855
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#66
1856
+ sig { params(tree: ::RBI::Tree, version: ::Gem::Version).void }
1857
+ def filter(tree, version); end
1858
+ end
1859
+ end
1860
+
1861
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#60
1862
+ RBI::Rewriters::FilterVersions::VERSION_PREFIX = T.let(T.unsafe(nil), String)
1863
+
1739
1864
  # source://rbi//lib/rbi/rewriters/group_nodes.rb#6
1740
1865
  class RBI::Rewriters::GroupNodes < ::RBI::Visitor
1741
1866
  # source://rbi//lib/rbi/rewriters/group_nodes.rb#10
@@ -1820,7 +1945,7 @@ class RBI::Rewriters::Merge::Conflict < ::T::Struct
1820
1945
  def to_s; end
1821
1946
 
1822
1947
  class << self
1823
- # source://sorbet-runtime/0.5.11128/lib/types/struct.rb#13
1948
+ # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
1824
1949
  def inherited(s); end
1825
1950
  end
1826
1951
  end
@@ -2037,7 +2162,7 @@ class RBI::Rewriters::RemoveKnownDefinitions::Operation < ::T::Struct
2037
2162
  def to_s; end
2038
2163
 
2039
2164
  class << self
2040
- # source://sorbet-runtime/0.5.11128/lib/types/struct.rb#13
2165
+ # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
2041
2166
  def inherited(s); end
2042
2167
  end
2043
2168
  end
@@ -2151,11 +2276,11 @@ end
2151
2276
 
2152
2277
  # Sends
2153
2278
  #
2154
- # source://rbi//lib/rbi/model.rb#927
2279
+ # source://rbi//lib/rbi/model.rb#1000
2155
2280
  class RBI::Send < ::RBI::NodeWithComments
2156
2281
  include ::RBI::Indexable
2157
2282
 
2158
- # source://rbi//lib/rbi/model.rb#945
2283
+ # source://rbi//lib/rbi/model.rb#1018
2159
2284
  sig do
2160
2285
  params(
2161
2286
  method: ::String,
@@ -2167,11 +2292,11 @@ class RBI::Send < ::RBI::NodeWithComments
2167
2292
  end
2168
2293
  def initialize(method, args = T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
2169
2294
 
2170
- # source://rbi//lib/rbi/model.rb#953
2295
+ # source://rbi//lib/rbi/model.rb#1026
2171
2296
  sig { params(arg: ::RBI::Arg).void }
2172
2297
  def <<(arg); end
2173
2298
 
2174
- # source://rbi//lib/rbi/model.rb#958
2299
+ # source://rbi//lib/rbi/model.rb#1031
2175
2300
  sig { params(other: T.nilable(::Object)).returns(T::Boolean) }
2176
2301
  def ==(other); end
2177
2302
 
@@ -2179,7 +2304,7 @@ class RBI::Send < ::RBI::NodeWithComments
2179
2304
  sig { override.params(v: ::RBI::Printer).void }
2180
2305
  def accept_printer(v); end
2181
2306
 
2182
- # source://rbi//lib/rbi/model.rb#934
2307
+ # source://rbi//lib/rbi/model.rb#1007
2183
2308
  sig { returns(T::Array[::RBI::Arg]) }
2184
2309
  def args; end
2185
2310
 
@@ -2191,20 +2316,20 @@ class RBI::Send < ::RBI::NodeWithComments
2191
2316
  sig { override.returns(T::Array[::String]) }
2192
2317
  def index_ids; end
2193
2318
 
2194
- # source://rbi//lib/rbi/model.rb#931
2319
+ # source://rbi//lib/rbi/model.rb#1004
2195
2320
  sig { returns(::String) }
2196
2321
  def method; end
2197
2322
 
2198
- # source://rbi//lib/rbi/model.rb#963
2323
+ # source://rbi//lib/rbi/model.rb#1036
2199
2324
  sig { returns(::String) }
2200
2325
  def to_s; end
2201
2326
  end
2202
2327
 
2203
2328
  # Sorbet's sigs
2204
2329
  #
2205
- # source://rbi//lib/rbi/model.rb#1027
2330
+ # source://rbi//lib/rbi/model.rb#1100
2206
2331
  class RBI::Sig < ::RBI::Node
2207
- # source://rbi//lib/rbi/model.rb#1059
2332
+ # source://rbi//lib/rbi/model.rb#1132
2208
2333
  sig do
2209
2334
  params(
2210
2335
  params: T::Array[::RBI::SigParam],
@@ -2221,11 +2346,11 @@ class RBI::Sig < ::RBI::Node
2221
2346
  end
2222
2347
  def initialize(params: T.unsafe(nil), return_type: T.unsafe(nil), is_abstract: T.unsafe(nil), is_override: T.unsafe(nil), is_overridable: T.unsafe(nil), is_final: T.unsafe(nil), type_params: T.unsafe(nil), checked: T.unsafe(nil), loc: T.unsafe(nil), &block); end
2223
2348
 
2224
- # source://rbi//lib/rbi/model.rb#1084
2349
+ # source://rbi//lib/rbi/model.rb#1157
2225
2350
  sig { params(param: ::RBI::SigParam).void }
2226
2351
  def <<(param); end
2227
2352
 
2228
- # source://rbi//lib/rbi/model.rb#1089
2353
+ # source://rbi//lib/rbi/model.rb#1167
2229
2354
  sig { params(other: ::Object).returns(T::Boolean) }
2230
2355
  def ==(other); end
2231
2356
 
@@ -2233,76 +2358,80 @@ class RBI::Sig < ::RBI::Node
2233
2358
  sig { override.params(v: ::RBI::Printer).void }
2234
2359
  def accept_printer(v); end
2235
2360
 
2236
- # source://rbi//lib/rbi/model.rb#1043
2361
+ # source://rbi//lib/rbi/model.rb#1162
2362
+ sig { params(name: ::String, type: ::String).void }
2363
+ def add_param(name, type); end
2364
+
2365
+ # source://rbi//lib/rbi/model.rb#1116
2237
2366
  sig { returns(T.nilable(::Symbol)) }
2238
2367
  def checked; end
2239
2368
 
2240
2369
  # @return [Symbol, nil]
2241
2370
  #
2242
- # source://rbi//lib/rbi/model.rb#1043
2371
+ # source://rbi//lib/rbi/model.rb#1116
2243
2372
  def checked=(_arg0); end
2244
2373
 
2245
2374
  # source://rbi//lib/rbi/printer.rb#656
2246
2375
  sig { returns(T::Boolean) }
2247
2376
  def inline_params?; end
2248
2377
 
2249
- # source://rbi//lib/rbi/model.rb#1037
2378
+ # source://rbi//lib/rbi/model.rb#1110
2250
2379
  sig { returns(T::Boolean) }
2251
2380
  def is_abstract; end
2252
2381
 
2253
2382
  # @return [Boolean]
2254
2383
  #
2255
- # source://rbi//lib/rbi/model.rb#1037
2384
+ # source://rbi//lib/rbi/model.rb#1110
2256
2385
  def is_abstract=(_arg0); end
2257
2386
 
2258
2387
  # @return [Boolean]
2259
2388
  #
2260
- # source://rbi//lib/rbi/model.rb#1037
2389
+ # source://rbi//lib/rbi/model.rb#1110
2261
2390
  def is_final; end
2262
2391
 
2263
2392
  # @return [Boolean]
2264
2393
  #
2265
- # source://rbi//lib/rbi/model.rb#1037
2394
+ # source://rbi//lib/rbi/model.rb#1110
2266
2395
  def is_final=(_arg0); end
2267
2396
 
2268
2397
  # @return [Boolean]
2269
2398
  #
2270
- # source://rbi//lib/rbi/model.rb#1037
2399
+ # source://rbi//lib/rbi/model.rb#1110
2271
2400
  def is_overridable; end
2272
2401
 
2273
2402
  # @return [Boolean]
2274
2403
  #
2275
- # source://rbi//lib/rbi/model.rb#1037
2404
+ # source://rbi//lib/rbi/model.rb#1110
2276
2405
  def is_overridable=(_arg0); end
2277
2406
 
2278
2407
  # @return [Boolean]
2279
2408
  #
2280
- # source://rbi//lib/rbi/model.rb#1037
2409
+ # source://rbi//lib/rbi/model.rb#1110
2281
2410
  def is_override; end
2282
2411
 
2283
2412
  # @return [Boolean]
2284
2413
  #
2285
- # source://rbi//lib/rbi/model.rb#1037
2414
+ # source://rbi//lib/rbi/model.rb#1110
2286
2415
  def is_override=(_arg0); end
2287
2416
 
2288
2417
  # source://rbi//lib/rbi/printer.rb#651
2289
2418
  sig { override.returns(T::Boolean) }
2290
2419
  def oneline?; end
2291
2420
 
2292
- # source://rbi//lib/rbi/model.rb#1031
2421
+ # source://rbi//lib/rbi/model.rb#1104
2293
2422
  sig { returns(T::Array[::RBI::SigParam]) }
2294
2423
  def params; end
2295
2424
 
2296
- # source://rbi//lib/rbi/model.rb#1034
2425
+ # source://rbi//lib/rbi/model.rb#1107
2297
2426
  sig { returns(T.nilable(::String)) }
2298
2427
  def return_type; end
2299
2428
 
2300
2429
  # @return [String, nil]
2301
2430
  #
2302
- # source://rbi//lib/rbi/model.rb#1034
2431
+ # source://rbi//lib/rbi/model.rb#1107
2303
2432
  def return_type=(_arg0); end
2304
2433
 
2305
- # source://rbi//lib/rbi/model.rb#1040
2434
+ # source://rbi//lib/rbi/model.rb#1113
2306
2435
  sig { returns(T::Array[::String]) }
2307
2436
  def type_params; end
2308
2437
 
@@ -2321,9 +2450,9 @@ class RBI::Sig < ::RBI::Node
2321
2450
  def sig_modifiers; end
2322
2451
  end
2323
2452
 
2324
- # source://rbi//lib/rbi/model.rb#1098
2453
+ # source://rbi//lib/rbi/model.rb#1176
2325
2454
  class RBI::SigParam < ::RBI::NodeWithComments
2326
- # source://rbi//lib/rbi/model.rb#1113
2455
+ # source://rbi//lib/rbi/model.rb#1191
2327
2456
  sig do
2328
2457
  params(
2329
2458
  name: ::String,
@@ -2335,7 +2464,7 @@ class RBI::SigParam < ::RBI::NodeWithComments
2335
2464
  end
2336
2465
  def initialize(name, type, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
2337
2466
 
2338
- # source://rbi//lib/rbi/model.rb#1121
2467
+ # source://rbi//lib/rbi/model.rb#1199
2339
2468
  sig { params(other: ::Object).returns(T::Boolean) }
2340
2469
  def ==(other); end
2341
2470
 
@@ -2347,7 +2476,7 @@ class RBI::SigParam < ::RBI::NodeWithComments
2347
2476
  sig { returns(T::Array[::String]) }
2348
2477
  def comments_lines; end
2349
2478
 
2350
- # source://rbi//lib/rbi/model.rb#1102
2479
+ # source://rbi//lib/rbi/model.rb#1180
2351
2480
  sig { returns(::String) }
2352
2481
  def name; end
2353
2482
 
@@ -2357,7 +2486,7 @@ class RBI::SigParam < ::RBI::NodeWithComments
2357
2486
 
2358
2487
  # @return [String]
2359
2488
  #
2360
- # source://rbi//lib/rbi/model.rb#1102
2489
+ # source://rbi//lib/rbi/model.rb#1180
2361
2490
  def type; end
2362
2491
  end
2363
2492
 
@@ -2439,9 +2568,9 @@ end
2439
2568
 
2440
2569
  # Sorbet's T::Enum
2441
2570
  #
2442
- # source://rbi//lib/rbi/model.rb#1239
2571
+ # source://rbi//lib/rbi/model.rb#1317
2443
2572
  class RBI::TEnum < ::RBI::Class
2444
- # source://rbi//lib/rbi/model.rb#1250
2573
+ # source://rbi//lib/rbi/model.rb#1328
2445
2574
  sig do
2446
2575
  params(
2447
2576
  name: ::String,
@@ -2453,11 +2582,11 @@ class RBI::TEnum < ::RBI::Class
2453
2582
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
2454
2583
  end
2455
2584
 
2456
- # source://rbi//lib/rbi/model.rb#1256
2585
+ # source://rbi//lib/rbi/model.rb#1334
2457
2586
  class RBI::TEnumBlock < ::RBI::NodeWithComments
2458
2587
  include ::RBI::Indexable
2459
2588
 
2460
- # source://rbi//lib/rbi/model.rb#1270
2589
+ # source://rbi//lib/rbi/model.rb#1348
2461
2590
  sig do
2462
2591
  params(
2463
2592
  names: T::Array[::String],
@@ -2468,7 +2597,7 @@ class RBI::TEnumBlock < ::RBI::NodeWithComments
2468
2597
  end
2469
2598
  def initialize(names = T.unsafe(nil), loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
2470
2599
 
2471
- # source://rbi//lib/rbi/model.rb#1282
2600
+ # source://rbi//lib/rbi/model.rb#1360
2472
2601
  sig { params(name: ::String).void }
2473
2602
  def <<(name); end
2474
2603
 
@@ -2476,7 +2605,7 @@ class RBI::TEnumBlock < ::RBI::NodeWithComments
2476
2605
  sig { override.params(v: ::RBI::Printer).void }
2477
2606
  def accept_printer(v); end
2478
2607
 
2479
- # source://rbi//lib/rbi/model.rb#1277
2608
+ # source://rbi//lib/rbi/model.rb#1355
2480
2609
  sig { returns(T::Boolean) }
2481
2610
  def empty?; end
2482
2611
 
@@ -2488,20 +2617,20 @@ class RBI::TEnumBlock < ::RBI::NodeWithComments
2488
2617
  sig { override.params(other: ::RBI::Node).void }
2489
2618
  def merge_with(other); end
2490
2619
 
2491
- # source://rbi//lib/rbi/model.rb#1260
2620
+ # source://rbi//lib/rbi/model.rb#1338
2492
2621
  sig { returns(T::Array[::String]) }
2493
2622
  def names; end
2494
2623
 
2495
- # source://rbi//lib/rbi/model.rb#1287
2624
+ # source://rbi//lib/rbi/model.rb#1365
2496
2625
  sig { override.returns(::String) }
2497
2626
  def to_s; end
2498
2627
  end
2499
2628
 
2500
2629
  # Sorbet's T::Struct
2501
2630
  #
2502
- # source://rbi//lib/rbi/model.rb#1128
2631
+ # source://rbi//lib/rbi/model.rb#1206
2503
2632
  class RBI::TStruct < ::RBI::Class
2504
- # source://rbi//lib/rbi/model.rb#1139
2633
+ # source://rbi//lib/rbi/model.rb#1217
2505
2634
  sig do
2506
2635
  params(
2507
2636
  name: ::String,
@@ -2513,11 +2642,11 @@ class RBI::TStruct < ::RBI::Class
2513
2642
  def initialize(name, loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
2514
2643
  end
2515
2644
 
2516
- # source://rbi//lib/rbi/model.rb#1177
2645
+ # source://rbi//lib/rbi/model.rb#1255
2517
2646
  class RBI::TStructConst < ::RBI::TStructField
2518
2647
  include ::RBI::Indexable
2519
2648
 
2520
- # source://rbi//lib/rbi/model.rb#1190
2649
+ # source://rbi//lib/rbi/model.rb#1268
2521
2650
  sig do
2522
2651
  params(
2523
2652
  name: ::String,
@@ -2534,7 +2663,7 @@ class RBI::TStructConst < ::RBI::TStructField
2534
2663
  sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
2535
2664
  def compatible_with?(other); end
2536
2665
 
2537
- # source://rbi//lib/rbi/model.rb#1196
2666
+ # source://rbi//lib/rbi/model.rb#1274
2538
2667
  sig { override.returns(T::Array[::String]) }
2539
2668
  def fully_qualified_names; end
2540
2669
 
@@ -2542,18 +2671,18 @@ class RBI::TStructConst < ::RBI::TStructField
2542
2671
  sig { override.returns(T::Array[::String]) }
2543
2672
  def index_ids; end
2544
2673
 
2545
- # source://rbi//lib/rbi/model.rb#1202
2674
+ # source://rbi//lib/rbi/model.rb#1280
2546
2675
  sig { override.returns(::String) }
2547
2676
  def to_s; end
2548
2677
  end
2549
2678
 
2550
2679
  # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2551
2680
  #
2552
- # source://rbi//lib/rbi/model.rb#1145
2681
+ # source://rbi//lib/rbi/model.rb#1223
2553
2682
  class RBI::TStructField < ::RBI::NodeWithComments
2554
2683
  abstract!
2555
2684
 
2556
- # source://rbi//lib/rbi/model.rb#1166
2685
+ # source://rbi//lib/rbi/model.rb#1244
2557
2686
  sig do
2558
2687
  params(
2559
2688
  name: ::String,
@@ -2573,46 +2702,46 @@ class RBI::TStructField < ::RBI::NodeWithComments
2573
2702
  sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
2574
2703
  def compatible_with?(other); end
2575
2704
 
2576
- # source://rbi//lib/rbi/model.rb#1155
2705
+ # source://rbi//lib/rbi/model.rb#1233
2577
2706
  sig { returns(T.nilable(::String)) }
2578
2707
  def default; end
2579
2708
 
2580
2709
  # @return [String, nil]
2581
2710
  #
2582
- # source://rbi//lib/rbi/model.rb#1155
2711
+ # source://rbi//lib/rbi/model.rb#1233
2583
2712
  def default=(_arg0); end
2584
2713
 
2585
2714
  # @abstract
2586
2715
  #
2587
- # source://rbi//lib/rbi/model.rb#1174
2716
+ # source://rbi//lib/rbi/model.rb#1252
2588
2717
  sig { abstract.returns(T::Array[::String]) }
2589
2718
  def fully_qualified_names; end
2590
2719
 
2591
- # source://rbi//lib/rbi/model.rb#1152
2720
+ # source://rbi//lib/rbi/model.rb#1230
2592
2721
  sig { returns(::String) }
2593
2722
  def name; end
2594
2723
 
2595
2724
  # @return [String]
2596
2725
  #
2597
- # source://rbi//lib/rbi/model.rb#1152
2726
+ # source://rbi//lib/rbi/model.rb#1230
2598
2727
  def name=(_arg0); end
2599
2728
 
2600
2729
  # @return [String]
2601
2730
  #
2602
- # source://rbi//lib/rbi/model.rb#1152
2731
+ # source://rbi//lib/rbi/model.rb#1230
2603
2732
  def type; end
2604
2733
 
2605
2734
  # @return [String]
2606
2735
  #
2607
- # source://rbi//lib/rbi/model.rb#1152
2736
+ # source://rbi//lib/rbi/model.rb#1230
2608
2737
  def type=(_arg0); end
2609
2738
  end
2610
2739
 
2611
- # source://rbi//lib/rbi/model.rb#1207
2740
+ # source://rbi//lib/rbi/model.rb#1285
2612
2741
  class RBI::TStructProp < ::RBI::TStructField
2613
2742
  include ::RBI::Indexable
2614
2743
 
2615
- # source://rbi//lib/rbi/model.rb#1220
2744
+ # source://rbi//lib/rbi/model.rb#1298
2616
2745
  sig do
2617
2746
  params(
2618
2747
  name: ::String,
@@ -2629,7 +2758,7 @@ class RBI::TStructProp < ::RBI::TStructField
2629
2758
  sig { override.params(other: ::RBI::Node).returns(T::Boolean) }
2630
2759
  def compatible_with?(other); end
2631
2760
 
2632
- # source://rbi//lib/rbi/model.rb#1226
2761
+ # source://rbi//lib/rbi/model.rb#1304
2633
2762
  sig { override.returns(T::Array[::String]) }
2634
2763
  def fully_qualified_names; end
2635
2764
 
@@ -2637,7 +2766,7 @@ class RBI::TStructProp < ::RBI::TStructField
2637
2766
  sig { override.returns(T::Array[::String]) }
2638
2767
  def index_ids; end
2639
2768
 
2640
- # source://rbi//lib/rbi/model.rb#1232
2769
+ # source://rbi//lib/rbi/model.rb#1310
2641
2770
  sig { override.returns(::String) }
2642
2771
  def to_s; end
2643
2772
  end
@@ -2670,7 +2799,7 @@ class RBI::Tree < ::RBI::NodeWithComments
2670
2799
  sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
2671
2800
  def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
2672
2801
 
2673
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#38
2802
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#38
2674
2803
  sig do
2675
2804
  params(
2676
2805
  name: ::String,
@@ -2680,19 +2809,19 @@ class RBI::Tree < ::RBI::NodeWithComments
2680
2809
  end
2681
2810
  def create_class(name, superclass_name: T.unsafe(nil), &block); end
2682
2811
 
2683
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#45
2812
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#45
2684
2813
  sig { params(name: ::String, value: ::String).void }
2685
2814
  def create_constant(name, value:); end
2686
2815
 
2687
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#55
2816
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#55
2688
2817
  sig { params(name: ::String).void }
2689
2818
  def create_extend(name); end
2690
2819
 
2691
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#50
2820
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#50
2692
2821
  sig { params(name: ::String).void }
2693
2822
  def create_include(name); end
2694
2823
 
2695
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#89
2824
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#89
2696
2825
  sig do
2697
2826
  params(
2698
2827
  name: ::String,
@@ -2705,19 +2834,42 @@ class RBI::Tree < ::RBI::NodeWithComments
2705
2834
  end
2706
2835
  def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
2707
2836
 
2708
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#60
2837
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#113
2838
+ sig do
2839
+ params(
2840
+ name: ::String,
2841
+ sigs: T::Array[::RBI::Sig],
2842
+ parameters: T::Array[::RBI::Param],
2843
+ class_method: T::Boolean,
2844
+ visibility: ::RBI::Visibility,
2845
+ comments: T::Array[::RBI::Comment]
2846
+ ).void
2847
+ end
2848
+ def create_method_with_sigs(name, sigs:, parameters: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
2849
+
2850
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#60
2709
2851
  sig { params(name: ::String).void }
2710
2852
  def create_mixes_in_class_methods(name); end
2711
2853
 
2712
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#25
2854
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#25
2713
2855
  sig { params(name: ::String, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
2714
2856
  def create_module(name, &block); end
2715
2857
 
2716
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#9
2858
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#9
2717
2859
  sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
2718
2860
  def create_path(constant, &block); end
2719
2861
 
2720
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#74
2862
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#135
2863
+ sig do
2864
+ params(
2865
+ parameters: T::Hash[T.any(::String, ::Symbol), ::String],
2866
+ type_parameters: T::Array[::String],
2867
+ return_type: ::String
2868
+ ).returns(::RBI::Sig)
2869
+ end
2870
+ def create_sig(parameters:, type_parameters: T.unsafe(nil), return_type: T.unsafe(nil)); end
2871
+
2872
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#74
2721
2873
  sig do
2722
2874
  params(
2723
2875
  name: ::String,
@@ -2738,6 +2890,10 @@ class RBI::Tree < ::RBI::NodeWithComments
2738
2890
  sig { returns(T::Boolean) }
2739
2891
  def empty?; end
2740
2892
 
2893
+ # source://rbi//lib/rbi/rewriters/filter_versions.rb#118
2894
+ sig { params(version: ::Gem::Version).void }
2895
+ def filter_versions!(version); end
2896
+
2741
2897
  # source://rbi//lib/rbi/rewriters/group_nodes.rb#38
2742
2898
  sig { void }
2743
2899
  def group_nodes!; end
@@ -2779,20 +2935,20 @@ class RBI::Tree < ::RBI::NodeWithComments
2779
2935
 
2780
2936
  private
2781
2937
 
2782
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#116
2938
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#150
2783
2939
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
2784
2940
  def create_node(node); end
2785
2941
 
2786
- # source://tapioca/0.11.10/lib/tapioca/rbi_ext/model.rb#111
2942
+ # source://tapioca/0.14.3/lib/tapioca/rbi_ext/model.rb#145
2787
2943
  sig { returns(T::Hash[::String, ::RBI::Node]) }
2788
2944
  def nodes_cache; end
2789
2945
  end
2790
2946
 
2791
- # source://rbi//lib/rbi/model.rb#1320
2947
+ # source://rbi//lib/rbi/model.rb#1398
2792
2948
  class RBI::TypeMember < ::RBI::NodeWithComments
2793
2949
  include ::RBI::Indexable
2794
2950
 
2795
- # source://rbi//lib/rbi/model.rb#1335
2951
+ # source://rbi//lib/rbi/model.rb#1413
2796
2952
  sig do
2797
2953
  params(
2798
2954
  name: ::String,
@@ -2808,7 +2964,7 @@ class RBI::TypeMember < ::RBI::NodeWithComments
2808
2964
  sig { override.params(v: ::RBI::Printer).void }
2809
2965
  def accept_printer(v); end
2810
2966
 
2811
- # source://rbi//lib/rbi/model.rb#1343
2967
+ # source://rbi//lib/rbi/model.rb#1421
2812
2968
  sig { returns(::String) }
2813
2969
  def fully_qualified_name; end
2814
2970
 
@@ -2816,17 +2972,17 @@ class RBI::TypeMember < ::RBI::NodeWithComments
2816
2972
  sig { override.returns(T::Array[::String]) }
2817
2973
  def index_ids; end
2818
2974
 
2819
- # source://rbi//lib/rbi/model.rb#1324
2975
+ # source://rbi//lib/rbi/model.rb#1402
2820
2976
  sig { returns(::String) }
2821
2977
  def name; end
2822
2978
 
2823
- # source://rbi//lib/rbi/model.rb#1350
2979
+ # source://rbi//lib/rbi/model.rb#1428
2824
2980
  sig { override.returns(::String) }
2825
2981
  def to_s; end
2826
2982
 
2827
2983
  # @return [String]
2828
2984
  #
2829
- # source://rbi//lib/rbi/model.rb#1324
2985
+ # source://rbi//lib/rbi/model.rb#1402
2830
2986
  def value; end
2831
2987
  end
2832
2988
 
@@ -2852,15 +3008,15 @@ RBI::VERSION = T.let(T.unsafe(nil), String)
2852
3008
  #
2853
3009
  # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2854
3010
  #
2855
- # source://rbi//lib/rbi/model.rb#841
3011
+ # source://rbi//lib/rbi/model.rb#914
2856
3012
  class RBI::Visibility < ::RBI::NodeWithComments
2857
3013
  abstract!
2858
3014
 
2859
- # source://rbi//lib/rbi/model.rb#851
3015
+ # source://rbi//lib/rbi/model.rb#924
2860
3016
  sig { params(visibility: ::Symbol, loc: T.nilable(::RBI::Loc), comments: T::Array[::RBI::Comment]).void }
2861
3017
  def initialize(visibility, loc: T.unsafe(nil), comments: T.unsafe(nil)); end
2862
3018
 
2863
- # source://rbi//lib/rbi/model.rb#857
3019
+ # source://rbi//lib/rbi/model.rb#930
2864
3020
  sig { params(other: ::RBI::Visibility).returns(T::Boolean) }
2865
3021
  def ==(other); end
2866
3022
 
@@ -2868,19 +3024,19 @@ class RBI::Visibility < ::RBI::NodeWithComments
2868
3024
  sig { override.params(v: ::RBI::Printer).void }
2869
3025
  def accept_printer(v); end
2870
3026
 
2871
- # source://rbi//lib/rbi/model.rb#872
3027
+ # source://rbi//lib/rbi/model.rb#945
2872
3028
  sig { returns(T::Boolean) }
2873
3029
  def private?; end
2874
3030
 
2875
- # source://rbi//lib/rbi/model.rb#867
3031
+ # source://rbi//lib/rbi/model.rb#940
2876
3032
  sig { returns(T::Boolean) }
2877
3033
  def protected?; end
2878
3034
 
2879
- # source://rbi//lib/rbi/model.rb#862
3035
+ # source://rbi//lib/rbi/model.rb#935
2880
3036
  sig { returns(T::Boolean) }
2881
3037
  def public?; end
2882
3038
 
2883
- # source://rbi//lib/rbi/model.rb#848
3039
+ # source://rbi//lib/rbi/model.rb#921
2884
3040
  sig { returns(::Symbol) }
2885
3041
  def visibility; end
2886
3042
  end