rbs 3.7.0 → 3.8.0.pre.1

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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +3 -3
  3. data/.github/workflows/ruby.yml +7 -7
  4. data/CHANGELOG.md +52 -0
  5. data/core/array.rbs +1743 -1580
  6. data/core/basic_object.rbs +38 -35
  7. data/core/comparable.rbs +1 -1
  8. data/core/complex.rbs +165 -93
  9. data/core/data.rbs +1 -1
  10. data/core/dir.rbs +1 -17
  11. data/core/encoding.rbs +12 -6
  12. data/core/enumerable.rbs +270 -266
  13. data/core/enumerator.rbs +0 -2
  14. data/core/env.rbs +1 -1
  15. data/core/errno.rbs +33 -16
  16. data/core/errors.rbs +2 -2
  17. data/core/exception.rbs +236 -170
  18. data/core/fiber.rbs +3 -2
  19. data/core/file.rbs +32 -74
  20. data/core/float.rbs +125 -72
  21. data/core/gc.rbs +138 -40
  22. data/core/hash.rbs +120 -141
  23. data/core/integer.rbs +79 -50
  24. data/core/io/buffer.rbs +49 -43
  25. data/core/io.rbs +97 -144
  26. data/core/kernel.rbs +290 -200
  27. data/core/match_data.rbs +76 -2
  28. data/core/math.rbs +0 -36
  29. data/core/module.rbs +28 -23
  30. data/core/nil_class.rbs +0 -3
  31. data/core/numeric.rbs +100 -103
  32. data/core/object.rbs +0 -4
  33. data/core/object_space/weak_key_map.rbs +3 -4
  34. data/core/object_space.rbs +3 -3
  35. data/core/proc.rbs +0 -2
  36. data/core/process.rbs +109 -57
  37. data/core/ractor.rbs +37 -4
  38. data/core/range.rbs +114 -87
  39. data/core/rational.rbs +0 -2
  40. data/core/rbs/unnamed/argf.rbs +234 -33
  41. data/core/rbs/unnamed/env_class.rbs +35 -53
  42. data/core/rbs/unnamed/random.rbs +1 -2
  43. data/core/regexp.rbs +4 -52
  44. data/core/ruby_vm.rbs +88 -9
  45. data/core/rubygems/config_file.rbs +3 -0
  46. data/core/rubygems/errors.rbs +0 -5
  47. data/core/rubygems/platform.rbs +0 -9
  48. data/core/rubygems/rubygems.rbs +0 -5
  49. data/core/rubygems/version.rbs +6 -6
  50. data/core/set.rbs +3 -15
  51. data/core/string.rbs +130 -136
  52. data/core/struct.rbs +6 -18
  53. data/core/symbol.rbs +14 -21
  54. data/core/thread.rbs +32 -35
  55. data/core/time.rbs +127 -50
  56. data/core/trace_point.rbs +16 -0
  57. data/core/true_class.rbs +0 -1
  58. data/core/warning.rbs +9 -2
  59. data/docs/architecture.md +1 -1
  60. data/docs/syntax.md +1 -1
  61. data/ext/rbs_extension/location.c +29 -19
  62. data/ext/rbs_extension/parser.c +267 -292
  63. data/ext/rbs_extension/parserstate.c +56 -22
  64. data/lib/rbs/annotate/annotations.rb +3 -3
  65. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  66. data/lib/rbs/cli/diff.rb +3 -3
  67. data/lib/rbs/cli/validate.rb +1 -1
  68. data/lib/rbs/cli.rb +13 -13
  69. data/lib/rbs/collection/config.rb +3 -1
  70. data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
  71. data/lib/rbs/environment_loader.rb +1 -1
  72. data/lib/rbs/namespace.rb +1 -0
  73. data/lib/rbs/parser_aux.rb +2 -2
  74. data/lib/rbs/prototype/rb.rb +11 -8
  75. data/lib/rbs/prototype/rbi.rb +9 -5
  76. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  77. data/lib/rbs/prototype/runtime.rb +4 -5
  78. data/lib/rbs/type_name.rb +14 -9
  79. data/lib/rbs/unit_test/type_assertions.rb +2 -2
  80. data/lib/rbs/validator.rb +3 -1
  81. data/lib/rbs/version.rb +1 -1
  82. data/lib/rdoc_plugin/parser.rb +2 -2
  83. data/rbs.gemspec +4 -0
  84. data/sig/ancestor_graph.rbs +4 -4
  85. data/sig/namespace.rbs +2 -3
  86. data/sig/resolver/constant_resolver.rbs +2 -2
  87. data/sig/resolver/context.rbs +1 -1
  88. data/sig/type_alias_regularity.rbs +5 -5
  89. data/sig/typename.rbs +8 -5
  90. data/sig/use_map.rbs +1 -1
  91. data/sig/validator.rbs +2 -2
  92. data/stdlib/base64/0/base64.rbs +0 -9
  93. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  94. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  95. data/stdlib/cgi/0/core.rbs +47 -0
  96. data/stdlib/coverage/0/coverage.rbs +0 -3
  97. data/stdlib/csv/0/csv.rbs +18 -58
  98. data/stdlib/date/0/date.rbs +4 -19
  99. data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
  100. data/stdlib/digest/0/digest.rbs +25 -2
  101. data/stdlib/erb/0/erb.rbs +0 -1
  102. data/stdlib/etc/0/etc.rbs +51 -34
  103. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  104. data/stdlib/io-console/0/io-console.rbs +69 -15
  105. data/stdlib/ipaddr/0/ipaddr.rbs +8 -4
  106. data/stdlib/json/0/json.rbs +56 -71
  107. data/stdlib/logger/0/log_device.rbs +1 -1
  108. data/stdlib/logger/0/logger.rbs +3 -18
  109. data/stdlib/net-http/0/net-http.rbs +19 -77
  110. data/stdlib/nkf/0/nkf.rbs +30 -0
  111. data/stdlib/objspace/0/objspace.rbs +1 -2
  112. data/stdlib/observable/0/observable.rbs +1 -1
  113. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  114. data/stdlib/open3/0/open3.rbs +0 -8
  115. data/stdlib/openssl/0/openssl.rbs +136 -69
  116. data/stdlib/optparse/0/optparse.rbs +58 -18
  117. data/stdlib/pathname/0/pathname.rbs +2 -8
  118. data/stdlib/pp/0/pp.rbs +3 -1
  119. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  120. data/stdlib/pstore/0/pstore.rbs +0 -6
  121. data/stdlib/psych/0/psych.rbs +15 -4
  122. data/stdlib/pty/0/pty.rbs +46 -4
  123. data/stdlib/rdoc/0/code_object.rbs +0 -4
  124. data/stdlib/rdoc/0/markup.rbs +10 -12
  125. data/stdlib/rdoc/0/rdoc.rbs +1 -2
  126. data/stdlib/resolv/0/resolv.rbs +8 -3
  127. data/stdlib/ripper/0/ripper.rbs +0 -2
  128. data/stdlib/securerandom/0/securerandom.rbs +0 -2
  129. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  130. data/stdlib/singleton/0/singleton.rbs +0 -1
  131. data/stdlib/socket/0/addrinfo.rbs +0 -1
  132. data/stdlib/socket/0/basic_socket.rbs +0 -5
  133. data/stdlib/socket/0/socket.rbs +49 -25
  134. data/stdlib/socket/0/tcp_server.rbs +0 -3
  135. data/stdlib/socket/0/tcp_socket.rbs +58 -3
  136. data/stdlib/socket/0/udp_socket.rbs +0 -1
  137. data/stdlib/socket/0/unix_server.rbs +0 -3
  138. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  139. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  140. data/stdlib/time/0/time.rbs +48 -35
  141. data/stdlib/timeout/0/timeout.rbs +11 -8
  142. data/stdlib/tmpdir/0/tmpdir.rbs +8 -1
  143. data/stdlib/tsort/0/tsort.rbs +0 -4
  144. data/stdlib/uri/0/common.rbs +11 -30
  145. data/stdlib/uri/0/ftp.rbs +1 -1
  146. data/stdlib/uri/0/generic.rbs +22 -18
  147. data/stdlib/uri/0/http.rbs +2 -2
  148. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  149. data/stdlib/zlib/0/buf_error.rbs +1 -70
  150. data/stdlib/zlib/0/data_error.rbs +1 -70
  151. data/stdlib/zlib/0/deflate.rbs +8 -72
  152. data/stdlib/zlib/0/error.rbs +1 -70
  153. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  154. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  155. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  156. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  157. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  158. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  159. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  160. data/stdlib/zlib/0/inflate.rbs +4 -71
  161. data/stdlib/zlib/0/mem_error.rbs +1 -70
  162. data/stdlib/zlib/0/need_dict.rbs +1 -70
  163. data/stdlib/zlib/0/stream_end.rbs +1 -70
  164. data/stdlib/zlib/0/stream_error.rbs +1 -70
  165. data/stdlib/zlib/0/version_error.rbs +1 -70
  166. data/stdlib/zlib/0/zlib.rbs +0 -2
  167. data/stdlib/zlib/0/zstream.rbs +4 -72
  168. metadata +4 -6
