rbs 4.0.0.dev.4 → 4.0.0

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 (281) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +14 -14
  3. data/.github/workflows/bundle-update.yml +60 -0
  4. data/.github/workflows/c-check.yml +18 -11
  5. data/.github/workflows/comments.yml +5 -3
  6. data/.github/workflows/dependabot.yml +2 -2
  7. data/.github/workflows/ruby.yml +27 -34
  8. data/.github/workflows/rust.yml +95 -0
  9. data/.github/workflows/typecheck.yml +2 -2
  10. data/.github/workflows/windows.yml +2 -2
  11. data/.rubocop.yml +1 -1
  12. data/CHANGELOG.md +323 -0
  13. data/README.md +1 -1
  14. data/Rakefile +43 -33
  15. data/Steepfile +1 -0
  16. data/config.yml +426 -24
  17. data/core/array.rbs +307 -227
  18. data/core/basic_object.rbs +9 -8
  19. data/core/binding.rbs +0 -2
  20. data/core/builtin.rbs +2 -2
  21. data/core/class.rbs +6 -5
  22. data/core/comparable.rbs +55 -34
  23. data/core/complex.rbs +104 -78
  24. data/core/dir.rbs +61 -49
  25. data/core/encoding.rbs +12 -15
  26. data/core/enumerable.rbs +179 -87
  27. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  28. data/core/enumerator.rbs +65 -2
  29. data/core/errno.rbs +11 -2
  30. data/core/errors.rbs +58 -29
  31. data/core/exception.rbs +13 -13
  32. data/core/fiber.rbs +74 -54
  33. data/core/file.rbs +280 -177
  34. data/core/file_test.rbs +3 -3
  35. data/core/float.rbs +257 -92
  36. data/core/gc.rbs +425 -281
  37. data/core/hash.rbs +1045 -739
  38. data/core/integer.rbs +135 -137
  39. data/core/io/buffer.rbs +53 -42
  40. data/core/io/wait.rbs +13 -35
  41. data/core/io.rbs +192 -144
  42. data/core/kernel.rbs +216 -155
  43. data/core/marshal.rbs +4 -4
  44. data/core/match_data.rbs +15 -13
  45. data/core/math.rbs +107 -66
  46. data/core/method.rbs +69 -33
  47. data/core/module.rbs +244 -106
  48. data/core/nil_class.rbs +7 -6
  49. data/core/numeric.rbs +74 -63
  50. data/core/object.rbs +9 -11
  51. data/core/object_space.rbs +30 -23
  52. data/core/pathname.rbs +1322 -0
  53. data/core/proc.rbs +95 -58
  54. data/core/process.rbs +222 -202
  55. data/core/ractor.rbs +371 -515
  56. data/core/random.rbs +21 -3
  57. data/core/range.rbs +159 -57
  58. data/core/rational.rbs +60 -89
  59. data/core/rbs/unnamed/argf.rbs +60 -53
  60. data/core/rbs/unnamed/env_class.rbs +19 -14
  61. data/core/rbs/unnamed/main_class.rbs +123 -0
  62. data/core/rbs/unnamed/random.rbs +11 -118
  63. data/core/regexp.rbs +258 -214
  64. data/core/ruby.rbs +53 -0
  65. data/core/ruby_vm.rbs +38 -34
  66. data/core/rubygems/config_file.rbs +5 -5
  67. data/core/rubygems/errors.rbs +4 -71
  68. data/core/rubygems/requirement.rbs +5 -5
  69. data/core/rubygems/rubygems.rbs +16 -82
  70. data/core/rubygems/version.rbs +2 -3
  71. data/core/set.rbs +490 -360
  72. data/core/signal.rbs +26 -16
  73. data/core/string.rbs +3234 -1285
  74. data/core/struct.rbs +27 -26
  75. data/core/symbol.rbs +41 -34
  76. data/core/thread.rbs +135 -67
  77. data/core/time.rbs +81 -50
  78. data/core/trace_point.rbs +41 -35
  79. data/core/true_class.rbs +2 -2
  80. data/core/unbound_method.rbs +24 -16
  81. data/core/warning.rbs +7 -7
  82. data/docs/aliases.md +79 -0
  83. data/docs/collection.md +3 -3
  84. data/docs/config.md +171 -0
  85. data/docs/encoding.md +56 -0
  86. data/docs/gem.md +0 -1
  87. data/docs/inline.md +576 -0
  88. data/docs/sigs.md +3 -3
  89. data/docs/syntax.md +46 -16
  90. data/docs/type_fingerprint.md +21 -0
  91. data/exe/rbs +1 -1
  92. data/ext/rbs_extension/ast_translation.c +544 -116
  93. data/ext/rbs_extension/ast_translation.h +3 -0
  94. data/ext/rbs_extension/class_constants.c +16 -2
  95. data/ext/rbs_extension/class_constants.h +8 -0
  96. data/ext/rbs_extension/extconf.rb +5 -1
  97. data/ext/rbs_extension/legacy_location.c +33 -56
  98. data/ext/rbs_extension/legacy_location.h +37 -0
  99. data/ext/rbs_extension/main.c +44 -35
  100. data/include/rbs/ast.h +448 -173
  101. data/include/rbs/defines.h +27 -0
  102. data/include/rbs/lexer.h +30 -11
  103. data/include/rbs/location.h +25 -44
  104. data/include/rbs/parser.h +6 -6
  105. data/include/rbs/string.h +0 -2
  106. data/include/rbs/util/rbs_allocator.h +34 -13
  107. data/include/rbs/util/rbs_assert.h +12 -1
  108. data/include/rbs/util/rbs_constant_pool.h +0 -3
  109. data/include/rbs/util/rbs_encoding.h +2 -0
  110. data/include/rbs/util/rbs_unescape.h +2 -1
  111. data/include/rbs.h +8 -0
  112. data/lib/rbs/ast/annotation.rb +1 -1
  113. data/lib/rbs/ast/comment.rb +1 -1
  114. data/lib/rbs/ast/declarations.rb +10 -10
  115. data/lib/rbs/ast/members.rb +14 -14
  116. data/lib/rbs/ast/ruby/annotations.rb +293 -3
  117. data/lib/rbs/ast/ruby/comment_block.rb +24 -0
  118. data/lib/rbs/ast/ruby/declarations.rb +198 -3
  119. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
  120. data/lib/rbs/ast/ruby/members.rb +532 -22
  121. data/lib/rbs/ast/type_param.rb +24 -4
  122. data/lib/rbs/buffer.rb +20 -15
  123. data/lib/rbs/cli/diff.rb +16 -15
  124. data/lib/rbs/cli/validate.rb +38 -106
  125. data/lib/rbs/cli.rb +52 -19
  126. data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
  127. data/lib/rbs/collection/sources/git.rb +1 -0
  128. data/lib/rbs/definition.rb +1 -1
  129. data/lib/rbs/definition_builder/ancestor_builder.rb +62 -9
  130. data/lib/rbs/definition_builder/method_builder.rb +20 -0
  131. data/lib/rbs/definition_builder.rb +147 -25
  132. data/lib/rbs/diff.rb +7 -1
  133. data/lib/rbs/environment.rb +227 -74
  134. data/lib/rbs/environment_loader.rb +0 -6
  135. data/lib/rbs/errors.rb +27 -18
  136. data/lib/rbs/inline_parser.rb +342 -6
  137. data/lib/rbs/location_aux.rb +1 -1
  138. data/lib/rbs/locator.rb +5 -1
  139. data/lib/rbs/method_type.rb +5 -3
  140. data/lib/rbs/parser_aux.rb +20 -7
  141. data/lib/rbs/prototype/helpers.rb +57 -0
  142. data/lib/rbs/prototype/rb.rb +3 -28
  143. data/lib/rbs/prototype/rbi.rb +3 -20
  144. data/lib/rbs/prototype/runtime.rb +8 -0
  145. data/lib/rbs/resolver/constant_resolver.rb +2 -2
  146. data/lib/rbs/resolver/type_name_resolver.rb +116 -38
  147. data/lib/rbs/subtractor.rb +3 -1
  148. data/lib/rbs/test/type_check.rb +19 -2
  149. data/lib/rbs/type_name.rb +1 -1
  150. data/lib/rbs/types.rb +88 -78
  151. data/lib/rbs/unit_test/type_assertions.rb +35 -8
  152. data/lib/rbs/validator.rb +2 -2
  153. data/lib/rbs/version.rb +1 -1
  154. data/lib/rbs.rb +1 -2
  155. data/lib/rdoc/discover.rb +1 -1
  156. data/lib/rdoc_plugin/parser.rb +1 -1
  157. data/rbs.gemspec +4 -3
  158. data/rust/.gitignore +1 -0
  159. data/rust/Cargo.lock +378 -0
  160. data/rust/Cargo.toml +7 -0
  161. data/rust/ruby-rbs/Cargo.toml +22 -0
  162. data/rust/ruby-rbs/build.rs +764 -0
  163. data/rust/ruby-rbs/examples/locations.rs +60 -0
  164. data/rust/ruby-rbs/src/lib.rs +1 -0
  165. data/rust/ruby-rbs/src/node/mod.rs +742 -0
  166. data/rust/ruby-rbs/tests/sanity.rs +47 -0
  167. data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
  168. data/rust/ruby-rbs-sys/Cargo.toml +23 -0
  169. data/rust/ruby-rbs-sys/build.rs +204 -0
  170. data/rust/ruby-rbs-sys/src/lib.rs +50 -0
  171. data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
  172. data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
  173. data/rust/ruby-rbs-sys/wrapper.h +1 -0
  174. data/schema/typeParam.json +17 -1
  175. data/sig/ast/ruby/annotations.rbs +315 -4
  176. data/sig/ast/ruby/comment_block.rbs +8 -0
  177. data/sig/ast/ruby/declarations.rbs +102 -4
  178. data/sig/ast/ruby/members.rbs +108 -2
  179. data/sig/cli/diff.rbs +5 -11
  180. data/sig/cli/validate.rbs +12 -8
  181. data/sig/cli.rbs +18 -18
  182. data/sig/definition.rbs +6 -1
  183. data/sig/definition_builder.rbs +2 -0
  184. data/sig/environment.rbs +70 -12
  185. data/sig/errors.rbs +13 -14
  186. data/sig/inline_parser.rbs +39 -2
  187. data/sig/locator.rbs +0 -2
  188. data/sig/manifest.yaml +0 -1
  189. data/sig/method_builder.rbs +3 -1
  190. data/sig/parser.rbs +31 -13
  191. data/sig/prototype/helpers.rbs +2 -0
  192. data/sig/resolver/type_name_resolver.rbs +35 -7
  193. data/sig/source.rbs +3 -3
  194. data/sig/type_param.rbs +13 -8
  195. data/sig/types.rbs +6 -7
  196. data/sig/unit_test/spy.rbs +0 -8
  197. data/sig/unit_test/type_assertions.rbs +11 -0
  198. data/src/ast.c +410 -153
  199. data/src/lexer.c +1392 -1313
  200. data/src/lexer.re +3 -0
  201. data/src/lexstate.c +58 -37
  202. data/src/location.c +8 -48
  203. data/src/parser.c +977 -516
  204. data/src/string.c +0 -48
  205. data/src/util/rbs_allocator.c +89 -71
  206. data/src/util/rbs_assert.c +1 -1
  207. data/src/util/rbs_buffer.c +2 -2
  208. data/src/util/rbs_constant_pool.c +10 -14
  209. data/src/util/rbs_encoding.c +4 -8
  210. data/src/util/rbs_unescape.c +56 -20
  211. data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
  212. data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
  213. data/stdlib/cgi/0/core.rbs +9 -393
  214. data/stdlib/cgi/0/manifest.yaml +1 -0
  215. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  216. data/stdlib/coverage/0/coverage.rbs +7 -4
  217. data/stdlib/date/0/date.rbs +92 -79
  218. data/stdlib/date/0/date_time.rbs +25 -24
  219. data/stdlib/delegate/0/delegator.rbs +10 -7
  220. data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
  221. data/stdlib/digest/0/digest.rbs +110 -0
  222. data/stdlib/erb/0/erb.rbs +748 -347
  223. data/stdlib/etc/0/etc.rbs +55 -50
  224. data/stdlib/fileutils/0/fileutils.rbs +158 -139
  225. data/stdlib/forwardable/0/forwardable.rbs +13 -10
  226. data/stdlib/io-console/0/io-console.rbs +2 -2
  227. data/stdlib/json/0/json.rbs +217 -136
  228. data/stdlib/monitor/0/monitor.rbs +3 -3
  229. data/stdlib/net-http/0/net-http.rbs +162 -134
  230. data/stdlib/objspace/0/objspace.rbs +17 -34
  231. data/stdlib/open-uri/0/open-uri.rbs +48 -8
  232. data/stdlib/open3/0/open3.rbs +469 -10
  233. data/stdlib/openssl/0/openssl.rbs +475 -357
  234. data/stdlib/optparse/0/optparse.rbs +26 -17
  235. data/stdlib/pathname/0/pathname.rbs +11 -1381
  236. data/stdlib/pp/0/pp.rbs +9 -8
  237. data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
  238. data/stdlib/pstore/0/pstore.rbs +35 -30
  239. data/stdlib/psych/0/psych.rbs +65 -12
  240. data/stdlib/psych/0/store.rbs +2 -4
  241. data/stdlib/pty/0/pty.rbs +9 -6
  242. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  243. data/stdlib/rdoc/0/code_object.rbs +2 -1
  244. data/stdlib/rdoc/0/parser.rbs +1 -1
  245. data/stdlib/rdoc/0/rdoc.rbs +1 -1
  246. data/stdlib/rdoc/0/store.rbs +1 -1
  247. data/stdlib/resolv/0/resolv.rbs +25 -68
  248. data/stdlib/ripper/0/ripper.rbs +22 -19
  249. data/stdlib/securerandom/0/manifest.yaml +2 -0
  250. data/stdlib/securerandom/0/securerandom.rbs +7 -20
  251. data/stdlib/shellwords/0/shellwords.rbs +2 -2
  252. data/stdlib/singleton/0/singleton.rbs +3 -0
  253. data/stdlib/socket/0/addrinfo.rbs +7 -7
  254. data/stdlib/socket/0/basic_socket.rbs +3 -3
  255. data/stdlib/socket/0/ip_socket.rbs +10 -8
  256. data/stdlib/socket/0/socket.rbs +23 -10
  257. data/stdlib/socket/0/tcp_server.rbs +1 -1
  258. data/stdlib/socket/0/tcp_socket.rbs +11 -3
  259. data/stdlib/socket/0/udp_socket.rbs +1 -1
  260. data/stdlib/socket/0/unix_server.rbs +1 -1
  261. data/stdlib/stringio/0/stringio.rbs +1177 -85
  262. data/stdlib/strscan/0/string_scanner.rbs +27 -25
  263. data/stdlib/tempfile/0/tempfile.rbs +25 -21
  264. data/stdlib/time/0/time.rbs +8 -6
  265. data/stdlib/timeout/0/timeout.rbs +63 -7
  266. data/stdlib/tsort/0/cyclic.rbs +3 -0
  267. data/stdlib/tsort/0/tsort.rbs +7 -6
  268. data/stdlib/uri/0/common.rbs +42 -20
  269. data/stdlib/uri/0/file.rbs +3 -3
  270. data/stdlib/uri/0/generic.rbs +26 -18
  271. data/stdlib/uri/0/http.rbs +2 -2
  272. data/stdlib/uri/0/ldap.rbs +2 -2
  273. data/stdlib/uri/0/mailto.rbs +3 -3
  274. data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
  275. data/stdlib/zlib/0/deflate.rbs +4 -3
  276. data/stdlib/zlib/0/gzip_reader.rbs +6 -6
  277. data/stdlib/zlib/0/gzip_writer.rbs +14 -12
  278. data/stdlib/zlib/0/inflate.rbs +1 -1
  279. data/stdlib/zlib/0/need_dict.rbs +1 -1
  280. data/stdlib/zlib/0/zstream.rbs +1 -0
  281. metadata +50 -6
