rbs 3.3.2 → 3.4.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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +2 -5
  3. data/.github/workflows/ruby.yml +7 -8
  4. data/.github/workflows/typecheck.yml +37 -0
  5. data/CHANGELOG.md +65 -0
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +11 -11
  8. data/README.md +1 -0
  9. data/Rakefile +2 -2
  10. data/Steepfile +2 -2
  11. data/core/array.rbs +19 -49
  12. data/core/basic_object.rbs +2 -2
  13. data/core/comparable.rbs +17 -8
  14. data/core/complex.rbs +82 -43
  15. data/core/data.rbs +2 -4
  16. data/core/dir.rbs +635 -295
  17. data/core/enumerable.rbs +11 -18
  18. data/core/enumerator.rbs +37 -31
  19. data/core/errors.rbs +4 -0
  20. data/core/false_class.rbs +34 -15
  21. data/core/fiber.rbs +23 -0
  22. data/core/file.rbs +329 -120
  23. data/core/float.rbs +17 -32
  24. data/core/gc.rbs +17 -11
  25. data/core/hash.rbs +22 -44
  26. data/core/integer.rbs +82 -113
  27. data/core/io/buffer.rbs +90 -47
  28. data/core/io.rbs +54 -121
  29. data/core/kernel.rbs +442 -489
  30. data/core/match_data.rbs +55 -56
  31. data/core/module.rbs +45 -1
  32. data/core/nil_class.rbs +98 -35
  33. data/core/numeric.rbs +22 -32
  34. data/core/object_space/weak_key_map.rbs +102 -0
  35. data/core/process.rbs +1242 -655
  36. data/core/ractor.rbs +139 -120
  37. data/core/range.rbs +100 -4
  38. data/core/rational.rbs +0 -4
  39. data/core/rbs/unnamed/argf.rbs +16 -8
  40. data/core/rbs/unnamed/env_class.rbs +0 -24
  41. data/core/refinement.rbs +8 -0
  42. data/core/regexp.rbs +1149 -598
  43. data/core/ruby_vm.rbs +126 -12
  44. data/core/rubygems/platform.rbs +9 -0
  45. data/core/rubygems/rubygems.rbs +1 -1
  46. data/core/rubygems/version.rbs +5 -1
  47. data/core/set.rbs +20 -22
  48. data/core/signal.rbs +4 -4
  49. data/core/string.rbs +283 -230
  50. data/core/string_io.rbs +2 -14
  51. data/core/struct.rbs +404 -24
  52. data/core/symbol.rbs +1 -19
  53. data/core/thread.rbs +29 -12
  54. data/core/time.rbs +227 -104
  55. data/core/trace_point.rbs +2 -5
  56. data/core/true_class.rbs +54 -21
  57. data/core/warning.rbs +14 -11
  58. data/docs/data_and_struct.md +29 -0
  59. data/docs/gem.md +58 -0
  60. data/docs/syntax.md +3 -5
  61. data/docs/tools.md +1 -0
  62. data/ext/rbs_extension/lexer.c +643 -559
  63. data/ext/rbs_extension/lexer.re +5 -1
  64. data/ext/rbs_extension/parser.c +12 -3
  65. data/ext/rbs_extension/unescape.c +7 -47
  66. data/lib/rbs/cli/diff.rb +4 -1
  67. data/lib/rbs/cli/validate.rb +280 -0
  68. data/lib/rbs/cli.rb +2 -194
  69. data/lib/rbs/collection/config.rb +5 -6
  70. data/lib/rbs/collection/sources/git.rb +1 -1
  71. data/lib/rbs/collection.rb +1 -0
  72. data/lib/rbs/diff.rb +7 -4
  73. data/lib/rbs/errors.rb +11 -0
  74. data/lib/rbs/test/errors.rb +10 -2
  75. data/lib/rbs/test/guaranteed.rb +2 -3
  76. data/lib/rbs/test/type_check.rb +15 -10
  77. data/lib/rbs/test.rb +3 -3
  78. data/lib/rbs/types.rb +29 -0
  79. data/lib/rbs/unit_test/convertibles.rb +176 -0
  80. data/lib/rbs/unit_test/spy.rb +136 -0
  81. data/lib/rbs/unit_test/type_assertions.rb +341 -0
  82. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  83. data/lib/rbs/unit_test.rb +6 -0
  84. data/lib/rbs/version.rb +1 -1
  85. data/sig/cli/validate.rbs +43 -0
  86. data/sig/diff.rbs +3 -1
  87. data/sig/errors.rbs +8 -0
  88. data/sig/rbs.rbs +1 -1
  89. data/sig/test/errors.rbs +52 -0
  90. data/sig/test/guranteed.rbs +9 -0
  91. data/sig/test/type_check.rbs +19 -0
  92. data/sig/test.rbs +82 -0
  93. data/sig/types.rbs +6 -1
  94. data/sig/unit_test/convertibles.rbs +154 -0
  95. data/sig/unit_test/spy.rbs +28 -0
  96. data/sig/unit_test/type_assertions.rbs +194 -0
  97. data/sig/unit_test/with_aliases.rbs +136 -0
  98. data/stdlib/base64/0/base64.rbs +307 -45
  99. data/stdlib/bigdecimal/0/big_decimal.rbs +35 -15
  100. data/stdlib/coverage/0/coverage.rbs +2 -2
  101. data/stdlib/csv/0/csv.rbs +25 -55
  102. data/stdlib/date/0/date.rbs +1 -43
  103. data/stdlib/date/0/date_time.rbs +1 -13
  104. data/stdlib/delegate/0/delegator.rbs +186 -0
  105. data/stdlib/delegate/0/kernel.rbs +47 -0
  106. data/stdlib/delegate/0/simple_delegator.rbs +98 -0
  107. data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -1
  108. data/stdlib/erb/0/erb.rbs +2 -2
  109. data/stdlib/fileutils/0/fileutils.rbs +0 -19
  110. data/stdlib/io-console/0/io-console.rbs +12 -1
  111. data/stdlib/ipaddr/0/ipaddr.rbs +2 -1
  112. data/stdlib/json/0/json.rbs +320 -81
  113. data/stdlib/logger/0/logger.rbs +9 -5
  114. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +6 -6
  115. data/stdlib/monitor/0/monitor.rbs +78 -0
  116. data/stdlib/net-http/0/net-http.rbs +1880 -543
  117. data/stdlib/objspace/0/objspace.rbs +19 -13
  118. data/stdlib/openssl/0/openssl.rbs +508 -127
  119. data/stdlib/optparse/0/optparse.rbs +25 -11
  120. data/stdlib/pathname/0/pathname.rbs +1 -1
  121. data/stdlib/pp/0/pp.rbs +2 -5
  122. data/stdlib/prettyprint/0/prettyprint.rbs +2 -2
  123. data/stdlib/pstore/0/pstore.rbs +2 -4
  124. data/stdlib/rdoc/0/comment.rbs +1 -2
  125. data/stdlib/resolv/0/resolv.rbs +4 -2
  126. data/stdlib/socket/0/socket.rbs +2 -2
  127. data/stdlib/socket/0/unix_socket.rbs +2 -2
  128. data/stdlib/strscan/0/string_scanner.rbs +3 -2
  129. data/stdlib/tempfile/0/tempfile.rbs +1 -1
  130. data/stdlib/uri/0/common.rbs +245 -123
  131. metadata +24 -4
  132. data/lib/rbs/test/spy.rb +0 -6
