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/dir.rbs CHANGED
@@ -116,10 +116,12 @@
116
116
  #
117
117
  # * ::[]: Same as ::glob without the ability to pass flags.
118
118
  # * ::children: Returns an array of names of the children (both files and
119
- # directories) of the given directory, but not including `.` or `..`.
119
+ # directories) of the given directory, but not including <code>.</code> or
120
+ # <code>..</code>.
120
121
  # * ::empty?: Returns whether the given path is an empty directory.
121
122
  # * ::entries: Returns an array of names of the children (both files and
122
- # directories) of the given directory, including `.` and `..`.
123
+ # directories) of the given directory, including <code>.</code> and
124
+ # <code>..</code>.
123
125
  # * ::exist?: Returns whether the given path is a directory.
124
126
  # * ::getwd (aliased as #pwd): Returns the path to the current working
125
127
  # directory.
@@ -128,7 +130,8 @@
128
130
  # * ::home: Returns the home directory path for a given user or the current
129
131
  # user.
130
132
  # * #children: Returns an array of names of the children (both files and
131
- # directories) of `self`, but not including `.` or `..`.
133
+ # directories) of `self`, but not including <code>.</code> or
134
+ # <code>..</code>.
132
135
  # * #fileno: Returns the integer file descriptor for `self`.
133
136
  # * #path (aliased as #to_path): Returns the path used to create `self`.
134
137
  # * #tell (aliased as #pos): Returns the integer position in the directory
@@ -137,13 +140,13 @@
137
140
  # ### Iterating
138
141
  #
139
142
  # * ::each_child: Calls the given block with each entry in the given
140
- # directory, but not including `.` or `..`.
143
+ # directory, but not including <code>.</code> or <code>..</code>.
141
144
  # * ::foreach: Calls the given block with each entry in the given directory,
142
- # including `.` and `..`.
143
- # * #each: Calls the given block with each entry in `self`, including `.` and
144
- # `..`.
145
+ # including <code>.</code> and <code>..</code>.
146
+ # * #each: Calls the given block with each entry in `self`, including
147
+ # <code>.</code> and <code>..</code>.
145
148
  # * #each_child: Calls the given block with each entry in `self`, but not
146
- # including `.` or `..`.
149
+ # including <code>.</code> or <code>..</code>.
147
150
  #
148
151
  # ### Other
149
152
  #
@@ -171,7 +174,7 @@ class Dir
171
174
  # system's encoding is used:
172
175
  #
173
176
  # Dir.new('.').read.encoding # => #<Encoding:UTF-8>
174
- # Dir.new('.', encoding: 'US-ASCII').read.encoding # => #<Encoding:US-ASCII>
177
+ # Dir.new('.', encoding: Encoding::US_ASCI).read.encoding # => #<Encoding:US-ASCII>
175
178
  #
176
179
  def initialize: (path dir, ?encoding: encoding?) -> void
177
180
 
@@ -255,7 +258,8 @@ class Dir
255
258
  # - Dir.children(dirpath, encoding: 'UTF-8') -> array
256
259
  # -->
257
260
  # Returns an array of the entry names in the directory at `dirpath` except for
258
- # `'.'` and `'..'`; sets the given encoding onto each returned entry name:
261
+ # <code>'.'</code> and <code>'..'</code>; sets the given encoding onto each
262
+ # returned entry name:
259
263
  #
260
264
  # Dir.children('/example') # => ["config.h", "lib", "main.rb"]
261
265
  # Dir.children('/example').first.encoding
@@ -274,8 +278,9 @@ class Dir
274
278
  # - Dir.chroot(dirpath) -> 0
275
279
  # -->
276
280
  # Changes the root directory of the calling process to that specified in
277
- # `dirpath`. The new root directory is used for pathnames beginning with `'/'`.
278
- # The root directory is inherited by all children of the calling process.
281
+ # `dirpath`. The new root directory is used for pathnames beginning with
282
+ # <code>'/'</code>. The root directory is inherited by all children of the
283
+ # calling process.
279
284
  #
280
285
  # Only a privileged process may call `chroot`.
281
286
  #
@@ -300,7 +305,8 @@ class Dir
300
305
  # - Dir.each_child(dirpath) {|entry_name| ... } -> nil
301
306
  # - Dir.each_child(dirpath, encoding: 'UTF-8') {|entry_name| ... } -> nil
302
307
  # -->
303
- # Like Dir.foreach, except that entries `'.'` and `'..'` are not included.
308
+ # Like Dir.foreach, except that entries <code>'.'</code> and <code>'..'</code>
309
+ # are not included.
304
310
  #
305
311
  def self.each_child: (path dirname, ?encoding: encoding?) -> Enumerator[String, nil]
306
312
  | (path dirname, ?encoding: encoding?) { (String filename) -> void } -> nil