@@ -27,8 +27,8 @@ module URI
27
27
  # The components should be provided either as an Array, or as a Hash with keys
28
28
  # formed by preceding the component names with a colon.
29
29
  #
30
- # If an Array is used, the components must be passed in the order `[host,
31
- # path]`.
30
+ # If an Array is used, the components must be passed in the order <code>[host,
31
+ # path]</code>.
32
32
  #
33
33
  # A path from e.g. the File class should be escaped before being passed.
34
34
  #
@@ -43,7 +43,7 @@ module URI
43
43
  # :path => '/ruby/src'})
44
44
  # uri2.to_s # => "file://host.example.com/ruby/src"
45
45
  #
46
- # uri3 = URI::File.build({:path => URI::escape('/path/my file.txt')})
46
+ # uri3 = URI::File.build({:path => URI::RFC2396_PARSER.escape('/path/my file.txt')})
47
47
  # uri3.to_s # => "file:///path/my%20file.txt"
48
48
  #
49
49
  def self.build: (Array[String] args) -> URI::File
@@ -145,7 +145,7 @@ module URI
145
145
  #
146
146
  # At first, tries to create a new URI::Generic instance using
147
147
  # URI::Generic::build. But, if exception URI::InvalidComponentError is raised,
148
- # then it does URI::Escape.escape all URI components and tries again.
148
+ # then it does URI::RFC2396_PARSER.escape all URI components and tries again.
149
149
  #
