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
@@ -24,10 +24,10 @@
24
24
  # #=> #<DateTime: 2001-02-03T12:00:00+00:00 ...>
25
25
  #
26
26
  # An optional argument, the offset, indicates the difference between the local
27
- # time and UTC. For example, `Rational(3,24)` represents ahead of 3 hours of
28
- # UTC, `Rational(-5,24)` represents behind of 5 hours of UTC. The offset should
29
- # be -1 to +1, and its precision is assumed at most second. The default value is
30
- # zero (equals to UTC).
27
+ # time and UTC. For example, <code>Rational(3,24)</code> represents ahead of 3
28
+ # hours of UTC, <code>Rational(-5,24)</code> represents behind of 5 hours of
29
+ # UTC. The offset should be -1 to +1, and its precision is assumed at most
30
+ # second. The default value is zero (equals to UTC).
31
31
  #
32
32
  # DateTime.new(2001,2,3,4,5,6,Rational(3,24))
33
33
  # #=> #<DateTime: 2001-02-03T04:05:06+03:00 ...>
@@ -39,7 +39,7 @@
39
39
  #
40
40
  # An optional argument, the day of calendar reform (`start`), denotes a Julian
41
41
  # day number, which should be 2298874 to 2426355 or negative/positive infinity.
42
- # The default value is `Date::ITALY` (2299161=1582-10-15).
42
+ # The default value is <code>Date::ITALY</code> (2299161=1582-10-15).
43
43
  #
44
44
  # A DateTime object has various methods. See each reference.
45
45
  #
@@ -183,8 +183,8 @@ class DateTime < Date
183
183
  # #=> #<DateTime: 2001-02-03T04:05:06+00:00 ...>
184
184
  #
185
185
  # Raise an ArgumentError when the string length is longer than *limit*. You can
186
- # stop this check by passing `limit: nil`, but note that it may take a long time
187
- # to parse.
186
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
187
+ # a long time to parse.
188
188
  #
189
189
  def self.httpdate: (String str, ?Integer start) -> DateTime
190
190
 
@@ -203,8 +203,8 @@ class DateTime < Date
203
203
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
204
204
  #
205
205
  # Raise an ArgumentError when the string length is longer than *limit*. You can
206
- # stop this check by passing `limit: nil`, but note that it may take a long time
207
- # to parse.
206
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
207
+ # a long time to parse.
208
208
  #
209
209
  def self.iso8601: (String str, ?Integer start) -> DateTime
210
210
 
@@ -237,8 +237,8 @@ class DateTime < Date
237
237
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
238
238
  #
239
239
  # Raise an ArgumentError when the string length is longer than *limit*. You can
240
- # stop this check by passing `limit: nil`, but note that it may take a long time
241
- # to parse.
240
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
241
+ # a long time to parse.
242
242
  #
243
243
  def self.jisx0301: (String str, ?Integer start) -> DateTime
244
244
 
@@ -288,8 +288,8 @@ class DateTime < Date
288
288
  # #=> #<DateTime: 2001-02-03T16:05:06+00:00 ...>
289
289
  #
290
290
  # Raise an ArgumentError when the string length is longer than *limit*. You can
291
- # stop this check by passing `limit: nil`, but note that it may take a long time
292
- # to parse.
291
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
292
+ # a long time to parse.
293
293
  #
294
294
  def self.parse: (String str, ?boolish complete, ?Integer start) -> DateTime
295
295
 
@@ -305,8 +305,8 @@ class DateTime < Date
305
305
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
306
306
  #
307
307
  # Raise an ArgumentError when the string length is longer than *limit*. You can
308
- # stop this check by passing `limit: nil`, but note that it may take a long time
309
- # to parse.
308
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
309
+ # a long time to parse.
310
310
  #
311
311
  def self.rfc2822: (String str, ?Integer start) -> DateTime
312
312
 
@@ -321,8 +321,8 @@ class DateTime < Date
321
321
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
322
322
  #
323
323
  # Raise an ArgumentError when the string length is longer than *limit*. You can
324
- # stop this check by passing `limit: nil`, but note that it may take a long time
325
- # to parse.
324
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
325
+ # a long time to parse.
326
326
  #
327
327
  def self.rfc3339: (String str, ?Integer start) -> DateTime
328
328
 
@@ -338,8 +338,8 @@ class DateTime < Date
338
338
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
339
339
  #
340
340
  # Raise an ArgumentError when the string length is longer than *limit*. You can
341
- # stop this check by passing `limit: nil`, but note that it may take a long time
342
- # to parse.
341
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
342
+ # a long time to parse.
343
343
  #
344
344
  def self.rfc822: (String str, ?Integer start) -> DateTime
