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
data/core/ruby.rbs ADDED
@@ -0,0 +1,53 @@
1
+ # <!-- rdoc-file=version.c -->
2
+ # The [Ruby](rdoc-ref:Ruby) module that contains portable information among
3
+ # implementations.
4
+ #
5
+ # The constants defined here are aliased in the toplevel with `RUBY_` prefix.
6
+ #
7
+ module Ruby
8
+ # <!-- rdoc-file=version.c -->
9
+ # The copyright string for ruby
10
+ #
11
+ COPYRIGHT: ::String
12
+
13
+ # <!-- rdoc-file=version.c -->
14
+ # The full ruby version string, like <code>ruby -v</code> prints
15
+ #
16
+ DESCRIPTION: ::String
17
+
18
+ # <!-- rdoc-file=version.c -->
19
+ # The engine or interpreter this ruby uses.
20
+ #
21
+ ENGINE: ::String
22
+
23
+ # <!-- rdoc-file=version.c -->
24
+ # The version of the engine or interpreter this ruby uses.
25
+ #
26
+ ENGINE_VERSION: ::String
27
+
28
+ # <!-- rdoc-file=version.c -->
29
+ # The patchlevel for this ruby. If this is a development build of ruby the
30
+ # patchlevel will be -1
31
+ #
32
+ PATCHLEVEL: ::Integer
33
+
34
+ # <!-- rdoc-file=version.c -->
35
+ # The platform for this ruby
36
+ #
37
+ PLATFORM: ::String
38
+
39
+ # <!-- rdoc-file=version.c -->
40
+ # The date this ruby was released
41
+ #
42
+ RELEASE_DATE: ::String
43
+
44
+ # <!-- rdoc-file=version.c -->
45
+ # The GIT commit hash for this ruby.
46
+ #
47
+ REVISION: ::String
48
+
49
+ # <!-- rdoc-file=version.c -->
50
+ # The running version of ruby
51
+ #
52
+ VERSION: ::String
53
+ end
data/core/ruby_vm.rbs CHANGED
@@ -41,8 +41,8 @@ RubyVM::OPTS: Array[String]
41
41
  # you want to learn how YARV works, but it also lets you control various
42
42
  # settings for the Ruby iseq compiler.
43
43
  #
44
- # You can find the source for the VM instructions in `insns.def` in the Ruby
45
- # source.
44
+ # You can find the source for the VM instructions in <code>insns.def</code> in
45
+ # the Ruby source.
46
46
  #
47
47
  # The instruction sequence results will almost certainly change as Ruby changes,
48
48
  # so example output in this documentation may be different from what you see.
@@ -183,8 +183,8 @@ class RubyVM::InstructionSequence < Object
183
183
  # -->
184
184
  # Returns the label of this instruction sequence.
185
185
  #
186
- # `<main>` if it's at the top level, `<compiled>` if it was evaluated from a
187
- # string.
186
+ # <code><main></code> if it's at the top level, <code><compiled></code> if it
187
+ # was evaluated from a string.
188
188
  #
189
189
  # For example, using irb:
190
190
  #
@@ -212,7 +212,7 @@ class RubyVM::InstructionSequence < Object
212
212
  # -->
213
213
  # Returns the path of this instruction sequence.
214
214
  #
215
- # `<compiled>` if the iseq was evaluated from a string.
215
+ # <code><compiled></code> if the iseq was evaluated from a string.
216
216
  #
217
217
  # For example, using irb:
218
218
  #
@@ -254,8 +254,8 @@ class RubyVM::InstructionSequence < Object
254
254
  # the following data:
255
255
  #
256
256
  # magic
257
- # : A string identifying the data format. **Always
258
- # `YARVInstructionSequence/SimpleDataFormat`.**
257
+ # : A string identifying the data format. <strong>Always
258
+ # <code>YARVInstructionSequence/SimpleDataFormat</code>.</strong>
259
259
  #
260
260
  #
261
261
  # major_version
@@ -273,14 +273,14 @@ class RubyVM::InstructionSequence < Object
273
273
  # misc
274
274
  # : A hash containing:
275
275
  #