150
150
  def self.build2: (Array[nil | String | Integer]) -> URI::Generic
151
151
  | ({ scheme: String?, userinfo: String?, host: String?, port: Integer?, registry: String?, path: String?, opaque: String?, query: String?, fragment: String? }) -> instance
@@ -293,7 +293,7 @@ module URI
293
293
  # -->
294
294
  # Returns the parser to be used.
295
295
  #
296
- # Unless a URI::Parser is defined, DEFAULT_PARSER is used.
296
+ # Unless the `parser` is defined, DEFAULT_PARSER is used.
297
297
  #
298
298
  def parser: () -> untyped
299
299
 
@@ -317,7 +317,7 @@ module URI
317
317
  # rdoc-file=lib/uri/generic.rb
318
318
  # - check_scheme(v)
319
319
  # -->
320
- # Checks the scheme `v` component against the URI::Parser Regexp for :SCHEME.
320
+ # Checks the scheme `v` component against the `parser` Regexp for :SCHEME.
321
321
  #
322
322
  def check_scheme: (String? v) -> true
323
323
 
@@ -374,8 +374,8 @@ module URI
374
374
  # rdoc-file=lib/uri/generic.rb
375
375
  # - check_user(v)
376
376
  # -->
377
- # Checks the user `v` component for RFC2396 compliance and against the
378
- # URI::Parser Regexp for :USERINFO.
377
+ # Checks the user `v` component for RFC2396 compliance and against the `parser`
378
+ # Regexp for :USERINFO.
379
379
  #
