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/stdlib/pp/0/pp.rbs CHANGED
@@ -31,18 +31,19 @@
31
31
  # pp(obj1, obj2, ...) #=> [obj1, obj2, ...]
32
32
  # pp() #=> nil
33
33
  #
34
- # Output `obj(s)` to `$>` in pretty printed format.
34
+ # Output <code>obj(s)</code> to <code>$></code> in pretty printed format.
35
35
  #
36
- # It returns `obj(s)`.
36
+ # It returns <code>obj(s)</code>.
37
37
  #
38
38
  # ## Output Customization
39
39
  #
40
40
  # To define a customized pretty printing function for your classes, redefine
41
- # method `#pretty_print(pp)` in the class. Note that `require 'pp'` is needed
42
- # before redefining `#pretty_print(pp)`.
41
+ # method <code>#pretty_print(pp)</code> in the class. Note that <code>require
42
+ # 'pp'</code> is needed before redefining <code>#pretty_print(pp)</code>.
43
43
  #
44
- # `#pretty_print` takes the `pp` argument, which is an instance of the PP class.
45
- # The method uses #text, #breakable, #nest, #group and #pp to print the object.
44
+ # <code>#pretty_print</code> takes the `pp` argument, which is an instance of
45
+ # the PP class. The method uses #text, #breakable, #nest, #group and #pp to
46
+ # print the object.
46
47
  #
47
48
  # ## Pretty-Print JSON
48
49
  #
@@ -237,8 +238,8 @@ class PP < PrettyPrint
237
238
  # -->
238
239
  # Outputs `obj` to `out` in pretty printed format of `width` columns in width.
239
240
  #
240
- # If `out` is omitted, `$>` is assumed. If `width` is omitted, the width of
241
- # `out` is assumed (see width_for).
241
+ # If `out` is omitted, <code>$></code> is assumed. If `width` is omitted, the
242
+ # width of `out` is assumed (see width_for).
242
243
  #
243
244
  # PP.pp returns `out`.
244
245
  #
@@ -196,8 +196,8 @@ class PrettyPrint
196
196
  #
197
197
  # If `sep` is not specified, " " is used.
198
198
  #
199
- # If `width` is not specified, `sep.length` is used. You will have to specify
200
- # this when `sep` is a multibyte character, for example.
199
+ # If `width` is not specified, <code>sep.length</code> is used. You will have to
200
+ # specify this when `sep` is a multibyte character, for example.
201
201
  #
202
202
  def fill_breakable: (?String sep, ?Integer width) -> void
203
203
 
@@ -210,8 +210,8 @@ class PrettyPrint
210
210
  #
211
211
  # If `sep` is not specified, " " is used.
212
212
  #
213
- # If `width` is not specified, `sep.length` is used. You will have to specify
214
- # this when `sep` is a multibyte character, for example.
213
+ # If `width` is not specified, <code>sep.length</code> is used. You will have to
214
+ # specify this when `sep` is a multibyte character, for example.
215
215
  #
216
216
  def breakable: (?String sep, ?Integer width) -> void
217
217
 
@@ -225,9 +225,9 @@ class PrettyPrint
225
225
  # If `indent` is specified, the method call is regarded as nested by
226
226
  # nest(indent) { ... }.
227
227
  #
228
- # If `open_obj` is specified, `text open_obj, open_width` is called before
229
- # grouping. If `close_obj` is specified, `text close_obj, close_width` is called
230
- # after grouping.
228
+ # If `open_obj` is specified, <code>text open_obj, open_width</code> is called
229
+ # before grouping. If `close_obj` is specified, <code>text close_obj,
230
+ # close_width</code> is called after grouping.
231
231
  #
232
232
  def group: (?::Integer indent, ?::String open_obj, ?::String close_obj, ?Integer open_width, ?Integer close_width) { () -> untyped } -> Integer
233
233
 
@@ -299,7 +299,7 @@
299
299
  # end
300
300
  # end
301
301
  #
302
- class PStore
302
+ class PStore[unchecked out K = untyped, unchecked out V = untyped]
303
303
  # <!--
304
304
  # rdoc-file=lib/pstore.rb
305
305
  # - [](key)
@@ -320,7 +320,7 @@ class PStore
320
320
  #
321
321
  # Raises an exception if called outside a transaction block.
322
322
  #
323
- def []: (untyped name) -> untyped
323
+ def []: (K name) -> V?
324
324
 
325
325
  # <!--
