rbs 3.9.4 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. checksums.yaml +4 -4
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.dockerignore +37 -0
  5. data/.github/dependabot.yml +16 -14
  6. data/.github/workflows/bundle-update.yml +63 -0
  7. data/.github/workflows/c-check.yml +66 -0
  8. data/.github/workflows/comments.yml +5 -3
  9. data/.github/workflows/dependabot.yml +2 -2
  10. data/.github/workflows/jruby.yml +79 -0
  11. data/.github/workflows/release-gems.yml +164 -0
  12. data/.github/workflows/ruby.yml +84 -30
  13. data/.github/workflows/rust.yml +186 -0
  14. data/.github/workflows/truffleruby.yml +54 -0
  15. data/.github/workflows/typecheck.yml +5 -2
  16. data/.github/workflows/wasm.yml +55 -0
  17. data/.github/workflows/windows.yml +9 -3
  18. data/.gitignore +16 -0
  19. data/.rubocop.yml +2 -2
  20. data/CHANGELOG.md +430 -0
  21. data/Dockerfile.jruby +53 -0
  22. data/README.md +41 -4
  23. data/Rakefile +777 -60
  24. data/Steepfile +11 -0
  25. data/config.yml +660 -62
  26. data/core/array.rbs +541 -398
  27. data/core/basic_object.rbs +9 -8
  28. data/core/binding.rbs +0 -2
  29. data/core/builtin.rbs +9 -8
  30. data/core/class.rbs +11 -8
  31. data/core/comparable.rbs +55 -34
  32. data/core/complex.rbs +104 -78
  33. data/core/dir.rbs +61 -49
  34. data/core/encoding.rbs +12 -15
  35. data/core/enumerable.rbs +297 -196
  36. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  37. data/core/enumerator/product.rbs +5 -5
  38. data/core/enumerator.rbs +91 -28
  39. data/core/errno.rbs +11 -2
  40. data/core/errors.rbs +58 -29
  41. data/core/exception.rbs +13 -13
  42. data/core/fiber.rbs +74 -54
  43. data/core/file.rbs +260 -1151
  44. data/core/file_constants.rbs +463 -0
  45. data/core/file_stat.rbs +534 -0
  46. data/core/file_test.rbs +3 -3
  47. data/core/float.rbs +257 -116
  48. data/core/gc.rbs +425 -281
  49. data/core/hash.rbs +1151 -829
  50. data/core/integer.rbs +156 -195
  51. data/core/io/buffer.rbs +53 -42
  52. data/core/io/wait.rbs +13 -35
  53. data/core/io.rbs +220 -154
  54. data/core/kernel.rbs +239 -163
  55. data/core/marshal.rbs +4 -4
  56. data/core/match_data.rbs +16 -14
  57. data/core/math.rbs +107 -66
  58. data/core/method.rbs +69 -33
  59. data/core/module.rbs +302 -150
  60. data/core/nil_class.rbs +7 -6
  61. data/core/numeric.rbs +77 -63
  62. data/core/object.rbs +9 -11
  63. data/core/object_space/weak_key_map.rbs +7 -7
  64. data/core/object_space.rbs +30 -23
  65. data/core/pathname.rbs +1312 -0
  66. data/core/proc.rbs +95 -58
  67. data/core/process.rbs +222 -202
  68. data/core/ractor.rbs +364 -518
  69. data/core/random.rbs +21 -3
  70. data/core/range.rbs +181 -79
  71. data/core/rational.rbs +60 -89
  72. data/core/rbs/ops.rbs +154 -0
  73. data/core/rbs/unnamed/argf.rbs +63 -56
  74. data/core/rbs/unnamed/env_class.rbs +19 -14
  75. data/core/rbs/unnamed/main_class.rbs +123 -0
  76. data/core/rbs/unnamed/random.rbs +11 -118
  77. data/core/regexp.rbs +258 -214
  78. data/core/ruby.rbs +53 -0
  79. data/core/ruby_vm.rbs +78 -34
  80. data/core/rubygems/config_file.rbs +5 -5
  81. data/core/rubygems/errors.rbs +6 -70
  82. data/core/rubygems/requirement.rbs +5 -15
  83. data/core/rubygems/rubygems.rbs +18 -81
  84. data/core/rubygems/specification.rbs +8 -0
  85. data/core/rubygems/version.rbs +2 -163
  86. data/core/set.rbs +493 -363
  87. data/core/signal.rbs +26 -16
  88. data/core/string.rbs +3234 -1285
  89. data/core/struct.rbs +43 -42
  90. data/core/symbol.rbs +41 -34
  91. data/core/thread.rbs +139 -83
  92. data/core/time.rbs +81 -50
  93. data/core/trace_point.rbs +41 -35
  94. data/core/true_class.rbs +2 -2
  95. data/core/unbound_method.rbs +24 -16
  96. data/core/warning.rbs +7 -7
  97. data/docs/CONTRIBUTING.md +2 -1
  98. data/docs/aliases.md +79 -0
  99. data/docs/collection.md +3 -3
  100. data/docs/config.md +171 -0
  101. data/docs/encoding.md +56 -0
  102. data/docs/gem.md +0 -1
  103. data/docs/inline.md +634 -0
  104. data/docs/rbs_by_example.md +20 -20
  105. data/docs/release.md +151 -0
  106. data/docs/rust.md +96 -0
  107. data/docs/sigs.md +3 -3
  108. data/docs/syntax.md +48 -18
  109. data/docs/type_fingerprint.md +21 -0
  110. data/docs/wasm_serialization.md +80 -0
  111. data/exe/rbs +1 -1
  112. data/ext/rbs_extension/ast_translation.c +1855 -0
  113. data/ext/rbs_extension/ast_translation.h +41 -0
  114. data/ext/rbs_extension/class_constants.c +187 -0
  115. data/{include/rbs/constants.h → ext/rbs_extension/class_constants.h} +23 -1
  116. data/ext/rbs_extension/compat.h +10 -0
  117. data/ext/rbs_extension/extconf.rb +26 -1
  118. data/ext/rbs_extension/legacy_location.c +299 -0
  119. data/ext/rbs_extension/legacy_location.h +82 -0
  120. data/ext/rbs_extension/main.c +603 -23
  121. data/ext/rbs_extension/rbs_extension.h +6 -21
  122. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  123. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  124. data/include/rbs/ast.h +1047 -0
  125. data/include/rbs/defines.h +99 -0
  126. data/include/rbs/lexer.h +207 -0
  127. data/include/rbs/location.h +40 -0
  128. data/include/rbs/parser.h +153 -0
  129. data/include/rbs/serialize.h +39 -0
  130. data/include/rbs/string.h +47 -0
  131. data/include/rbs/util/rbs_allocator.h +59 -0
  132. data/include/rbs/util/rbs_assert.h +20 -0
  133. data/include/rbs/util/rbs_buffer.h +83 -0
  134. data/include/rbs/util/rbs_constant_pool.h +6 -70
  135. data/include/rbs/util/rbs_encoding.h +282 -0
  136. data/include/rbs/util/rbs_unescape.h +24 -0
  137. data/include/rbs.h +9 -2
  138. data/lib/rbs/annotate/formatter.rb +3 -13
  139. data/lib/rbs/annotate/rdoc_annotator.rb +30 -32
  140. data/lib/rbs/annotate/rdoc_source.rb +1 -1
  141. data/lib/rbs/ast/annotation.rb +1 -1
  142. data/lib/rbs/ast/comment.rb +1 -1
  143. data/lib/rbs/ast/declarations.rb +10 -10
  144. data/lib/rbs/ast/members.rb +14 -14
  145. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  146. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  147. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  148. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  149. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  150. data/lib/rbs/ast/ruby/members.rb +762 -0
  151. data/lib/rbs/ast/type_param.rb +24 -4
  152. data/lib/rbs/buffer.rb +142 -20
  153. data/lib/rbs/cli/diff.rb +16 -15
  154. data/lib/rbs/cli/validate.rb +63 -126
  155. data/lib/rbs/cli.rb +59 -29
  156. data/lib/rbs/collection/config/lockfile_generator.rb +28 -3
  157. data/lib/rbs/collection/sources/git.rb +7 -0
  158. data/lib/rbs/definition.rb +6 -1
  159. data/lib/rbs/definition_builder/ancestor_builder.rb +121 -65
  160. data/lib/rbs/definition_builder/method_builder.rb +74 -33
  161. data/lib/rbs/definition_builder.rb +177 -20
  162. data/lib/rbs/diff.rb +7 -1
  163. data/lib/rbs/environment/class_entry.rb +69 -0
  164. data/lib/rbs/environment/module_entry.rb +66 -0
  165. data/lib/rbs/environment.rb +410 -215
  166. data/lib/rbs/environment_loader.rb +2 -8
  167. data/lib/rbs/errors.rb +31 -21
  168. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  169. data/lib/rbs/inline_parser.rb +568 -0
  170. data/lib/rbs/location_aux.rb +36 -4
  171. data/lib/rbs/locator.rb +5 -1
  172. data/lib/rbs/method_type.rb +5 -3
  173. data/lib/rbs/namespace.rb +47 -18
  174. data/lib/rbs/parser_aux.rb +37 -7
  175. data/lib/rbs/prototype/helpers.rb +57 -0
  176. data/lib/rbs/prototype/rb.rb +3 -28
  177. data/lib/rbs/prototype/rbi.rb +196 -45
  178. data/lib/rbs/prototype/runtime.rb +12 -2
  179. data/lib/rbs/resolver/constant_resolver.rb +2 -2
  180. data/lib/rbs/resolver/type_name_resolver.rb +120 -44
  181. data/lib/rbs/rewriter.rb +70 -0
  182. data/lib/rbs/source.rb +99 -0
  183. data/lib/rbs/subtractor.rb +7 -4
  184. data/lib/rbs/test/type_check.rb +25 -3
  185. data/lib/rbs/type_name.rb +34 -21
  186. data/lib/rbs/types.rb +91 -79
  187. data/lib/rbs/unit_test/convertibles.rb +1 -0
  188. data/lib/rbs/unit_test/type_assertions.rb +44 -8
  189. data/lib/rbs/validator.rb +2 -2
  190. data/lib/rbs/version.rb +1 -1
  191. data/lib/rbs/wasm/deserializer.rb +213 -0
  192. data/lib/rbs/wasm/location.rb +61 -0
  193. data/lib/rbs/wasm/parser.rb +137 -0
  194. data/lib/rbs/wasm/runtime.rb +196 -0
  195. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  196. data/lib/rbs.rb +25 -2
  197. data/lib/rbs_jars.rb +39 -0
  198. data/lib/rdoc/discover.rb +1 -1
  199. data/lib/rdoc_plugin/parser.rb +8 -3
  200. data/rbs.gemspec +37 -5
  201. data/schema/typeParam.json +17 -1
  202. data/sig/ancestor_builder.rbs +1 -1
  203. data/sig/annotate/formatter.rbs +2 -2
  204. data/sig/annotate/rdoc_annotater.rbs +13 -10
  205. data/sig/ast/ruby/annotations.rbs +470 -0
  206. data/sig/ast/ruby/comment_block.rbs +127 -0
  207. data/sig/ast/ruby/declarations.rbs +158 -0
  208. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  209. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  210. data/sig/ast/ruby/members.rbs +198 -0
  211. data/sig/buffer.rbs +81 -5
  212. data/sig/cli/diff.rbs +5 -11
  213. data/sig/cli/validate.rbs +12 -8
  214. data/sig/cli.rbs +18 -18
  215. data/sig/collection/config/lockfile_generator.rbs +2 -0
  216. data/sig/definition.rbs +6 -0
  217. data/sig/definition_builder.rbs +3 -1
  218. data/sig/environment/class_entry.rbs +50 -0
  219. data/sig/environment/module_entry.rbs +50 -0
  220. data/sig/environment.rbs +94 -87
  221. data/sig/errors.rbs +26 -20
  222. data/sig/inline_parser/comment_association.rbs +71 -0
  223. data/sig/inline_parser.rbs +126 -0
  224. data/sig/location.rbs +32 -7
  225. data/sig/locator.rbs +0 -2
  226. data/sig/manifest.yaml +0 -2
  227. data/sig/method_builder.rbs +9 -4
  228. data/sig/namespace.rbs +20 -5
  229. data/sig/parser.rbs +77 -13
  230. data/sig/prototype/helpers.rbs +2 -0
  231. data/sig/prototype/rbi.rbs +33 -4
  232. data/sig/resolver/type_name_resolver.rbs +36 -10
  233. data/sig/rewriter.rbs +45 -0
  234. data/sig/source.rbs +48 -0
  235. data/sig/type_param.rbs +13 -8
  236. data/sig/typename.rbs +15 -5
  237. data/sig/types.rbs +10 -8
  238. data/sig/unit_test/spy.rbs +0 -8
  239. data/sig/unit_test/type_assertions.rbs +15 -0
  240. data/sig/wasm/deserializer.rbs +66 -0
  241. data/sig/wasm/serialization_schema.rbs +13 -0
  242. data/src/ast.c +1628 -0
  243. data/src/lexer.c +3221 -0
  244. data/src/lexer.re +155 -0
  245. data/src/lexstate.c +221 -0
  246. data/src/location.c +31 -0
  247. data/src/parser.c +4258 -0
  248. data/src/serialize.c +958 -0
  249. data/src/string.c +41 -0
  250. data/src/util/rbs_allocator.c +171 -0
  251. data/src/util/rbs_assert.c +19 -0
  252. data/src/util/rbs_buffer.c +54 -0
  253. data/src/util/rbs_constant_pool.c +18 -92
  254. data/src/util/rbs_encoding.c +21308 -0
  255. data/src/util/rbs_unescape.c +167 -0
  256. data/stdlib/abbrev/0/array.rbs +1 -1
  257. data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
  258. data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
  259. data/stdlib/cgi/0/core.rbs +9 -393
  260. data/stdlib/cgi/0/manifest.yaml +1 -0
  261. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  262. data/stdlib/coverage/0/coverage.rbs +7 -4
  263. data/stdlib/csv/0/csv.rbs +5 -5
  264. data/stdlib/date/0/date.rbs +92 -79
  265. data/stdlib/date/0/date_time.rbs +25 -24
  266. data/stdlib/delegate/0/delegator.rbs +11 -7
  267. data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
  268. data/stdlib/digest/0/digest.rbs +117 -1
  269. data/stdlib/erb/0/erb.rbs +748 -347
  270. data/stdlib/etc/0/etc.rbs +73 -54
  271. data/stdlib/fileutils/0/fileutils.rbs +179 -160
  272. data/stdlib/forwardable/0/forwardable.rbs +13 -10
  273. data/stdlib/io-console/0/io-console.rbs +2 -2
  274. data/stdlib/ipaddr/0/ipaddr.rbs +0 -5
  275. data/stdlib/json/0/json.rbs +232 -185
  276. data/stdlib/monitor/0/monitor.rbs +5 -5
  277. data/stdlib/net-http/0/net-http.rbs +162 -134
  278. data/stdlib/objspace/0/objspace.rbs +17 -34
  279. data/stdlib/open-uri/0/open-uri.rbs +48 -8
  280. data/stdlib/open3/0/open3.rbs +469 -10
  281. data/stdlib/openssl/0/openssl.rbs +521 -397
  282. data/stdlib/optparse/0/optparse.rbs +26 -17
  283. data/stdlib/pathname/0/pathname.rbs +11 -1381
  284. data/stdlib/pp/0/pp.rbs +9 -8
  285. data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
  286. data/stdlib/pstore/0/pstore.rbs +35 -30
  287. data/stdlib/psych/0/psych.rbs +65 -12
  288. data/stdlib/psych/0/store.rbs +2 -4
  289. data/stdlib/pty/0/pty.rbs +9 -6
  290. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  291. data/stdlib/rdoc/0/code_object.rbs +4 -3
  292. data/stdlib/rdoc/0/comment.rbs +2 -0
  293. data/stdlib/rdoc/0/options.rbs +76 -0
  294. data/stdlib/rdoc/0/parser.rbs +1 -1
  295. data/stdlib/rdoc/0/rdoc.rbs +7 -5
  296. data/stdlib/rdoc/0/store.rbs +2 -2
  297. data/stdlib/resolv/0/resolv.rbs +26 -69
  298. data/stdlib/ripper/0/ripper.rbs +25 -19
  299. data/stdlib/securerandom/0/manifest.yaml +2 -0
  300. data/stdlib/securerandom/0/securerandom.rbs +7 -20
  301. data/stdlib/shellwords/0/shellwords.rbs +3 -3
  302. data/stdlib/singleton/0/singleton.rbs +3 -0
  303. data/stdlib/socket/0/addrinfo.rbs +9 -9
  304. data/stdlib/socket/0/basic_socket.rbs +3 -3
  305. data/stdlib/socket/0/ip_socket.rbs +10 -8
  306. data/stdlib/socket/0/socket.rbs +23 -10
  307. data/stdlib/socket/0/tcp_server.rbs +1 -1
  308. data/stdlib/socket/0/tcp_socket.rbs +11 -3
  309. data/stdlib/socket/0/udp_socket.rbs +1 -1
  310. data/stdlib/socket/0/unix_server.rbs +1 -1
  311. data/stdlib/stringio/0/stringio.rbs +1209 -95
  312. data/stdlib/strscan/0/string_scanner.rbs +101 -80
  313. data/stdlib/tempfile/0/manifest.yaml +3 -0
  314. data/stdlib/tempfile/0/tempfile.rbs +25 -21
  315. data/stdlib/time/0/time.rbs +8 -6
  316. data/stdlib/timeout/0/timeout.rbs +58 -7
  317. data/stdlib/tsort/0/cyclic.rbs +4 -1
  318. data/stdlib/tsort/0/interfaces.rbs +8 -8
  319. data/stdlib/tsort/0/tsort.rbs +16 -15
  320. data/stdlib/uri/0/common.rbs +42 -20
  321. data/stdlib/uri/0/file.rbs +3 -3
  322. data/stdlib/uri/0/generic.rbs +21 -18
  323. data/stdlib/uri/0/http.rbs +2 -2
  324. data/stdlib/uri/0/ldap.rbs +2 -2
  325. data/stdlib/uri/0/mailto.rbs +3 -3
  326. data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
  327. data/stdlib/zlib/0/deflate.rbs +4 -3
  328. data/stdlib/zlib/0/gzip_reader.rbs +8 -8
  329. data/stdlib/zlib/0/gzip_writer.rbs +14 -12
  330. data/stdlib/zlib/0/inflate.rbs +1 -1
  331. data/stdlib/zlib/0/need_dict.rbs +1 -1
  332. data/wasm/README.md +60 -0
  333. data/wasm/rbs_wasm.c +423 -0
  334. metadata +131 -19
  335. data/ext/rbs_extension/lexer.c +0 -2728
  336. data/ext/rbs_extension/lexer.h +0 -179
  337. data/ext/rbs_extension/lexer.re +0 -147
  338. data/ext/rbs_extension/lexstate.c +0 -175
  339. data/ext/rbs_extension/location.c +0 -325
  340. data/ext/rbs_extension/location.h +0 -85
  341. data/ext/rbs_extension/parser.c +0 -2982
  342. data/ext/rbs_extension/parser.h +0 -18
  343. data/ext/rbs_extension/parserstate.c +0 -411
  344. data/ext/rbs_extension/parserstate.h +0 -163
  345. data/ext/rbs_extension/unescape.c +0 -32
  346. data/include/rbs/ruby_objs.h +0 -72
  347. data/src/constants.c +0 -153
  348. data/src/ruby_objs.c +0 -799
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
@@ -370,6 +371,46 @@ class RubyVM::InstructionSequence < Object
370
371
  # event_symbol] pair.