276
- # `:arg_size`
276
+ # <code>:arg_size</code>
277
277
  # : the total number of arguments taken by the method or the block (0 if
278
278
  # *iseq* doesn't represent a method or block)
279
279
  #
280
- # `:local_size`
280
+ # <code>:local_size</code>
281
281
  # : the number of local variables + 1
282
282
  #
283
- # `:stack_max`
283
+ # <code>:stack_max</code>
284
284
  # : used in calculating the stack depth at which a SystemStackError is
285
285
  # thrown.
286
286
  #
@@ -290,15 +290,15 @@ class RubyVM::InstructionSequence < Object
290
290
  # : The name of the context (block, method, class, module, etc.) that this
291
291
  # instruction sequence belongs to.
292
292
  #
293
- # `<main>` if it's at the top level, `<compiled>` if it was evaluated from a
294
- # string.
293
+ # <code><main></code> if it's at the top level, <code><compiled></code> if
294
+ # it was evaluated from a string.
295
295
  #
296
296
  #
297
297
  # #path
298
298
  # : The relative path to the Ruby file where the instruction sequence was
299
299
  # loaded from.
300
300
  #
301
- # `<compiled>` if the iseq was evaluated from a string.
301
+ # <code><compiled></code> if the iseq was evaluated from a string.
302
302
  #
303
303
  #
304
304
  # #absolute_path
@@ -316,8 +316,9 @@ class RubyVM::InstructionSequence < Object
316
316
  # type
317
317
  # : The type of the instruction sequence.
318
318
  #
319
- # Valid values are `:top`, `:method`, `:block`, `:class`, `:rescue`,
320
- # `:ensure`, `:eval`, `:main`, and `plain`.
319
+ # Valid values are <code>:top</code>, <code>:method</code>,
320
+ # <code>:block</code>, <code>:class</code>, <code>:rescue</code>,
321
+ # <code>:ensure</code>, <code>:eval</code>, <code>:main</code>, and `plain`.
321
322
  #
322
323
  #
323
324
  # locals
@@ -328,7 +329,7 @@ class RubyVM::InstructionSequence < Object
328
329
  # params
329
330
  # : An Hash object containing parameter information.
330
331
  #
331
- # More info about these values can be found in `vm_core.h`.
332
+ # More info about these values can be found in <code>vm_core.h</code>.
332
333
  #
333
334
  #
334
335
  # catch_table
@@ -400,15 +401,16 @@ module RubyVM::AbstractSyntaxTree
400
401
  # RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
401
402
  # # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-1:9>
402
403
  #
403
- # If `keep_script_lines: true` option is provided, the text of the parsed source
404
- # is associated with nodes and is available via Node#script_lines.
404
+ # If <code>keep_script_lines: true</code> option is provided, the text of the
405
+ # parsed source is associated with nodes and is available via Node#script_lines.
405
406
  #
406
- # If `keep_tokens: true` option is provided, Node#tokens are populated.
407
+ # If <code>keep_tokens: true</code> option is provided, Node#tokens are
408
+ # populated.
407
409
  #
408
410
  # SyntaxError is raised if the given *string* is invalid syntax. To overwrite
409
- # this behavior, `error_tolerant: true` can be provided. In this case, the
410
- # parser will produce a tree where expressions with syntax errors would be
411
- # represented by Node with `type=:ERROR`.
411
+ # this behavior, <code>error_tolerant: true</code> can be provided. In this
412
+ # case, the parser will produce a tree where expressions with syntax errors
413
+ # would be represented by Node with <code>type=:ERROR</code>.
412
414
  #
413
415
  # root = RubyVM::AbstractSyntaxTree.parse("x = 1; p(x; y=2")
414
416
  # # <internal:ast>:33:in `parse': syntax error, unexpected ';', expecting ')' (SyntaxError)
@@ -443,7 +445,7 @@ module RubyVM::AbstractSyntaxTree
443
445
  #
444
446
  # See ::parse for explanation of keyword argument meaning and usage.
445
447
  #