326
326
  # rdoc-file=lib/pstore.rb
@@ -338,7 +338,7 @@ class PStore
338
338
  #
339
339
  # Raises an exception if called outside a transaction block.
340
340
  #
341
- def []=: (untyped name, untyped value) -> untyped
341
+ def []=: (K name, V value) -> V
342
342
 
343
343
  # <!--
344
344
  # rdoc-file=lib/pstore.rb
@@ -349,7 +349,7 @@ class PStore
349
349
  #
350
350
  # Raises an exception if called outside a transaction block.
351
351
  #
352
- def abort: () -> untyped
352
+ def abort: () -> void
353
353
 
354
354
  # <!--
355
355
  # rdoc-file=lib/pstore.rb
@@ -360,7 +360,7 @@ class PStore
360
360
  #
361
361
  # Raises an exception if called outside a transaction block.
362
362
  #
363
- def commit: () -> nil
363
+ def commit: () -> void
364
364
 
365
365
  # <!--
366
366
  # rdoc-file=lib/pstore.rb
@@ -379,7 +379,7 @@ class PStore
379
379
  #
380
380
  # Raises an exception if called outside a transaction block.
381
381
  #
382
- def delete: (untyped name) -> untyped
382
+ def delete: (K name) -> V?
383
383
 
384
384
  # <!--
385
385
  # rdoc-file=lib/pstore.rb
@@ -400,7 +400,7 @@ class PStore
400
400
  #
401
401
  # Raises an exception if called outside a transaction block.
402
402
  #
403
- def fetch: (untyped name, ?untyped default) -> untyped
403
+ def fetch: (K name, ?V default) -> V
404
404
 
405
405
  # <!--
406
406
  # rdoc-file=lib/pstore.rb
@@ -410,21 +410,25 @@ class PStore
410
410
  #
411
411
  # store.path # => "flat.store"
412
412
  #
413
- def path: () -> untyped
413
+ def path: () -> String
414
414
 
415
415
  # <!--
416
416
  # rdoc-file=lib/pstore.rb
417
417
  # - root?(key)
418
418
  # -->
419
419
  #
420
- def root?: (untyped name) -> bool
420
+ def key?: (K name) -> bool
421
+
422
+ alias root? key?
421
423
 
422
424
  # <!--
423
425
  # rdoc-file=lib/pstore.rb
424
426
  # - roots()
425
427
  # -->
426
428
  #
427
- def roots: () -> Array[untyped]
429
+ def keys: () -> Array[K]
430
+
431
+ alias roots keys
428
432
 
429
433
  # <!--
430
434
  # rdoc-file=lib/pstore.rb
@@ -441,7 +445,7 @@ class PStore
441
445
  #
442
446
  # Raises an exception if called within a transaction block.
443
447
  #
444
- def transaction: (?untyped read_only) -> untyped
448
+ def transaction: [U] (?bool read_only) { (self) -> U } -> U
445
449
 
446
450
  # <!-- rdoc-file=lib/pstore.rb -->
447
451
  # Whether PStore should do its best to prevent file corruptions, even when an
@@ -458,7 +462,7 @@ class PStore
458
462
  # raises no unexpected I/O error; if such an error occurs during a write to
459
463
  # the store, the file may become corrupted.
460
464
  #
461
- def ultra_safe: () -> untyped
465
+ def ultra_safe: () -> bool
462
466
 
463
467
  # <!-- rdoc-file=lib/pstore.rb -->
464
468
  # Whether PStore should do its best to prevent file corruptions, even when an
@@ -475,7 +479,7 @@ class PStore
475
479
  # raises no unexpected I/O error; if such an error occurs during a write to
476
480
  # the store, the file may become corrupted.
477
481
  #
478
- def ultra_safe=: (untyped) -> untyped
482
+ def ultra_safe=: (bool) -> bool
479
483
 
480
484
  private
481
485
 
@@ -486,14 +490,14 @@ class PStore
486
490
  # - empty_marshal_checksum()
487
491
  # -->
488
492
  #
489
- def empty_marshal_checksum: () -> untyped
493
+ def empty_marshal_checksum: () -> String
490
494
 
491
495
  # <!--
492
496
  # rdoc-file=lib/pstore.rb
493
497
  # - empty_marshal_data()
494
498
  # -->
495
499
  #
496
- def empty_marshal_data: () -> untyped
500
+ def empty_marshal_data: () -> String
497
501
 
498
502
  # <!--