371
372
  #
372
373
  def trace_points: () -> Array[untyped]
374
+
375
+ # <!--
376
+ # rdoc-file=iseq.c
377
+ # - of(p1)
378
+ # -->
379
+ # Returns the instruction sequence containing the given proc or method.
380
+ #
381
+ # For example, using irb:
382
+ #
383
+ # # a proc
384
+ # > p = proc { num = 1 + 2 }
385
+ # > RubyVM::InstructionSequence.of(p)
386
+ # > #=> <RubyVM::InstructionSequence:block in irb_binding@(irb)>
387
+ #
388
+ # # for a method
389
+ # > def foo(bar); puts bar; end
390
+ # > RubyVM::InstructionSequence.of(method(:foo))
391
+ # > #=> <RubyVM::InstructionSequence:foo@(irb)>
392
+ #
393
+ # Using ::compile_file:
394
+ #
395
+ # # /tmp/iseq_of.rb
396
+ # def hello
397
+ # puts "hello, world"
398
+ # end
399
+ #
400
+ # $a_global_proc = proc { str = 'a' + 'b' }
401
+ #
402
+ # # in irb
403
+ # > require '/tmp/iseq_of.rb'
404
+ #
405
+ # # first the method hello
406
+ # > RubyVM::InstructionSequence.of(method(:hello))
407
+ # > #=> #<RubyVM::InstructionSequence:0x007fb73d7cb1d0>
408
+ #
409
+ # # then the global proc
410
+ # > RubyVM::InstructionSequence.of($a_global_proc)
411
+ # > #=> #<RubyVM::InstructionSequence:0x007fb73d7caf78>
412
+ #
413
+ def self.of: (Proc | Method | UnboundMethod body) -> RubyVM::InstructionSequence?
373
414
  end