@@ -477,8 +483,8 @@ class Dir
477
483
 
478
484
  # <!--
479
485
  # rdoc-file=dir.rb
480
- # - Dir.glob(*patterns, flags: 0, base: nil, sort: true) -> array
481
- # - Dir.glob(*patterns, flags: 0, base: nil, sort: true) {|entry_name| ... } -> nil
486
+ # - Dir.glob(patterns, flags: 0, base: nil, sort: true) -> array
487
+ # - Dir.glob(patterns, flags: 0, base: nil, sort: true) {|entry_name| ... } -> nil
482
488
  # -->
483
489
  # Forms an array *entry_names* of the entry names selected by the arguments.
484
490
  #
@@ -487,8 +493,8 @@ class Dir
487
493
  #
488
494
  # Notes for the following examples:
489
495
  #
490
- # * `'*'` is the pattern that matches any entry name except those that begin
491
- # with `'.'`.
496
+ # * <code>'*'</code> is the pattern that matches any entry name except those
497
+ # that begin with <code>'.'</code>.
492
498
  # * We use method Array#take to shorten returned arrays that otherwise would
493
499
  # be very large.
494
500
  #
@@ -513,8 +519,8 @@ class Dir
513
519
  #
514
520
  # If optional keyword argument `base` is given, its value specifies the base
515
521
  # directory. Each pattern string specifies entries relative to the base
516
- # directory; the default is `'.'`. The base directory is not prepended to the
517
- # entry names in the result:
522
+ # directory; the default is <code>'.'</code>. The base directory is not
523
+ # prepended to the entry names in the result:
518
524
  #
519
525
  # Dir.glob(pattern, base: 'lib').take(5)
520
526
  # # => ["abbrev.gemspec", "abbrev.rb", "base64.gemspec", "base64.rb", "benchmark.gemspec"]
@@ -531,60 +537,64 @@ class Dir
531
537
  # Each pattern string is expanded according to certain metacharacters; examples
532
538
  # below use the [Ruby file tree](rdoc-ref:Dir@About+the+Examples):
533
539
  #
534
- # * `'*'`: Matches any substring in an entry name, similar in meaning to
535
- # regexp `/.*/mx`; may be restricted by other values in the pattern strings:
540
+ # * <code>'*'</code>: Matches any substring in an entry name, similar in
541
+ # meaning to regexp <code>/.*/mx</code>; may be restricted by other values
542
+ # in the pattern strings:
536
543
  #
537
- # * `'*'` matches all entry names:
544
+ # * <code>'*'</code> matches all entry names:
538
545
  #
539
546
  # Dir.glob('*').take(3) # => ["BSDL", "CONTRIBUTING.md", "COPYING"]
540
547
  #
541
- # * `'c*'` matches entry names beginning with `'c'`:
548
+ # * <code>'c*'</code> matches entry names beginning with <code>'c'</code>:
542
549
  #
543
550
  # Dir.glob('c*').take(3) # => ["CONTRIBUTING.md", "COPYING", "COPYING.ja"]
544
551
  #
545
- # * `'*c'` matches entry names ending with `'c'`:
552
+ # * <code>'*c'</code> matches entry names ending with <code>'c'</code>:
546
553
  #
547
554
  # Dir.glob('*c').take(3) # => ["addr2line.c", "array.c", "ast.c"]
548
555
  #
549
- # * `'*c*'` matches entry names that contain `'c'`, even at the beginning
550
- # or end:
556
+ # * <code>'*c*'</code> matches entry names that contain <code>'c'</code>,
557
+ # even at the beginning or end:
551
558
  #
552
559
  # Dir.glob('*c*').take(3) # => ["CONTRIBUTING.md", "COPYING", "COPYING.ja"]
553
560
  #
554
561
  # Does not match Unix-like hidden entry names ("dot files"). To include
555
562
  # those in the matched entry names, use flag IO::FNM_DOTMATCH or something
556
- # like `'{*,.*}'`.
563
+ # like <code>'{*,.*}'</code>.
557
564
  #
558
- # * `'**'`: Matches entry names recursively if followed by the slash
559
- # character `'/'`:
565
+ # * <code>'**'</code>: Matches entry names recursively if followed by the
566
+ # slash character <code>'/'</code>:
560
567
  #
561
568
  # Dir.glob('**/').take(3) # => ["basictest/", "benchmark/", "benchmark/gc/"]
562
569
  #
563
570
  # If the string pattern contains other characters or is not followed by a
564
- # slash character, it is equivalent to `'*'`.
571
+ # slash character, it is equivalent to <code>'*'</code>.
565
572
  #
566
- # * `'?'` Matches any single character; similar in meaning to regexp `/./`:
573
+ # * <code>'?'</code> Matches any single character; similar in meaning to
574
+ # regexp <code>/./</code>:
567
575
  #