446
- def self.parse_file: (String | ::_ToPath string, ?keep_script_lines: bool, ?error_tolerant: bool, ?keep_tokens: bool) -> Node
448
+ def self.parse_file: (path string, ?keep_script_lines: bool, ?error_tolerant: bool, ?keep_tokens: bool) -> Node
447
449
 
448
450
  # <!--
449
451
  # rdoc-file=ast.rb
@@ -661,7 +663,7 @@ module RubyVM::YJIT
661
663
  # -->
662
664
  # Marshal dumps exit locations to the given filename.
663
665
  # Usage:
664
- # If `--yjit-exit-locations` is passed, a file named
666
+ # If <code>--yjit-exit-locations</code> is passed, a file named
665
667
  # "yjit_exit_locations.dump" will automatically be generated.
666
668
  # If you want to collect traces manually, call `dump_exit_locations`
667
669
  # directly.
@@ -683,19 +685,21 @@ module RubyVM::YJIT
683
685
 
684
686
  # <!--
685
687
  # rdoc-file=yjit.rb
686
- # - enable(stats: false, log: false)
688
+ # - enable(stats: false, log: false, mem_size: nil, call_threshold: nil)
687
689
  # -->
688
690
  # Enable YJIT compilation. `stats` option decides whether to enable YJIT stats
689
- # or not. `compilation_log` decides
690
- # whether to enable YJIT compilation logging or not.
691
+ # or not. `log` decides
692
+ # whether to enable YJIT compilation logging or not. Optional `mem_size` and
693
+ # `call_threshold` can be
694
+ # provided to override default configuration.
691
695
  # * `stats`:
692
696
  # * `false`: Don't enable stats.
693
697
  # * `true`: Enable stats. Print stats at exit.
694
- # * `:quiet`: Enable stats. Do not print stats at exit.
698
+ # * <code>:quiet</code>: Enable stats. Do not print stats at exit.
695
699
  # * `log`:
696
700
  # * `false`: Don't enable the log.
697
701
  # * `true`: Enable the log. Print log at exit.
698
- # * `:quiet`: Enable the log. Do not print log at exit.
702
+ # * <code>:quiet</code>: Enable the log. Do not print log at exit.
699
703
  #
700
704
  def self.enable: (?stats: false | true | :quiet) -> void
701
705
 
@@ -727,7 +731,7 @@ module RubyVM::YJIT
727
731
  # rdoc-file=yjit.rb
728
732
  # - reset_stats!()
729
733
  # -->
730
- # Discard statistics collected for `--yjit-stats`.
734
+ # Discard statistics collected for <code>--yjit-stats</code>.
731
735
  #
732
736
  def self.reset_stats!: () -> void
733
737
 
@@ -735,8 +739,8 @@ module RubyVM::YJIT
735
739
  # rdoc-file=yjit.rb
736
740
  # - runtime_stats(key = nil)
737
741
  # -->
738
- # Return a hash for statistics generated for the `--yjit-stats` command line
739
- # option.
742
+ # Return a hash for statistics generated for the <code>--yjit-stats</code>
743
+ # command line option.
740
744
  # Return `nil` when option is not passed or unavailable.
741
745
  # If a symbol argument is provided, return only the value for the named stat.
742
746
  # If any other type is provided, raises TypeError.
@@ -747,7 +751,7 @@ module RubyVM::YJIT
747
751
  # rdoc-file=yjit.rb
748
752
  # - stats_enabled?()
749
753
  # -->
750
- # Check if `--yjit-stats` is used.
754
+ # Check if <code>--yjit-stats</code> is used.
751
755
  #
752
756
  def self.stats_enabled?: () -> bool
753
757
 
@@ -756,7 +760,7 @@ module RubyVM::YJIT
756
760
  # - stats_string()
757
761
  # -->
758
762
  # Format and print out counters as a String. This returns a non-empty
759
- # content only when `--yjit-stats` is enabled.
763
+ # content only when <code>--yjit-stats</code> is enabled.
760
764
  #
761
765
  def self.stats_string: () -> String
762
766
  end
@@ -10,20 +10,20 @@
10
10
  # install: --no-rdoc --no-ri
11
11
  # update: --no-rdoc --no-ri
12
12
  #