374
415
 
375
416
  # <!-- rdoc-file=ast.rb -->
@@ -400,15 +441,16 @@ module RubyVM::AbstractSyntaxTree
400
441
  # RubyVM::AbstractSyntaxTree.parse("x = 1 + 2")
401
442
  # # => #<RubyVM::AbstractSyntaxTree::Node:SCOPE@1:0-1:9>
402
443
  #
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.
444
+ # If <code>keep_script_lines: true</code> option is provided, the text of the
445
+ # parsed source is associated with nodes and is available via Node#script_lines.
405
446
  #
406
- # If `keep_tokens: true` option is provided, Node#tokens are populated.
447
+ # If <code>keep_tokens: true</code> option is provided, Node#tokens are
448
+ # populated.
407
449
  #
408
450
  # 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`.
451
+ # this behavior, <code>error_tolerant: true</code> can be provided. In this
452
+ # case, the parser will produce a tree where expressions with syntax errors
453
+ # would be represented by Node with <code>type=:ERROR</code>.
412
454
  #
413
455
  # root = RubyVM::AbstractSyntaxTree.parse("x = 1; p(x; y=2")
414
456
  # # <internal:ast>:33:in `parse': syntax error, unexpected ';', expecting ')' (SyntaxError)
@@ -443,7 +485,7 @@ module RubyVM::AbstractSyntaxTree
443
485
  #