345
345
 
@@ -383,8 +383,8 @@ class DateTime < Date
383
383
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
384
384
  #
385
385
  # Raise an ArgumentError when the string length is longer than *limit*. You can
386
- # stop this check by passing `limit: nil`, but note that it may take a long time
387
- # to parse.
386
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
387
+ # a long time to parse.
388
388
  #
389
389
  def self.xmlschema: (String str, ?Integer start) -> DateTime
390
390
 
@@ -393,8 +393,9 @@ class DateTime < Date
393
393
  # - deconstruct_keys(array_of_names_or_nil) -> hash
394
394
  # -->
395
395
  # Returns a hash of the name/value pairs, to use in pattern matching. Possible
396
- # keys are: `:year`, `:month`, `:day`, `:wday`, `:yday`, `:hour`, `:min`,
397
- # `:sec`, `:sec_fraction`, `:zone`.
396
+ # keys are: <code>:year</code>, <code>:month</code>, <code>:day</code>,
397
+ # <code>:wday</code>, <code>:yday</code>, <code>:hour</code>, <code>:min</code>,
398
+ # <code>:sec</code>, <code>:sec_fraction</code>, <code>:zone</code>.
398
399
  #
399
400
  # Possible usages:
400
401
  #
@@ -555,7 +556,7 @@ class DateTime < Date
555
556
  # DateTime.now.strftime # => "2022-07-01T11:03:19-05:00"
556
557
  #
557
558
  # For other formats, see [Formats for Dates and
558
- # Times](rdoc-ref:strftime_formatting.rdoc):
559
+ # Times](rdoc-ref:language/strftime_formatting.rdoc):
559
560
  #
560
561
  def strftime: (?String format) -> String
561
562
 
@@ -44,7 +44,7 @@ class Delegator < BasicObject
44
44
  # rdoc-file=lib/delegate.rb
45
45
  # - !()
46
46
  # -->
47
- # Delegates ! to the _*getobj*_
47
+ # Delegates ! to the `__getobj__`
48
48
  #
49
49
  def !: () -> untyped
50
50
 
@@ -94,7 +94,7 @@ class Delegator < BasicObject
94
94
  # rdoc-file=lib/delegate.rb
95
95
  # - freeze()
96
96
  # -->
97
- # :method: freeze Freeze both the object returned by _*getobj*_ and self.
97
+ # :method: freeze Freeze both the object returned by `__getobj__` and self.
98
98
  #
99
99
  def freeze: () -> self
100
100
 
@@ -102,7 +102,7 @@ class Delegator < BasicObject
102
102
  # rdoc-file=lib/delegate.rb
103
103
  # - marshal_dump()
104
104
  # -->
105
- # Serialization support for the object returned by _*getobj*_.
105
+ # Serialization support for the object returned by `__getobj__`.
106
106
  #
107
107
  def marshal_dump: () -> untyped
108
108
 
@@ -126,7 +126,7 @@ class Delegator < BasicObject
126
126
  # - methods(all=true)
127
127
  # -->
128
128
  # Returns the methods available to this delegate object as the union of this
129
- # object's and _*getobj*_ methods.
129
+ # object's and `__getobj__` methods.
130
130
  #
131
131
  def methods: (?boolish all) -> Array[Symbol]
132
132
 
@@ -135,7 +135,7 @@ class Delegator < BasicObject
135
135
  # - protected_methods(all=true)
136
136
  # -->
137
137
  # Returns the methods available to this delegate object as the union of this
138
- # object's and _*getobj*_ protected methods.
138
+ # object's and `__getobj__` protected methods.
139
139
  #
140
140
  def protected_methods: (?boolish all) -> Array[Symbol]
141
141
 
@@ -144,7 +144,7 @@ class Delegator < BasicObject
144
144
  # - public_methods(all=true)
145
145
  # -->
146
146
  # Returns the methods available to this delegate object as the union of this
147
- # object's and _*getobj*_ public methods.
147
+ # object's and `__getobj__` public methods.
148
148
  #
149
149
  def public_methods: (?untyped all) -> Array[Symbol]
150
150
 
@@ -168,7 +168,7 @@ class Delegator < BasicObject
168
168
  # - respond_to_missing?(m, include_private)
169
169
  # -->
170
170
  # Checks for a method provided by this the delegate object by forwarding the
171
- # call through _*getobj*_.
171
+ # call through `__getobj__`.
172
172
  #
173
173
  def respond_to_missing?: (Symbol m, bool include_private) -> bool
174
174
 
@@ -180,5 +180,8 @@ class Delegator < BasicObject
180
180
  #
181
181
  def target_respond_to?: (untyped target, Symbol m, bool include_private) -> bool
