rbs 3.6.1 → 3.9.5
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 -2
- data/.github/workflows/dependabot.yml +1 -1
- data/.github/workflows/ruby.yml +34 -10
- data/.github/workflows/windows.yml +20 -3
- data/.gitignore +1 -0
- data/.rubocop.yml +26 -1
- data/CHANGELOG.md +241 -0
- data/Rakefile +54 -4
- data/config.yml +317 -0
- data/core/array.rbs +1756 -1591
- data/core/basic_object.rbs +38 -35
- data/core/comparable.rbs +1 -1
- data/core/complex.rbs +166 -94
- data/core/data.rbs +2 -2
- data/core/dir.rbs +2 -18
- data/core/encoding.rbs +12 -32
- data/core/enumerable.rbs +270 -266
- data/core/enumerator.rbs +14 -4
- data/core/env.rbs +1 -1
- data/core/errno.rbs +33 -16
- data/core/errors.rbs +6 -2
- data/core/exception.rbs +342 -167
- data/core/fiber.rbs +3 -2
- data/core/file.rbs +26 -75
- data/core/float.rbs +125 -72
- data/core/gc.rbs +158 -42
- data/core/hash.rbs +122 -143
- data/core/integer.rbs +79 -50
- data/core/io/buffer.rbs +49 -43
- data/core/io.rbs +108 -151
- data/core/kernel.rbs +341 -209
- data/core/match_data.rbs +76 -2
- data/core/math.rbs +0 -36
- data/core/method.rbs +2 -2
- data/core/module.rbs +32 -27
- data/core/nil_class.rbs +2 -2
- data/core/numeric.rbs +101 -104
- data/core/object.rbs +1 -5
- data/core/object_space/weak_key_map.rbs +3 -4
- data/core/object_space.rbs +3 -3
- data/core/proc.rbs +82 -14
- data/core/process.rbs +110 -58
- data/core/ractor.rbs +57 -4
- data/core/range.rbs +114 -87
- data/core/rational.rbs +0 -2
- data/core/rbs/unnamed/argf.rbs +237 -36
- data/core/rbs/unnamed/env_class.rbs +35 -53
- data/core/rbs/unnamed/random.rbs +1 -2
- data/core/regexp.rbs +10 -56
- data/core/ruby_vm.rbs +88 -9
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +3 -6
- data/core/rubygems/platform.rbs +0 -9
- data/core/rubygems/rubygems.rbs +3 -6
- data/core/rubygems/version.rbs +8 -8
- data/core/set.rbs +4 -16
- data/core/string.rbs +271 -264
- data/core/struct.rbs +6 -18
- data/core/symbol.rbs +14 -21
- data/core/thread.rbs +32 -35
- data/core/time.rbs +131 -50
- data/core/trace_point.rbs +124 -113
- data/core/true_class.rbs +0 -1
- data/core/unbound_method.rbs +1 -1
- data/core/warning.rbs +9 -2
- data/docs/architecture.md +1 -1
- data/docs/syntax.md +17 -10
- data/ext/rbs_extension/extconf.rb +11 -0
- data/ext/rbs_extension/location.c +61 -29
- data/ext/rbs_extension/location.h +4 -3
- data/ext/rbs_extension/main.c +23 -1
- data/ext/rbs_extension/parser.c +506 -517
- data/ext/rbs_extension/parserstate.c +109 -30
- data/ext/rbs_extension/parserstate.h +6 -4
- data/ext/rbs_extension/rbs_extension.h +1 -10
- data/{ext/rbs_extension → include/rbs}/constants.h +21 -19
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs/util/rbs_constant_pool.h +219 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/rdoc_source.rb +2 -2
- data/lib/rbs/ast/declarations.rb +9 -4
- data/lib/rbs/ast/directives.rb +10 -0
- data/lib/rbs/ast/members.rb +2 -0
- data/lib/rbs/ast/type_param.rb +2 -12
- data/lib/rbs/cli/diff.rb +3 -3
- data/lib/rbs/cli/validate.rb +2 -1
- data/lib/rbs/cli.rb +16 -16
- data/lib/rbs/collection/config/lockfile_generator.rb +58 -8
- data/lib/rbs/collection/config.rb +5 -3
- data/lib/rbs/collection/sources/rubygems.rb +1 -1
- data/lib/rbs/collection.rb +1 -0
- data/lib/rbs/definition.rb +51 -34
- data/lib/rbs/definition_builder/ancestor_builder.rb +5 -3
- data/lib/rbs/definition_builder.rb +83 -24
- data/lib/rbs/environment.rb +33 -18
- data/lib/rbs/environment_loader.rb +6 -1
- data/lib/rbs/errors.rb +24 -0
- data/lib/rbs/locator.rb +2 -0
- data/lib/rbs/method_type.rb +2 -0
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser_aux.rb +40 -3
- data/lib/rbs/prototype/rb.rb +20 -12
- data/lib/rbs/prototype/rbi.rb +11 -6
- data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
- data/lib/rbs/prototype/runtime.rb +7 -5
- data/lib/rbs/subtractor.rb +3 -3
- data/lib/rbs/test/hook.rb +47 -42
- data/lib/rbs/test/type_check.rb +7 -5
- data/lib/rbs/type_name.rb +14 -9
- data/lib/rbs/types.rb +63 -14
- data/lib/rbs/unit_test/spy.rb +4 -2
- data/lib/rbs/unit_test/type_assertions.rb +19 -13
- data/lib/rbs/unit_test/with_aliases.rb +3 -1
- data/lib/rbs/validator.rb +7 -1
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +10 -5
- data/lib/rbs.rb +1 -0
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +6 -2
- data/sig/ancestor_graph.rbs +5 -5
- data/sig/annotate/rdoc_source.rbs +2 -0
- data/sig/cli.rbs +2 -0
- data/sig/collection/config/lockfile_generator.rbs +9 -1
- data/sig/declarations.rbs +10 -3
- data/sig/definition.rbs +80 -12
- data/sig/definition_builder.rbs +18 -4
- data/sig/directives.rbs +17 -1
- data/sig/environment.rbs +3 -1
- data/sig/errors.rbs +19 -0
- data/sig/namespace.rbs +2 -3
- data/sig/parser.rbs +5 -1
- data/sig/prototype/rb.rbs +1 -1
- data/sig/resolver/constant_resolver.rbs +2 -2
- data/sig/resolver/context.rbs +1 -1
- data/sig/subtractor.rbs +1 -1
- data/sig/test/type_check.rbs +2 -2
- data/sig/type_alias_dependency.rbs +2 -2
- data/sig/type_alias_regularity.rbs +6 -6
- data/sig/type_param.rbs +4 -4
- data/sig/typename.rbs +8 -5
- data/sig/types.rbs +1 -1
- data/sig/unit_test/spy.rbs +2 -0
- data/sig/unit_test/type_assertions.rbs +2 -0
- data/sig/use_map.rbs +1 -1
- data/sig/validator.rbs +6 -2
- data/sig/vendorer.rbs +1 -1
- data/sig/writer.rbs +1 -1
- data/{ext/rbs_extension → src}/constants.c +35 -36
- data/src/ruby_objs.c +799 -0
- data/src/util/rbs_constant_pool.c +342 -0
- data/stdlib/base64/0/base64.rbs +0 -9
- data/stdlib/benchmark/0/benchmark.rbs +11 -2
- data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
- data/stdlib/cgi/0/core.rbs +60 -3
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/coverage/0/coverage.rbs +0 -3
- data/stdlib/csv/0/csv.rbs +18 -58
- data/stdlib/csv/0/manifest.yaml +1 -0
- data/stdlib/date/0/date.rbs +27 -42
- data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -6
- data/stdlib/digest/0/digest.rbs +25 -2
- data/stdlib/erb/0/erb.rbs +0 -1
- data/stdlib/etc/0/etc.rbs +51 -34
- data/stdlib/fileutils/0/fileutils.rbs +3 -44
- data/stdlib/io-console/0/io-console.rbs +69 -15
- data/stdlib/ipaddr/0/ipaddr.rbs +16 -4
- data/stdlib/json/0/json.rbs +107 -120
- data/stdlib/logger/0/log_device.rbs +1 -1
- data/stdlib/logger/0/logger.rbs +3 -18
- data/stdlib/minitest/0/kernel.rbs +2 -2
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
- data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
- data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
- data/stdlib/minitest/0/minitest/compress.rbs +13 -0
- data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
- data/stdlib/minitest/0/minitest/mock.rbs +9 -5
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
- data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
- data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
- data/stdlib/minitest/0/minitest/spec.rbs +1 -1
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +1 -1
- data/stdlib/minitest/0/minitest/test.rbs +7 -14
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit.rbs +1 -2
- data/stdlib/minitest/0/minitest.rbs +41 -892
- data/stdlib/monitor/0/monitor.rbs +13 -4
- data/stdlib/net-http/0/net-http.rbs +42 -109
- data/stdlib/nkf/0/nkf.rbs +30 -0
- data/stdlib/objspace/0/objspace.rbs +1 -2
- data/stdlib/observable/0/observable.rbs +1 -1
- data/stdlib/open-uri/0/manifest.yaml +1 -0
- data/stdlib/open-uri/0/open-uri.rbs +52 -0
- data/stdlib/open3/0/open3.rbs +0 -8
- data/stdlib/openssl/0/manifest.yaml +1 -0
- data/stdlib/openssl/0/openssl.rbs +235 -143
- data/stdlib/optparse/0/optparse.rbs +58 -18
- data/stdlib/pathname/0/pathname.rbs +2 -8
- data/stdlib/pp/0/pp.rbs +3 -1
- data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
- data/stdlib/pstore/0/pstore.rbs +0 -6
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/psych/0/psych.rbs +15 -4
- data/stdlib/pty/0/pty.rbs +46 -4
- data/stdlib/rdoc/0/code_object.rbs +0 -4
- data/stdlib/rdoc/0/markup.rbs +10 -12
- data/stdlib/rdoc/0/rdoc.rbs +13 -8
- data/stdlib/resolv/0/resolv.rbs +21 -12
- data/stdlib/ripper/0/ripper.rbs +0 -2
- data/stdlib/securerandom/0/securerandom.rbs +7 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -1
- data/stdlib/socket/0/addrinfo.rbs +1 -2
- data/stdlib/socket/0/basic_socket.rbs +0 -5
- data/stdlib/socket/0/socket.rbs +32 -27
- data/stdlib/socket/0/tcp_server.rbs +0 -3
- data/stdlib/socket/0/tcp_socket.rbs +36 -3
- data/stdlib/socket/0/udp_socket.rbs +0 -1
- data/stdlib/socket/0/unix_server.rbs +0 -3
- data/stdlib/socket/0/unix_socket.rbs +4 -2
- data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +1 -1
- data/stdlib/strscan/0/string_scanner.rbs +1265 -422
- data/stdlib/tempfile/0/tempfile.rbs +135 -28
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +11 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +28 -30
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +22 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/zlib/0/buf_error.rbs +1 -70
- data/stdlib/zlib/0/data_error.rbs +1 -70
- data/stdlib/zlib/0/deflate.rbs +8 -72
- data/stdlib/zlib/0/error.rbs +1 -70
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
- data/stdlib/zlib/0/gzip_file.rbs +1 -71
- data/stdlib/zlib/0/gzip_reader.rbs +3 -74
- data/stdlib/zlib/0/gzip_writer.rbs +1 -70
- data/stdlib/zlib/0/inflate.rbs +4 -71
- data/stdlib/zlib/0/mem_error.rbs +1 -70
- data/stdlib/zlib/0/need_dict.rbs +1 -70
- data/stdlib/zlib/0/stream_end.rbs +1 -70
- data/stdlib/zlib/0/stream_error.rbs +1 -70
- data/stdlib/zlib/0/version_error.rbs +1 -70
- data/stdlib/zlib/0/zlib.rbs +0 -2
- data/stdlib/zlib/0/zstream.rbs +4 -72
- metadata +17 -13
- data/ext/rbs_extension/ruby_objs.c +0 -602
- data/ext/rbs_extension/ruby_objs.h +0 -51
- data/stdlib/minitest/0/manifest.yaml +0 -2
data/core/struct.rbs
CHANGED
@@ -46,7 +46,6 @@
|
|
46
46
|
# * Includes [module Enumerable](rdoc-ref:Enumerable@What-27s+Here), which
|
47
47
|
# provides dozens of additional methods.
|
48
48
|
#
|
49
|
-
#
|
50
49
|
# See also Data, which is a somewhat similar, but stricter concept for defining
|
51
50
|
# immutable value objects.
|
52
51
|
#
|
@@ -61,17 +60,14 @@
|
|
61
60
|
# * [Iterating](rdoc-ref:Struct@Methods+for+Iterating)
|
62
61
|
# * [Converting](rdoc-ref:Struct@Methods+for+Converting)
|
63
62
|
#
|
64
|
-
#
|
65
63
|
# ### Methods for Creating a Struct Subclass
|
66
64
|
#
|
67
65
|
# * ::new: Returns a new subclass of Struct.
|
68
66
|
#
|
69
|
-
#
|
70
67
|
# ### Methods for Querying
|
71
68
|
#
|
72
69
|
# * #hash: Returns the integer hash code.
|
73
|
-
# * #
|
74
|
-
#
|
70
|
+
# * #size (aliased as #length): Returns the number of members.
|
75
71
|
#
|
76
72
|
# ### Methods for Comparing
|
77
73
|
#
|
@@ -80,36 +76,32 @@
|
|
80
76
|
# * #eql?: Returns whether a given object is equal to `self`, using `eql?` to
|
81
77
|
# compare member values.
|
82
78
|
#
|
83
|
-
#
|
84
79
|
# ### Methods for Fetching
|
85
80
|
#
|
86
81
|
# * #[]: Returns the value associated with a given member name.
|
87
|
-
# * #to_a
|
88
|
-
# array.
|
82
|
+
# * #to_a (aliased as #values, #deconstruct): Returns the member values in
|
83
|
+
# `self` as an array.
|
89
84
|
# * #deconstruct_keys: Returns a hash of the name/value pairs for given member
|
90
85
|
# names.
|
91
86
|
# * #dig: Returns the object in nested objects that is specified by a given
|
92
87
|
# member name and additional arguments.
|
93
88
|
# * #members: Returns an array of the member names.
|
94
|
-
# * #select
|
95
|
-
# selected by the given block.
|
89
|
+
# * #select (aliased as #filter): Returns an array of member values from
|
90
|
+
# `self`, as selected by the given block.
|
96
91
|
# * #values_at: Returns an array containing values for given member names.
|
97
92
|
#
|
98
|
-
#
|
99
93
|
# ### Methods for Assigning
|
100
94
|
#
|
101
95
|
# * #[]=: Assigns a given value to a given member name.
|
102
96
|
#
|
103
|
-
#
|
104
97
|
# ### Methods for Iterating
|
105
98
|
#
|
106
99
|
# * #each: Calls a given block with each member name.
|
107
100
|
# * #each_pair: Calls a given block with each member name/value pair.
|
108
101
|
#
|
109
|
-
#
|
110
102
|
# ### Methods for Converting
|
111
103
|
#
|
112
|
-
# * #inspect
|
104
|
+
# * #inspect (aliased as #to_s): Returns a string representation of `self`.
|
113
105
|
# * #to_h: Returns a hash of the member name/value pairs in `self`.
|
114
106
|
#
|
115
107
|
class Struct[Elem]
|
@@ -133,7 +125,6 @@ class Struct[Elem]
|
|
133
125
|
# * May have members as given by `member_names`.
|
134
126
|
# * May have initialization via ordinary arguments, or via keyword arguments
|
135
127
|
#
|
136
|
-
#
|
137
128
|
# The new subclass has its own method `::new`; thus:
|
138
129
|
#
|
139
130
|
# Foo = Struct.new('Foo', :foo, :bar) # => Struct::Foo
|
@@ -215,7 +206,6 @@ class Struct[Elem]
|
|
215
206
|
#
|
216
207
|
# Foo.members # => [:foo, :bar]
|
217
208
|
#
|
218
|
-
#
|
219
209
|
# **Keyword Argument**
|
220
210
|
#
|
221
211
|
# By default, the arguments for initializing an instance of the new subclass can
|
@@ -285,7 +275,6 @@ class Struct[Elem]
|
|
285
275
|
# * `other.class == self.class`.
|
286
276
|
# * For each member name `name`, `other.name == self.name`.
|
287
277
|
#
|
288
|
-
#
|
289
278
|
# Examples:
|
290
279
|
#
|
291
280
|
# Customer = Struct.new(:name, :address, :zip)
|
@@ -315,7 +304,6 @@ class Struct[Elem]
|
|
315
304
|
# joe_jr[:name] = 'Joe Smith, Jr.'
|
316
305
|
# joe_jr.eql?(joe) # => false
|
317
306
|
#
|
318
|
-
#
|
319
307
|
# Related: Object#==.
|
320
308
|
#
|
321
309
|
def eql?: (untyped other) -> bool
|
data/core/symbol.rbs
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
# <!-- rdoc-file=string.c -->
|
2
|
-
# Symbol
|
2
|
+
# A `Symbol` object represents a named identifier inside the Ruby interpreter.
|
3
3
|
#
|
4
|
-
# You can create a Symbol object explicitly with:
|
4
|
+
# You can create a `Symbol` object explicitly with:
|
5
5
|
#
|
6
6
|
# * A [symbol literal](rdoc-ref:syntax/literals.rdoc@Symbol+Literals).
|
7
7
|
#
|
8
|
-
#
|
9
|
-
# The same Symbol object will be created for a given name or string for the
|
8
|
+
# The same `Symbol` object will be created for a given name or string for the
|
10
9
|
# duration of a program's execution, regardless of the context or meaning of
|
11
10
|
# that name. Thus if `Fred` is a constant in one context, a method in another,
|
12
|
-
# and a class in a third, the Symbol `:Fred` will be the same object in all
|
11
|
+
# and a class in a third, the `Symbol` `:Fred` will be the same object in all
|
13
12
|
# three contexts.
|
14
13
|
#
|
15
14
|
# module One
|
@@ -52,24 +51,22 @@
|
|
52
51
|
# local_variables
|
53
52
|
# # => [:seven]
|
54
53
|
#
|
55
|
-
# Symbol
|
56
|
-
#
|
54
|
+
# A `Symbol` object differs from a String object in that a `Symbol` object
|
55
|
+
# represents an identifier, while a String object represents text or data.
|
57
56
|
#
|
58
57
|
# ## What's Here
|
59
58
|
#
|
60
|
-
# First, what's elsewhere. Class Symbol
|
59
|
+
# First, what's elsewhere. Class `Symbol`:
|
61
60
|
#
|
62
61
|
# * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
|
63
62
|
# * Includes [module Comparable](rdoc-ref:Comparable@What-27s+Here).
|
64
63
|
#
|
65
|
-
#
|
66
|
-
# Here, class Symbol provides methods that are useful for:
|
64
|
+
# Here, class `Symbol` provides methods that are useful for:
|
67
65
|
#
|
68
66
|
# * [Querying](rdoc-ref:Symbol@Methods+for+Querying)
|
69
67
|
# * [Comparing](rdoc-ref:Symbol@Methods+for+Comparing)
|
70
68
|
# * [Converting](rdoc-ref:Symbol@Methods+for+Converting)
|
71
69
|
#
|
72
|
-
#
|
73
70
|
# ### Methods for Querying
|
74
71
|
#
|
75
72
|
# * ::all_symbols: Returns an array of the symbols currently in Ruby's symbol
|
@@ -90,7 +87,6 @@
|
|
90
87
|
# * #start_with?: Returns `true` if symbol starts with any of the given
|
91
88
|
# strings.
|
92
89
|
#
|
93
|
-
#
|
94
90
|
# ### Methods for Comparing
|
95
91
|
#
|
96
92
|
# * #<=>: Returns -1, 0, or 1 as a given symbol is smaller than, equal to, or
|
@@ -102,7 +98,6 @@
|
|
102
98
|
# * #casecmp?: Returns `true` if symbol is equal to a given symbol after
|
103
99
|
# Unicode case folding; `false` otherwise.
|
104
100
|
#
|
105
|
-
#
|
106
101
|
# ### Methods for Converting
|
107
102
|
#
|
108
103
|
# * #capitalize: Returns symbol with the first character upcased and all other
|
@@ -310,12 +305,10 @@ class Symbol
|
|
310
305
|
#
|
311
306
|
def end_with?: (*string suffixes) -> bool
|
312
307
|
|
313
|
-
# <!--
|
314
|
-
#
|
315
|
-
#
|
316
|
-
#
|
317
|
-
#
|
318
|
-
# Related: Symbol#inspect, Symbol#name.
|
308
|
+
# <!--
|
309
|
+
# rdoc-file=symbol.rb
|
310
|
+
# - id2name()
|
311
|
+
# -->
|
319
312
|
#
|
320
313
|
alias id2name to_s
|
321
314
|
|
@@ -375,7 +368,7 @@ class Symbol
|
|
375
368
|
def next: () -> Symbol
|
376
369
|
|
377
370
|
# <!--
|
378
|
-
# rdoc-file=
|
371
|
+
# rdoc-file=symbol.rb
|
379
372
|
# - name -> string
|
380
373
|
# -->
|
381
374
|
# Returns a frozen string representation of `self` (not including the leading
|
@@ -446,7 +439,7 @@ class Symbol
|
|
446
439
|
def to_proc: () -> Proc
|
447
440
|
|
448
441
|
# <!--
|
449
|
-
# rdoc-file=
|
442
|
+
# rdoc-file=symbol.rb
|
450
443
|
# - to_s -> string
|
451
444
|
# -->
|
452
445
|
# Returns a string representation of `self` (not including the leading colon):
|
data/core/thread.rbs
CHANGED
@@ -485,7 +485,6 @@ class Thread < Object
|
|
485
485
|
# * On Windows it is the thread identifier returned by GetThreadId().
|
486
486
|
# * On other platforms, it raises NotImplementedError.
|
487
487
|
#
|
488
|
-
#
|
489
488
|
# NOTE: If the thread is not associated yet or already deassociated with a
|
490
489
|
# native thread, it returns *nil*. If the Ruby implementation uses M:N thread
|
491
490
|
# model, the ID may change depending on the timing.
|
@@ -614,12 +613,16 @@ class Thread < Object
|
|
614
613
|
#
|
615
614
|
# `"sleep"`
|
616
615
|
# : Returned if this thread is sleeping or waiting on I/O
|
616
|
+
#
|
617
617
|
# `"run"`
|
618
618
|
# : When this thread is executing
|
619
|
+
#
|
619
620
|
# `"aborting"`
|
620
621
|
# : If this thread is aborting
|
622
|
+
#
|
621
623
|
# `false`
|
622
624
|
# : When this thread is terminated normally
|
625
|
+
#
|
623
626
|
# `nil`
|
624
627
|
# : If terminated with an exception.
|
625
628
|
#
|
@@ -819,7 +822,7 @@ class Thread < Object
|
|
819
822
|
|
820
823
|
# <!--
|
821
824
|
# rdoc-file=vm_backtrace.c
|
822
|
-
# - Thread.each_caller_location{ |loc| ... } -> nil
|
825
|
+
# - Thread.each_caller_location(...) { |loc| ... } -> nil
|
823
826
|
# -->
|
824
827
|
# Yields each frame of the current execution stack as a backtrace location
|
825
828
|
# object.
|
@@ -873,8 +876,10 @@ class Thread < Object
|
|
873
876
|
#
|
874
877
|
# `:immediate`
|
875
878
|
# : Invoke interrupts immediately.
|
879
|
+
#
|
876
880
|
# `:on_blocking`
|
877
881
|
# : Invoke interrupts while *BlockingOperation*.
|
882
|
+
#
|
878
883
|
# `:never`
|
879
884
|
# : Never invoke all interrupts.
|
880
885
|
#
|
@@ -923,30 +928,6 @@ class Thread < Object
|
|
923
928
|
# resource allocation code. Then, the ensure block is where we can safely
|
924
929
|
# deallocate your resources.
|
925
930
|
#
|
926
|
-
# #### Guarding from Timeout::Error
|
927
|
-
#
|
928
|
-
# In the next example, we will guard from the Timeout::Error exception. This
|
929
|
-
# will help prevent from leaking resources when Timeout::Error exceptions occur
|
930
|
-
# during normal ensure clause. For this example we use the help of the standard
|
931
|
-
# library Timeout, from lib/timeout.rb
|
932
|
-
#
|
933
|
-
# require 'timeout'
|
934
|
-
# Thread.handle_interrupt(Timeout::Error => :never) {
|
935
|
-
# timeout(10){
|
936
|
-
# # Timeout::Error doesn't occur here
|
937
|
-
# Thread.handle_interrupt(Timeout::Error => :on_blocking) {
|
938
|
-
# # possible to be killed by Timeout::Error
|
939
|
-
# # while blocking operation
|
940
|
-
# }
|
941
|
-
# # Timeout::Error doesn't occur here
|
942
|
-
# }
|
943
|
-
# }
|
944
|
-
#
|
945
|
-
# In the first part of the `timeout` block, we can rely on Timeout::Error being
|
946
|
-
# ignored. Then in the `Timeout::Error => :on_blocking` block, any operation
|
947
|
-
# that will block the calling thread is susceptible to a Timeout::Error
|
948
|
-
# exception being raised.
|
949
|
-
#
|
950
931
|
# #### Stack control settings
|
951
932
|
#
|
952
933
|
# It's possible to stack multiple levels of ::handle_interrupt blocks in order
|
@@ -992,7 +973,7 @@ class Thread < Object
|
|
992
973
|
# from prog.rb:2
|
993
974
|
#
|
994
975
|
def raise: (?String message) -> nil
|
995
|
-
| (_Exception, ?_ToS message, ?Array[String] backtrace) -> nil
|
976
|
+
| (_Exception, ?_ToS message, ?Array[Thread::Backtrace::Location] | Array[String] | nil backtrace) -> nil
|
996
977
|
|
997
978
|
# <!--
|
998
979
|
# rdoc-file=thread.c
|
@@ -1130,7 +1111,6 @@ class Thread < Object
|
|
1130
1111
|
# However, this might handle the exception much later, or not at all if the
|
1131
1112
|
# Thread is never joined due to the parent thread being blocked, etc.
|
1132
1113
|
#
|
1133
|
-
#
|
1134
1114
|
# See also ::report_on_exception=.
|
1135
1115
|
#
|
1136
1116
|
# There is also an instance level method to set this for a specific thread, see
|
@@ -1318,9 +1298,28 @@ class Thread::Backtrace::Location
|
|
1318
1298
|
# rdoc-file=vm_backtrace.c
|
1319
1299
|
# - base_label()
|
1320
1300
|
# -->
|
1321
|
-
# Returns the base label of this frame
|
1301
|
+
# Returns the base label of this frame, which is usually equal to the label,
|
1302
|
+
# without decoration.
|
1322
1303
|
#
|
1323
|
-
#
|
1304
|
+
# Consider the following example:
|
1305
|
+
#
|
1306
|
+
# def foo
|
1307
|
+
# puts caller_locations(0).first.base_label
|
1308
|
+
#
|
1309
|
+
# 1.times do
|
1310
|
+
# puts caller_locations(0).first.base_label
|
1311
|
+
#
|
1312
|
+
# 1.times do
|
1313
|
+
# puts caller_locations(0).first.base_label
|
1314
|
+
# end
|
1315
|
+
# end
|
1316
|
+
# end
|
1317
|
+
#
|
1318
|
+
# The result of calling `foo` is this:
|
1319
|
+
#
|
1320
|
+
# foo
|
1321
|
+
# foo
|
1322
|
+
# foo
|
1324
1323
|
#
|
1325
1324
|
def base_label: () -> String?
|
1326
1325
|
|
@@ -1343,15 +1342,14 @@ class Thread::Backtrace::Location
|
|
1343
1342
|
# 1.times do
|
1344
1343
|
# puts caller_locations(0).first.label
|
1345
1344
|
# end
|
1346
|
-
#
|
1347
1345
|
# end
|
1348
1346
|
# end
|
1349
1347
|
#
|
1350
1348
|
# The result of calling `foo` is this:
|
1351
1349
|
#
|
1352
|
-
#
|
1353
|
-
#
|
1354
|
-
#
|
1350
|
+
# foo
|
1351
|
+
# block in foo
|
1352
|
+
# block (2 levels) in foo
|
1355
1353
|
#
|
1356
1354
|
def label: () -> String?
|
1357
1355
|
|
@@ -1578,7 +1576,6 @@ class Thread::Queue[Elem = untyped] < Object
|
|
1578
1576
|
# * when `empty?` is true, deq(false) will not suspend the thread and will
|
1579
1577
|
# return nil. deq(true) will raise a `ThreadError`.
|
1580
1578
|
#
|
1581
|
-
#
|
1582
1579
|
# ClosedQueueError is inherited from StopIteration, so that you can break loop
|
1583
1580
|
# block.
|
1584
1581
|
#
|