444
486
  # See ::parse for explanation of keyword argument meaning and usage.
445
487
  #
446
- def self.parse_file: (String | ::_ToPath string, ?keep_script_lines: bool, ?error_tolerant: bool, ?keep_tokens: bool) -> Node
488
+ def self.parse_file: (path string, ?keep_script_lines: bool, ?error_tolerant: bool, ?keep_tokens: bool) -> Node
447
489
 
448
490
  # <!--
449
491
  # rdoc-file=ast.rb
@@ -661,7 +703,7 @@ module RubyVM::YJIT
661
703
  # -->
662
704
  # Marshal dumps exit locations to the given filename.
663
705
  # Usage:
664
- # If `--yjit-exit-locations` is passed, a file named
706
+ # If <code>--yjit-exit-locations</code> is passed, a file named
665
707
  # "yjit_exit_locations.dump" will automatically be generated.
666
708
  # If you want to collect traces manually, call `dump_exit_locations`
667
709
  # directly.
@@ -683,19 +725,21 @@ module RubyVM::YJIT
683
725
 
684
726
  # <!--
685
727
  # rdoc-file=yjit.rb
686
- # - enable(stats: false, log: false)
728
+ # - enable(stats: false, log: false, mem_size: nil, call_threshold: nil)
687
729
  # -->
