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.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -5
- data/.github/workflows/ruby.yml +7 -8
- data/.github/workflows/typecheck.yml +37 -0
- data/CHANGELOG.md +65 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +11 -11
- data/README.md +1 -0
- data/Rakefile +2 -2
- data/Steepfile +2 -2
- data/core/array.rbs +19 -49
- data/core/basic_object.rbs +2 -2
- data/core/comparable.rbs +17 -8
- data/core/complex.rbs +82 -43
- data/core/data.rbs +2 -4
- data/core/dir.rbs +635 -295
- data/core/enumerable.rbs +11 -18
- data/core/enumerator.rbs +37 -31
- data/core/errors.rbs +4 -0
- data/core/false_class.rbs +34 -15
- data/core/fiber.rbs +23 -0
- data/core/file.rbs +329 -120
- data/core/float.rbs +17 -32
- data/core/gc.rbs +17 -11
- data/core/hash.rbs +22 -44
- data/core/integer.rbs +82 -113
- data/core/io/buffer.rbs +90 -47
- data/core/io.rbs +54 -121
- data/core/kernel.rbs +442 -489
- data/core/match_data.rbs +55 -56
- data/core/module.rbs +45 -1
- data/core/nil_class.rbs +98 -35
- data/core/numeric.rbs +22 -32
- data/core/object_space/weak_key_map.rbs +102 -0
- data/core/process.rbs +1242 -655
- data/core/ractor.rbs +139 -120
- data/core/range.rbs +100 -4
- data/core/rational.rbs +0 -4
- data/core/rbs/unnamed/argf.rbs +16 -8
- data/core/rbs/unnamed/env_class.rbs +0 -24
- data/core/refinement.rbs +8 -0
- data/core/regexp.rbs +1149 -598
- data/core/ruby_vm.rbs +126 -12
- data/core/rubygems/platform.rbs +9 -0
- data/core/rubygems/rubygems.rbs +1 -1
- data/core/rubygems/version.rbs +5 -1
- data/core/set.rbs +20 -22
- data/core/signal.rbs +4 -4
- data/core/string.rbs +283 -230
- data/core/string_io.rbs +2 -14
- data/core/struct.rbs +404 -24
- data/core/symbol.rbs +1 -19
- data/core/thread.rbs +29 -12
- data/core/time.rbs +227 -104
- data/core/trace_point.rbs +2 -5
- data/core/true_class.rbs +54 -21
- data/core/warning.rbs +14 -11
- data/docs/data_and_struct.md +29 -0
- data/docs/gem.md +58 -0
- data/docs/syntax.md +3 -5
- data/docs/tools.md +1 -0
- data/ext/rbs_extension/lexer.c +643 -559
- data/ext/rbs_extension/lexer.re +5 -1
- data/ext/rbs_extension/parser.c +12 -3
- data/ext/rbs_extension/unescape.c +7 -47
- data/lib/rbs/cli/diff.rb +4 -1
- data/lib/rbs/cli/validate.rb +280 -0
- data/lib/rbs/cli.rb +2 -194
- data/lib/rbs/collection/config.rb +5 -6
- data/lib/rbs/collection/sources/git.rb +1 -1
- data/lib/rbs/collection.rb +1 -0
- data/lib/rbs/diff.rb +7 -4
- data/lib/rbs/errors.rb +11 -0
- data/lib/rbs/test/errors.rb +10 -2
- data/lib/rbs/test/guaranteed.rb +2 -3
- data/lib/rbs/test/type_check.rb +15 -10
- data/lib/rbs/test.rb +3 -3
- data/lib/rbs/types.rb +29 -0
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +136 -0
- data/lib/rbs/unit_test/type_assertions.rb +341 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/version.rb +1 -1
- data/sig/cli/validate.rbs +43 -0
- data/sig/diff.rbs +3 -1
- data/sig/errors.rbs +8 -0
- data/sig/rbs.rbs +1 -1
- data/sig/test/errors.rbs +52 -0
- data/sig/test/guranteed.rbs +9 -0
- data/sig/test/type_check.rbs +19 -0
- data/sig/test.rbs +82 -0
- data/sig/types.rbs +6 -1
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +28 -0
- data/sig/unit_test/type_assertions.rbs +194 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/stdlib/base64/0/base64.rbs +307 -45
- data/stdlib/bigdecimal/0/big_decimal.rbs +35 -15
- data/stdlib/coverage/0/coverage.rbs +2 -2
- data/stdlib/csv/0/csv.rbs +25 -55
- data/stdlib/date/0/date.rbs +1 -43
- data/stdlib/date/0/date_time.rbs +1 -13
- data/stdlib/delegate/0/delegator.rbs +186 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +98 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -1
- data/stdlib/erb/0/erb.rbs +2 -2
- data/stdlib/fileutils/0/fileutils.rbs +0 -19
- data/stdlib/io-console/0/io-console.rbs +12 -1
- data/stdlib/ipaddr/0/ipaddr.rbs +2 -1
- data/stdlib/json/0/json.rbs +320 -81
- data/stdlib/logger/0/logger.rbs +9 -5
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +6 -6
- data/stdlib/monitor/0/monitor.rbs +78 -0
- data/stdlib/net-http/0/net-http.rbs +1880 -543
- data/stdlib/objspace/0/objspace.rbs +19 -13
- data/stdlib/openssl/0/openssl.rbs +508 -127
- data/stdlib/optparse/0/optparse.rbs +25 -11
- data/stdlib/pathname/0/pathname.rbs +1 -1
- data/stdlib/pp/0/pp.rbs +2 -5
- data/stdlib/prettyprint/0/prettyprint.rbs +2 -2
- data/stdlib/pstore/0/pstore.rbs +2 -4
- data/stdlib/rdoc/0/comment.rbs +1 -2
- data/stdlib/resolv/0/resolv.rbs +4 -2
- data/stdlib/socket/0/socket.rbs +2 -2
- data/stdlib/socket/0/unix_socket.rbs +2 -2
- data/stdlib/strscan/0/string_scanner.rbs +3 -2
- data/stdlib/tempfile/0/tempfile.rbs +1 -1
- data/stdlib/uri/0/common.rbs +245 -123
- metadata +24 -4
- 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
|