568
576
  # Dir.glob('io.?') # => ["io.c"]
569
577
  #
570
- # * `'[*set*]'`: Matches any one character in the string *set*; behaves like a
571
- # [Regexp character class](rdoc-ref:Regexp@Character+Classes), including set
572
- # negation (`'[^a-z]'`):
578
+ # * <code>'[_set_]'</code>: Matches any one character in the string *set*;
579
+ # behaves like a [Regexp character
580
+ # class](rdoc-ref:Regexp@Character+Classes), including set negation
581
+ # (<code>'[^a-z]'</code>):
573
582
  #
574
583
  # Dir.glob('*.[a-z][a-z]').take(3)
575
584
  # # => ["CONTRIBUTING.md", "COPYING.ja", "KNOWNBUGS.rb"]
576
585
  #
577
- # * `'{*abc*,*xyz*}'`: Matches either string *abc* or string *xyz*; behaves
578
- # like [Regexp alternation](rdoc-ref:Regexp@Alternation):
586
+ # * <code>'{_abc_,_xyz_}'</code>: Matches either string *abc* or string *xyz*;
587
+ # behaves like [Regexp alternation](rdoc-ref:Regexp@Alternation):
579
588
  #
580
589
  # Dir.glob('{LEGAL,BSDL}') # => ["LEGAL", "BSDL"]
581
590
  #
582
591
  # More than two alternatives may be given.
583
592
  #
584
- # * `\`: Escapes the following metacharacter.
593
+ # * <code>\</code>: Escapes the following metacharacter.
585
594
  #
586
595
  # Note that on Windows, the backslash character may not be used in a string
587
- # pattern: `Dir['c:\\foo*']` will not work, use `Dir['c:/foo*']` instead.
596
+ # pattern: <code>Dir['c:\foo*']</code> will not work, use
597
+ # <code>Dir['c:/foo*']</code> instead.
588
598
  #
589
599
  # More examples (using the [simple file tree](rdoc-ref:Dir@About+the+Examples)):
590
600
  #
@@ -623,26 +633,26 @@ class Dir
623
633
  #
624
634
  # The flags for this method (other constants in File::Constants do not apply):
625
635
  #
626
- # * File::FNM_DOTMATCH: specifies that entry names beginning with `'.'` should
627
- # be considered for matching:
636
+ # * File::FNM_DOTMATCH: specifies that entry names beginning with
637
+ # <code>'.'</code> should be considered for matching:
628
638
  #
629
639
  # Dir.glob('*').take(5)
630
640
  # # => ["BSDL", "CONTRIBUTING.md", "COPYING", "COPYING.ja", "GPL"]
631
641
  # Dir.glob('*', flags: File::FNM_DOTMATCH).take(5)
632
642
  # # => [".", ".appveyor.yml", ".cirrus.yml", ".dir-locals.el", ".document"]
633
643
  #
634
- # * File::FNM_EXTGLOB: enables the pattern extension `'{*a*,*b*}'`, which
635
- # matches pattern *a* and pattern *b*; behaves like a [regexp
636
- # union](rdoc-ref:Regexp.union) (e.g., `'(?:*a*|*b*)'`):
644
+ # * File::FNM_EXTGLOB: enables the pattern extension <code>'{_a_,_b_}'</code>,
645
+ # which matches pattern *a* and pattern *b*; behaves like a [regexp
646
+ # union](rdoc-ref:Regexp.union) (e.g., <code>'(?:_a_|_b_)'</code>):
637
647
  #
638
648
  # pattern = '{LEGAL,BSDL}'
639
649
  # Dir.glob(pattern) # => ["LEGAL", "BSDL"]
640
650
  #
641
651
  # * File::FNM_NOESCAPE: specifies that escaping with the backslash character
642
- # `'\'` is disabled; the character is not an escape character.
652
+ # <code>'\'</code> is disabled; the character is not an escape character.
643
653
  #
644
- # * File::FNM_PATHNAME: specifies that metacharacters `'*'` and `'?'` do not
645
- # match directory separators.
654
+ # * File::FNM_PATHNAME: specifies that metacharacters <code>'*'</code> and
655
+ # <code>'?'</code> do not match directory separators.
646
656
  #
647
657
  # * File::FNM_SHORTNAME: specifies that patterns may match short names if they
648
658
  # exist; Windows only.
@@ -704,7 +714,7 @@ class Dir
704
714
  # system's encoding is used:
705
715
  #
706
716
  # Dir.open('.').read.encoding # => #<Encoding:UTF-8>
707
- # Dir.open('.', encoding: 'US-ASCII').read.encoding # => #<Encoding:US-ASCII>
717
+ # Dir.open('.', encoding: Encoding::US_ASCII).read.encoding # => #<Encoding:US-ASCII>
708
718
  #