688
730
  # 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.
731
+ # or not. `log` decides
732
+ # whether to enable YJIT compilation logging or not. Optional `mem_size` and
733
+ # `call_threshold` can be
734
+ # provided to override default configuration.
691
735
  # * `stats`:
692
736
  # * `false`: Don't enable stats.
693
737
  # * `true`: Enable stats. Print stats at exit.
694
- # * `:quiet`: Enable stats. Do not print stats at exit.
738
+ # * <code>:quiet</code>: Enable stats. Do not print stats at exit.
695
739
  # * `log`:
696
740
  # * `false`: Don't enable the log.
697
741
  # * `true`: Enable the log. Print log at exit.
698
- # * `:quiet`: Enable the log. Do not print log at exit.
742
+ # * <code>:quiet</code>: Enable the log. Do not print log at exit.
699
743
  #
700
744
  def self.enable: (?stats: false | true | :quiet) -> void
701
745
 
@@ -727,7 +771,7 @@ module RubyVM::YJIT
727
771
  # rdoc-file=yjit.rb
728
772
  # - reset_stats!()
729
773
  # -->
730
- # Discard statistics collected for `--yjit-stats`.
774
+ # Discard statistics collected for <code>--yjit-stats</code>.
731
775
  #
732
776
  def self.reset_stats!: () -> void
