rbs 3.7.0 → 3.8.0.pre.1

Sign up to get free protection for your applications and to get access to all the features.
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/stdlib/nkf/0/nkf.rbs CHANGED
@@ -71,9 +71,11 @@
71
71
  # -h1 --hiragana
72
72
  # : Katakana to Hiragana conversion.
73
73
  #
74
+ #
74
75
  # -h2 --katakana
75
76
  # : Hiragana to Katakana conversion.
76
77
  #
78
+ #
77
79
  # -h3 --katakana-hiragana
78
80
  # : Katakana to Hiragana and Hiragana to Katakana conversion.
79
81
  #
@@ -102,12 +104,15 @@
102
104
  # -Z -Z0
103
105
  # : Convert X0208 alphabet to ASCII.
104
106
  #
107
+ #
105
108
  # -Z1
106
109
  # : Converts X0208 kankaku to single ASCII space.
107
110
  #
111
+ #
108
112
  # -Z2
109
113
  # : Converts X0208 kankaku to double ASCII spaces.
110
114
  #
115
+ #
111
116
  # -Z3
112
117
  # : Replacing Fullwidth >, <, ", & into '&gt;', '&lt;', '&quot;', '&amp;' as
113
118
  # in HTML.
@@ -128,6 +133,7 @@
128
133
  # -B1
129
134
  # : allows any char after ESC-( or ESC-$.
130
135
  #
136
+ #
131
137
  # -B2
132
138
  # : forces ASCII after NL.
133
139
  #
@@ -154,6 +160,7 @@
154
160
  # -mQ
155
161
  # : Decode MIME quoted stream. '_' in quoted stream is converted to space.
156
162
  #
163
+ #
157
164
  # -mN
158
165
  # : Non-strict decoding.
159
166
  #
@@ -172,6 +179,7 @@
172
179
  # -MB
173
180
  # : MIME encode Base64 stream.
174
181
  #
182
+ #
175
183
  # -MQ
176
184
  # : Perform quoted encoding.
177
185
  #
@@ -188,9 +196,11 @@
188
196
  # -Lu
189
197
  # : unix (LF)
190
198
  #
199
+ #
191
200
  # -Lw
192
201
  # : windows (CRLF)
193
202
  #
203
+ #
194
204
  # -Lm
195
205
  # : mac (CR)
196
206
  #
@@ -215,63 +225,83 @@
215
225
  # ISO-2022-JP
216
226
  # : a.k.a. RFC1468, 7bit JIS, JUNET
217
227
  #
228
+ #
218
229
  # EUC-JP (eucJP-nkf)
219
230
  # : a.k.a. AT&T JIS, Japanese EUC, UJIS
220
231
  #
232
+ #
221
233
  # eucJP-ascii
222
234
  # : a.k.a. x-eucjp-open-19970715-ascii
223
235
  #
236
+ #
224
237
  # eucJP-ms
225
238
  # : a.k.a. x-eucjp-open-19970715-ms
226
239
  #
240
+ #
227
241
  # CP51932
228
242
  # : Microsoft Version of EUC-JP.
229
243
  #
244
+ #
230
245
  # Shift_JIS
231
246
  # : SJIS, MS-Kanji
232
247
  #
248
+ #
233
249
  # Windows-31J
234
250
  # : a.k.a. CP932
235
251
  #
252
+ #
236
253
  # UTF-8
237
254
  # : same as UTF-8N
238
255
  #
256
+ #
239
257
  # UTF-8N
240
258
  # : UTF-8 without BOM
241
259
  #
260
+ #
242
261
  # UTF-8-BOM
243
262
  # : UTF-8 with BOM
244
263
  #
264
+ #
245
265
  # UTF-16
246
266
  # : same as UTF-16BE
247
267
  #
268
+ #
248
269
  # UTF-16BE
249
270
  # : UTF-16 Big Endian without BOM
250
271
  #
272
+ #
251
273
  # UTF-16BE-BOM
252
274
  # : UTF-16 Big Endian with BOM
253
275
  #
276
+ #
254
277
  # UTF-16LE
255
278
  # : UTF-16 Little Endian without BOM
256
279
  #
280
+ #
257
281
  # UTF-16LE-BOM
258
282
  # : UTF-16 Little Endian with BOM
259
283
  #
284
+ #
260
285
  # UTF-32
261
286
  # : same as UTF-32BE
262
287
  #
288
+ #
263
289
  # UTF-32BE
264
290
  # : UTF-32 Big Endian without BOM
265
291
  #
292
+ #
266
293
  # UTF-32BE-BOM
267
294
  # : UTF-32 Big Endian with BOM
268
295
  #
296
+ #
269
297
  # UTF-32LE
270
298
  # : UTF-32 Little Endian without BOM
271
299
  #
300
+ #
272
301
  # UTF-32LE-BOM
273
302
  # : UTF-32 Little Endian with BOM
274
303
  #
304
+ #
275
305
  # UTF8-MAC