380
380
  # Can not have a registry or opaque component defined, with a user component
381
381
  # defined.
@@ -387,7 +387,7 @@ module URI
387
387
  # - check_password(v, user = @user)
388
388
  # -->
389
389
  # Checks the password `v` component for RFC2396 compliance and against the
390
- # URI::Parser Regexp for :USERINFO.
390
+ # `parser` Regexp for :USERINFO.
391
391
  #
392
392
  # Can not have a registry or opaque component defined, with a user component
393
393
  # defined.
@@ -424,7 +424,7 @@ module URI
424
424
  #
425
425
  # uri = URI.parse("http://john:S3nsit1ve@my.example.com")
426
426
  # uri.user = "sam"
427
- # uri.to_s #=> "http://sam:V3ry_S3nsit1ve@my.example.com"
427
+ # uri.to_s #=> "http://sam@my.example.com"
428
428
  #
429
429
  def user=: (String? user) -> String?
430
430
 
@@ -489,8 +489,8 @@ module URI
489
489
  # rdoc-file=lib/uri/generic.rb
490
490
  # - split_userinfo(ui)
491
491
  # -->
492
- # Returns the userinfo `ui` as `[user, password]` if properly formatted as
493
- # 'user:password'.
492
+ # Returns the userinfo `ui` as <code>[user, password]</code> if properly
493
+ # formatted as 'user:password'.
494
494
  #
495
495
  def split_userinfo: (String ui) -> Array[String | nil]
496
496
 
@@ -530,8 +530,8 @@ module URI
530
530
  # rdoc-file=lib/uri/generic.rb
531
531
  # - check_host(v)
532
532
  # -->
533
- # Checks the host `v` component for RFC2396 compliance and against the
534
- # URI::Parser Regexp for :HOST.
533
+ # Checks the host `v` component for RFC2396 compliance and against the `parser`
534
+ # Regexp for :HOST.
535
535
  #
536
536
  # Can not have a registry or opaque component defined, with a host component
537
537
  # defined.
@@ -611,8 +611,8 @@ module URI
611
611
  # rdoc-file=lib/uri/generic.rb
612
612
  # - check_port(v)
613
613
  # -->
614
- # Checks the port `v` component for RFC2396 compliance and against the
615
- # URI::Parser Regexp for :PORT.
614
+ # Checks the port `v` component for RFC2396 compliance and against the `parser`
615
+ # Regexp for :PORT.
616
616
  #
617
617
  # Can not have a registry or opaque component defined, with a port component
618
618
  # defined.
@@ -670,8 +670,8 @@ module URI
670
670
  # rdoc-file=lib/uri/generic.rb
671
671
  # - check_path(v)
672
672
  # -->
673
- # Checks the path `v` component for RFC2396 compliance and against the
674
- # URI::Parser Regexp for :ABS_PATH and :REL_PATH.
673
+ # Checks the path `v` component for RFC2396 compliance and against the `parser`
674
+ # Regexp for :ABS_PATH and :REL_PATH.
675
675
  #
676
676
  # Can not have a opaque component defined, with a path component defined.