733
777
 
@@ -735,8 +779,8 @@ module RubyVM::YJIT
735
779
  # rdoc-file=yjit.rb
736
780
  # - runtime_stats(key = nil)
737
781
  # -->
738
- # Return a hash for statistics generated for the `--yjit-stats` command line
739
- # option.
782
+ # Return a hash for statistics generated for the <code>--yjit-stats</code>
783
+ # command line option.
740
784
  # Return `nil` when option is not passed or unavailable.
741
785
  # If a symbol argument is provided, return only the value for the named stat.
742
786
  # If any other type is provided, raises TypeError.
@@ -747,7 +791,7 @@ module RubyVM::YJIT
747
791
  # rdoc-file=yjit.rb
748
792
  # - stats_enabled?()
749
793
  # -->
750
- # Check if `--yjit-stats` is used.
794
+ # Check if <code>--yjit-stats</code> is used.
751
795
  #
752
796
  def self.stats_enabled?: () -> bool
753
797
 
@@ -756,7 +800,7 @@ module RubyVM::YJIT
756
800
  # - stats_string()
757
801
  # -->
758
802
  # Format and print out counters as a String. This returns a non-empty
759
- # content only when `--yjit-stats` is enabled.
803
+ # content only when <code>--yjit-stats</code> is enabled.
760
804
  #