182
182
 
183
+ # <!-- rdoc-file=lib/delegate.rb -->
184
+ # The version string
185
+ #
183
186
  VERSION: String
184
187
  end
@@ -38,7 +38,7 @@
38
38
  #
39
39
  # Occasionally, you may want to disable the `did_you_mean` gem for e.g.
40
40
  # debugging issues in the error object itself. You can disable it entirely by
41
- # specifying `--disable-did_you_mean` option to the `ruby` command:
41
+ # specifying <code>--disable-did_you_mean</code> option to the `ruby` command:
42
42
  #
43
43
  # $ ruby --disable-did_you_mean -e "1.zeor?"
44
44
  # -e:1:in `<main>': undefined method `zeor?' for 1:Integer (NameError)
@@ -55,7 +55,7 @@
55
55
  #
56
56
  # Sometimes, you do not want to disable the gem entirely, but need to get the
57
57
  # original error message without suggestions (e.g. testing). In this case, you
58
- # could use the `#original_message` method on the error object:
58
+ # could use the <code>#original_message</code> method on the error object:
59
59
  #
60
60
  # no_method_error = begin
61
61
  # 1.zeor?
@@ -92,9 +92,9 @@ module DidYouMean
92
92
  end
93
93
 
94
94
  # <!-- rdoc-file=lib/did_you_mean/formatter.rb -->
95
- # The `DidYouMean::Formatter` is the basic, default formatter for the gem. The
96
- # formatter responds to the `message_for` method and it returns a human readable
97
- # string.
95
+ # The <code>DidYouMean::Formatter</code> is the basic, default formatter for the
96
+ # gem. The formatter responds to the `message_for` method and it returns a human
97
+ # readable string.
98
98
  #
99
99
  class Formatter
100
100
  # <!--
@@ -170,15 +170,16 @@ module DidYouMean
170
170
  NAMES_TO_EXCLUDE: Hash[untyped, Array[Symbol]]
171
171
 
172
172
  # <!-- rdoc-file=lib/did_you_mean/spell_checkers/method_name_checker.rb -->
173
- # `MethodNameChecker::RB_RESERVED_WORDS` is the list of reserved words in Ruby
174
- # that take an argument. Unlike `VariableNameChecker::RB_RESERVED_WORDS`, these
175
- # reserved words require an argument, and a `NoMethodError` is raised due to the
176
- # presence of the argument.
173
+ # <code>MethodNameChecker::RB_RESERVED_WORDS</code> is the list of reserved
174
+ # words in Ruby that take an argument. Unlike
175
+ # <code>VariableNameChecker::RB_RESERVED_WORDS</code>, these reserved words
176
+ # require an argument, and a `NoMethodError` is raised due to the presence of
177
+ # the argument.
177
178
  #
178
179
  # The `MethodNameChecker` will use this list to suggest a reversed word if a
179
180
  # `NoMethodError` is raised and found closest matches.
180
181
  #
181
- # Also see `VariableNameChecker::RB_RESERVED_WORDS`.
182
+ # Also see <code>VariableNameChecker::RB_RESERVED_WORDS</code>.
182
183
  #
183
184
  RB_RESERVED_WORDS: Array[Symbol]
184
185
 
@@ -295,19 +296,19 @@ module DidYouMean
295
296
  NAMES_TO_EXCLUDE: Hash[String, Array[Symbol]]
296
297
 
297
298
  # <!-- rdoc-file=lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb -->
298
- # `VariableNameChecker::RB_RESERVED_WORDS` is the list of all reserved words in
299
- # Ruby. They could be declared like methods are, and a typo would cause Ruby to
300
- # raise a `NameError` because of the way they are declared.
299
+ # <code>VariableNameChecker::RB_RESERVED_WORDS</code> is the list of all
300
+ # reserved words in Ruby. They could be declared like methods are, and a typo
301
+ # would cause Ruby to raise a `NameError` because of the way they are declared.
301
302
  #
302
- # The `:VariableNameChecker` will use this list to suggest a reversed word if a
303
- # `NameError` is raised and found closest matches, excluding:
303
+ # The <code>:VariableNameChecker</code> will use this list to suggest a reversed
304
+ # word if a `NameError` is raised and found closest matches, excluding:
304
305
  #
305
306
  # * +do+
306
307
  # * +if+
307
308
  # * +in+
308
309
  # * +or+
309
310
  #
310
- # Also see `MethodNameChecker::RB_RESERVED_WORDS`.
311
+ # Also see <code>MethodNameChecker::RB_RESERVED_WORDS</code>.
311
312
  #
312
313
  RB_RESERVED_WORDS: Array[Symbol]
313
314
 
