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/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")