499
503
  # rdoc-file=lib/pstore.rb
@@ -501,7 +505,7 @@ class PStore
501
505
  # -->
502
506
  # Raises PStore::Error if the calling code is not in a PStore#transaction.
503
507
  #
504
- def in_transaction: () -> untyped
508
+ def in_transaction: () -> void
505
509
 
506
510
  # <!--
507
511
  # rdoc-file=lib/pstore.rb
@@ -510,7 +514,7 @@ class PStore
510
514
  # Raises PStore::Error if the calling code is not in a PStore#transaction or if
511
515
  # the code is in a read-only PStore#transaction.
512
516
  #
513
- def in_transaction_wr: () -> untyped
517
+ def in_transaction_wr: () -> void
514
518
 
515
519
  # <!--
516
520
  # rdoc-file=lib/pstore.rb
@@ -531,7 +535,7 @@ class PStore
531
535
  #
532
536
  # store = PStore.new(path, true)
533
537
  #
534
- def initialize: (untyped file, ?boolish thread_safe) -> untyped
538
+ def initialize: (path file, ?boolish thread_safe) -> void
535
539
 
536
540
  def load: (untyped content) -> untyped
537
541
 
@@ -543,7 +547,8 @@ class PStore
543
547
  # be returned. If `read_only` is false, a 3-tuple will be returned: the
544
548
  # unmarshalled Hash, a checksum of the data, and the size of the data.
545
549
  #
546
- def load_data: (untyped file, untyped read_only) -> untyped
550
+ def load_data: (path file, true read_only) -> Hash[untyped, untyped]
551
+ | (path file, false read_only) -> [Hash[untyped, untyped], String, Integer]
547
552
 
548
553
  # <!--
549
554
  # rdoc-file=lib/pstore.rb
@@ -564,7 +569,7 @@ class PStore
564
569
  #
565
570
  # All exceptions are propagated.
566
571
  #
567
- def open_and_lock_file: (untyped filename, untyped read_only) -> untyped
572
+ def open_and_lock_file: (string filename, bool read_only) -> File?
568
573
 
569
574
  # <!--
570
575
  # rdoc-file=lib/pstore.rb
@@ -578,26 +583,26 @@ class PStore
578
583
  # - save_data_with_atomic_file_rename_strategy(data, file)
579
584
  # -->
580
585
  #
581
- def save_data_with_atomic_file_rename_strategy: (untyped data, untyped file) -> untyped
586
+ def save_data_with_atomic_file_rename_strategy: (string data, File file) -> void
582
587
 
583
588
  # <!--
584
589
  # rdoc-file=lib/pstore.rb
585
590
  # - save_data_with_fast_strategy(data, file)
586
591
  # -->
587
592
  #
588
- def save_data_with_fast_strategy: (untyped data, untyped file) -> untyped
589
- end
593
+ def save_data_with_fast_strategy: (string data, File file) -> void
590
594
 
591
- PStore::EMPTY_MARSHAL_CHECKSUM: String
595
+ EMPTY_MARSHAL_CHECKSUM: String
592
596
 
593
- PStore::EMPTY_MARSHAL_DATA: String
597
+ EMPTY_MARSHAL_DATA: String
594
598
 
595
- PStore::EMPTY_STRING: String
599
+ EMPTY_STRING: String
596
600
 
597
- PStore::RDWR_ACCESS: Hash[untyped, untyped]
601
+ RDWR_ACCESS: { mode: Integer, encoding: Encoding }
598
602
 
599
- PStore::RD_ACCESS: Hash[untyped, untyped]
603
+ RD_ACCESS: { mode: Integer, encoding: Encoding }
600
604
 
601
- PStore::VERSION: String
605
+ VERSION: String
602
606
 
603
- PStore::WR_ACCESS: Hash[untyped, untyped]
607
+ WR_ACCESS: { mode: Integer, encoding: Encoding }
608
+ end
@@ -214,29 +214,30 @@ module Psych
214
214
  #
215
215
  # Currently supported options are:
216
216
  #
217
- # `:indentation`
217
+ # <code>:indentation</code>
218
218
  # : Number of space characters used to indent. Acceptable value should be in
219
- # `0..9` range, otherwise option is ignored.
219
+ # <code>0..9</code> range, otherwise option is ignored.
220
220
  #
221
221
  # Default: `2`.
222
222
  #