@@ -471,6 +471,116 @@ end
471
471
  class Digest::SHA1 < Digest::Base
472
472
  end
473
473
 
474
+ # <!-- rdoc-file=ext/digest/sha2/lib/sha2.rb -->
475
+ # A meta digest provider class for SHA256, SHA384 and SHA512.
476
+ #
477
+ # FIPS 180-2 describes SHA2 family of digest algorithms. It defines three
478
+ # algorithms:
479
+ # * one which works on chunks of 512 bits and returns a 256-bit digest
480
+ # (SHA256),
481
+ # * one which works on chunks of 1024 bits and returns a 384-bit digest
482
+ # (SHA384),
483
+ # * and one which works on chunks of 1024 bits and returns a 512-bit digest
484
+ # (SHA512).
485
+ #
486
+ # ## Examples
487
+ # require 'digest'
488
+ #
489
+ # # Compute a complete digest
490
+ # Digest::SHA2.hexdigest 'abc' # => "ba7816bf8..."
491
+ # Digest::SHA2.new(256).hexdigest 'abc' # => "ba7816bf8..."
492
+ # Digest::SHA256.hexdigest 'abc' # => "ba7816bf8..."
493
+ #
494
+ # Digest::SHA2.new(384).hexdigest 'abc' # => "cb00753f4..."
495
+ # Digest::SHA384.hexdigest 'abc' # => "cb00753f4..."
496
+ #
497
+ # Digest::SHA2.new(512).hexdigest 'abc' # => "ddaf35a19..."
498
+ # Digest::SHA512.hexdigest 'abc' # => "ddaf35a19..."
499
+ #
500
+ # # Compute digest by chunks
501
+ # sha2 = Digest::SHA2.new # =>#<Digest::SHA2:256>
502
+ # sha2.update "ab"
503
+ # sha2 << "c" # alias for #update
504
+ # sha2.hexdigest # => "ba7816bf8..."
505
+ #
506
+ # # Use the same object to compute another digest
507
+ # sha2.reset
508
+ # sha2 << "message"
509
+ # sha2.hexdigest # => "ab530a13e..."
510
+ #
511
+ class Digest::SHA2 < Digest::Class
512
+ # <!--
513
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
514
+ # - Digest::SHA2.new(bitlen = 256) -> digest_obj
515
+ # -->
516
+ # Create a new SHA2 hash object with a given bit length.
517
+ #
518
+ # Valid bit lengths are 256, 384 and 512.
519
+ #
520
+ def initialize: (?(256 | 384 | 512) bitlen) -> void
521
+
522
+ # <!--
523
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
524
+ # - digest_obj.reset -> digest_obj
525
+ # -->
526
+ # Reset the digest to the initial state and return self.
527
+ #
528
+ def reset: () -> self
529
+
530
+ # <!--
531
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
532
+ # - digest_obj.update(string) -> digest_obj
533
+ # - digest_obj << string -> digest_obj
534
+ # -->
535
+ # Update the digest using a given *string* and return self.
536
+ #
537
+ def update: (String) -> self
538
+
539
+ private def finish: () -> String
540
+
541
+ # <!--
542
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
543
+ # - <<(str)
544
+ # -->
545
+ #
546
+ alias << update
547
+
548
+ # <!--
549
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
550
+ # - digest_obj.block_length -> Integer
551
+ # -->
552
+ # Return the block length of the digest in bytes.
553
+ #
554
+ # Digest::SHA256.new.block_length * 8
555
+ # # => 512
556
+ # Digest::SHA384.new.block_length * 8
557
+ # # => 1024
558
+ # Digest::SHA512.new.block_length * 8
559
+ # # => 1024
560
+ #
561
+ def block_length: () -> Integer
562
+
563
+ # <!--
564
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
565
+ # - digest_obj.digest_length -> Integer
566
+ # -->
567
+ # Return the length of the hash value (the digest) in bytes.
568
+ #
569
+ # Digest::SHA256.new.digest_length * 8
570
+ # # => 256
571
+ # Digest::SHA384.new.digest_length * 8
572
+ # # => 384
573
+ # Digest::SHA512.new.digest_length * 8
574
+ # # => 512
575
+ #
576
+ # For example, digests produced by Digest::SHA256 will always be 32 bytes (256
577
+ # bits) in size.
578
+ #
579
+ def digest_length: () -> Integer
580
+
581
+ def initialize_copy: (untyped) -> untyped
582
+ end
583
+
474
584
  # <!-- rdoc-file=ext/digest/md5/md5init.c -->
475
585
  # A class for calculating message digests using the MD5 Message-Digest Algorithm
476
586
  # by RSA Data Security, Inc., described in RFC1321.