13
- # You can use `gem:` to set default arguments for all commands.
13
+ # You can use <code>gem:</code> to set default arguments for all commands.
14
14
  #
15
15
  # RubyGems options use symbol keys. Valid options are:
16
16
  #
17
- # `:backtrace`
17
+ # <code>:backtrace</code>
18
18
  # : See #backtrace
19
19
  #
20
- # `:sources`
20
+ # <code>:sources</code>
21
21
  # : Sets Gem::sources
22
22
  #
23
- # `:verbose`
23
+ # <code>:verbose</code>
24
24
  # : See #verbose
25
25
  #
26
- # `:concurrent_downloads`
26
+ # <code>:concurrent_downloads</code>
27
27
  # : See #concurrent_downloads
28
28
  #
29
29
  #
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # For user documentation, see:
6
6
  #
7
- # * `gem help` and `gem help [command]`
7
+ # * `gem help` and <code>gem help [command]</code>
8
8
  # * [RubyGems User Guide](https://guides.rubygems.org/)
9
9
  # * [Frequently Asked Questions](https://guides.rubygems.org/faqs)
10
10
  #
@@ -17,7 +17,7 @@
17
17
  # Further RubyGems documentation can be found at:
18
18
  #
19
19
  # * [RubyGems Guides](https://guides.rubygems.org)
20
- # * [RubyGems API](https://www.rubydoc.info/github/rubygems/rubygems) (also
20
+ # * [RubyGems API](https://www.rubydoc.info/github/ruby/rubygems) (also
21
21
  # available from `gem server`)
22
22
  #
23
23
  # ## RubyGems Plugins
@@ -48,7 +48,7 @@
48
48
  # ## Bugs
49
49
  #
50
50
  # You can submit bugs to the [RubyGems bug
51
- # tracker](https://github.com/rubygems/rubygems/issues) on GitHub
51
+ # tracker](https://github.com/ruby/rubygems/issues) on GitHub
52
52
  #
53
53
  # ## Credits
54
54
  #
@@ -83,80 +83,13 @@
83
83
  #
84
84
  # ## License
85
85
  #
86
- # See
87
- # [LICENSE.txt](https://github.com/rubygems/rubygems/blob/master/LICENSE.txt)
86
+ # See [LICENSE.txt](https://github.com/ruby/rubygems/blob/master/LICENSE.txt)
88
87
  # for permissions.
89
88
  #
90
89
  # Thanks!
91
90
  #
92
91
  # -The RubyGems Team
93
92
  #
94
- # <!-- rdoc-file=lib/rubygems/deprecate.rb -->
95
- # Provides 3 methods for declaring when something is going away.
96
- #
97
- # +deprecate(name, repl, year, month)+:
98
- # Indicate something may be removed on/after a certain date.
99
- #
100
- # +rubygems_deprecate(name, replacement=:none)+:
101
- # Indicate something will be removed in the next major RubyGems version,
102
- # and (optionally) a replacement for it.
103
- #
104
- # `rubygems_deprecate_command`:
105
- # Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be
106
- # removed in the next RubyGems version.
107
- #
108
- # Also provides `skip_during` for temporarily turning off deprecation warnings.
109
- # This is intended to be used in the test suite, so deprecation warnings don't
110
- # cause test failures if you need to make sure stderr is otherwise empty.
111
- #
112
- # Example usage of `deprecate` and `rubygems_deprecate`:
113
- #
114
- # class Legacy
115
- # def self.some_class_method
116
- # # ...
117
- # end
118
- #
119
- # def some_instance_method
120
- # # ...
121
- # end
122
- #
123
- # def some_old_method
124
- # # ...
125
- # end
126
- #
127
- # extend Gem::Deprecate
128
- # deprecate :some_instance_method, "X.z", 2011, 4
129
- # rubygems_deprecate :some_old_method, "Modern#some_new_method"
130
- #
131
- # class << self
132
- # extend Gem::Deprecate
133
- # deprecate :some_class_method, :none, 2011, 4
134
- # end
135
- # end
136
- #
137
- # Example usage of `rubygems_deprecate_command`:
138
- #
139
- # class Gem::Commands::QueryCommand < Gem::Command
140
- # extend Gem::Deprecate
141
- # rubygems_deprecate_command
142
- #
143
- # # ...
144
- # end
145
- #
146
- # Example usage of `skip_during`:
147
- #
148
- # class TestSomething < Gem::Testcase
149
- # def test_some_thing_with_deprecations
150
- # Gem::Deprecate.skip_during do
151
- # actual_stdout, actual_stderr = capture_output do
152
- # Gem.something_deprecated
153
- # end
154
- # assert_empty actual_stdout
155
- # assert_equal(expected, actual_stderr)
156
- # end
157
- # end
158
- # end
159
- #
160
93
  module Gem