223
- # `:line_width`
224
- # : Max character to wrap line at. For unlimited line width use `-1`.
223
+ # <code>:line_width</code>
224
+ # : Max character to wrap line at. For unlimited line width use
225
+ # <code>-1</code>.
225
226
  #
226
227
  # Default: `0` (meaning "wrap at 81").
227
228
  #
228
- # `:canonical`
229
+ # <code>:canonical</code>
229
230
  # : Write "canonical" YAML form (very verbose, yet strictly formal).
230
231
  #
231
232
  # Default: `false`.
232
233
  #
233
- # `:header`
234
- # : Write `%YAML [version]` at the beginning of document.
234
+ # <code>:header</code>
235
+ # : Write <code>%YAML [version]</code> at the beginning of document.
235
236
  #
236
237
  # Default: `false`.
237
238
  #
238
239
  #
239
- # `:stringify_names`
240
+ # <code>:stringify_names</code>
240
241
  # : Dump symbol keys in Hash objects as string.
241
242
  #
242
243
  # Default: `false`.
@@ -265,7 +266,7 @@ module Psych
265
266
 
266
267
  # <!--
267
268
  # rdoc-file=ext/psych/lib/psych.rb
268
- # - load(yaml, permitted_classes: [Symbol], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false)
269
+ # - load(yaml, permitted_classes: [Symbol], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false, parse_symbols: true)
269
270
  # -->
270
271
  # Load `yaml` in to a Ruby data structure. If multiple documents are provided,
271
272
  # the object contained in the first document will be returned. `filename` will
@@ -308,11 +309,11 @@ module Psych
308
309
  # `fallback` return value, which defaults to `nil`. See load for options.
309
310
  #
310
311
  %a{annotate:rdoc:copy:Psych.load_file}
311
- def self.load_file: (string | _ToPath, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool) -> untyped
312
+ def self.load_file: (path, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool) -> untyped
312
313
 
313
314
  # <!--
314
315
  # rdoc-file=ext/psych/lib/psych.rb
315
- # - safe_load(yaml, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false)
316
+ # - safe_load(yaml, permitted_classes: [], permitted_symbols: [], aliases: false, filename: nil, fallback: nil, symbolize_names: false, freeze: false, strict_integer: false, parse_symbols: true)
316
317
  # -->
317
318
  # Safely load the yaml string in `yaml`. By default, only the following classes
318
319
  # are allowed to be deserialized:
@@ -363,7 +364,7 @@ module Psych
363
364
 
364
365
  # <!--
365
366
  # rdoc-file=ext/psych/lib/psych.rb
366
- # - unsafe_load(yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false, strict_integer: false)
367
+ # - unsafe_load(yaml, filename: nil, fallback: false, symbolize_names: false, freeze: false, strict_integer: false, parse_symbols: true)
367
368
  # -->
368
369
  # Load `yaml` in to a Ruby data structure. If multiple documents are provided,
369
370
  # the object contained in the first document will be returned. `filename` will
@@ -399,4 +400,56 @@ module Psych
399
400
  #
400
401
  %a{annotate:rdoc:copy:Psych.unsafe_load}
401
402
  def self.unsafe_load: (String yaml, ?filename: String | _ToStr | _ToS?, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool, ?strict_integer: bool) -> untyped
403
+
404
+ # <!--
405
+ # rdoc-file=ext/psych/lib/psych.rb
406
+ # - safe_load_file(filename, **kwargs)
407
+ # -->
408
+ # Safely loads the document contained in `filename`. Returns the yaml contained
409
+ # in `filename` as a Ruby object, or if the file is empty, it returns the
410
+ # specified `fallback` return value, which defaults to `nil`. See safe_load for
411
+ # options.
412
+ #
413
+ %a{annotate:rdoc:copy:Psych.safe_load_file}
414
+ def self.safe_load_file: (path, ?permitted_classes: Array[Class], ?permitted_symbols: Array[Symbol], ?aliases: bool, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool) -> untyped
415
+
416
+ # <!--
417
+ # rdoc-file=ext/psych/lib/psych.rb
418
+ # - unsafe_load_file(filename, **kwargs)
419
+ # -->
420
+ # Load the document contained in `filename`. Returns the yaml contained in
421
+ # `filename` as a Ruby object, or if the file is empty, it returns the specified
422
+ # `fallback` return value, which defaults to `false`.
423
+ #
424
+ # NOTE: This method *should not* be used to parse untrusted documents, such as
425
+ # YAML documents that are supplied via user input. Instead, please use the
426
+ # safe_load_file method.
427
+ #
428
+ %a{annotate:rdoc:copy:Psych.unsafe_load_file}
429
+ def self.unsafe_load_file: (path, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool) -> untyped
430
+
431
+ class Exception < ::RuntimeError
432
+ end
433
+
434
+ class SyntaxError < ::Psych::Exception
435
+ attr_reader file: String?
436
+ attr_reader line: Integer?
437
+ attr_reader column: Integer?
438
+ attr_reader offset: Integer?
439
+ attr_reader problem: String?
440
+ attr_reader context: String?
441
+
442
+ # <!--
443
+ # rdoc-file=ext/psych/lib/psych/syntax_error.rb
444
+ # - new(file, line, col, offset, problem, context)
445
+ # -->
446
+ #
447
+ def initialize: (?String? file, ?Integer? line, ?Integer? column, ?Integer? offset, ?String? problem, ?String? context) -> void
448
+ end
449
+
450
+ class BadAlias < ::Psych::Exception
451
+ end
452
+
453
+ class DisallowedClass < ::Psych::Exception
454
+ end
402
455
  end
