rbs 2.0.0 → 2.2.2
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 +34 -0
- data/.github/workflows/ruby.yml +5 -0
- data/CHANGELOG.md +82 -0
- data/README.md +6 -1
- data/Rakefile +56 -21
- data/core/array.rbs +2866 -1086
- data/core/basic_object.rbs +150 -30
- data/core/binding.rbs +33 -0
- data/core/builtin.rbs +4 -4
- data/core/class.rbs +43 -5
- data/core/comparable.rbs +57 -0
- data/core/complex.rbs +170 -4
- data/core/constants.rbs +51 -0
- data/core/deprecated.rbs +7 -0
- data/core/dir.rbs +305 -20
- data/core/encoding.rbs +1214 -77
- data/core/enumerable.rbs +2173 -234
- data/core/enumerator.rbs +448 -182
- data/core/env.rbs +448 -1
- data/core/errno.rbs +1 -10
- data/core/errors.rbs +152 -2
- data/core/exception.rbs +201 -127
- data/core/false_class.rbs +27 -0
- data/core/fiber.rbs +118 -37
- data/core/fiber_error.rbs +8 -9
- data/core/file.rbs +1060 -142
- data/core/file_test.rbs +287 -32
- data/core/float.rbs +776 -300
- data/core/gc.rbs +185 -34
- data/core/global_variables.rbs +5 -1
- data/core/hash.rbs +1582 -649
- data/core/integer.rbs +974 -204
- data/core/io/buffer.rbs +710 -0
- data/core/io/wait.rbs +29 -8
- data/core/io.rbs +2438 -417
- data/core/kernel.rbs +2319 -318
- data/core/marshal.rbs +37 -2
- data/core/match_data.rbs +123 -6
- data/core/math.rbs +126 -6
- data/core/method.rbs +226 -102
- data/core/module.rbs +421 -45
- data/core/nil_class.rbs +64 -0
- data/core/numeric.rbs +620 -142
- data/core/object.rbs +453 -81
- data/core/object_space.rbs +92 -2
- data/core/proc.rbs +482 -285
- data/core/process.rbs +443 -34
- data/core/ractor.rbs +232 -9
- data/core/random.rbs +151 -52
- data/core/range.rbs +885 -160
- data/core/rational.rbs +122 -6
- data/core/rb_config.rbs +14 -4
- data/core/refinement.rbs +44 -0
- data/core/regexp.rbs +156 -14
- data/core/ruby_vm.rbs +42 -3
- data/core/signal.rbs +78 -39
- data/core/string.rbs +2123 -567
- data/core/string_io.rbs +204 -0
- data/core/struct.rbs +283 -28
- data/core/symbol.rbs +304 -30
- data/core/thread.rbs +1288 -688
- data/core/thread_group.rbs +66 -10
- data/core/time.rbs +643 -217
- data/core/trace_point.rbs +100 -12
- data/core/true_class.rbs +24 -0
- data/core/unbound_method.rbs +73 -7
- data/core/warning.rbs +37 -12
- data/docs/CONTRIBUTING.md +40 -34
- data/docs/stdlib.md +3 -102
- data/docs/syntax.md +54 -11
- data/ext/rbs_extension/extconf.rb +1 -0
- data/ext/rbs_extension/lexer.h +5 -0
- data/ext/rbs_extension/lexstate.c +6 -0
- data/ext/rbs_extension/parser.c +85 -10
- data/ext/rbs_extension/ruby_objs.c +4 -2
- data/ext/rbs_extension/ruby_objs.h +2 -2
- data/goodcheck.yml +0 -11
- data/lib/rbs/annotate/annotations.rb +197 -0
- data/lib/rbs/annotate/formatter.rb +80 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
- data/lib/rbs/annotate/rdoc_source.rb +120 -0
- data/lib/rbs/annotate.rb +6 -0
- data/lib/rbs/ast/members.rb +21 -13
- data/lib/rbs/buffer.rb +17 -11
- data/lib/rbs/cli.rb +48 -1
- data/lib/rbs/definition_builder/method_builder.rb +28 -16
- data/lib/rbs/definition_builder.rb +6 -2
- data/lib/rbs/environment.rb +8 -4
- data/lib/rbs/location_aux.rb +12 -0
- data/lib/rbs/namespace.rb +1 -1
- data/lib/rbs/prototype/rb.rb +12 -0
- data/lib/rbs/type_alias_regularity.rb +6 -4
- data/lib/rbs/type_name.rb +1 -1
- data/lib/rbs/types.rb +1 -1
- data/lib/rbs/validator.rb +6 -0
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +54 -4
- data/lib/rbs.rb +0 -2
- data/schema/typeParam.json +3 -3
- data/sig/annotate/annotations.rbs +102 -0
- data/sig/annotate/formatter.rbs +24 -0
- data/sig/annotate/rdoc_annotater.rbs +82 -0
- data/sig/annotate/rdoc_source.rbs +30 -0
- data/sig/buffer.rbs +6 -2
- data/sig/cli.rbs +2 -0
- data/sig/collection/{collections.rbs → sources.rbs} +0 -0
- data/sig/location.rbs +6 -0
- data/sig/members.rbs +24 -18
- data/sig/method_builder.rbs +5 -4
- data/sig/method_types.rbs +5 -1
- data/sig/polyfill.rbs +78 -0
- data/sig/validator.rbs +3 -1
- data/sig/writer.rbs +79 -2
- data/stdlib/abbrev/0/abbrev.rbs +6 -0
- data/stdlib/abbrev/0/array.rbs +26 -0
- data/stdlib/base64/0/base64.rbs +31 -0
- data/stdlib/benchmark/0/benchmark.rbs +74 -3
- data/stdlib/bigdecimal/0/big_decimal.rbs +614 -165
- data/stdlib/bigdecimal-math/0/big_math.rbs +41 -64
- data/stdlib/cgi/0/core.rbs +649 -21
- data/stdlib/coverage/0/coverage.rbs +164 -2
- data/stdlib/csv/0/csv.rbs +2862 -398
- data/stdlib/date/0/date.rbs +483 -25
- data/stdlib/date/0/date_time.rbs +187 -12
- data/stdlib/dbm/0/dbm.rbs +152 -17
- data/stdlib/digest/0/digest.rbs +146 -0
- data/stdlib/erb/0/erb.rbs +65 -245
- data/stdlib/fiber/0/fiber.rbs +73 -91
- data/stdlib/fileutils/0/fileutils.rbs +301 -1
- data/stdlib/find/0/find.rbs +9 -0
- data/stdlib/forwardable/0/forwardable.rbs +65 -1
- data/stdlib/io-console/0/io-console.rbs +227 -15
- data/stdlib/ipaddr/0/ipaddr.rbs +161 -0
- data/stdlib/json/0/json.rbs +1147 -145
- data/stdlib/logger/0/formatter.rbs +24 -0
- data/stdlib/logger/0/log_device.rbs +64 -0
- data/stdlib/logger/0/logger.rbs +165 -13
- data/stdlib/logger/0/period.rbs +10 -0
- data/stdlib/logger/0/severity.rbs +26 -0
- data/stdlib/monitor/0/monitor.rbs +163 -0
- data/stdlib/mutex_m/0/mutex_m.rbs +35 -6
- data/stdlib/net-http/0/manifest.yaml +1 -0
- data/stdlib/net-http/0/net-http.rbs +1513 -683
- data/stdlib/nkf/0/nkf.rbs +372 -0
- data/stdlib/objspace/0/objspace.rbs +149 -90
- data/stdlib/openssl/0/openssl.rbs +8108 -71
- data/stdlib/optparse/0/optparse.rbs +487 -19
- data/stdlib/pathname/0/pathname.rbs +425 -124
- data/stdlib/prettyprint/0/prettyprint.rbs +120 -99
- data/stdlib/prime/0/integer-extension.rbs +20 -2
- data/stdlib/prime/0/prime.rbs +88 -21
- data/stdlib/pstore/0/pstore.rbs +102 -0
- data/stdlib/pty/0/pty.rbs +64 -14
- data/stdlib/resolv/0/resolv.rbs +420 -31
- data/stdlib/rubygems/0/basic_specification.rbs +4 -1
- data/stdlib/rubygems/0/config_file.rbs +33 -1
- data/stdlib/rubygems/0/dependency_installer.rbs +4 -3
- data/stdlib/rubygems/0/installer.rbs +13 -1
- data/stdlib/rubygems/0/path_support.rbs +4 -1
- data/stdlib/rubygems/0/platform.rbs +5 -1
- data/stdlib/rubygems/0/request_set.rbs +44 -2
- data/stdlib/rubygems/0/requirement.rbs +65 -2
- data/stdlib/rubygems/0/rubygems.rbs +407 -0
- data/stdlib/rubygems/0/source_list.rbs +13 -0
- data/stdlib/rubygems/0/specification.rbs +21 -1
- data/stdlib/rubygems/0/stream_ui.rbs +3 -1
- data/stdlib/rubygems/0/uninstaller.rbs +8 -1
- data/stdlib/rubygems/0/version.rbs +60 -157
- data/stdlib/securerandom/0/securerandom.rbs +44 -0
- data/stdlib/set/0/set.rbs +423 -109
- data/stdlib/shellwords/0/shellwords.rbs +55 -77
- data/stdlib/singleton/0/singleton.rbs +20 -0
- data/stdlib/socket/0/addrinfo.rbs +210 -9
- data/stdlib/socket/0/basic_socket.rbs +103 -11
- data/stdlib/socket/0/ip_socket.rbs +31 -9
- data/stdlib/socket/0/socket.rbs +586 -38
- data/stdlib/socket/0/tcp_server.rbs +22 -2
- data/stdlib/socket/0/tcp_socket.rbs +12 -1
- data/stdlib/socket/0/udp_socket.rbs +25 -2
- data/stdlib/socket/0/unix_server.rbs +22 -2
- data/stdlib/socket/0/unix_socket.rbs +45 -5
- data/stdlib/strscan/0/string_scanner.rbs +210 -9
- data/stdlib/tempfile/0/tempfile.rbs +58 -10
- data/stdlib/time/0/time.rbs +208 -116
- data/stdlib/timeout/0/timeout.rbs +10 -0
- data/stdlib/tmpdir/0/tmpdir.rbs +13 -4
- data/stdlib/tsort/0/cyclic.rbs +1 -0
- data/stdlib/tsort/0/interfaces.rbs +1 -0
- data/stdlib/tsort/0/tsort.rbs +42 -0
- data/stdlib/uri/0/common.rbs +57 -8
- data/stdlib/uri/0/file.rbs +55 -109
- data/stdlib/uri/0/ftp.rbs +6 -3
- data/stdlib/uri/0/generic.rbs +558 -329
- data/stdlib/uri/0/http.rbs +60 -114
- data/stdlib/uri/0/https.rbs +8 -102
- data/stdlib/uri/0/ldap.rbs +143 -137
- data/stdlib/uri/0/ldaps.rbs +8 -102
- data/stdlib/uri/0/mailto.rbs +3 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +66 -26
- data/stdlib/uri/0/ws.rbs +6 -3
- data/stdlib/uri/0/wss.rbs +5 -3
- data/stdlib/yaml/0/dbm.rbs +151 -87
- data/stdlib/yaml/0/store.rbs +6 -0
- data/stdlib/zlib/0/zlib.rbs +90 -31
- metadata +18 -6
- data/lib/rbs/location.rb +0 -221
- data/sig/char_scanner.rbs +0 -9
data/core/object_space.rbs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
# <!-- rdoc-file=gc.c -->
|
|
1
2
|
# The ObjectSpace module contains a number of routines that interact with the
|
|
2
3
|
# garbage collection facility and allow you to traverse all living objects with
|
|
3
4
|
# an iterator.
|
|
4
5
|
#
|
|
5
6
|
# ObjectSpace also provides support for object finalizers, procs that will be
|
|
6
7
|
# called when a specific object is about to be destroyed by garbage collection.
|
|
7
|
-
#
|
|
8
|
-
#
|
|
8
|
+
# See the documentation for `ObjectSpace.define_finalizer` for important
|
|
9
|
+
# information on how to use this method correctly.
|
|
9
10
|
#
|
|
10
11
|
# a = "A"
|
|
11
12
|
# b = "B"
|
|
@@ -13,13 +14,27 @@
|
|
|
13
14
|
# ObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" })
|
|
14
15
|
# ObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" })
|
|
15
16
|
#
|
|
17
|
+
# a = nil
|
|
18
|
+
# b = nil
|
|
19
|
+
#
|
|
16
20
|
# *produces:*
|
|
17
21
|
#
|
|
18
22
|
# Finalizer two on 537763470
|
|
19
23
|
# Finalizer one on 537763480
|
|
24
|
+
#
|
|
25
|
+
%a{annotate:rdoc:source:from=gc.c}
|
|
20
26
|
module ObjectSpace
|
|
27
|
+
# <!--
|
|
28
|
+
# rdoc-file=gc.c
|
|
29
|
+
# - _id2ref(p1)
|
|
30
|
+
# -->
|
|
31
|
+
#
|
|
21
32
|
def self._id2ref: (Integer id) -> untyped
|
|
22
33
|
|
|
34
|
+
# <!--
|
|
35
|
+
# rdoc-file=gc.c
|
|
36
|
+
# - ObjectSpace.count_objects([result_hash]) -> hash
|
|
37
|
+
# -->
|
|
23
38
|
# Counts all objects grouped by type.
|
|
24
39
|
#
|
|
25
40
|
# It returns a hash, such as:
|
|
@@ -50,13 +65,74 @@ module ObjectSpace
|
|
|
50
65
|
#
|
|
51
66
|
def self.count_objects: (?Hash[Symbol, Integer] result_hash) -> Hash[Symbol, Integer]
|
|
52
67
|
|
|
68
|
+
# <!--
|
|
69
|
+
# rdoc-file=gc.c
|
|
70
|
+
# - ObjectSpace.define_finalizer(obj, aProc=proc())
|
|
71
|
+
# -->
|
|
53
72
|
# Adds *aProc* as a finalizer, to be called after *obj* was destroyed. The
|
|
54
73
|
# object ID of the *obj* will be passed as an argument to *aProc*. If *aProc* is
|
|
55
74
|
# a lambda or method, make sure it can be called with a single argument.
|
|
56
75
|
#
|
|
76
|
+
# The return value is an array `[0, aProc]`.
|
|
77
|
+
#
|
|
78
|
+
# The two recommended patterns are to either create the finaliser proc in a
|
|
79
|
+
# non-instance method where it can safely capture the needed state, or to use a
|
|
80
|
+
# custom callable object that stores the needed state explicitly as instance
|
|
81
|
+
# variables.
|
|
82
|
+
#
|
|
83
|
+
# class Foo
|
|
84
|
+
# def initialize(data_needed_for_finalization)
|
|
85
|
+
# ObjectSpace.define_finalizer(self, self.class.create_finalizer(data_needed_for_finalization))
|
|
86
|
+
# end
|
|
87
|
+
#
|
|
88
|
+
# def self.create_finalizer(data_needed_for_finalization)
|
|
89
|
+
# proc {
|
|
90
|
+
# puts "finalizing #{data_needed_for_finalization}"
|
|
91
|
+
# }
|
|
92
|
+
# end
|
|
93
|
+
# end
|
|
94
|
+
#
|
|
95
|
+
# class Bar
|
|
96
|
+
# class Remover
|
|
97
|
+
# def initialize(data_needed_for_finalization)
|
|
98
|
+
# @data_needed_for_finalization = data_needed_for_finalization
|
|
99
|
+
# end
|
|
100
|
+
#
|
|
101
|
+
# def call(id)
|
|
102
|
+
# puts "finalizing #{@data_needed_for_finalization}"
|
|
103
|
+
# end
|
|
104
|
+
# end
|
|
105
|
+
#
|
|
106
|
+
# def initialize(data_needed_for_finalization)
|
|
107
|
+
# ObjectSpace.define_finalizer(self, Remover.new(data_needed_for_finalization))
|
|
108
|
+
# end
|
|
109
|
+
# end
|
|
110
|
+
#
|
|
111
|
+
# Note that if your finalizer references the object to be finalized it will
|
|
112
|
+
# never be run on GC, although it will still be run at exit. You will get a
|
|
113
|
+
# warning if you capture the object to be finalized as the receiver of the
|
|
114
|
+
# finalizer.
|
|
115
|
+
#
|
|
116
|
+
# class CapturesSelf
|
|
117
|
+
# def initialize(name)
|
|
118
|
+
# ObjectSpace.define_finalizer(self, proc {
|
|
119
|
+
# # this finalizer will only be run on exit
|
|
120
|
+
# puts "finalizing #{name}"
|
|
121
|
+
# })
|
|
122
|
+
# end
|
|
123
|
+
# end
|
|
124
|
+
#
|
|
125
|
+
# Also note that finalization can be unpredictable and is never guaranteed to be
|
|
126
|
+
# run except on exit.
|
|
127
|
+
#
|
|
57
128
|
def self.define_finalizer: (untyped obj, ^(Integer id) -> void aProc) -> [ Integer, Proc ]
|
|
58
129
|
| (untyped obj) { (Integer id) -> void } -> [ Integer, Proc ]
|
|
59
130
|
|
|
131
|
+
# <!--
|
|
132
|
+
# rdoc-file=gc.c
|
|
133
|
+
# - ObjectSpace.each_object([module]) {|obj| ... } -> integer
|
|
134
|
+
# - ObjectSpace.each_object([module]) -> an_enumerator
|
|
135
|
+
# -->
|
|
60
136
|
# Calls the block once for each living, nonimmediate object in this Ruby
|
|
61
137
|
# process. If *module* is specified, calls the block for only those classes or
|
|
62
138
|
# modules that match (or are a subclass of) *module*. Returns the number of
|
|
@@ -86,13 +162,27 @@ module ObjectSpace
|
|
|
86
162
|
def self.each_object: (?Module `module`) -> Enumerator[untyped, Integer]
|
|
87
163
|
| (?Module `module`) { (untyped obj) -> void } -> Integer
|
|
88
164
|
|
|
165
|
+
# <!--
|
|
166
|
+
# rdoc-file=gc.rb
|
|
167
|
+
# - garbage_collect(full_mark: true, immediate_mark: true, immediate_sweep: true)
|
|
168
|
+
# -->
|
|
169
|
+
#
|
|
89
170
|
def self.garbage_collect: (?full_mark: bool, ?immediate_mark: bool, ?immediate_sweep: bool) -> void
|
|
90
171
|
|
|
172
|
+
# <!--
|
|
173
|
+
# rdoc-file=gc.c
|
|
174
|
+
# - ObjectSpace.undefine_finalizer(obj)
|
|
175
|
+
# -->
|
|
91
176
|
# Removes all finalizers for *obj*.
|
|
92
177
|
#
|
|
93
178
|
def self.undefine_finalizer: [X] (X obj) -> X
|
|
94
179
|
|
|
95
180
|
private
|
|
96
181
|
|
|
182
|
+
# <!--
|
|
183
|
+
# rdoc-file=gc.rb
|
|
184
|
+
# - garbage_collect(full_mark: true, immediate_mark: true, immediate_sweep: true)
|
|
185
|
+
# -->
|
|
186
|
+
#
|
|
97
187
|
def garbage_collect: (?full_mark: bool, ?immediate_mark: bool, ?immediate_sweep: bool) -> void
|
|
98
188
|
end
|