761
805
  def self.stats_string: () -> String
762
806
  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://guides.rubygems.org/rubygems-org-api/) (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,79 +83,15 @@
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
93
+ # <!-- rdoc-file=lib/rubygems/version.rb -->
94
+ # Workaround for directly loading Gem::Version in some cases
159
95
  #
160
96
  module Gem
161
97
  # <!-- rdoc-file=lib/rubygems/errors.rb -->
@@ -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
 
@@ -123,18 +123,8 @@ module Gem
123
123
  #
124
124
  def satisfied_by?: (Gem::Version version) -> bool
125
125
 
126
- # <!--
127
- # rdoc-file=lib/rubygems/requirement.rb
128
- # - ===(version)
129
- # -->
130
- #
131
126
  alias === satisfied_by?
132
127
 
133
- # <!--
134
- # rdoc-file=lib/rubygems/requirement.rb
135
- # - =~(version)
136
- # -->
137
- #
138
128
  alias =~ satisfied_by?
139
129
 
140
130
  # <!--
@@ -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://guides.rubygems.org/rubygems-org-api/) (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,79 +83,15 @@
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
93
+ # <!-- rdoc-file=lib/rubygems/version.rb -->
94
+ # Workaround for directly loading Gem::Version in some cases
159
95
  #
160
96
  module Gem
161
97
  interface _HashLike[K, V]
@@ -204,7 +140,7 @@ module Gem
204
140
 