data/core/dir.rbs CHANGED
@@ -10,7 +10,6 @@
10
10
  # retrieved in an [array-like fashion](rdoc-ref:Dir@Dir+As+Array-Like) or in
11
11
  # a [stream-like fashion](rdoc-ref:Dir@Dir+As+Stream-Like).
12
12
  #
13
- #
14
13
  # ## About the Examples
15
14
  #
16
15
  # Some examples on this page use this simple file tree:
@@ -33,7 +32,6 @@
33
32
  # * It has instance methods #children, #each, and #each_child.
34
33
  # * It includes [module Enumerable](rdoc-ref:Enumerable@What-27s+Here).
35
34
  #
36
- #
37
35
  # ## Dir As Stream-Like
38
36
  #
39
37
  # A Dir object is in some ways stream-like.
@@ -54,7 +52,6 @@
54
52
  # the position; if at end-of-stream, does not increment the position.
55
53
  # * Method #rewind sets the position to zero.
56
54
  #
57
- #
58
55
  # Examples (using the [simple file tree](rdoc-ref:Dir@About+the+Examples)):
59
56
  #
60
57
  # dir = Dir.new('example') # => #<Dir:example>
@@ -89,7 +86,6 @@
89
86
  # * Includes [module Enumerable](rdoc-ref:Enumerable@What-27s+Here), which
