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/time.rbs
CHANGED
@@ -45,6 +45,42 @@
|
|
45
45
|
# A `Time` object derived from the system clock (for example, by method
|
46
46
|
# Time.now) has the resolution supported by the system.
|
47
47
|
#
|
48
|
+
# ## Time Internal Representation
|
49
|
+
#
|
50
|
+
# Time implementation uses a signed 63 bit integer, Integer, or Rational. It is
|
51
|
+
# a number of nanoseconds since the *Epoch*. The signed 63 bit integer can
|
52
|
+
# represent 1823-11-12 to 2116-02-20. When Integer or Rational is used (before
|
53
|
+
# 1823, after 2116, under nanosecond), Time works slower than when the signed 63
|
54
|
+
# bit integer is used.
|
55
|
+
#
|
56
|
+
# Ruby uses the C function `localtime` and `gmtime` to map between the number
|
57
|
+
# and 6-tuple (year,month,day,hour,minute,second). `localtime` is used for local
|
58
|
+
# time and "gmtime" is used for UTC.
|
59
|
+
#
|
60
|
+
# Integer and Rational has no range limit, but the localtime and gmtime has
|
61
|
+
# range limits due to the C types `time_t` and `struct tm`. If that limit is
|
62
|
+
# exceeded, Ruby extrapolates the localtime function.
|
63
|
+
#
|
64
|
+
# The Time class always uses the Gregorian calendar. I.e. the proleptic
|
65
|
+
# Gregorian calendar is used. Other calendars, such as Julian calendar, are not
|
66
|
+
# supported.
|
67
|
+
#
|
68
|
+
# `time_t` can represent 1901-12-14 to 2038-01-19 if it is 32 bit signed
|
69
|
+
# integer, -292277022657-01-27 to 292277026596-12-05 if it is 64 bit signed
|
70
|
+
# integer. However `localtime` on some platforms doesn't supports negative
|
71
|
+
# `time_t` (before 1970).
|
72
|
+
#
|
73
|
+
# `struct tm` has *tm_year* member to represent years. (`tm_year = 0` means the
|
74
|
+
# year 1900.) It is defined as `int` in the C standard. *tm_year* can represent
|
75
|
+
# between -2147481748 to 2147485547 if `int` is 32 bit.
|
76
|
+
#
|
77
|
+
# Ruby supports leap seconds as far as if the C function `localtime` and
|
78
|
+
# `gmtime` supports it. They use the tz database in most Unix systems. The tz
|
79
|
+
# database has timezones which supports leap seconds. For example, "Asia/Tokyo"
|
80
|
+
# doesn't support leap seconds but "right/Asia/Tokyo" supports leap seconds. So,
|
81
|
+
# Ruby supports leap seconds if the TZ environment variable is set to
|
82
|
+
# "right/Asia/Tokyo" in most Unix systems.
|
83
|
+
#
|
48
84
|
# ## Examples
|
49
85
|
#
|
50
86
|
# All of these examples were done using the EST timezone which is GMT-5.
|
@@ -127,16 +163,14 @@
|
|
127
163
|
# * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
|
128
164
|
# * Includes [module Comparable](rdoc-ref:Comparable@What-27s+Here).
|
129
165
|
#
|
130
|
-
#
|
131
166
|
# Here, class `Time` provides methods that are useful for:
|
132
167
|
#
|
133
|
-
# *
|
134
|
-
# *
|
135
|
-
# *
|
136
|
-
# *
|
137
|
-
# *
|
138
|
-
# *
|
139
|
-
#
|
168
|
+
# * [Creating Time objects](rdoc-ref:Time@Methods+for+Creating).
|
169
|
+
# * [Fetching Time values](rdoc-ref:Time@Methods+for+Fetching).
|
170
|
+
# * [Querying a Time object](rdoc-ref:Time@Methods+for+Querying).
|
171
|
+
# * [Comparing Time objects](rdoc-ref:Time@Methods+for+Comparing).
|
172
|
+
# * [Converting a Time object](rdoc-ref:Time@Methods+for+Converting).
|
173
|
+
# * [Rounding a Time](rdoc-ref:Time@Methods+for+Rounding).
|
140
174
|
#
|
141
175
|
# ### Methods for Creating
|
142
176
|
#
|
@@ -150,7 +184,6 @@
|
|
150
184
|
# * #+ (plus): Returns a new time increased by the given number of seconds.
|
151
185
|
# * #- (minus): Returns a new time decreased by the given number of seconds.
|
152
186
|
#
|
153
|
-
#
|
154
187
|
# ### Methods for Fetching
|
155
188
|
#
|
156
189
|
# * #year: Returns the year of the time.
|
@@ -175,7 +208,6 @@
|
|
175
208
|
# * #to_r: Returns the Rational number of seconds since epoch for the time.
|
176
209
|
# * #zone: Returns a string representation of the timezone of the time.
|
177
210
|
#
|
178
|
-
#
|
179
211
|
# ### Methods for Querying
|
180
212
|
#
|
181
213
|
# * #utc? (aliased as #gmt?): Returns whether the time is UTC.
|
@@ -189,13 +221,11 @@
|
|
189
221
|
# * #friday?: Returns whether time is a Friday.
|
190
222
|
# * #saturday?: Returns whether the time is a Saturday.
|
191
223
|
#
|
192
|
-
#
|
193
224
|
# ### Methods for Comparing
|
194
225
|
#
|
195
226
|
# * #<=>: Compares `self` to another time.
|
196
227
|
# * #eql?: Returns whether the time is equal to another time.
|
197
228
|
#
|
198
|
-
#
|
199
229
|
# ### Methods for Converting
|
200
230
|
#
|
201
231
|
# * #asctime (aliased as #ctime): Returns the time as a string.
|
@@ -210,14 +240,12 @@
|
|
210
240
|
# * #deconstruct_keys: Returns a hash of time components used in
|
211
241
|
# pattern-matching.
|
212
242
|
#
|
213
|
-
#
|
214
243
|
# ### Methods for Rounding
|
215
244
|
#
|
216
245
|
# * #round:Returns a new time with subseconds rounded.
|
217
246
|
# * #ceil: Returns a new time with subseconds raised to a ceiling.
|
218
247
|
# * #floor: Returns a new time with subseconds lowered to a floor.
|
219
248
|
#
|
220
|
-
#
|
221
249
|
# For the forms of argument `zone`, see [Timezone
|
222
250
|
# Specifiers](rdoc-ref:Time@Timezone+Specifiers).
|
223
251
|
#
|
@@ -231,7 +259,6 @@
|
|
231
259
|
# * Time#getlocal: positional argument `zone`.
|
232
260
|
# * Time#localtime: positional argument `zone`.
|
233
261
|
#
|
234
|
-
#
|
235
262
|
# The value given with any of these must be one of the following (each detailed
|
236
263
|
# below):
|
237
264
|
#
|
@@ -241,7 +268,6 @@
|
|
241
268
|
# * [Timezone object](rdoc-ref:Time@Timezone+Objects).
|
242
269
|
# * [Timezone name](rdoc-ref:Time@Timezone+Names).
|
243
270
|
#
|
244
|
-
#
|
245
271
|
# ### Hours/Minutes Offsets
|
246
272
|
#
|
247
273
|
# The zone value may be a string offset from UTC in the form `'+HH:MM'` or
|
@@ -250,7 +276,6 @@
|
|
250
276
|
# * `HH` is the 2-digit hour in the range `0..23`.
|
251
277
|
# * `MM` is the 2-digit minute in the range `0..59`.
|
252
278
|
#
|
253
|
-
#
|
254
279
|
# Examples:
|
255
280
|
#
|
256
281
|
# t = Time.utc(2000, 1, 1, 20, 15, 1) # => 2000-01-01 20:15:01 UTC
|
@@ -289,22 +314,29 @@
|
|
289
314
|
#
|
290
315
|
# * `local_to_utc`:
|
291
316
|
#
|
292
|
-
#
|
293
|
-
#
|
294
|
-
#
|
295
|
-
#
|
296
|
-
#
|
317
|
+
# Called when Time.new is invoked with `tz` as the value of positional
|
318
|
+
# argument `zone` or keyword argument `in:`.
|
319
|
+
#
|
320
|
+
# Argument
|
321
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
322
|
+
#
|
323
|
+
# Returns
|
324
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects) in the UTC
|
325
|
+
# timezone.
|
297
326
|
#
|
298
327
|
#
|
299
328
|
# * `utc_to_local`:
|
300
329
|
#
|
301
|
-
#
|
302
|
-
#
|
303
|
-
#
|
304
|
-
#
|
305
|
-
#
|
306
|
-
#
|
330
|
+
# Called when Time.at or Time.now is invoked with `tz` as the value for
|
331
|
+
# keyword argument `in:`, and when Time#getlocal or Time#localtime is called
|
332
|
+
# with `tz` as the value for positional argument `zone`.
|
333
|
+
#
|
334
|
+
# Argument
|
335
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
307
336
|
#
|
337
|
+
# Returns
|
338
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects) in the local
|
339
|
+
# timezone.
|
308
340
|
#
|
309
341
|
#
|
310
342
|
# A custom timezone class may have these instance methods, which will be called
|
@@ -312,26 +344,37 @@
|
|
312
344
|
#
|
313
345
|
# * `abbr`:
|
314
346
|
#
|
315
|
-
#
|
316
|
-
#
|
317
|
-
#
|
347
|
+
# Called when Time#strftime is invoked with a format involving `%Z`.
|
348
|
+
#
|
349
|
+
# Argument
|
350
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
351
|
+
#
|
352
|
+
# Returns
|
353
|
+
# : a string abbreviation for the timezone name.
|
318
354
|
#
|
319
355
|
#
|
320
356
|
# * `dst?`:
|
321
357
|
#
|
322
|
-
#
|
323
|
-
#
|
324
|
-
#
|
325
|
-
#
|
326
|
-
#
|
358
|
+
# Called when Time.at or Time.now is invoked with `tz` as the value for
|
359
|
+
# keyword argument `in:`, and when Time#getlocal or Time#localtime is called
|
360
|
+
# with `tz` as the value for positional argument `zone`.
|
361
|
+
#
|
362
|
+
# Argument
|
363
|
+
# : a [Time-like object](rdoc-ref:Time@Time-Like+Objects).
|
364
|
+
#
|
365
|
+
# Returns
|
366
|
+
# : whether the time is daylight saving time.
|
327
367
|
#
|
328
368
|
#
|
329
369
|
# * `name`:
|
330
370
|
#
|
331
|
-
#
|
332
|
-
# * Argument: none.
|
333
|
-
# * Returns: the string name of the timezone.
|
371
|
+
# Called when `Marshal.dump(t)` is invoked
|
334
372
|
#
|
373
|
+
# Argument
|
374
|
+
# : none.
|
375
|
+
#
|
376
|
+
# Returns
|
377
|
+
# : the string name of the timezone.
|
335
378
|
#
|
336
379
|
#
|
337
380
|
# #### `Time`-Like Objects
|
@@ -358,7 +401,6 @@
|
|
358
401
|
# * `isdst`
|
359
402
|
# * `to_i`
|
360
403
|
#
|
361
|
-
#
|
362
404
|
# For a returned `Integer`, its components, decomposed in UTC, are interpreted
|
363
405
|
# as times in the specified timezone.
|
364
406
|
#
|
@@ -424,7 +466,6 @@ class Time < Object
|
|
424
466
|
# * A numeric number of [Epoch seconds](rdoc-ref:Time@Epoch+Seconds) for the
|
425
467
|
# returned time.
|
426
468
|
#
|
427
|
-
#
|
428
469
|
# Examples:
|
429
470
|
#
|
430
471
|
# t = Time.new(2000, 12, 31, 23, 59, 59) # => 2000-12-31 23:59:59 -0600
|
@@ -460,7 +501,6 @@ class Time < Object
|
|
460
501
|
# Time.at(secs, 1000000000, :nanosecond) # => 2001-01-01 00:00:00 -0600
|
461
502
|
# Time.at(secs, -1000000000, :nanosecond) # => 2000-12-31 23:59:58 -0600
|
462
503
|
#
|
463
|
-
#
|
464
504
|
# Optional keyword argument `in: zone` specifies the timezone for the returned
|
465
505
|
# time:
|
466
506
|
#
|
@@ -527,7 +567,6 @@ class Time < Object
|
|
527
567
|
# Time.utc(2000, 1, 1, 0, 0, 0, 0) # => 2000-01-01 00:00:00 UTC
|
528
568
|
# Time.utc(2000, 1, 1, 0, 0, 0, 999999) # => 2000-01-01 00:00:00.999999 UTC
|
529
569
|
#
|
530
|
-
#
|
531
570
|
# The values may be:
|
532
571
|
#
|
533
572
|
# * Integers, as above.
|
@@ -542,7 +581,6 @@ class Time < Object
|
|
542
581
|
# # => ["0", "1", "1", "0", "0", "0", "0", "0"]
|
543
582
|
# Time.utc(*a) # => 0000-01-01 00:00:00 UTC
|
544
583
|
#
|
545
|
-
#
|
546
584
|
# When exactly ten arguments are given, the arguments are interpreted as in the
|
547
585
|
# second calling sequence above:
|
548
586
|
#
|
@@ -659,7 +697,6 @@ class Time < Object
|
|
659
697
|
# Time.utc(2000, 1, 1, 0, 0, 0, 0) # => 2000-01-01 00:00:00 UTC
|
660
698
|
# Time.utc(2000, 1, 1, 0, 0, 0, 999999) # => 2000-01-01 00:00:00.999999 UTC
|
661
699
|
#
|
662
|
-
#
|
663
700
|
# The values may be:
|
664
701
|
#
|
665
702
|
# * Integers, as above.
|
@@ -674,7 +711,6 @@ class Time < Object
|
|
674
711
|
# # => ["0", "1", "1", "0", "0", "0", "0", "0"]
|
675
712
|
# Time.utc(*a) # => 0000-01-01 00:00:00 UTC
|
676
713
|
#
|
677
|
-
#
|
678
714
|
# When exactly ten arguments are given, the arguments are interpreted as in the
|
679
715
|
# second calling sequence above:
|
680
716
|
#
|
@@ -756,7 +792,6 @@ class Time < Object
|
|
756
792
|
# * `1`, if `self` is greater then `other_time`.
|
757
793
|
# * `nil`, if `self` and `other_time` are incomparable.
|
758
794
|
#
|
759
|
-
#
|
760
795
|
# Examples:
|
761
796
|
#
|
762
797
|
# t = Time.now # => 2007-11-19 08:12:12 -0600
|
@@ -1066,7 +1101,6 @@ class Time < Object
|
|
1066
1101
|
# Time.new(2000, 1, 1, 0, 0, 59.5) # => 2000-12-31 23:59:59.5 +0900
|
1067
1102
|
# Time.new(2000, 1, 1, 0, 0, 59.7r) # => 2000-12-31 23:59:59.7 +0900
|
1068
1103
|
#
|
1069
|
-
#
|
1070
1104
|
# These values may be:
|
1071
1105
|
#
|
1072
1106
|
# * Integers, as above.
|
@@ -1081,7 +1115,6 @@ class Time < Object
|
|
1081
1115
|
# # => ["0", "1", "1", "0", "0", "0"]
|
1082
1116
|
# Time.new(*a) # => 0000-01-01 00:00:00 -0600
|
1083
1117
|
#
|
1084
|
-
#
|
1085
1118
|
# When positional argument `zone` or keyword argument `in:` is given, the new
|
1086
1119
|
# `Time` object is in the specified timezone. For the forms of argument `zone`,
|
1087
1120
|
# see [Timezone Specifiers](rdoc-ref:Time@Timezone+Specifiers):
|
@@ -1138,6 +1171,25 @@ class Time < Object
|
|
1138
1171
|
#
|
1139
1172
|
def isdst: () -> bool
|
1140
1173
|
|
1174
|
+
# <!-- rdoc-file=lib/time.rb -->
|
1175
|
+
# Parses `time` as a dateTime defined by the XML Schema and converts it to a
|
1176
|
+
# Time object. The format is a restricted version of the format defined by ISO
|
1177
|
+
# 8601.
|
1178
|
+
#
|
1179
|
+
# ArgumentError is raised if `time` is not compliant with the format or if the
|
1180
|
+
# Time class cannot represent the specified time.
|
1181
|
+
#
|
1182
|
+
# See #xmlschema for more information on this format.
|
1183
|
+
#
|
1184
|
+
# require 'time'
|
1185
|
+
#
|
1186
|
+
# Time.xmlschema("2011-10-05T22:26:12-04:00")
|
1187
|
+
# #=> 2011-10-05 22:26:12-04:00
|
1188
|
+
#
|
1189
|
+
# You must require 'time' to use this method.
|
1190
|
+
#
|
1191
|
+
alias iso8601 xmlschema
|
1192
|
+
|
1141
1193
|
# <!--
|
1142
1194
|
# rdoc-file=time.c
|
1143
1195
|
# - localtime -> self or new_time
|
@@ -1151,7 +1203,6 @@ class Time < Object
|
|
1151
1203
|
# t = Time.utc(2000, 1, 1, 20, 15, 1) # => 2000-01-01 20:15:01 UTC
|
1152
1204
|
# t.localtime # => 2000-01-01 14:15:01 -0600
|
1153
1205
|
#
|
1154
|
-
#
|
1155
1206
|
# With argument `zone` given, returns the new `Time` object created by
|
1156
1207
|
# converting `self` to the given time zone:
|
1157
1208
|
#
|
@@ -1550,6 +1601,32 @@ class Time < Object
|
|
1550
1601
|
#
|
1551
1602
|
def wednesday?: () -> bool
|
1552
1603
|
|
1604
|
+
# <!--
|
1605
|
+
# rdoc-file=lib/time.rb
|
1606
|
+
# - xmlschema(fraction_digits=0)
|
1607
|
+
# -->
|
1608
|
+
# Returns a string which represents the time as a dateTime defined by XML
|
1609
|
+
# Schema:
|
1610
|
+
#
|
1611
|
+
# CCYY-MM-DDThh:mm:ssTZD
|
1612
|
+
# CCYY-MM-DDThh:mm:ss.sssTZD
|
1613
|
+
#
|
1614
|
+
# where TZD is Z or [+-]hh:mm.
|
1615
|
+
#
|
1616
|
+
# If self is a UTC time, Z is used as TZD. [+-]hh:mm is used otherwise.
|
1617
|
+
#
|
1618
|
+
# `fraction_digits` specifies a number of digits to use for fractional seconds.
|
1619
|
+
# Its default value is 0.
|
1620
|
+
#
|
1621
|
+
# require 'time'
|
1622
|
+
#
|
1623
|
+
# t = Time.now
|
1624
|
+
# t.iso8601 # => "2011-10-05T22:26:12-04:00"
|
1625
|
+
#
|
1626
|
+
# You must require 'time' to use this method.
|
1627
|
+
#
|
1628
|
+
def xmlschema: () -> String
|
1629
|
+
|
1553
1630
|
# <!--
|
1554
1631
|
# rdoc-file=time.c
|
1555
1632
|
# - yday -> integer
|
data/core/trace_point.rbs
CHANGED
@@ -30,36 +30,52 @@
|
|
30
30
|
#
|
31
31
|
# `:line`
|
32
32
|
# : execute an expression or statement on a new line
|
33
|
+
#
|
33
34
|
# `:class`
|
34
35
|
# : start a class or module definition
|
36
|
+
#
|
35
37
|
# `:end`
|
36
38
|
# : finish a class or module definition
|
39
|
+
#
|
37
40
|
# `:call`
|
38
41
|
# : call a Ruby method
|
42
|
+
#
|
39
43
|
# `:return`
|
40
44
|
# : return from a Ruby method
|
45
|
+
#
|
41
46
|
# `:c_call`
|
42
47
|
# : call a C-language routine
|
48
|
+
#
|
43
49
|
# `:c_return`
|
44
50
|
# : return from a C-language routine
|
51
|
+
#
|
45
52
|
# `:raise`
|
46
53
|
# : raise an exception
|
54
|
+
#
|
47
55
|
# `:rescue`
|
48
56
|
# : rescue an exception
|
57
|
+
#
|
49
58
|
# `:b_call`
|
50
59
|
# : event hook at block entry
|
60
|
+
#
|
51
61
|
# `:b_return`
|
52
62
|
# : event hook at block ending
|
63
|
+
#
|
53
64
|
# `:a_call`
|
54
65
|
# : event hook at all calls (`call`, `b_call`, and `c_call`)
|
66
|
+
#
|
55
67
|
# `:a_return`
|
56
68
|
# : event hook at all returns (`return`, `b_return`, and `c_return`)
|
69
|
+
#
|
57
70
|
# `:thread_begin`
|
58
71
|
# : event hook at thread beginning
|
72
|
+
#
|
59
73
|
# `:thread_end`
|
60
74
|
# : event hook at thread ending
|
75
|
+
#
|
61
76
|
# `:fiber_switch`
|
62
77
|
# : event hook at fiber switch
|
78
|
+
#
|
63
79
|
# `:script_compiled`
|
64
80
|
# : new Ruby code compiled (with `eval`, `load` or `require`)
|
65
81
|
#
|
data/core/true_class.rbs
CHANGED
data/core/warning.rbs
CHANGED
@@ -45,12 +45,11 @@ module Warning
|
|
45
45
|
# : deprecation warnings
|
46
46
|
# * assignment of non-nil value to `$,` and `$;`
|
47
47
|
# * keyword arguments
|
48
|
-
#
|
49
48
|
# etc.
|
50
49
|
#
|
50
|
+
#
|
51
51
|
# `:experimental`
|
52
52
|
# : experimental features
|
53
|
-
# * Pattern matching
|
54
53
|
#
|
55
54
|
#
|
56
55
|
# `:performance`
|
@@ -67,6 +66,14 @@ module Warning
|
|
67
66
|
#
|
68
67
|
def self.[]=: [T] (category, T flag) -> T
|
69
68
|
|
69
|
+
# <!--
|
70
|
+
# rdoc-file=error.c
|
71
|
+
# - categories -> array
|
72
|
+
# -->
|
73
|
+
# Returns a list of the supported category symbols.
|
74
|
+
#
|
75
|
+
def self.categories: () -> Array[Symbol]
|
76
|
+
|
70
77
|
# <!--
|
71
78
|
# rdoc-file=error.c
|
72
79
|
# - warn(msg, category: nil) -> nil
|
data/docs/architecture.md
CHANGED
@@ -92,7 +92,7 @@ The `#build_singleton` calculates the type of `.new` methods based on the defini
|
|
92
92
|
`DefinitionBuilder#expand_alias` and its variants provide one step *unfold* operation of type aliases.
|
93
93
|
|
94
94
|
```ruby
|
95
|
-
builder.expand_alias2(TypeName("::int"), []) # => returns `::Integer | ::_ToInt`
|
95
|
+
builder.expand_alias2(RBS::TypeName.parse("::int"), []) # => returns `::Integer | ::_ToInt`
|
96
96
|
```
|
97
97
|
|
98
98
|
We don't have *normalize* operation for type aliases, because RBS allows recursive type alias definition, which cannot be *fully* unfolded.
|
data/docs/syntax.md
CHANGED
@@ -36,9 +36,12 @@ void rbs_loc_alloc_children(rbs_loc *loc, unsigned short cap) {
|
|
36
36
|
size_t s = RBS_LOC_CHILDREN_SIZE(cap);
|
37
37
|
loc->children = malloc(s);
|
38
38
|
|
39
|
-
loc->children
|
40
|
-
|
41
|
-
|
39
|
+
*loc->children = (rbs_loc_children) {
|
40
|
+
.len = 0,
|
41
|
+
.required_p = 0,
|
42
|
+
.cap = cap,
|
43
|
+
.entries = {{ 0 }},
|
44
|
+
};
|
42
45
|
}
|
43
46
|
|
44
47
|
static void check_children_cap(rbs_loc *loc) {
|
@@ -54,27 +57,28 @@ static void check_children_cap(rbs_loc *loc) {
|
|
54
57
|
}
|
55
58
|
|
56
59
|
void rbs_loc_add_required_child(rbs_loc *loc, ID name, range r) {
|
57
|
-
|
58
|
-
|
59
|
-
unsigned short i = loc->children->len++;
|
60
|
-
loc->children->entries[i].name = name;
|
61
|
-
loc->children->entries[i].rg = rbs_new_loc_range(r);
|
60
|
+
rbs_loc_add_optional_child(loc, name, r);
|
62
61
|
|
63
|
-
loc->children->
|
62
|
+
unsigned short last_index = loc->children->len - 1;
|
63
|
+
loc->children->required_p |= 1 << last_index;
|
64
64
|
}
|
65
65
|
|
66
66
|
void rbs_loc_add_optional_child(rbs_loc *loc, ID name, range r) {
|
67
67
|
check_children_cap(loc);
|
68
68
|
|
69
69
|
unsigned short i = loc->children->len++;
|
70
|
-
loc->children->entries[i]
|
71
|
-
|
70
|
+
loc->children->entries[i] = (rbs_loc_entry) {
|
71
|
+
.name = name,
|
72
|
+
.rg = rbs_new_loc_range(r),
|
73
|
+
};
|
72
74
|
}
|
73
75
|
|
74
76
|
void rbs_loc_init(rbs_loc *loc, VALUE buffer, rbs_loc_range rg) {
|
75
|
-
loc
|
76
|
-
|
77
|
-
|
77
|
+
*loc = (rbs_loc) {
|
78
|
+
.buffer = buffer,
|
79
|
+
.rg = rg,
|
80
|
+
.children = NULL,
|
81
|
+
};
|
78
82
|
}
|
79
83
|
|
80
84
|
void rbs_loc_free(rbs_loc *loc) {
|
@@ -122,9 +126,11 @@ static VALUE location_initialize(VALUE self, VALUE buffer, VALUE start_pos, VALU
|
|
122
126
|
int start = FIX2INT(start_pos);
|
123
127
|
int end = FIX2INT(end_pos);
|
124
128
|
|
125
|
-
loc
|
126
|
-
|
127
|
-
|
129
|
+
*loc = (rbs_loc) {
|
130
|
+
.buffer = buffer,
|
131
|
+
.rg = (rbs_loc_range) { start, end },
|
132
|
+
.children = NULL,
|
133
|
+
};
|
128
134
|
|
129
135
|
return Qnil;
|
130
136
|
}
|
@@ -133,8 +139,12 @@ static VALUE location_initialize_copy(VALUE self, VALUE other) {
|
|
133
139
|
rbs_loc *self_loc = rbs_check_location(self);
|
134
140
|
rbs_loc *other_loc = rbs_check_location(other);
|
135
141
|
|
136
|
-
self_loc
|
137
|
-
|
142
|
+
*self_loc = (rbs_loc) {
|
143
|
+
.buffer = other_loc->buffer,
|
144
|
+
.rg = other_loc->rg,
|
145
|
+
.children = NULL,
|
146
|
+
};
|
147
|
+
|
138
148
|
if (other_loc->children != NULL) {
|
139
149
|
rbs_loc_alloc_children(self_loc, other_loc->children->cap);
|
140
150
|
memcpy(self_loc->children, other_loc->children, RBS_LOC_CHILDREN_SIZE(other_loc->children->cap));
|