677
677
  #
@@ -742,7 +742,7 @@ module URI
742
742
  # - check_opaque(v)
743
743
  # -->
744
744
  # Checks the opaque `v` component for RFC2396 compliance and against the
745
- # URI::Parser Regexp for :OPAQUE.
745
+ # `parser` Regexp for :OPAQUE.
746
746
  #
747
747
  # Can not have a host, port, user, or path component defined, with an opaque
748
748
  # component defined.
@@ -781,8 +781,7 @@ module URI
781
781
  # rdoc-file=lib/uri/generic.rb
782
782
  # - fragment=(v)
783
783
  # -->
784
- # Checks the fragment `v` component against the URI::Parser Regexp for
785
- # :FRAGMENT.
784
+ # Checks the fragment `v` component against the `parser` Regexp for :FRAGMENT.
786
785
  #
787
786
  # ## Args
788
787
  #
@@ -910,6 +909,13 @@ module URI
910
909
  #
911
910
  def merge: (URI::Generic | string oth) -> URI::Generic
912
911
 
912
+ # <!--
913
+ # rdoc-file=lib/uri/generic.rb
914
+ # - +(oth)
915
+ # -->
916
+ #
917
+ alias + merge
918
+
913
919
  # :stopdoc:
914
920
  def route_from_path: (String src, String dst) -> String
915
921
 
@@ -1010,6 +1016,7 @@ module URI
1010
1016
  # rdoc-file=lib/uri/generic.rb
1011
1017
  # - hash()
1012
1018
  # -->
1019
+ # Returns the hash value.
1013
1020
  #
1014
1021
  def hash: () -> Integer
1015
1022
 
@@ -1017,6 +1024,7 @@ module URI
1017
1024
  # rdoc-file=lib/uri/generic.rb
1018
1025
  # - eql?(oth)
1019
1026
  # -->
1027
+ # Compares with *oth* for Hash.
1020
1028
  #
1021
1029
  def eql?: (URI::Generic oth) -> bool
1022
1030
 
@@ -32,8 +32,8 @@ module URI
32
32
  # The components should be provided either as an Array, or as a Hash with keys
33
33
  # formed by preceding the component names with a colon.
34
34
  #
35
- # If an Array is used, the components must be passed in the order `[userinfo,
36
- # host, port, path, query, fragment]`.
35
+ # If an Array is used, the components must be passed in the order
36
+ # <code>[userinfo, host, port, path, query, fragment]</code>.
37
37
  #
38
38
  # Example:
39
39
  #
@@ -38,8 +38,8 @@ module URI
38
38
  # The components should be provided either as an Array, or as a Hash with keys
39
39
  # formed by preceding the component names with a colon.
40
40
  #
41
- # If an Array is used, the components must be passed in the order `[host, port,
42
- # dn, attributes, scope, filter, extensions]`.
41
+ # If an Array is used, the components must be passed in the order <code>[host,
42
+ # port, dn, attributes, scope, filter, extensions]</code>.
43
43
  #
44
44
  # Example:
45
45
  #
@@ -15,13 +15,13 @@ module URI
15
15
  # Creates a new URI::MailTo object from components, with syntax checking.
16
16
  #
17
17
  # Components can be provided as an Array or Hash. If an Array is used, the
18
- # components must be supplied as `[to, headers]`.
18
+ # components must be supplied as <code>[to, headers]</code>.
19
19
  #
20
20
  # If a Hash is used, the keys are the component names preceded by colons.
21
21
  #
22
22
  # The headers can be supplied as a pre-encoded string, such as
23
- # `"subject=subscribe&cc=address"`, or as an Array of Arrays like `[['subject',
24
- # 'subscribe'], ['cc', 'address']]`.
23
+ # <code>"subject=subscribe&cc=address"</code>, or as an Array of Arrays like
24
+ # <code>[['subject', 'subscribe'], ['cc', 'address']]</code>.
25
25
  #
26
26
  # Examples:
27
27
  #
@@ -17,14 +17,14 @@ module URI
17
17
  # <!-- rdoc-file=lib/uri/rfc2396_parser.rb -->
18
18
  # The Hash of patterns.
19
19
  #
20
- # See also URI::Parser.initialize_pattern.
20
+ # See also #initialize_pattern.
21
21
  #
22
22
  attr_reader pattern: Hash[Symbol, String]
23
23
 
24
24
  # <!-- rdoc-file=lib/uri/rfc2396_parser.rb -->
25
25
  # The Hash of Regexp.
26
26
  #
27
- # See also URI::Parser.initialize_regexp.
27
+ # See also #initialize_regexp.
28
28
  #
29
29
  attr_reader regexp: Hash[Symbol, Regexp]
30
30
 
@@ -34,7 +34,7 @@ module URI
34
34
  # -->
35
35
  # ## Synopsis
36
36
  #
37
- # URI::Parser.new([opts])
37
+ # URI::RFC2396_Parser.new([opts])
38
38
  #
39
39
  # ## Args
40
40
  #
@@ -52,7 +52,7 @@ module URI
52
52
  #
53
53
  # ## Examples
54
54
  #
55
- # p = URI::Parser.new(:ESCAPED => "(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")
55
+ # p = URI::RFC2396_Parser.new(:ESCAPED => "(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")
56
56
  # u = p.parse("http://example.jp/%uABCD") #=> #<URI::HTTP http://example.jp/%uABCD>
57
57
  # URI.parse(u.to_s) #=> raises URI::InvalidURIError
58
58
  #
@@ -75,7 +75,7 @@ module URI
75
75
  # : String to make safe
76
76
  #