90
87
  # provides dozens of additional methods.
91
88
  #
92
- #
93
89
  # Here, class Dir provides methods that are useful for:
94
90
  #
95
91
  # * [Reading](rdoc-ref:Dir@Reading)
@@ -98,7 +94,6 @@
98
94
  # * [Iterating](rdoc-ref:Dir@Iterating)
99
95
  # * [Other](rdoc-ref:Dir@Other)
100
96
  #
101
- #
102
97
  # ### Reading
103
98
  #
104
99
  # * #close: Closes the directory stream for `self`.
@@ -110,7 +105,6 @@
110
105
  # * #seek: Sets the position in the directory stream for `self` the entry at
111
106
  # the given offset.
112
107
  #
113
- #
114
108
  # ### Setting
115
109
  #
116
110
  # * ::chdir: Changes the working directory of the current process to the given
@@ -118,7 +112,6 @@
118
112
  # * ::chroot: Changes the file-system root for the current process to the
119
113
  # given directory.
120
114
  #
121
- #
122
115
  # ### Querying
123
116
  #
124
117
  # * ::[]: Same as ::glob without the ability to pass flags.
@@ -141,7 +134,6 @@
141
134
  # * #tell (aliased as #pos): Returns the integer position in the directory
142
135
  # stream for `self`.