276
306
  # : NKDed UTF-8, a.k.a. UTF8-NFD (input only)
277
307
  #
@@ -246,7 +246,6 @@ module ObjectSpace
246
246
  # * if an instance of IO object is provided, the output goes there, and the
247
247
  # object is returned.
248
248
  #
249
- #
250
249
  # This method is only expected to work with C Ruby. This is an experimental
251
250
  # method and is subject to change. In particular, the function signature and
252
251
  # output format are not guaranteed to be compatible in future versions of ruby.
@@ -395,7 +394,7 @@ module ObjectSpace
395
394
  #
396
395
  # With this method, you can find memory leaks.
397
396
  #
398
- # This method is only expected to work except with C Ruby.
397
+ # This method is only expected to work with C Ruby.
399
398
  #
400
399
  # Example:
401
400
  # ObjectSpace.reachable_objects_from(['a', 'b', 'c'])
@@ -12,7 +12,6 @@
12
12
  # * assert that it has `#changed`
13
13
  # * call `#notify_observers`
14
14
  #
15
- #
16
15
  # An observer subscribes to updates using Observable#add_observer, which also
17
16
  # specifies the method called via #notify_observers. The default method for
18
17
  # #notify_observers is #update.
@@ -139,6 +138,7 @@ module Observable
139
138
  #
140
139
  # `observer`
141
140
  # : the object that will be notified of changes.
141
+ #
142
142
  # `func`
143
143
  # : Symbol naming the method that will be called when this Observable has
144
144
  # changes.
@@ -186,6 +186,7 @@ module OpenURI
186
186
  # When false or nil is given, the environment variables are ignored and
187
187
  # connection will be made to a server directly.
188
188
  #
189
+ #
189
190
  # :proxy_http_basic_authentication
190
191
  # : Synopsis:
191
192
  # :proxy_http_basic_authentication =>
@@ -204,6 +205,7 @@ module OpenURI
204
205
  # If :proxy and :proxy_http_basic_authentication is specified, ArgumentError
205
206
  # is raised.
206
207
  #
208
+ #
207
209
  # :http_basic_authentication
208
210
  # : Synopsis:
209
211
  # :http_basic_authentication=>[user, password]
@@ -212,6 +214,7 @@ module OpenURI
212
214
  # which contains 2 strings: username and password. It is used for HTTP Basic
213
215
  # authentication defined by RFC 2617.
214
216
  #
217
+ #
215
218
  # :content_length_proc
216
219
  # : Synopsis:
217
220
  # :content_length_proc => lambda {|content_length| ... }
@@ -226,6 +229,7 @@ module OpenURI
226
229
  # When expected content length is unknown, the procedure is called with nil.
227
230
  # This happens when the HTTP response has no Content-Length header.
228
231
  #
232
+ #
229
233
  # :progress_proc
230
234
  # : Synopsis:
231
235
  # :progress_proc => lambda {|size| ...}
@@ -253,6 +257,7 @@ module OpenURI
253
257
  # pbar.set s if pbar
254
258
  # }) {|f| ... }
255
259
  #
260
+ #
256
261
  # :read_timeout
257
262
  # : Synopsis:
258
263
  # :read_timeout=>nil (no timeout)
@@ -260,6 +265,7 @@ module OpenURI
260
265
  #
261
266
  # :read_timeout option specifies a timeout of read for http connections.
262
267
  #
268
+ #
263
269
  # :open_timeout
264
270
  # : Synopsis:
265
271
  # :open_timeout=>nil (no timeout)
@@ -267,6 +273,7 @@ module OpenURI
267
273
  #
268
274
  # :open_timeout option specifies a timeout of open for http connections.
269
275
  #
276
+ #
270
277
  # :ssl_ca_cert
271
278
  # : Synopsis:
272
279
  # :ssl_ca_cert=>filename or an Array of filenames
@@ -274,12 +281,14 @@ module OpenURI
274
281
  # :ssl_ca_cert is used to specify CA certificate for SSL. If it is given,
275
282
  # default certificates are not used.
276
283
  #
284
+ #
277
285
  # :ssl_verify_mode
278
286
  # : Synopsis:
279
287
  # :ssl_verify_mode=>mode
280
288
  #
281
289
  # :ssl_verify_mode is used to specify openssl verify mode.
282
290
  #
291
+ #
283
292
  # :ssl_min_version
284
293
  # : Synopsis:
285
294
  # :ssl_min_version=>:TLS1_2
@@ -287,6 +296,7 @@ module OpenURI
287
296
  # :ssl_min_version option specifies the minimum allowed SSL/TLS protocol
288
297
  # version. See also OpenSSL::SSL::SSLContext#min_version=.
289
298
  #
299
+ #
290
300
  # :ssl_max_version
291
301
  # : Synopsis:
292
302
  # :ssl_max_version=>:TLS1_2
@@ -294,6 +304,7 @@ module OpenURI
294
304
  # :ssl_max_version option specifies the maximum allowed SSL/TLS protocol