161
94
  # <!-- rdoc-file=lib/rubygems/errors.rb -->
162
95
  # Raised when RubyGems is unable to load or activate a gem. Contains the name
@@ -2,7 +2,7 @@
2
2
  module Gem
3
3
  # <!-- rdoc-file=lib/rubygems/requirement.rb -->
4
4
  # A Requirement is a set of one or more version restrictions. It supports a few
5
- # (`=, !=, >, <, >=, <=, ~>`) different restriction operators.
5
+ # (<code>=, !=, >, <, >=, <=, ~></code>) different restriction operators.
6
6
  #
7
7
  # See Gem::Version for a description on how versions and requirements work
8
8
  # together in RubyGems.
@@ -60,11 +60,11 @@ module Gem
60
60
  # rdoc-file=lib/rubygems/requirement.rb
61
61
  # - parse(obj)
62
62
  # -->
63
- # Parse `obj`, returning an `[op, version]` pair. `obj` can be a String or a
64
- # Gem::Version.
63
+ # Parse `obj`, returning an <code>[op, version]</code> pair. `obj` can be a
64
+ # String or a Gem::Version.
65
65
  #
66
66
  # If `obj` is a String, it can be either a full requirement specification, like
67
- # `">= 1.2"`, or a simple version number, like `"1.2"`.
67
+ # <code>">= 1.2"</code>, or a simple version number, like <code>"1.2"</code>.
68
68
  #
69
69
  # parse("> 1.0") # => [">", Gem::Version.new("1.0")]
70
70
  # parse("1.0") # => ["=", Gem::Version.new("1.0")]
@@ -78,7 +78,7 @@ module Gem
78
78
  # -->
79
79
  # Constructs a requirement from `requirements`. Requirements can be Strings,
80
80
  # Gem::Versions, or Arrays of those. `nil` and duplicate requirements are
81
- # ignored. An empty set of `requirements` is the same as `">= 0"`.
81
+ # ignored. An empty set of `requirements` is the same as <code>">= 0"</code>.
82
82
  #
83
83
  def initialize: (*String | Gem::Version requirements) -> void
84
84
 
@@ -4,7 +4,7 @@
4
4
  #
5
5
  # For user documentation, see:
6
6
  #
7
- # * `gem help` and `gem help [command]`
7
+ # * `gem help` and <code>gem help [command]</code>
8
8
  # * [RubyGems User Guide](https://guides.rubygems.org/)
9
9
  # * [Frequently Asked Questions](https://guides.rubygems.org/faqs)
10
10
  #
@@ -17,7 +17,7 @@
17
17
  # Further RubyGems documentation can be found at:
18
18
  #
19
19
  # * [RubyGems Guides](https://guides.rubygems.org)
20
- # * [RubyGems API](https://www.rubydoc.info/github/rubygems/rubygems) (also
20
+ # * [RubyGems API](https://www.rubydoc.info/github/ruby/rubygems) (also
21
21
  # available from `gem server`)
22
22
  #
23
23
  # ## RubyGems Plugins
@@ -48,7 +48,7 @@
48
48
  # ## Bugs
49
49
  #
50
50
  # You can submit bugs to the [RubyGems bug
51
- # tracker](https://github.com/rubygems/rubygems/issues) on GitHub
51
+ # tracker](https://github.com/ruby/rubygems/issues) on GitHub
52
52
  #
53
53
  # ## Credits
54
54
  #
@@ -83,80 +83,13 @@
83
83
  #
