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/match_data.rbs
CHANGED
@@ -41,7 +41,6 @@
|
|
41
41
|
# * `$'` is Regexp.last_match`.post_match`;
|
42
42
|
# * `$+` is Regexp.last_match`[ -1 ]` (the last capture).
|
43
43
|
#
|
44
|
-
#
|
45
44
|
# See also "Special global variables" section in Regexp documentation.
|
46
45
|
#
|
47
46
|
class MatchData
|
@@ -133,6 +132,82 @@ class MatchData
|
|
133
132
|
#
|
134
133
|
def begin: (capture backref) -> Integer?
|
135
134
|
|
135
|
+
# <!--
|
136
|
+
# rdoc-file=re.c
|
137
|
+
# - bytebegin(n) -> integer
|
138
|
+
# - bytebegin(name) -> integer
|
139
|
+
# -->
|
140
|
+
# Returns the offset (in bytes) of the beginning of the specified match.
|
141
|
+
#
|
142
|
+
# When non-negative integer argument `n` is given, returns the offset of the
|
143
|
+
# beginning of the `n`th match:
|
144
|
+
#
|
145
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
146
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
147
|
+
# m[0] # => "HX1138"
|
148
|
+
# m.bytebegin(0) # => 1
|
149
|
+
# m[3] # => "113"
|
150
|
+
# m.bytebegin(3) # => 3
|
151
|
+
#
|
152
|
+
# m = /(т)(е)(с)/.match('тест')
|
153
|
+
# # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
|
154
|
+
# m[0] # => "тес"
|
155
|
+
# m.bytebegin(0) # => 0
|
156
|
+
# m[3] # => "с"
|
157
|
+
# m.bytebegin(3) # => 4
|
158
|
+
#
|
159
|
+
# When string or symbol argument `name` is given, returns the offset of the
|
160
|
+
# beginning for the named match:
|
161
|
+
#
|
162
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
163
|
+
# # => #<MatchData "hog" foo:"h" bar:"g">
|
164
|
+
# m[:foo] # => "h"
|
165
|
+
# m.bytebegin('foo') # => 0
|
166
|
+
# m[:bar] # => "g"
|
167
|
+
# m.bytebegin(:bar) # => 2
|
168
|
+
#
|
169
|
+
# Related: MatchData#byteend, MatchData#byteoffset.
|
170
|
+
#
|
171
|
+
def bytebegin: (capture backref) -> Integer?
|
172
|
+
|
173
|
+
# <!--
|
174
|
+
# rdoc-file=re.c
|
175
|
+
# - byteend(n) -> integer
|
176
|
+
# - byteend(name) -> integer
|
177
|
+
# -->
|
178
|
+
# Returns the offset (in bytes) of the end of the specified match.
|
179
|
+
#
|
180
|
+
# When non-negative integer argument `n` is given, returns the offset of the end
|
181
|
+
# of the `n`th match:
|
182
|
+
#
|
183
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
184
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
185
|
+
# m[0] # => "HX1138"
|
186
|
+
# m.byteend(0) # => 7
|
187
|
+
# m[3] # => "113"
|
188
|
+
# m.byteend(3) # => 6
|
189
|
+
#
|
190
|
+
# m = /(т)(е)(с)/.match('тест')
|
191
|
+
# # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
|
192
|
+
# m[0] # => "тес"
|
193
|
+
# m.byteend(0) # => 6
|
194
|
+
# m[3] # => "с"
|
195
|
+
# m.byteend(3) # => 6
|
196
|
+
#
|
197
|
+
# When string or symbol argument `name` is given, returns the offset of the end
|
198
|
+
# for the named match:
|
199
|
+
#
|
200
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
201
|
+
# # => #<MatchData "hog" foo:"h" bar:"g">
|
202
|
+
# m[:foo] # => "h"
|
203
|
+
# m.byteend('foo') # => 1
|
204
|
+
# m[:bar] # => "g"
|
205
|
+
# m.byteend(:bar) # => 3
|
206
|
+
#
|
207
|
+
# Related: MatchData#bytebegin, MatchData#byteoffset.
|
208
|
+
#
|
209
|
+
def byteend: (capture backref) -> Integer?
|
210
|
+
|
136
211
|
# <!--
|
137
212
|
# rdoc-file=re.c
|
138
213
|
# - mtch.byteoffset(n) -> array
|
@@ -544,7 +619,6 @@ class MatchData
|
|
544
619
|
# * Ranges.
|
545
620
|
# * Names (strings and symbols).
|
546
621
|
#
|
547
|
-
#
|
548
622
|
# Examples:
|
549
623
|
#
|
550
624
|
# m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
|
data/core/math.rbs
CHANGED
@@ -37,7 +37,6 @@
|
|
37
37
|
#
|
38
38
|
# [1.0, INFINITY)
|
39
39
|
#
|
40
|
-
#
|
41
40
|
# Many values returned by Math methods are numerical approximations. This is
|
42
41
|
# because many such values are, in mathematics, of infinite precision, while in
|
43
42
|
# numerical computation the precision is finite.
|
@@ -64,7 +63,6 @@
|
|
64
63
|
# * ::sin: Returns the sine of the given argument.
|
65
64
|
# * ::tan: Returns the tangent of the given argument.
|
66
65
|
#
|
67
|
-
#
|
68
66
|
# #### Inverse Trigonometric Functions
|
69
67
|
#
|
70
68
|
# * ::acos: Returns the arc cosine of the given argument.
|
@@ -72,21 +70,18 @@
|
|
72
70
|
# * ::atan: Returns the arc tangent of the given argument.
|
73
71
|
# * ::atan2: Returns the arg tangent of two given arguments.
|
74
72
|
#
|
75
|
-
#
|
76
73
|
# #### Hyperbolic Trigonometric Functions
|
77
74
|
#
|
78
75
|
# * ::cosh: Returns the hyperbolic cosine of the given argument.
|
79
76
|
# * ::sinh: Returns the hyperbolic sine of the given argument.
|
80
77
|
# * ::tanh: Returns the hyperbolic tangent of the given argument.
|
81
78
|
#
|
82
|
-
#
|
83
79
|
# #### Inverse Hyperbolic Trigonometric Functions
|
84
80
|
#
|
85
81
|
# * ::acosh: Returns the inverse hyperbolic cosine of the given argument.
|
86
82
|
# * ::asinh: Returns the inverse hyperbolic sine of the given argument.
|
87
83
|
# * ::atanh: Returns the inverse hyperbolic tangent of the given argument.
|
88
84
|
#
|
89
|
-
#
|
90
85
|
# #### Exponentiation and Logarithmic Functions
|
91
86
|
#
|
92
87
|
# * ::exp: Returns the value of a given value raised to a given power.
|
@@ -94,19 +89,16 @@
|
|
94
89
|
# * ::log10: Returns the base 10 logarithm of the given argument.
|
95
90
|
# * ::log2: Returns the base 2 logarithm of the given argument.
|
96
91
|
#
|
97
|
-
#
|
98
92
|
# #### Fraction and Exponent Functions
|
99
93
|
#
|
100
94
|
# * ::frexp: Returns the fraction and exponent of the given argument.
|
101
95
|
# * ::ldexp: Returns the value for a given fraction and exponent.
|
102
96
|
#
|
103
|
-
#
|
104
97
|
# #### Root Functions
|
105
98
|
#
|
106
99
|
# * ::cbrt: Returns the cube root of the given argument.
|
107
100
|
# * ::sqrt: Returns the square root of the given argument.
|
108
101
|
#
|
109
|
-
#
|
110
102
|
# #### Error Functions
|
111
103
|
#
|
112
104
|
# * ::erf: Returns the value of the Gauss error function for the given
|
@@ -114,14 +106,12 @@
|
|
114
106
|
# * ::erfc: Returns the value of the complementary error function for the
|
115
107
|
# given argument.
|
116
108
|
#
|
117
|
-
#
|
118
109
|
# #### Gamma Functions
|
119
110
|
#
|
120
111
|
# * ::gamma: Returns the value of the gamma function for the given argument.
|
121
112
|
# * ::lgamma: Returns the value of the logarithmic gamma function for the
|
122
113
|
# given argument.
|
123
114
|
#
|
124
|
-
#
|
125
115
|
# #### Hypotenuse Function
|
126
116
|
#
|
127
117
|
# * ::hypot: Returns `sqrt(a**2 + b**2)` for the given `a` and `b`.
|
@@ -168,7 +158,6 @@ module Math
|
|
168
158
|
# * Domain: `[-1, 1]`.
|
169
159
|
# * Range: `[0, PI]`.
|
170
160
|
#
|
171
|
-
#
|
172
161
|
# Examples:
|
173
162
|
#
|
174
163
|
# acos(-1.0) # => 3.141592653589793 # PI
|
@@ -187,7 +176,6 @@ module Math
|
|
187
176
|
# * Domain: `[1, INFINITY]`.
|
188
177
|
# * Range: `[0, INFINITY]`.
|
189
178
|
#
|
190
|
-
#
|
191
179
|
# Examples:
|
192
180
|
#
|
193
181
|
# acosh(1.0) # => 0.0
|
@@ -205,7 +193,6 @@ module Math
|
|
205
193
|
# * Domain: `[-1, -1]`.
|
206
194
|
# * Range: `[-PI/2, PI/2]`.
|
207
195
|
#
|
208
|
-
#
|
209
196
|
# Examples:
|
210
197
|
#
|
211
198
|
# asin(-1.0) # => -1.5707963267948966 # -PI/2
|
@@ -224,7 +211,6 @@ module Math
|
|
224
211
|
# * Domain: `[-INFINITY, INFINITY]`.
|
225
212
|
# * Range: `[-INFINITY, INFINITY]`.
|
226
213
|
#
|
227
|
-
#
|
228
214
|
# Examples:
|
229
215
|
#
|
230
216
|
# asinh(-INFINITY) # => -Infinity
|
@@ -244,7 +230,6 @@ module Math
|
|
244
230
|
# * Domain: `[-INFINITY, INFINITY]`.
|
245
231
|
# * Range: `[-PI/2, PI/2] `.
|
246
232
|
#
|
247
|
-
#
|
248
233
|
# Examples:
|
249
234
|
#
|
250
235
|
# atan(-INFINITY) # => -1.5707963267948966 # -PI2
|
@@ -270,7 +255,6 @@ module Math
|
|
270
255
|
# * Domain of `x`: `[-INFINITY, INFINITY]`.
|
271
256
|
# * Range: `[-PI, PI]`.
|
272
257
|
#
|
273
|
-
#
|
274
258
|
# Examples:
|
275
259
|
#
|
276
260
|
# atan2(-1.0, -1.0) # => -2.356194490192345 # -3*PI/4
|
@@ -290,7 +274,6 @@ module Math
|
|
290
274
|
# * Domain: `[-1, 1]`.
|
291
275
|
# * Range: `[-INFINITY, INFINITY]`.
|
292
276
|
#
|
293
|
-
#
|
294
277
|
# Examples:
|
295
278
|
#
|
296
279
|
# atanh(-1.0) # => -Infinity
|
@@ -308,7 +291,6 @@ module Math
|
|
308
291
|
# * Domain: `[-INFINITY, INFINITY]`.
|
309
292
|
# * Range: `[-INFINITY, INFINITY]`.
|
310
293
|
#
|
311
|
-
#
|
312
294
|
# Examples:
|
313
295
|
#
|
314
296
|
# cbrt(-INFINITY) # => -Infinity
|
@@ -336,7 +318,6 @@ module Math
|
|
336
318
|
# * Domain: `(-INFINITY, INFINITY)`.
|
337
319
|
# * Range: `[-1.0, 1.0]`.
|
338
320
|
#
|
339
|
-
#
|
340
321
|
# Examples:
|
341
322
|
#
|
342
323
|
# cos(-PI) # => -1.0
|
@@ -359,7 +340,6 @@ module Math
|
|
359
340
|
# * Domain: `[-INFINITY, INFINITY]`.
|
360
341
|
# * Range: `[1, INFINITY]`.
|
361
342
|
#
|
362
|
-
#
|
363
343
|
# Examples:
|
364
344
|
#
|
365
345
|
# cosh(-INFINITY) # => Infinity
|
@@ -378,7 +358,6 @@ module Math
|
|
378
358
|
# * Domain: `[-INFINITY, INFINITY]`.
|
379
359
|
# * Range: `[-1, 1]`.
|
380
360
|
#
|
381
|
-
#
|
382
361
|
# Examples:
|
383
362
|
#
|
384
363
|
# erf(-INFINITY) # => -1.0
|
@@ -400,7 +379,6 @@ module Math
|
|
400
379
|
# * Domain: `[-INFINITY, INFINITY]`.
|
401
380
|
# * Range: `[0, 2]`.
|
402
381
|
#
|
403
|
-
#
|
404
382
|
# Examples:
|
405
383
|
#
|
406
384
|
# erfc(-INFINITY) # => 2.0
|
@@ -420,7 +398,6 @@ module Math
|
|
420
398
|
# * Domain: `[-INFINITY, INFINITY]`.
|
421
399
|
# * Range: `[0, INFINITY]`.
|
422
400
|
#
|
423
|
-
#
|
424
401
|
# Examples:
|
425
402
|
#
|
426
403
|
# exp(-INFINITY) # => 0.0
|
@@ -449,7 +426,6 @@ module Math
|
|
449
426
|
# * Domain: `[-INFINITY, INFINITY]`.
|
450
427
|
# * Range `[-INFINITY, INFINITY]`.
|
451
428
|
#
|
452
|
-
#
|
453
429
|
# Examples:
|
454
430
|
#
|
455
431
|
# frexp(-INFINITY) # => [-Infinity, -1]
|
@@ -474,7 +450,6 @@ module Math
|
|
474
450
|
# * Domain: `(-INFINITY, INFINITY]` excluding negative integers.
|
475
451
|
# * Range: `[-INFINITY, INFINITY]`.
|
476
452
|
#
|
477
|
-
#
|
478
453
|
# Examples:
|
479
454
|
#
|
480
455
|
# gamma(-2.5) # => -0.9453087204829431
|
@@ -502,7 +477,6 @@ module Math
|
|
502
477
|
# * Domain of +ab: `[-INFINITY, INFINITY]`.
|
503
478
|
# * Range: `[0, INFINITY]`.
|
504
479
|
#
|
505
|
-
#
|
506
480
|
# Examples:
|
507
481
|
#
|
508
482
|
# hypot(0.0, 1.0) # => 1.0
|
@@ -525,7 +499,6 @@ module Math
|
|
525
499
|
# * Domain of `fraction`: `[0.0, 1.0)`.
|
526
500
|
# * Domain of `exponent`: `[0, 1024]` (larger values are equivalent to 1024).
|
527
501
|
#
|
528
|
-
#
|
529
502
|
# See [IEEE 754 double-precision binary floating-point format:
|
530
503
|
# binary64](https://en.wikipedia.org/wiki/Double-precision_floating-point_format
|
531
504
|
# #IEEE_754_double-precision_binary_floating-point_format:_binary64).
|
@@ -560,7 +533,6 @@ module Math
|
|
560
533
|
# * Range of first element: `(-INFINITY, INFINITY]`.
|
561
534
|
# * Second element is -1 or 1.
|
562
535
|
#
|
563
|
-
#
|
564
536
|
# Examples:
|
565
537
|
#
|
566
538
|
# lgamma(-4.0) # => [Infinity, -1]
|
@@ -595,7 +567,6 @@ module Math
|
|
595
567
|
# * Domain: `[0, INFINITY]`.
|
596
568
|
# * Range: `[-INFINITY, INFINITY)]`.
|
597
569
|
#
|
598
|
-
#
|
599
570
|
# Examples:
|
600
571
|
#
|
601
572
|
# log(0.0) # => -Infinity
|
@@ -623,7 +594,6 @@ module Math
|
|
623
594
|
# * Domain: `[0, INFINITY]`.
|
624
595
|
# * Range: `[-INFINITY, INFINITY]`.
|
625
596
|
#
|
626
|
-
#
|
627
597
|
# Examples:
|
628
598
|
#
|
629
599
|
# log10(0.0) # => -Infinity
|
@@ -643,7 +613,6 @@ module Math
|
|
643
613
|
# * Domain: `[0, INFINITY]`.
|
644
614
|
# * Range: `[-INFINITY, INFINITY]`.
|
645
615
|
#
|
646
|
-
#
|
647
616
|
# Examples:
|
648
617
|
#
|
649
618
|
# log2(0.0) # => -Infinity
|
@@ -664,7 +633,6 @@ module Math
|
|
664
633
|
# * Domain: `(-INFINITY, INFINITY)`.
|
665
634
|
# * Range: `[-1.0, 1.0]`.
|
666
635
|
#
|
667
|
-
#
|
668
636
|
# Examples:
|
669
637
|
#
|
670
638
|
# sin(-PI) # => -1.2246063538223773e-16 # -0.0000000000000001
|
@@ -687,7 +655,6 @@ module Math
|
|
687
655
|
# * Domain: `[-INFINITY, INFINITY]`.
|
688
656
|
# * Range: `[-INFINITY, INFINITY]`.
|
689
657
|
#
|
690
|
-
#
|
691
658
|
# Examples:
|
692
659
|
#
|
693
660
|
# sinh(-INFINITY) # => -Infinity
|
@@ -706,7 +673,6 @@ module Math
|
|
706
673
|
# * Domain: `[0, INFINITY]`.
|
707
674
|
# * Range: `[0, INFINITY]`.
|
708
675
|
#
|
709
|
-
#
|
710
676
|
# Examples:
|
711
677
|
#
|
712
678
|
# sqrt(0.0) # => 0.0
|
@@ -731,7 +697,6 @@ module Math
|
|
731
697
|
# * Domain: `(-INFINITY, INFINITY)`.
|
732
698
|
# * Range: `(-INFINITY, INFINITY)`.
|
733
699
|
#
|
734
|
-
#
|
735
700
|
# Examples:
|
736
701
|
#
|
737
702
|
# tan(-PI) # => 1.2246467991473532e-16 # -0.0000000000000001
|
@@ -754,7 +719,6 @@ module Math
|
|
754
719
|
# * Domain: `[-INFINITY, INFINITY]`.
|
755
720
|
# * Range: `[-1, 1]`.
|
756
721
|
#
|
757
|
-
#
|
758
722
|
# Examples:
|
759
723
|
#
|
760
724
|
# tanh(-INFINITY) # => -1.0
|
data/core/method.rbs
CHANGED
@@ -54,7 +54,7 @@ class Method
|
|
54
54
|
#
|
55
55
|
def hash: () -> Integer
|
56
56
|
|
57
|
-
def dup: () ->
|
57
|
+
def dup: () -> self
|
58
58
|
|
59
59
|
# <!--
|
60
60
|
# rdoc-file=proc.c
|
@@ -252,7 +252,7 @@ class Method
|
|
252
252
|
# m.call # => "bar"
|
253
253
|
# n = m.clone.call # => "bar"
|
254
254
|
#
|
255
|
-
def clone: () ->
|
255
|
+
def clone: () -> self
|
256
256
|
|
257
257
|
# <!--
|
258
258
|
# rdoc-file=proc.c
|
data/core/module.rbs
CHANGED
@@ -315,14 +315,14 @@ class Module < Object
|
|
315
315
|
# rdoc-file=load.c
|
316
316
|
# - mod.autoload(const, filename) -> nil
|
317
317
|
# -->
|
318
|
-
# Registers
|
319
|
-
#
|
320
|
-
#
|
318
|
+
# Registers *filename* to be loaded (using Kernel::require) the first time that
|
319
|
+
# *const* (which may be a String or a symbol) is accessed in the namespace of
|
320
|
+
# *mod*.
|
321
321
|
#
|
322
|
-
#
|
323
|
-
#
|
324
|
-
#
|
325
|
-
#
|
322
|
+
# module A
|
323
|
+
# end
|
324
|
+
# A.autoload(:B, "b")
|
325
|
+
# A::B.doit # autoloads "b"
|
326
326
|
#
|
327
327
|
# If *const* in *mod* is defined as autoload, the file name to be loaded is
|
328
328
|
# replaced with *filename*. If *const* is defined but not as autoload, does
|
@@ -574,7 +574,7 @@ class Module < Object
|
|
574
574
|
# -->
|
575
575
|
# Invoked when a reference is made to an undefined constant in *mod*. It is
|
576
576
|
# passed a symbol for the undefined constant, and returns a value to be used for
|
577
|
-
# that constant.
|
577
|
+
# that constant. For example, consider:
|
578
578
|
#
|
579
579
|
# def Foo.const_missing(name)
|
580
580
|
# name # return the constant name as Symbol
|
@@ -582,22 +582,27 @@ class Module < Object
|
|
582
582
|
#
|
583
583
|
# Foo::UNDEFINED_CONST #=> :UNDEFINED_CONST: symbol returned
|
584
584
|
#
|
585
|
-
#
|
586
|
-
#
|
587
|
-
#
|
588
|
-
#
|
589
|
-
#
|
585
|
+
# As the example above shows, `const_missing` is not required to create the
|
586
|
+
# missing constant in *mod*, though that is often a side-effect. The caller gets
|
587
|
+
# its return value when triggered. If the constant is also defined, further
|
588
|
+
# lookups won't hit `const_missing` and will return the value stored in the
|
589
|
+
# constant as usual. Otherwise, `const_missing` will be invoked again.
|
590
|
+
#
|
591
|
+
# In the next example, when a reference is made to an undefined constant,
|
592
|
+
# `const_missing` attempts to load a file whose path is the lowercase version of
|
593
|
+
# the constant name (thus class `Fred` is assumed to be in file `fred.rb`). If
|
594
|
+
# defined as a side-effect of loading the file, the method returns the value
|
595
|
+
# stored in the constant. This implements an autoload feature similar to
|
596
|
+
# Kernel#autoload and Module#autoload, though it differs in important ways.
|
590
597
|
#
|
591
598
|
# def Object.const_missing(name)
|
592
599
|
# @looked_for ||= {}
|
593
600
|
# str_name = name.to_s
|
594
|
-
# raise "
|
601
|
+
# raise "Constant not found: #{name}" if @looked_for[str_name]
|
595
602
|
# @looked_for[str_name] = 1
|
596
603
|
# file = str_name.downcase
|
597
604
|
# require file
|
598
|
-
#
|
599
|
-
# return klass if klass
|
600
|
-
# raise "Class not found: #{name}"
|
605
|
+
# const_get(name, false)
|
601
606
|
# end
|
602
607
|
#
|
603
608
|
def const_missing: (Symbol arg0) -> untyped
|
@@ -726,8 +731,8 @@ class Module < Object
|
|
726
731
|
# I'm Dino!
|
727
732
|
# #<B:0x401b39e8>
|
728
733
|
#
|
729
|
-
def define_method: (interned symbol, ^() [self:
|
730
|
-
| (interned symbol) { () [self:
|
734
|
+
def define_method: (interned symbol, ^(?) [self: top] -> untyped | Method | UnboundMethod method) -> Symbol
|
735
|
+
| (interned symbol) { (?) [self: top] -> untyped } -> Symbol
|
731
736
|
|
732
737
|
# <!--
|
733
738
|
# rdoc-file=object.c
|
@@ -1155,11 +1160,11 @@ class Module < Object
|
|
1155
1160
|
|
1156
1161
|
# <!--
|
1157
1162
|
# rdoc-file=object.c
|
1158
|
-
# - mod.name -> string
|
1163
|
+
# - mod.name -> string or nil
|
1159
1164
|
# -->
|
1160
|
-
# Returns the name of the module *mod*. Returns nil for anonymous modules.
|
1165
|
+
# Returns the name of the module *mod*. Returns `nil` for anonymous modules.
|
1161
1166
|
#
|
1162
|
-
def name: () -> String
|
1167
|
+
def name: %a{implicitly-returns-nil} () -> String
|
1163
1168
|
|
1164
1169
|
# <!--
|
1165
1170
|
# rdoc-file=eval.c
|
@@ -1482,7 +1487,7 @@ class Module < Object
|
|
1482
1487
|
# rdoc-file=eval.c
|
1483
1488
|
# - refinements -> array
|
1484
1489
|
# -->
|
1485
|
-
# Returns an array of
|
1490
|
+
# Returns an array of `Refinement` defined within the receiver.
|
1486
1491
|
#
|
1487
1492
|
# module A
|
1488
1493
|
# refine Integer do
|
@@ -1549,8 +1554,8 @@ class Module < Object
|
|
1549
1554
|
# of the module and the values that are related to it, such as instances,
|
1550
1555
|
# constants, and methods.
|
1551
1556
|
#
|
1552
|
-
# The name should be `nil` or non-empty string that is not a valid constant
|
1553
|
-
# (to avoid confusing between permanent and temporary names).
|
1557
|
+
# The name should be `nil` or a non-empty string that is not a valid constant
|
1558
|
+
# path (to avoid confusing between permanent and temporary names).
|
1554
1559
|
#
|
1555
1560
|
# The method can be useful to distinguish dynamically generated classes and
|
1556
1561
|
# modules without assigning them to constants.
|
@@ -1651,7 +1656,7 @@ class Module < Object
|
|
1651
1656
|
#
|
1652
1657
|
# In child
|
1653
1658
|
# In parent
|
1654
|
-
# prog.rb:23: undefined method
|
1659
|
+
# prog.rb:23: undefined method 'hello' for #<Child:0x401b3bb4> (NoMethodError)
|
1655
1660
|
#
|
1656
1661
|
def undef_method: (*interned arg0) -> self
|
1657
1662
|
|
@@ -1694,6 +1699,6 @@ class Module < Object
|
|
1694
1699
|
def attr: (*interned arg0) -> Array[Symbol]
|
1695
1700
|
|
1696
1701
|
# A previous incarnation of `interned` for backward-compatibility (see #1499)
|
1697
|
-
%a{
|
1702
|
+
%a{deprecated: Use `interned`}
|
1698
1703
|
type id = interned
|
1699
1704
|
end
|
data/core/nil_class.rbs
CHANGED
@@ -9,7 +9,6 @@
|
|
9
9
|
# * #=~
|
10
10
|
# * #^
|
11
11
|
#
|
12
|
-
#
|
13
12
|
# Others act as converters, carrying the concept of *nullity* to other classes:
|
14
13
|
#
|
15
14
|
# * #rationalize
|
@@ -19,12 +18,13 @@
|
|
19
18
|
# * #to_r
|
20
19
|
# * #to_s
|
21
20
|
#
|
21
|
+
# While `nil` doesn't have an explicitly defined #to_hash method, it can be used
|
22
|
+
# in `**` unpacking, not adding any keyword arguments.
|
22
23
|
#
|
23
24
|
# Another method provides inspection:
|
24
25
|
#
|
25
26
|
# * #inspect
|
26
27
|
#
|
27
|
-
#
|
28
28
|
# Finally, there is this query method:
|
29
29
|
#
|
30
30
|
# * #nil?
|