143
136
  #
144
- #
145
137
  # ### Iterating
146
138
  #
147
139
  # * ::each_child: Calls the given block with each entry in the given
@@ -153,7 +145,6 @@
153
145
  # * #each_child: Calls the given block with each entry in `self`, but not
154
146
  # including `.` or `..`.
155
147
  #
156
- #
157
148
  # ### Other
158
149
  #
159
150
  # * ::mkdir: Creates a directory at the given path, with optional permissions.
@@ -215,7 +206,6 @@ class Dir
215
206
  # defined.
216
207
  # * Otherwise makes no change.
217
208
  #
218
- #
219
209
  # With argument `new_dirpath` and a block, temporarily changes the working
220
210
  # directory:
221
211
  #
@@ -225,7 +215,6 @@ class Dir
225
215
  # * Restores the previous working directory.
226
216
  # * Returns the block's return value.
227
217
  #
228
- #
229
218
  # Example:
230
219
  #
231
220
  # Dir.chdir('/var/spool/mail')
@@ -395,7 +384,6 @@ class Dir
395
384
  # * Restores the previous working directory.
396
385
  # * Returns the block's return value.
397
386
  #
398
- #
399
387
  # Example:
400
388
  #
401
389
  # Dir.chdir('/var/spool/mail')
@@ -504,7 +492,6 @@ class Dir
504
492
  # * We use method Array#take to shorten returned arrays that otherwise would
505
493
  # be very large.
506
494
  #
507
- #
508
495
  # With no block, returns array *entry_names*; example (using the [simple file
509
496
  # tree](rdoc-ref:Dir@About+the+Examples)):
510
497
  #
@@ -564,7 +551,6 @@ class Dir
564
551
  #
565
552
  # Dir.glob('*c*').take(3) # => ["CONTRIBUTING.md", "COPYING", "COPYING.ja"]
566
553
  #
567
- #
568
554
  # Does not match Unix-like hidden entry names ("dot files"). To include
569
555
  # those in the matched entry names, use flag IO::FNM_DOTMATCH or something
570
556
  # like `'{*,.*}'`.
@@ -600,7 +586,6 @@ class Dir
600
586
  # Note that on Windows, the backslash character may not be used in a string
601
587
  # pattern: `Dir['c:\\foo*']` will not work, use `Dir['c:/foo*']` instead.
602
588
  #
603
- #
604
589
  # More examples (using the [simple file tree](rdoc-ref:Dir@About+the+Examples)):
605
590
  #
606
591
  # # We're in the example directory.
@@ -669,7 +654,7 @@ class Dir
669
654
  # rdoc-file=dir.c
670
655
  # - Dir.home(user_name = nil) -> dirpath
671
656
  # -->
672
- # Retruns the home directory path of the user specified with `user_name` if it
657
+ # Returns the home directory path of the user specified with `user_name` if it
673
658
  # is not `nil`, or the current login user:
674
659
  #
675
660
  # Dir.home # => "/home/me"
@@ -779,7 +764,6 @@ class Dir
779
764
  # * Restores the previous working directory.
780
765
  # * Returns the block's return value.
781
766
  #
782
- #
783
767
  # Uses Dir.fchdir if available, and Dir.chdir if not, see those methods for
784
768
  # caveats.
785
769
  #
data/core/encoding.rbs CHANGED
@@ -12,7 +12,6 @@
12
12
  # * The name of an encoding.
13
13
  # * An alias for an encoding name.
14
14
  #
15
- #
16
15
  # These are equivalent:
17
16
  #
18
17
  # 'foo'.encode(Encoding::US_ASCII) # Encoding object.
