rbs 3.7.0 → 3.8.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +3 -3
- data/.github/workflows/ruby.yml +7 -7
- data/CHANGELOG.md +52 -0
- data/core/array.rbs +1743 -1580
- data/core/basic_object.rbs +38 -35
- data/core/comparable.rbs +1 -1
- data/core/complex.rbs +165 -93
- data/core/data.rbs +1 -1
- data/core/dir.rbs +1 -17
- data/core/encoding.rbs +12 -6
- data/core/enumerable.rbs +270 -266
- data/core/enumerator.rbs +0 -2
- data/core/env.rbs +1 -1
- data/core/errno.rbs +33 -16
- data/core/errors.rbs +2 -2
- data/core/exception.rbs +236 -170
- data/core/fiber.rbs +3 -2
- data/core/file.rbs +32 -74
- data/core/float.rbs +125 -72
- data/core/gc.rbs +138 -40
- data/core/hash.rbs +120 -141
- data/core/integer.rbs +79 -50
- data/core/io/buffer.rbs +49 -43
- data/core/io.rbs +97 -144
- data/core/kernel.rbs +290 -200
- data/core/match_data.rbs +76 -2
- data/core/math.rbs +0 -36
- data/core/module.rbs +28 -23
- data/core/nil_class.rbs +0 -3
- data/core/numeric.rbs +100 -103
- data/core/object.rbs +0 -4
- data/core/object_space/weak_key_map.rbs +3 -4
- data/core/object_space.rbs +3 -3
- data/core/proc.rbs +0 -2
- data/core/process.rbs +109 -57
- data/core/ractor.rbs +37 -4
- data/core/range.rbs +114 -87
- data/core/rational.rbs +0 -2
- data/core/rbs/unnamed/argf.rbs +234 -33
- data/core/rbs/unnamed/env_class.rbs +35 -53
- data/core/rbs/unnamed/random.rbs +1 -2
- data/core/regexp.rbs +4 -52
- data/core/ruby_vm.rbs +88 -9
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +0 -5
- data/core/rubygems/platform.rbs +0 -9
- data/core/rubygems/rubygems.rbs +0 -5
- data/core/rubygems/version.rbs +6 -6
- data/core/set.rbs +3 -15
- data/core/string.rbs +130 -136
- data/core/struct.rbs +6 -18
- data/core/symbol.rbs +14 -21
- data/core/thread.rbs +32 -35
- data/core/time.rbs +127 -50
- data/core/trace_point.rbs +16 -0
- data/core/true_class.rbs +0 -1
- data/core/warning.rbs +9 -2
- data/docs/architecture.md +1 -1
- data/docs/syntax.md +1 -1
- data/ext/rbs_extension/location.c +29 -19
- data/ext/rbs_extension/parser.c +267 -292
- data/ext/rbs_extension/parserstate.c +56 -22
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/rdoc_source.rb +2 -2
- data/lib/rbs/cli/diff.rb +3 -3
- data/lib/rbs/cli/validate.rb +1 -1
- data/lib/rbs/cli.rb +13 -13
- data/lib/rbs/collection/config.rb +3 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
- data/lib/rbs/environment_loader.rb +1 -1
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser_aux.rb +2 -2
- data/lib/rbs/prototype/rb.rb +11 -8
- data/lib/rbs/prototype/rbi.rb +9 -5
- data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
- data/lib/rbs/prototype/runtime.rb +4 -5
- data/lib/rbs/type_name.rb +14 -9
- data/lib/rbs/unit_test/type_assertions.rb +2 -2
- data/lib/rbs/validator.rb +3 -1
- data/lib/rbs/version.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +4 -0
- data/sig/ancestor_graph.rbs +4 -4
- data/sig/namespace.rbs +2 -3
- data/sig/resolver/constant_resolver.rbs +2 -2
- data/sig/resolver/context.rbs +1 -1
- data/sig/type_alias_regularity.rbs +5 -5
- data/sig/typename.rbs +8 -5
- data/sig/use_map.rbs +1 -1
- data/sig/validator.rbs +2 -2
- 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 +47 -0
- data/stdlib/coverage/0/coverage.rbs +0 -3
- data/stdlib/csv/0/csv.rbs +18 -58
- data/stdlib/date/0/date.rbs +4 -19
- data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
- 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 +8 -4
- data/stdlib/json/0/json.rbs +56 -71
- data/stdlib/logger/0/log_device.rbs +1 -1
- data/stdlib/logger/0/logger.rbs +3 -18
- data/stdlib/net-http/0/net-http.rbs +19 -77
- 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/open-uri.rbs +52 -0
- data/stdlib/open3/0/open3.rbs +0 -8
- data/stdlib/openssl/0/openssl.rbs +136 -69
- 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/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 +1 -2
- data/stdlib/resolv/0/resolv.rbs +8 -3
- data/stdlib/ripper/0/ripper.rbs +0 -2
- data/stdlib/securerandom/0/securerandom.rbs +0 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -1
- data/stdlib/socket/0/addrinfo.rbs +0 -1
- data/stdlib/socket/0/basic_socket.rbs +0 -5
- data/stdlib/socket/0/socket.rbs +49 -25
- data/stdlib/socket/0/tcp_server.rbs +0 -3
- data/stdlib/socket/0/tcp_socket.rbs +58 -3
- data/stdlib/socket/0/udp_socket.rbs +0 -1
- data/stdlib/socket/0/unix_server.rbs +0 -3
- 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 +8 -1
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +11 -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 +4 -6
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/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
|
@@ -1155,9 +1160,9 @@ 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
1167
|
def name: () -> String?
|
1163
1168
|
|
@@ -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
|
|
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,10 @@
|
|
19
18
|
# * #to_r
|
20
19
|
# * #to_s
|
21
20
|
#
|
22
|
-
#
|
23
21
|
# Another method provides inspection:
|
24
22
|
#
|
25
23
|
# * #inspect
|
26
24
|
#
|
27
|
-
#
|
28
25
|
# Finally, there is this query method:
|
29
26
|
#
|
30
27
|
# * #nil?
|