@@ -30,7 +30,7 @@
30
30
  # greeting:
31
31
  # hello: world
32
32
  #
33
- class Psych::Store < ::PStore
33
+ class Psych::Store < ::PStore[string, untyped]
34
34
  # <!--
35
35
  # rdoc-file=lib/yaml/store.rb
36
36
  # - initialize( file_name, yaml_opts = {} )
@@ -45,8 +45,6 @@ class Psych::Store < ::PStore
45
45
  # Options passed in through `yaml_opts` will be used when converting the store
46
46
  # to YAML via Hash#to_yaml().
47
47
  #
48
- def initialize: (*untyped o) -> void
49
-
50
48
  def dump: (untyped table) -> String
51
49
 
52
50
  def empty_marshal_checksum: () -> String
@@ -55,5 +53,5 @@ class Psych::Store < ::PStore
55
53
 
56
54
  def load: (String) -> untyped
57
55
 
58
- def marshal_dump_supports_canonical_option?: () -> ::FalseClass
56
+ def marshal_dump_supports_canonical_option?: () -> bool
59
57
  end
data/stdlib/pty/0/pty.rbs CHANGED
@@ -103,7 +103,8 @@ module PTY
103
103
  #
104
104
  # ### Return values
105
105
  #
106
- # In the non-block form this returns an array of size three, `[r, w, pid]`.
106
+ # In the non-block form this returns an array of size three, <code>[r, w,
107
+ # pid]</code>.
107
108
  #
108
109
  # In the block form these same values will be yielded to the block:
109
110
  #
@@ -136,8 +137,8 @@ module PTY
136
137
  # -->
137
138
  # Allocates a pty (pseudo-terminal).
138
139
  #
139
- # In the block form, yields an array of two elements (`master_io, slave_file`)
140
- # and the value of the block is returned from `open`.
140
+ # In the block form, yields an array of two elements (<code>master_io,
141
+ # slave_file</code>) and the value of the block is returned from `open`.
141
142
  #
142
143
  # The IO and File are both closed after the block completes if they haven't been
143
144
  # already closed.
@@ -148,7 +149,8 @@ module PTY
148
149
  # p slave.path #=> "/dev/pts/1"
149
150
  # }
150
151
  #
151
- # In the non-block form, returns a two element array, `[master_io, slave_file]`.
152
+ # In the non-block form, returns a two element array, <code>[master_io,
153
+ # slave_file]</code>.
152
154
  #
153
155
  # master, slave = PTY.open
154
156
  # # do something with master for IO, or the slave file
@@ -160,7 +162,7 @@ module PTY
160
162
  #
161
163
  # `slave_file`
162
164
  # : the slave of the pty, as a File. The path to the terminal device is
163
- # available via `slave_file.path`
165
+ # available via <code>slave_file.path</code>
164
166
  #
165
167
  #
166
168
  # IO#raw! is usable to disable newline conversions:
@@ -208,7 +210,8 @@ module PTY
208
210
  #
209
211
  # ### Return values
210
212
  #
211
- # In the non-block form this returns an array of size three, `[r, w, pid]`.
213
+ # In the non-block form this returns an array of size three, <code>[r, w,
214
+ # pid]</code>.
212
215
  #
213
216
  # In the block form these same values will be yielded to the block:
214
217
  #