84
84
  # ## License
85
85
  #
86
- # See
87
- # [LICENSE.txt](https://github.com/rubygems/rubygems/blob/master/LICENSE.txt)
86
+ # See [LICENSE.txt](https://github.com/ruby/rubygems/blob/master/LICENSE.txt)
88
87
  # for permissions.
89
88
  #
90
89
  # Thanks!
91
90
  #
92
91
  # -The RubyGems Team
93
92
  #
94
- # <!-- rdoc-file=lib/rubygems/deprecate.rb -->
95
- # Provides 3 methods for declaring when something is going away.
96
- #
97
- # +deprecate(name, repl, year, month)+:
98
- # Indicate something may be removed on/after a certain date.
99
- #
100
- # +rubygems_deprecate(name, replacement=:none)+:
101
- # Indicate something will be removed in the next major RubyGems version,
102
- # and (optionally) a replacement for it.
103
- #
104
- # `rubygems_deprecate_command`:
105
- # Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be
106
- # removed in the next RubyGems version.
107
- #
108
- # Also provides `skip_during` for temporarily turning off deprecation warnings.
109
- # This is intended to be used in the test suite, so deprecation warnings don't
110
- # cause test failures if you need to make sure stderr is otherwise empty.
111
- #
112
- # Example usage of `deprecate` and `rubygems_deprecate`:
113
- #
114
- # class Legacy
115
- # def self.some_class_method
116
- # # ...
117
- # end
118
- #
119
- # def some_instance_method
120
- # # ...
121
- # end
122
- #
123
- # def some_old_method
124
- # # ...
125
- # end
126
- #
127
- # extend Gem::Deprecate
128
- # deprecate :some_instance_method, "X.z", 2011, 4
129
- # rubygems_deprecate :some_old_method, "Modern#some_new_method"
130
- #
131
- # class << self
132
- # extend Gem::Deprecate
133
- # deprecate :some_class_method, :none, 2011, 4
134
- # end
135
- # end
136
- #
137
- # Example usage of `rubygems_deprecate_command`:
138
- #
139
- # class Gem::Commands::QueryCommand < Gem::Command
140
- # extend Gem::Deprecate
141
- # rubygems_deprecate_command
142
- #
143
- # # ...
144
- # end
145
- #
146
- # Example usage of `skip_during`:
147
- #
148
- # class TestSomething < Gem::Testcase
149
- # def test_some_thing_with_deprecations
150
- # Gem::Deprecate.skip_during do
151
- # actual_stdout, actual_stderr = capture_output do
152
- # Gem.something_deprecated
153
- # end
154
- # assert_empty actual_stdout
155
- # assert_equal(expected, actual_stderr)
156
- # end
157
- # end
158
- # end
159
- #
160
93
  module Gem
161
94
  interface _HashLike[K, V]
162
95
  def each_pair: () { ([ K, V ]) -> untyped } -> self
@@ -204,7 +137,7 @@ module Gem
204
137
 
205
138
  VERSION: String
206
139
 
207
- # <!-- rdoc-file=lib/rubygems.rb -->
140
+ # <!-- rdoc-file=lib/rubygems/win_platform.rb -->
208
141
  # An Array of Regexps that match windows Ruby platforms.
209
142
  #
210
143
  WIN_PATTERNS: Array[Regexp]
@@ -219,7 +152,8 @@ module Gem
219
152
  # - activated_gem_paths()
220
153
  # -->
221
154
  # The number of paths in the +$LOAD_PATH+ from activated gems. Used to
222
- # prioritize `-I` and `ENV['RUBYLIB']` entries during `require`.
155
+ # prioritize <code>-I</code> and <code>ENV['RUBYLIB']</code> entries during
156
+ # `require`.
223
157
  #
224
158
  def self.activated_gem_paths: () -> Integer
225
159
 
@@ -251,7 +185,7 @@ module Gem
251
185
 
252
186
  # <!--
253
187
  # rdoc-file=lib/rubygems.rb
254
- # - bindir(install_dir=Gem.dir)
188
+ # - bindir(install_dir = Gem.dir)
255
189
  # -->