77
77
  # `unsafe`
78
- # : Regexp to apply. Defaults to `self.regexp[:UNSAFE]`
78
+ # : Regexp to apply. Defaults to <code>self.regexp[:UNSAFE]</code>
79
79
  #
80
80
  #
81
81
  # ## Description
@@ -105,7 +105,7 @@ module URI
105
105
  # Attempts to parse and merge a set of URIs. If no `block` given, then returns
106
106
  # the result, else it calls `block` for each element in result.
107
107
  #
108
- # See also URI::Parser.make_regexp.
108
+ # See also #make_regexp.
109
109
  #
110
110
  def extract: (String str, ?Array[String] schemes) -> Array[String]
111
111
  | (String str, ?Array[String] schemes) { (String) -> untyped } -> nil
@@ -130,8 +130,9 @@ module URI
130
130
  # rdoc-file=lib/uri/rfc2396_parser.rb
131
131
  # - make_regexp(schemes = nil)
132
132
  # -->
133
- # Returns Regexp that is default `self.regexp[:ABS_URI_REF]`, unless `schemes`
134
- # is provided. Then it is a Regexp.union with `self.pattern[:X_ABS_URI]`.
133
+ # Returns Regexp that is default <code>self.regexp[:ABS_URI_REF]</code>, unless
134
+ # `schemes` is provided. Then it is a Regexp.union with
135
+ # <code>self.pattern[:X_ABS_URI]</code>.
135
136
  #
136
137
  def make_regexp: (?Array[String] schemes) -> Regexp
137
138
 
@@ -152,8 +153,7 @@ module URI
152
153
  #
153
154
  # ## Usage
154
155
  #
155
- # p = URI::Parser.new
156
- # p.parse("ldap://ldap.example.com/dc=example?user=john")
156
+ # URI::RFC2396_PARSER.parse("ldap://ldap.example.com/dc=example?user=john")
157
157
  # #=> #<URI::LDAP ldap://ldap.example.com/dc=example?user=john>
158
158
  #
159
159
  def parse: (String uri) -> URI::Generic
@@ -162,7 +162,7 @@ module URI
162
162
  # rdoc-file=lib/uri/rfc2396_parser.rb
163
163
  # - split(uri)
164
164
  # -->
165
- # Returns a split URI against `regexp[:ABS_URI]`.
165
+ # Returns a split URI against <code>regexp[:ABS_URI]</code>.
166
166
  #
167
167
  def split: (String uri) -> [ String?, String?, String?, String?, String?, String?, String?, String?, String? ]
168
168
 
@@ -177,7 +177,7 @@ module URI
177
177
  # : String to remove escapes from
178
178
  #
179
179
  # `escaped`
180
- # : Regexp to apply. Defaults to `self.regexp[:ESCAPED]`
180
+ # : Regexp to apply. Defaults to <code>self.regexp[:ESCAPED]</code>
181
181
  #
182
182
  #
183
183
  # ## Description
@@ -78,9 +78,10 @@ module Zlib
78
78
  # - flush(flush = Zlib::SYNC_FLUSH) -> String
79
79
  # - flush(flush = Zlib::SYNC_FLUSH) { |chunk| ... } -> nil
80
80
  # -->
81
- # This method is equivalent to `deflate('', flush)`. This method is just
82
- # provided to improve the readability of your Ruby program. If a block is given
83
- # chunks of deflate output are yielded to the block until the buffer is flushed.
81
+ # This method is equivalent to <code>deflate('', flush)</code>. This method is
82
+ # just provided to improve the readability of your Ruby program. If a block is
83
+ # given chunks of deflate output are yielded to the block until the buffer is
84
+ # flushed.
84
85
  #
85
86
  # See Zlib::Deflate#deflate for detail on the `flush` constants NO_FLUSH,
86
87
  # SYNC_FLUSH, FULL_FLUSH and FINISH.
@@ -35,8 +35,8 @@ module Zlib
35
35
  # Be careful of the footer of the gzip file. A gzip file has the checksum of
36
36
  # pre-compressed data in its footer. GzipReader checks all uncompressed data
37
37
  # against that checksum at the following cases, and if it fails, raises
38
- # `Zlib::GzipFile::NoFooter`, `Zlib::GzipFile::CRCError`, or
39
- # `Zlib::GzipFile::LengthError` exception.
38
+ # <code>Zlib::GzipFile::NoFooter</code>, <code>Zlib::GzipFile::CRCError</code>,
39
+ # or <code>Zlib::GzipFile::LengthError</code> exception.
40
40
  #
41
41
  # * When an reading request is received beyond the end of file (the end of
42
42
  # compressed data). That is, when Zlib::GzipReader#read,
@@ -62,8 +62,8 @@ module Zlib
62
62
  # GzipReader object associated with that file. Further details of this method
63
63
  # are in Zlib::GzipReader.new and ZLib::GzipFile.wrap.
64
64
  #
65
- def self.open: (String | _ToPath filename) -> instance
66
- | (String | _ToPath filename) { (instance gz) -> void } -> void
65
+ def self.open: (path filename) -> instance
66
+ | (path filename) { (instance gz) -> void } -> void
67
67
 
68
68
  # <!--
69
69
  # rdoc-file=ext/zlib/zlib.c
@@ -282,8 +282,8 @@ module Zlib
282
282
  # `read` method that behaves same as the IO#read.
283
283
  #
284
284
  # The `options` hash may be used to set the encoding of the data.
285
- # `:external_encoding`, `:internal_encoding` and `:encoding` may be set as in
286
- # IO::new.
285
+ # <code>:external_encoding</code>, <code>:internal_encoding</code> and
286
+ # <code>:encoding</code> may be set as in IO::new.
287
287
  #
