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.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +3 -3
  3. data/.github/workflows/ruby.yml +7 -7
  4. data/CHANGELOG.md +52 -0
  5. data/core/array.rbs +1743 -1580
  6. data/core/basic_object.rbs +38 -35
  7. data/core/comparable.rbs +1 -1
  8. data/core/complex.rbs +165 -93
  9. data/core/data.rbs +1 -1
  10. data/core/dir.rbs +1 -17
  11. data/core/encoding.rbs +12 -6
  12. data/core/enumerable.rbs +270 -266
  13. data/core/enumerator.rbs +0 -2
  14. data/core/env.rbs +1 -1
  15. data/core/errno.rbs +33 -16
  16. data/core/errors.rbs +2 -2
  17. data/core/exception.rbs +236 -170
  18. data/core/fiber.rbs +3 -2
  19. data/core/file.rbs +32 -74
  20. data/core/float.rbs +125 -72
  21. data/core/gc.rbs +138 -40
  22. data/core/hash.rbs +120 -141
  23. data/core/integer.rbs +79 -50
  24. data/core/io/buffer.rbs +49 -43
  25. data/core/io.rbs +97 -144
  26. data/core/kernel.rbs +290 -200
  27. data/core/match_data.rbs +76 -2
  28. data/core/math.rbs +0 -36
  29. data/core/module.rbs +28 -23
  30. data/core/nil_class.rbs +0 -3
  31. data/core/numeric.rbs +100 -103
  32. data/core/object.rbs +0 -4
  33. data/core/object_space/weak_key_map.rbs +3 -4
  34. data/core/object_space.rbs +3 -3
  35. data/core/proc.rbs +0 -2
  36. data/core/process.rbs +109 -57
  37. data/core/ractor.rbs +37 -4
  38. data/core/range.rbs +114 -87
  39. data/core/rational.rbs +0 -2
  40. data/core/rbs/unnamed/argf.rbs +234 -33
  41. data/core/rbs/unnamed/env_class.rbs +35 -53
  42. data/core/rbs/unnamed/random.rbs +1 -2
  43. data/core/regexp.rbs +4 -52
  44. data/core/ruby_vm.rbs +88 -9
  45. data/core/rubygems/config_file.rbs +3 -0
  46. data/core/rubygems/errors.rbs +0 -5
  47. data/core/rubygems/platform.rbs +0 -9
  48. data/core/rubygems/rubygems.rbs +0 -5
  49. data/core/rubygems/version.rbs +6 -6
  50. data/core/set.rbs +3 -15
  51. data/core/string.rbs +130 -136
  52. data/core/struct.rbs +6 -18
  53. data/core/symbol.rbs +14 -21
  54. data/core/thread.rbs +32 -35
  55. data/core/time.rbs +127 -50
  56. data/core/trace_point.rbs +16 -0
  57. data/core/true_class.rbs +0 -1
  58. data/core/warning.rbs +9 -2
  59. data/docs/architecture.md +1 -1
  60. data/docs/syntax.md +1 -1
  61. data/ext/rbs_extension/location.c +29 -19
  62. data/ext/rbs_extension/parser.c +267 -292
  63. data/ext/rbs_extension/parserstate.c +56 -22
  64. data/lib/rbs/annotate/annotations.rb +3 -3
  65. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  66. data/lib/rbs/cli/diff.rb +3 -3
  67. data/lib/rbs/cli/validate.rb +1 -1
  68. data/lib/rbs/cli.rb +13 -13
  69. data/lib/rbs/collection/config.rb +3 -1
  70. data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
  71. data/lib/rbs/environment_loader.rb +1 -1
  72. data/lib/rbs/namespace.rb +1 -0
  73. data/lib/rbs/parser_aux.rb +2 -2
  74. data/lib/rbs/prototype/rb.rb +11 -8
  75. data/lib/rbs/prototype/rbi.rb +9 -5
  76. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  77. data/lib/rbs/prototype/runtime.rb +4 -5
  78. data/lib/rbs/type_name.rb +14 -9
  79. data/lib/rbs/unit_test/type_assertions.rb +2 -2
  80. data/lib/rbs/validator.rb +3 -1
  81. data/lib/rbs/version.rb +1 -1
  82. data/lib/rdoc_plugin/parser.rb +2 -2
  83. data/rbs.gemspec +4 -0
  84. data/sig/ancestor_graph.rbs +4 -4
  85. data/sig/namespace.rbs +2 -3
  86. data/sig/resolver/constant_resolver.rbs +2 -2
  87. data/sig/resolver/context.rbs +1 -1
  88. data/sig/type_alias_regularity.rbs +5 -5
  89. data/sig/typename.rbs +8 -5
  90. data/sig/use_map.rbs +1 -1
  91. data/sig/validator.rbs +2 -2
  92. data/stdlib/base64/0/base64.rbs +0 -9
  93. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  94. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  95. data/stdlib/cgi/0/core.rbs +47 -0
  96. data/stdlib/coverage/0/coverage.rbs +0 -3
  97. data/stdlib/csv/0/csv.rbs +18 -58
  98. data/stdlib/date/0/date.rbs +4 -19
  99. data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
  100. data/stdlib/digest/0/digest.rbs +25 -2
  101. data/stdlib/erb/0/erb.rbs +0 -1
  102. data/stdlib/etc/0/etc.rbs +51 -34
  103. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  104. data/stdlib/io-console/0/io-console.rbs +69 -15
  105. data/stdlib/ipaddr/0/ipaddr.rbs +8 -4
  106. data/stdlib/json/0/json.rbs +56 -71
  107. data/stdlib/logger/0/log_device.rbs +1 -1
  108. data/stdlib/logger/0/logger.rbs +3 -18
  109. data/stdlib/net-http/0/net-http.rbs +19 -77
  110. data/stdlib/nkf/0/nkf.rbs +30 -0
  111. data/stdlib/objspace/0/objspace.rbs +1 -2
  112. data/stdlib/observable/0/observable.rbs +1 -1
  113. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  114. data/stdlib/open3/0/open3.rbs +0 -8
  115. data/stdlib/openssl/0/openssl.rbs +136 -69
  116. data/stdlib/optparse/0/optparse.rbs +58 -18
  117. data/stdlib/pathname/0/pathname.rbs +2 -8
  118. data/stdlib/pp/0/pp.rbs +3 -1
  119. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  120. data/stdlib/pstore/0/pstore.rbs +0 -6
  121. data/stdlib/psych/0/psych.rbs +15 -4
  122. data/stdlib/pty/0/pty.rbs +46 -4
  123. data/stdlib/rdoc/0/code_object.rbs +0 -4
  124. data/stdlib/rdoc/0/markup.rbs +10 -12
  125. data/stdlib/rdoc/0/rdoc.rbs +1 -2
  126. data/stdlib/resolv/0/resolv.rbs +8 -3
  127. data/stdlib/ripper/0/ripper.rbs +0 -2
  128. data/stdlib/securerandom/0/securerandom.rbs +0 -2
  129. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  130. data/stdlib/singleton/0/singleton.rbs +0 -1
  131. data/stdlib/socket/0/addrinfo.rbs +0 -1
  132. data/stdlib/socket/0/basic_socket.rbs +0 -5
  133. data/stdlib/socket/0/socket.rbs +49 -25
  134. data/stdlib/socket/0/tcp_server.rbs +0 -3
  135. data/stdlib/socket/0/tcp_socket.rbs +58 -3
  136. data/stdlib/socket/0/udp_socket.rbs +0 -1
  137. data/stdlib/socket/0/unix_server.rbs +0 -3
  138. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  139. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  140. data/stdlib/time/0/time.rbs +48 -35
  141. data/stdlib/timeout/0/timeout.rbs +11 -8
  142. data/stdlib/tmpdir/0/tmpdir.rbs +8 -1
  143. data/stdlib/tsort/0/tsort.rbs +0 -4
  144. data/stdlib/uri/0/common.rbs +11 -30
  145. data/stdlib/uri/0/ftp.rbs +1 -1
  146. data/stdlib/uri/0/generic.rbs +22 -18
  147. data/stdlib/uri/0/http.rbs +2 -2
  148. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  149. data/stdlib/zlib/0/buf_error.rbs +1 -70
  150. data/stdlib/zlib/0/data_error.rbs +1 -70
  151. data/stdlib/zlib/0/deflate.rbs +8 -72
  152. data/stdlib/zlib/0/error.rbs +1 -70
  153. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  154. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  155. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  156. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  157. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  158. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  159. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  160. data/stdlib/zlib/0/inflate.rbs +4 -71
  161. data/stdlib/zlib/0/mem_error.rbs +1 -70
  162. data/stdlib/zlib/0/need_dict.rbs +1 -70
  163. data/stdlib/zlib/0/stream_end.rbs +1 -70
  164. data/stdlib/zlib/0/stream_error.rbs +1 -70
  165. data/stdlib/zlib/0/version_error.rbs +1 -70
  166. data/stdlib/zlib/0/zlib.rbs +0 -2
  167. data/stdlib/zlib/0/zstream.rbs +4 -72
  168. 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 _filename_ to be loaded (using Kernel::require)
319
- # the first time that _const_ (which may be a String or
320
- # a symbol) is accessed in the namespace of _mod_.
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
- # module A
323
- # end
324
- # A.autoload(:B, "b")
325
- # A::B.doit # autoloads "b"
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. The following code is an example of the same:
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
- # In the next example when a reference is made to an undefined constant, it
586
- # attempts to load a file whose name is the lowercase version of the constant
587
- # (thus class `Fred` is assumed to be in file `fred.rb`). If found, it returns
588
- # the loaded class. It therefore implements an autoload feature similar to
589
- # Kernel#autoload and Module#autoload.
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 "Class not found: #{name}" if @looked_for[str_name]
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
- # klass = const_get(name)
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 modules defined within the receiver.
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 name
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 `hello' for #<Child:0x401b3bb4> (NoMethodError)
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?