295
305
  # version. See also OpenSSL::SSL::SSLContext#max_version=.
296
306
  #
307
+ #
297
308
  # :ftp_active_mode
298
309
  # : Synopsis:
299
310
  # :ftp_active_mode=>bool
@@ -302,6 +313,7 @@ module OpenURI
302
313
  # passive mode by default. Note that the active mode is default in Ruby 1.8
303
314
  # or prior.
304
315
  #
316
+ #
305
317
  # :redirect
306
318
  # : Synopsis:
307
319
  # :redirect=>bool
@@ -312,6 +324,46 @@ module OpenURI
312
324
  # OpenURI::HTTPRedirect exception raised on redirection. Using `true` also
313
325
  # means that redirections between http and ftp are permitted.
314
326
  #
327
+ #
328
+ # :max_redirects
329
+ # : Synopsis:
330
+ # :max_redirects=>int
331
+ #
332
+ # Number of HTTP redirects allowed before OpenURI::TooManyRedirects is
333
+ # raised. The default is 64.
334
+ #
335
+ #
336
+ # :request_specific_fields
337
+ # : Synopsis:
338
+ # :request_specific_fields => {}
339
+ # :request_specific_fields => lambda {|url| ...}
340
+ #
341
+ # :request_specific_fields option allows specifying custom header fields
342
+ # that are sent with the HTTP request. It can be passed as a Hash or a Proc
343
+ # that gets evaluated on each request and returns a Hash of header fields.
344
+ #
345
+ # If a Hash is provided, it specifies the headers only for the initial
346
+ # request and these headers will not be sent on redirects.
347
+ #
348
+ # If a Proc is provided, it will be executed for each request including
349
+ # redirects, allowing dynamic header customization based on the request URL.
350
+ # It is important that the Proc returns a Hash. And this Hash specifies the
351
+ # headers to be sent with the request.
352
+ #
353
+ # For Example with Hash
354
+ # URI.open("http://...",
355
+ # request_specific_fields: {"Authorization" => "token dummy"}) {|f| ... }
356
+ #
357
+ # For Example with Proc:
358
+ # URI.open("http://...",
359
+ # request_specific_fields: lambda { |uri|
360
+ # if uri.host == "example.com"
361
+ # {"Authorization" => "token dummy"}
362
+ # else
363
+ # {}
364
+ # end
365
+ # }) {|f| ... }
366
+ #
315
367
  def open: (*untyped) -> IO
316
368
  | [T] (*untyped) { (IO) -> T } -> T
317
369
 
@@ -17,7 +17,6 @@
17
17
  # * Open3.capture3: Executes the command; returns strings from $stdout and
18
18
  # $stderr.
19
19
  #
20
- #
21
20
  # * Each of these methods executes a single command in a process or subshell,
22
21
  # and returns pipes for $stdin, $stdout, and/or $stderr:
23
22
  #
@@ -28,7 +27,6 @@
28
27
  # * Open3.popen3: Executes the command; returns pipes for $stdin, $stdout,
29
28
  # and $stderr.
30
29
  #
31
- #
32
30
  # * Each of these methods executes one or more commands in processes and/or
33
31
  # subshells, returns pipes for the first $stdin, the last $stdout, or both:
34
32
  #
@@ -39,8 +37,6 @@
39
37
  # * Open3.pipeline_start: Does not wait for processes to complete.
40
38
  # * Open3.pipeline: Waits for processes to complete.
41
39
  #
42
- #
43
- #
44
40
  # Each of the methods above accepts:
45
41
  #
46
42
  # * An optional hash of environment variable names and values; see [Execution
@@ -66,7 +62,6 @@ module Open3
66
62
  # * Returns as `status` a `Process::Status` object that represents the exit
67
63
  # status of the child process.
68
64
  #
69
- #
70
65
  # Returns the array `[stdout_and_stderr_s, status]`:
71
66
  #
72
67
  # stdout_and_stderr_s, status = Open3.capture2e('echo "Foo"')
@@ -99,14 +94,12 @@ module Open3
99
94
  # * If entry `options[:binmode]` exists, the entry is removed and the internal
100
95
  # streams are set to binary mode.
101
96
  #
102
- #
103
97
  # The single required argument is one of the following:
104
98
  #
105
99
  # * `command_line` if it is a string, and if it begins with a shell reserved
106
100
  # word or special built-in, or if it contains one or more metacharacters.
107
101
  # * `exe_path` otherwise.
108
102
  #
109
- #
110
103
  # **Argument `command_line`**
111
104
  #
112
105
  # String argument `command_line` is a command line to be passed to a shell; it
@@ -133,7 +126,6 @@ module Open3
133
126
  # * A 2-element array containing the path to an executable and the string to
134
127
  # be used as the name of the executing process.
135
128
  #
136
- #
137
129
  # Example:
138
130
  #
139
131
  # Open3.capture2e('/usr/bin/date')