@@ -109,7 +108,6 @@ class Encoding
109
108
  # * String#inspect
110
109
  # * Regexp#inspect
111
110
  #
112
- #
113
111
  # While strings created from these locations will have this encoding, the
114
112
  # encoding may not be valid. Be sure to check String#valid_encoding?.
115
113
  #
@@ -157,7 +155,6 @@ class Encoding
157
155
  # * Values from ENV
158
156
  # * Values in ARGV including $PROGRAM_NAME
159
157
  #
160
- #
161
158
  # Additionally String#encode and String#encode! use the default internal
162
159
  # encoding if no encoding is given.
163
160
  #
@@ -198,10 +195,13 @@ class Encoding
198
195
  #
199
196
  # "external"
200
197
  # : default external encoding
198
+ #
201
199
  # "internal"
202
200
  # : default internal encoding
201
+ #
203
202
  # "locale"
204
203
  # : locale encoding
204
+ #
205
205
  # "filesystem"
206
206
  # : filesystem encoding
207
207
  #
@@ -999,7 +999,6 @@ class Encoding::Converter < Object
999
999
  # :partial_input is specified.
1000
1000
  # * conversion is finished (:finished)
1001
1001
  #
1002
- #
1003
1002
  # example:
1004
1003
  # ec = Encoding::Converter.new("UTF-8", "UTF-16BE")
1005
1004
  # ret = ec.primitive_convert(src="pi", dst="", nil, 100)
@@ -1212,7 +1211,6 @@ class Encoding::Converter < Object
1212
1211
  # * two-element arrays which contain encodings or encoding names, or
1213
1212
  # * strings representing decorator names.
1214
1213
  #
1215
- #
1216
1214
  # Encoding::Converter.new optionally takes an option. The option should be a
1217
1215
  # hash or an integer. The option hash can contain :invalid => nil, etc. The
1218
1216
  # option integer should be logical-or of constants such as
@@ -1220,25 +1218,34 @@ class Encoding::Converter < Object
1220
1218
  #
1221
1219
  # :invalid => nil
1222
1220
  # : Raise error on invalid byte sequence. This is a default behavior.
1221
+ #
1223
1222
  # :invalid => :replace
1224
1223
  # : Replace invalid byte sequence by replacement string.
1224
+ #
1225
1225
  # :undef => nil
1226
1226
  # : Raise an error if a character in source_encoding is not defined in
1227
1227
  # destination_encoding. This is a default behavior.
1228
+ #
1228
1229
  # :undef => :replace
1229
1230
  # : Replace undefined character in destination_encoding with replacement
1230
1231
  # string.
1232
+ #
1231
1233
  # :replace => string
1232
1234
  # : Specify the replacement string. If not specified, "uFFFD" is used for
1233
1235
  # Unicode encodings and "?" for others.
1236
+ #
1234
1237
  # :universal_newline => true
1235
1238
  # : Convert CRLF and CR to LF.
1239
+ #
1236
1240
  # :crlf_newline => true
1237
1241
  # : Convert LF to CRLF.
1242
+ #
1238
1243
  # :cr_newline => true
1239
1244
  # : Convert LF to CR.
1245
+ #
1240
1246
  # :lf_newline => true
1241
1247
  # : Convert CRLF and CR to LF (when writing).
1248
+ #
1242
1249
  # :xml => :text
1243
1250
  # : Escape as XML CharData. This form can be used as an HTML 4.0 #PCDATA.
1244
1251
  # * '&' -> '&amp;'
@@ -1258,7 +1265,6 @@ class Encoding::Converter < Object
1258
1265
  # such as &#xHH;
1259
1266
  #
1260
1267
  #
1261
- #
1262
1268
  # Examples:
1263
1269
  # # UTF-16BE to UTF-8
1264
1270
  # ec = Encoding::Converter.new("UTF-16BE", "UTF-8")