288
288
  # If the gzip file header is incorrect, raises an Zlib::GzipFile::Error
289
289
  # exception.
@@ -38,7 +38,8 @@ module Zlib
38
38
  # returns a GzipWriter object associated with that file. Further details of
39
39
  # this method are found in Zlib::GzipWriter.new and Zlib::GzipFile.wrap.
40
40
  #
41
- def self.open: (String filename) { (instance gz) -> void } -> instance
41
+ def self.open: (String filename, ?Integer level, ?Integer strategy, **untyped opts) -> instance
42
+ | (String filename, ?Integer level, ?Integer strategy, **untyped opts) { (instance gz) -> void } -> nil
42
43
 
43
44
  # <!--
44
45
  # rdoc-file=ext/zlib/zlib.c
@@ -61,10 +62,11 @@ module Zlib
61
62
  # - flush(flush=nil)
62
63
  # -->
63
64
  # Flushes all the internal buffers of the GzipWriter object. The meaning of
64
- # `flush` is same as in Zlib::Deflate#deflate. `Zlib::SYNC_FLUSH` is used if
65
- # `flush` is omitted. It is no use giving flush `Zlib::NO_FLUSH`.
65
+ # `flush` is same as in Zlib::Deflate#deflate. <code>Zlib::SYNC_FLUSH</code> is
66
+ # used if `flush` is omitted. It is no use giving flush
67
+ # <code>Zlib::NO_FLUSH</code>.
66
68
  #
67
- def flush: (?Integer flush) -> String
69
+ def flush: (?Integer flush) -> self
68
70
 
69
71
  # <!--
70
72
  # rdoc-file=ext/zlib/zlib.c
@@ -74,16 +76,16 @@ module Zlib
74
76
  #
75
77
  # Setting the mtime in the gzip header does not effect the mtime of the file
76
78
  # generated. Different utilities that expand the gzipped files may use the mtime
77
- # header. For example the gunzip utility can use the `-N` flag which will set
78
- # the resultant file's mtime to the value in the header. By default many tools
79
- # will set the mtime of the expanded file to the mtime of the gzipped file, not
80
- # the mtime in the header.
79
+ # header. For example the gunzip utility can use the <code>-N</code> flag which
80
+ # will set the resultant file's mtime to the value in the header. By default
81
+ # many tools will set the mtime of the expanded file to the mtime of the gzipped
82
+ # file, not the mtime in the header.
81
83
  #
82
84
  # If you do not set an mtime, the default value will be the time when
83
85
  # compression started. Setting a value of 0 indicates no time stamp is
84
86
  # available.
85
87
  #
86
- def mtime=: (string | _ToPath | IO file_name) -> Time
88
+ def mtime=: (Time | Integer) -> void
87
89
 
88
90
  # <!--
89
91
  # rdoc-file=ext/zlib/zlib.c
@@ -158,9 +160,9 @@ module Zlib
158
160
  # that behaves the same as IO#write.
159
161
  #
160
162
  # The `options` hash may be used to set the encoding of the data.
161
- # `:external_encoding`, `:internal_encoding` and `:encoding` may be set as in
162
- # IO::new.
163
+ # <code>:external_encoding</code>, <code>:internal_encoding</code> and
164
+ # <code>:encoding</code> may be set as in IO::new.
163
165
  #
164
- def initialize: (_Writer io, Integer level, Integer strategy, **untyped opts) -> void
166
+ def initialize: (_Writer io, ?Integer? level, ?Integer? strategy, **untyped opts) -> void
165
167
  end
166
168
  end
@@ -123,7 +123,7 @@ module Zlib
123
123
  #
124
124
  # What is this?
125
125
  #
126
- # `:)`
126
+ # <code>:)</code>
127
127
  #
128
128
  def sync_point?: () -> bool
129
129
 
@@ -6,7 +6,7 @@ module Zlib
6
6
  # When zlib returns a Z_NEED_DICT if a preset dictionary is needed at this
7
7
  # point.
8
8
  #
9
- # Used by Zlib::Inflate.inflate and `Zlib.inflate`
9
+ # Used by Zlib::Inflate.inflate and <code>Zlib.inflate</code>
10
10
  #
11
11
  class NeedDict < Zlib::Error
12
12
  end
@@ -153,6 +153,7 @@ module Zlib
153
153
  # rdoc-file=ext/zlib/zlib.c
154
154
  # - flush_next_in -> input
155
155
  # -->
156
+ # Flushes input buffer and returns all data in that buffer.
156
157
  #
157
158
  def flush_next_in: () -> String
158
159
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.dev.4
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-05-20 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: logger
@@ -29,14 +29,28 @@ dependencies:
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.3.0
32
+ version: 1.6.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 1.3.0
39
+ version: 1.6.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: tsort
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
40
54
  description: RBS is the language for type signatures for Ruby and standard library
41
55
  definitions.
42
56
  email:
@@ -50,10 +64,12 @@ files:
50
64
  - ".clang-format"
51
65
  - ".clangd"
52
66
  - ".github/dependabot.yml"
67
+ - ".github/workflows/bundle-update.yml"
53
68
  - ".github/workflows/c-check.yml"
54
69
  - ".github/workflows/comments.yml"
55
70
  - ".github/workflows/dependabot.yml"
56
71
  - ".github/workflows/ruby.yml"
72
+ - ".github/workflows/rust.yml"
57
73
  - ".github/workflows/typecheck.yml"
58
74
  - ".github/workflows/windows.yml"