709
719
  def self.open: (path dirname, ?encoding: encoding?) -> instance
710
720
  | [U] (path dirname, ?encoding: encoding?) { (instance) -> U } -> U
@@ -774,7 +784,8 @@ class Dir
774
784
  # rdoc-file=dir.c
775
785
  # - children -> array
776
786
  # -->
777
- # Returns an array of the entry names in `self` except for `'.'` and `'..'`:
787
+ # Returns an array of the entry names in `self` except for <code>'.'</code> and
788
+ # <code>'..'</code>:
778
789
  #
779
790
  # dir = Dir.new('/example')
780
791
  # dir.children # => ["config.h", "lib", "main.rb"]
@@ -821,7 +832,8 @@ class Dir
821
832
  # rdoc-file=dir.c
822
833
  # - each_child {|entry_name| ... } -> self
823
834
  # -->
824
- # Calls the block with each entry name in `self` except `'.'` and `'..'`:
835
+ # Calls the block with each entry name in `self` except <code>'.'</code> and
836
+ # <code>'..'</code>:
825
837
  #
826
838
  # dir = Dir.new('/example')
827
839
  # dir.each_child {|entry_name| p entry_name }
data/core/encoding.rbs CHANGED
@@ -127,7 +127,7 @@ class Encoding
127
127
  # Sets default external encoding. You should not set Encoding::default_external
128
128
  # in ruby code as strings created before changing the value may have a different
129
129
  # encoding from strings created after the value was changed., instead you should
130
- # use `ruby -E` to invoke ruby with the correct default_external.
130
+ # use <code>ruby -E</code> to invoke ruby with the correct default_external.
131
131
  #
132
132
  # See Encoding::default_external for information on how the default external
133
133
  # encoding is used.
@@ -172,8 +172,8 @@ class Encoding
172
172
  # Sets default internal encoding or removes default internal encoding when
173
173
  # passed nil. You should not set Encoding::default_internal in ruby code as
174
174
  # strings created before changing the value may have a different encoding from
175
- # strings created after the change. Instead you should use `ruby -E` to invoke
176
- # ruby with the correct default_internal.
175
+ # strings created after the change. Instead you should use <code>ruby -E</code>
176
+ # to invoke ruby with the correct default_internal.
177
177
  #
178
178
  # See Encoding::default_internal for information on how the default internal
179
179
  # encoding is used.
@@ -207,8 +207,8 @@ class Encoding
207
207
  #
208
208
  #
209
209
  # An ArgumentError is raised when no encoding with *name*. Only
210
- # `Encoding.find("internal")` however returns nil when no encoding named
211
- # "internal", in other words, when Ruby has no default internal encoding.
210
+ # <code>Encoding.find("internal")</code> however returns nil when no encoding
211
+ # named "internal", in other words, when Ruby has no default internal encoding.
212
212
  #
213
213
  def self.find: (encoding enc) -> Encoding?
214
214
 
@@ -281,7 +281,7 @@ class Encoding
281
281
  def inspect: () -> String
282
282
 
283
283
  # <!-- rdoc-file=encoding.c -->
284
- # Returns the name of the encoding.
284
+ # The name of the encoding.
285
285
  #
286
286
  # Encoding::UTF_8.name #=> "UTF-8"
287
287
  #
@@ -297,12 +297,8 @@ class Encoding
297
297
  #
298
298
  def names: () -> Array[String]
299
299
 
300
- # <!--
301
- # rdoc-file=encoding.c
302
- # - enc.name -> string
303
- # - enc.to_s -> string
304
- # -->
305
- # Returns the name of the encoding.
300
+ # <!-- rdoc-file=encoding.c -->
301
+ # The name of the encoding.
306
302
  #
307
303
  # Encoding::UTF_8.name #=> "UTF-8"
308
304
  #
@@ -785,7 +781,7 @@ class Encoding::Converter < Object
785
781
  # - ec == other -> true or false
786
782
  # -->
787
783
  #
788
- def ==: (self) -> bool
784
+ def ==: (untyped) -> bool
789
785
 
790
786
  # <!--
791
787
  # rdoc-file=transcode.c
@@ -923,8 +919,9 @@ class Encoding::Converter < Object
923
919
  # p ec.primitive_convert(src, dst, nil, 1) #=> :destination_buffer_full
924
920
  # p ec.last_error #=> nil
925
921
  #
926
- def last_error: () -> Encoding::InvalidByteSequenceError?
927
- | () -> Encoding::UndefinedConversionError?
922
+ def last_error: () -> ( Encoding::InvalidByteSequenceError
923
+ | Encoding::UndefinedConversionError
924
+ | nil )
928
925
 
929
926
  # <!--
930
927
  # rdoc-file=transcode.c