@@ -0,0 +1,102 @@
1
+ %a{annotate:rdoc:skip}
2
+ module ObjectSpace
3
+ # <!-- rdoc-file=weakmap.c -->
4
+ # An ObjectSpace::WeakKeyMap object holds references to any objects, but objects
5
+ # uses as keys can be garbage collected.
6
+ #
7
+ # Objects used as values can't be garbage collected until the key is.
8
+ #
9
+ class WeakKeyMap[Key, Value]
10
+ public
11
+
12
+ # <!--
13
+ # rdoc-file=weakmap.c
14
+ # - map[key] -> value
15
+ # -->
16
+ # Returns the value associated with the given `key` if found.
17
+ #
18
+ # If `key` is not found, returns `nil`.
19
+ #
20
+ def []: (Key) -> Value?
21
+
22
+ # <!--
23
+ # rdoc-file=weakmap.c
24
+ # - map[key] = value -> value
25
+ # -->
26
+ # Associates the given `value` with the given `key`; returns `value`.
27
+ #
28
+ # The reference to `key` is weak, so when there is no other reference to `key`
29
+ # it may be garbage collected.
30
+ #
31
+ # If the given `key` exists, replaces its value with the given `value`; the
32
+ # ordering is not affected
33
+ #
34
+ def []=: (Key, Value?) -> Value?
35
+
36
+ # <!--
37
+ # rdoc-file=weakmap.c
38
+ # - map.clear -> self
39
+ # -->
40
+ # Removes all map entries; returns `self`.
41
+ #
42
+ def clear: () -> self
43
+
44
+ # <!--
45
+ # rdoc-file=weakmap.c
46
+ # - map.delete(key) -> value or nil
47
+ # - map.delete(key) {|key| ... } -> object
48
+ # -->
49
+ # Deletes the entry for the given `key` and returns its associated value.
50
+ #
51
+ # If no block is given and `key` is found, deletes the entry and returns the
52
+ # associated value:
53
+ # m = ObjectSpace::WeakKeyMap.new
54
+ # m["foo"] = 1
55
+ # m.delete("foo") # => 1
56
+ # m["foo"] # => nil
57
+ #
58
+ # If no block given and `key` is not found, returns `nil`.
59
+ #
60
+ # If a block is given and `key` is found, ignores the block, deletes the entry,
61
+ # and returns the associated value:
62
+ # m = ObjectSpace::WeakKeyMap.new
63
+ # m["foo"] = 2
64
+ # h.delete("foo") { |key| raise 'Will never happen'} # => 2
65
+ #
66
+ # If a block is given and `key` is not found, calls the block and returns the
67
+ # block's return value:
68
+ # m = ObjectSpace::WeakKeyMap.new
69
+ # h.delete("nosuch") { |key| "Key #{key} not found" } # => "Key nosuch not found"
70
+ #
71
+ def delete: (Key) -> Value?
72
+ | [T] (Key) { (Key) -> T } -> (Value | T)
73
+
74
+ # <!--
75
+ # rdoc-file=weakmap.c
76
+ # - map.getkey(key) -> existing_key or nil
77
+ # -->
78
+ # Returns the existing equal key if it exists, otherwise returns `nil`.
79
+ #
80
+ def getkey: (untyped) -> Key?
81
+
82
+ # <!--
83
+ # rdoc-file=weakmap.c
84
+ # - map.inspect -> new_string
85
+ # -->
86
+ # Returns a new String containing informations about the map:
87
+ #
88
+ # m = ObjectSpace::WeakKeyMap.new
89
+ # m[key] = value
90
+ # m.inspect # => "#<ObjectSpace::WeakKeyMap:0x00000001028dcba8 size=1>"
91
+ #
92
+ def inspect: () -> String
93
+
94
+ # <!--
95
+ # rdoc-file=weakmap.c
96
+ # - hash.key?(key) -> true or false
97
+ # -->
98
+ # Returns `true` if `key` is a key in `self`, otherwise `false`.
99
+ #
100
+ def key?: (Key) -> bool
101
+ end
102
+ end