59
75
  - ".gitignore"
@@ -80,6 +96,7 @@ files:
80
96
  - core/encoding.rbs
81
97
  - core/enumerable.rbs
82
98
  - core/enumerator.rbs
99
+ - core/enumerator/arithmetic_sequence.rbs
83
100
  - core/enumerator/product.rbs
84
101
  - core/env.rbs
85
102
  - core/errno.rbs
@@ -109,6 +126,7 @@ files:
109
126
  - core/object.rbs
110
127
  - core/object_space.rbs
111
128
  - core/object_space/weak_key_map.rbs
129
+ - core/pathname.rbs
112
130
  - core/proc.rbs
113
131
  - core/process.rbs
114
132
  - core/ractor.rbs
@@ -118,9 +136,11 @@ files:
118
136
  - core/rb_config.rbs
119
137
  - core/rbs/unnamed/argf.rbs
120
138
  - core/rbs/unnamed/env_class.rbs
139
+ - core/rbs/unnamed/main_class.rbs
121
140
  - core/rbs/unnamed/random.rbs
122
141
  - core/refinement.rbs
123
142
  - core/regexp.rbs
143
+ - core/ruby.rbs
124
144
  - core/ruby_vm.rbs
125
145
  - core/rubygems/basic_specification.rbs
126
146
  - core/rubygems/config_file.rbs
@@ -150,16 +170,21 @@ files:
150
170
  - core/unbound_method.rbs
151
171
  - core/warning.rbs
152
172
  - docs/CONTRIBUTING.md
173
+ - docs/aliases.md
153
174
  - docs/architecture.md
154
175
  - docs/collection.md
176
+ - docs/config.md
155
177
  - docs/data_and_struct.md
178
+ - docs/encoding.md
156
179
  - docs/gem.md
180
+ - docs/inline.md
157
181
  - docs/rbs_by_example.md
158
182
  - docs/repo.md
159
183
  - docs/sigs.md
160
184
  - docs/stdlib.md
161
185
  - docs/syntax.md
162
186
  - docs/tools.md
187
+ - docs/type_fingerprint.md
163
188
  - exe/rbs
164
189
  - ext/rbs_extension/ast_translation.c
165
190
  - ext/rbs_extension/ast_translation.h
@@ -290,6 +315,22 @@ files:
290
315
  - lib/rdoc/discover.rb
291
316
  - lib/rdoc_plugin/parser.rb
292
317
  - rbs.gemspec
318
+ - rust/.gitignore
319
+ - rust/Cargo.lock
320
+ - rust/Cargo.toml
321
+ - rust/ruby-rbs-sys/Cargo.toml
322
+ - rust/ruby-rbs-sys/build.rs
323
+ - rust/ruby-rbs-sys/src/lib.rs
324
+ - rust/ruby-rbs-sys/vendor/rbs/include
325
+ - rust/ruby-rbs-sys/vendor/rbs/src
326
+ - rust/ruby-rbs-sys/wrapper.h
327
+ - rust/ruby-rbs/Cargo.toml
328
+ - rust/ruby-rbs/build.rs
329
+ - rust/ruby-rbs/examples/locations.rs
330
+ - rust/ruby-rbs/src/lib.rs
331
+ - rust/ruby-rbs/src/node/mod.rs
332
+ - rust/ruby-rbs/tests/sanity.rs
333
+ - rust/ruby-rbs/vendor/rbs/config.yml
293
334
  - schema/annotation.json
294
335
  - schema/comment.json
295
336
  - schema/decls.json
@@ -409,6 +450,7 @@ files:
409
450
  - stdlib/bigdecimal-math/0/big_math.rbs
410
451
  - stdlib/bigdecimal-math/0/manifest.yaml
411
452
  - stdlib/bigdecimal/0/big_decimal.rbs
453
+ - stdlib/cgi-escape/0/escape.rbs
412
454
  - stdlib/cgi/0/core.rbs
413
455
  - stdlib/cgi/0/manifest.yaml
414
456
  - stdlib/coverage/0/coverage.rbs
@@ -504,6 +546,7 @@ files:
504
546
  - stdlib/psych/0/psych.rbs
505
547
  - stdlib/psych/0/store.rbs
506
548
  - stdlib/pty/0/pty.rbs
549
+ - stdlib/random-formatter/0/random-formatter.rbs
507
550
  - stdlib/rdoc/0/code_object.rbs
508
551
  - stdlib/rdoc/0/comment.rbs
509
552
  - stdlib/rdoc/0/context.rbs
@@ -517,6 +560,7 @@ files:
517
560
  - stdlib/resolv/0/manifest.yaml
518
561
  - stdlib/resolv/0/resolv.rbs
519
562
  - stdlib/ripper/0/ripper.rbs
563
+ - stdlib/securerandom/0/manifest.yaml
520
564
  - stdlib/securerandom/0/securerandom.rbs
521
565
  - stdlib/shellwords/0/shellwords.rbs
522
566
  - stdlib/singleton/0/singleton.rbs
@@ -589,14 +633,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
589
633
  requirements:
590
634
  - - ">="
591
635
  - !ruby/object:Gem::Version
592
- version: '3.1'
636
+ version: '3.2'
593
637
  required_rubygems_version: !ruby/object:Gem::Requirement
594
638
  requirements:
595
639
  - - ">="
596
640
  - !ruby/object:Gem::Version
597
641
  version: '0'
598
642
  requirements: []
599
- rubygems_version: 3.6.2
643
+ rubygems_version: 4.0.3
600
644
  specification_version: 4
601
645
  summary: Type signature for Ruby.
602
646
  test_files: []