205
141
  VERSION: String
206
142
 
207
- # <!-- rdoc-file=lib/rubygems.rb -->
143
+ # <!-- rdoc-file=lib/rubygems/win_platform.rb -->
208
144
  # An Array of Regexps that match windows Ruby platforms.
209
145
  #
210
146
  WIN_PATTERNS: Array[Regexp]
@@ -219,7 +155,8 @@ module Gem
219
155
  # - activated_gem_paths()
220
156
  # -->
221
157
  # The number of paths in the +$LOAD_PATH+ from activated gems. Used to
222
- # prioritize `-I` and `ENV['RUBYLIB']` entries during `require`.
158
+ # prioritize <code>-I</code> and <code>ENV['RUBYLIB']</code> entries during
159
+ # `require`.
223
160
  #
224
161
  def self.activated_gem_paths: () -> Integer
225
162
 
@@ -251,7 +188,7 @@ module Gem
251
188
 
252
189
  # <!--
253
190
  # rdoc-file=lib/rubygems.rb
254
- # - bindir(install_dir=Gem.dir)
191
+ # - bindir(install_dir = Gem.dir)
255
192
  # -->
256
193
  # The path where gem executables are to be installed.
257
194
  #
@@ -509,7 +446,7 @@ module Gem
509
446
 
510
447
  # <!--
511
448
  # rdoc-file=lib/rubygems.rb
512
- # - find_files(glob, check_load_path=true)
449
+ # - find_files(glob, check_load_path = true)
513
450
  # -->
514
451
  # Returns a list of paths matching `glob` that can be used by a gem to pick up
515
452
  # features from other gems. For example:
@@ -526,7 +463,7 @@ module Gem
526
463
 
527
464
  # <!--
528
465
  # rdoc-file=lib/rubygems.rb
529
- # - find_latest_files(glob, check_load_path=true)
466
+ # - find_latest_files(glob, check_load_path = true)
530
467
  # -->
531
468
  # Returns a list of paths matching `glob` from the latest gems that can be used
532
469
  # by a gem to pick up features from other gems. For example:
@@ -551,7 +488,7 @@ module Gem
551
488
 
552
489
  # <!--
553
490
  # rdoc-file=lib/rubygems.rb
554
- # - finish_resolve(request_set=Gem::RequestSet.new)
491
+ # - finish_resolve(request_set = Gem::RequestSet.new)
555
492
  # -->
556
493
  #
557
494
  def self.finish_resolve: (?RequestSet request_set) -> void
@@ -566,7 +503,8 @@ module Gem
566
503
  # rdoc-file=lib/rubygems.rb
567
504
  # - host()
568
505
  # -->
569
- # Get the default RubyGems API host. This is normally `https://rubygems.org`.
506
+ # Get the default RubyGems API host. This is normally
507
+ # <code>https://rubygems.org</code>.
570
508
  #
571
509
  def self.host: () -> String
572
510
 
@@ -804,7 +742,7 @@ module Gem
804
742
 
805
743
  # <!--
806
744
  # rdoc-file=lib/rubygems.rb
807
- # - plugindir(install_dir=Gem.dir)
745
+ # - plugindir(install_dir = Gem.dir)
808
746
  # -->
809
747
  # The path were rubygems plugins are to be installed.
810
748
  #
@@ -1009,8 +947,7 @@ module Gem
1009
947
  # - source_date_epoch_string()
1010
948
  # -->
1011
949
  # 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.
950
+ # Otherwise, returns DEFAULT_SOURCE_DATE_EPOCH as a string.
1014
951
  #
1015
952
  # NOTE(@duckinator): The implementation is a tad weird because we want to:
1016
953
  # 1. Make builds reproducible by default, by having this function always
@@ -1154,7 +1091,7 @@ module Gem
1154
1091
  def self.user_home: () -> String
1155
1092
 
1156
1093
  # <!--
1157
- # rdoc-file=lib/rubygems.rb
1094
+ # rdoc-file=lib/rubygems/win_platform.rb
1158
1095
  # - win_platform?()
1159
1096
  # -->
1160
1097
  # Is this a windows platform?