256
190
  # The path where gem executables are to be installed.
257
191
  #
@@ -509,7 +443,7 @@ module Gem
509
443
 
510
444
  # <!--
511
445
  # rdoc-file=lib/rubygems.rb
512
- # - find_files(glob, check_load_path=true)
446
+ # - find_files(glob, check_load_path = true)
513
447
  # -->
514
448
  # Returns a list of paths matching `glob` that can be used by a gem to pick up
515
449
  # features from other gems. For example:
@@ -526,7 +460,7 @@ module Gem
526
460
 
527
461
  # <!--
528
462
  # rdoc-file=lib/rubygems.rb
529
- # - find_latest_files(glob, check_load_path=true)
463
+ # - find_latest_files(glob, check_load_path = true)
530
464
  # -->
531
465
  # Returns a list of paths matching `glob` from the latest gems that can be used
532
466
  # by a gem to pick up features from other gems. For example:
@@ -551,7 +485,7 @@ module Gem
551
485
 
552
486
  # <!--
553
487
  # rdoc-file=lib/rubygems.rb
554
- # - finish_resolve(request_set=Gem::RequestSet.new)
488
+ # - finish_resolve(request_set = Gem::RequestSet.new)
555
489
  # -->
556
490
  #
557
491
  def self.finish_resolve: (?RequestSet request_set) -> void
@@ -566,7 +500,8 @@ module Gem
566
500
  # rdoc-file=lib/rubygems.rb
567
501
  # - host()
568
502
  # -->
569
- # Get the default RubyGems API host. This is normally `https://rubygems.org`.
503
+ # Get the default RubyGems API host. This is normally
504
+ # <code>https://rubygems.org</code>.
570
505
  #
571
506
  def self.host: () -> String
572
507
 
@@ -804,7 +739,7 @@ module Gem
804
739
 
805
740
  # <!--
806
741
  # rdoc-file=lib/rubygems.rb
807
- # - plugindir(install_dir=Gem.dir)
742
+ # - plugindir(install_dir = Gem.dir)
808
743
  # -->
809
744
  # The path were rubygems plugins are to be installed.
810
745
  #
@@ -1009,8 +944,7 @@ module Gem
1009
944
  # - source_date_epoch_string()
1010
945
  # -->
1011
946
  # If the SOURCE_DATE_EPOCH environment variable is set, returns it's value.
1012
- # Otherwise, returns the time that `Gem.source_date_epoch_string` was first
1013
- # called in the same format as SOURCE_DATE_EPOCH.
947
+ # Otherwise, returns DEFAULT_SOURCE_DATE_EPOCH as a string.
1014
948
  #
1015
949
  # NOTE(@duckinator): The implementation is a tad weird because we want to:
1016
950
  # 1. Make builds reproducible by default, by having this function always
@@ -1154,7 +1088,7 @@ module Gem
1154
1088
  def self.user_home: () -> String
1155
1089
 
1156
1090
  # <!--
1157
- # rdoc-file=lib/rubygems.rb
1091
+ # rdoc-file=lib/rubygems/win_platform.rb
1158
1092
  # - win_platform?()
1159
1093
  # -->
1160
1094
  # Is this a windows platform?
@@ -180,7 +180,6 @@ module Gem
180
180
  #
181
181
  # ver1 = Version.create('1.3.17') # -> (Version object)
182
182
  # ver2 = Version.create(ver1) # -> (ver1)
183
- # ver3 = Version.create(nil) # -> nil
184
183
  #
185
184
  def self.create: (_ToS | Version input) -> instance
186
185
  | (nil input) -> nil
@@ -199,8 +198,8 @@ module Gem
199
198
  # - <=>(other)
200
199
  # -->
201
200
  # Compares this version with `other` returning -1, 0, or 1 if the other version
202
- # is larger, the same, or smaller than this one. Attempts to compare to
203
- # something that's not a `Gem::Version` or a valid version String return `nil`.
201
+ # is larger, the same, or smaller than this one. `other` must be an instance of
202
+ # Gem::Version, comparing with other types may raise an exception.
204
203
  #
205
204
  def <=>: (untyped other) -> Integer?
206
205