rbs 4.0.0.dev.5 → 4.0.1.dev.1
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/.clang-format +1 -0
- data/.github/workflows/c-check.yml +8 -4
- data/.github/workflows/comments.yml +3 -1
- data/.github/workflows/dependabot.yml +1 -1
- data/.github/workflows/ruby.yml +10 -0
- data/.github/workflows/rust.yml +95 -0
- data/CHANGELOG.md +323 -0
- data/Rakefile +12 -29
- data/Steepfile +1 -0
- data/config.yml +393 -37
- data/core/array.rbs +218 -188
- data/core/basic_object.rbs +9 -8
- data/core/class.rbs +6 -5
- data/core/comparable.rbs +45 -31
- data/core/complex.rbs +52 -40
- data/core/dir.rbs +57 -45
- data/core/encoding.rbs +5 -5
- data/core/enumerable.rbs +96 -91
- data/core/enumerator.rbs +4 -3
- data/core/errno.rbs +3 -2
- data/core/errors.rbs +31 -29
- data/core/exception.rbs +12 -12
- data/core/fiber.rbs +36 -36
- data/core/file.rbs +186 -113
- data/core/file_test.rbs +2 -2
- data/core/float.rbs +41 -32
- data/core/gc.rbs +78 -70
- data/core/hash.rbs +70 -60
- data/core/integer.rbs +32 -28
- data/core/io/buffer.rbs +36 -36
- data/core/io/wait.rbs +7 -7
- data/core/io.rbs +120 -135
- data/core/kernel.rbs +189 -139
- data/core/marshal.rbs +3 -3
- data/core/match_data.rbs +14 -12
- data/core/math.rbs +69 -67
- data/core/method.rbs +6 -6
- data/core/module.rbs +146 -85
- data/core/nil_class.rbs +4 -3
- data/core/numeric.rbs +35 -32
- data/core/object.rbs +6 -8
- data/core/object_space.rbs +11 -10
- data/core/pathname.rbs +131 -81
- data/core/proc.rbs +65 -33
- data/core/process.rbs +219 -201
- data/core/ractor.rbs +15 -11
- data/core/random.rbs +4 -3
- data/core/range.rbs +52 -47
- data/core/rational.rbs +5 -5
- data/core/rbs/unnamed/argf.rbs +58 -51
- data/core/rbs/unnamed/env_class.rbs +18 -13
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +7 -5
- data/core/regexp.rbs +236 -197
- data/core/ruby.rbs +1 -1
- data/core/ruby_vm.rbs +32 -30
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +1 -1
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +5 -3
- data/core/set.rbs +17 -16
- data/core/signal.rbs +2 -2
- data/core/string.rbs +311 -292
- data/core/struct.rbs +26 -25
- data/core/symbol.rbs +25 -24
- data/core/thread.rbs +40 -34
- data/core/time.rbs +47 -42
- data/core/trace_point.rbs +34 -31
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +10 -10
- data/core/warning.rbs +7 -7
- data/docs/collection.md +1 -1
- data/docs/config.md +171 -0
- data/docs/inline.md +110 -4
- data/docs/syntax.md +13 -12
- data/ext/rbs_extension/ast_translation.c +489 -135
- data/ext/rbs_extension/class_constants.c +8 -0
- data/ext/rbs_extension/class_constants.h +4 -0
- data/ext/rbs_extension/legacy_location.c +28 -51
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +12 -20
- data/include/rbs/ast.h +423 -195
- data/include/rbs/lexer.h +2 -2
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +2 -2
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs.h +8 -0
- data/lib/rbs/ast/ruby/annotations.rb +157 -4
- data/lib/rbs/ast/ruby/members.rb +374 -22
- data/lib/rbs/cli/validate.rb +5 -60
- data/lib/rbs/collection/config/lockfile_generator.rb +6 -2
- data/lib/rbs/definition_builder.rb +60 -27
- data/lib/rbs/errors.rb +0 -11
- data/lib/rbs/inline_parser.rb +1 -1
- data/lib/rbs/parser_aux.rb +20 -7
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +1 -26
- data/lib/rbs/prototype/rbi.rb +1 -20
- data/lib/rbs/test/type_check.rb +3 -0
- data/lib/rbs/types.rb +62 -52
- data/lib/rbs/unit_test/type_assertions.rb +35 -8
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +0 -1
- data/rbs.gemspec +1 -1
- data/rust/.gitignore +1 -0
- data/rust/Cargo.lock +378 -0
- data/rust/Cargo.toml +7 -0
- data/rust/ruby-rbs/Cargo.toml +22 -0
- data/rust/ruby-rbs/build.rs +764 -0
- data/rust/ruby-rbs/examples/locations.rs +60 -0
- data/rust/ruby-rbs/src/lib.rs +1 -0
- data/rust/ruby-rbs/src/node/mod.rs +742 -0
- data/rust/ruby-rbs/tests/sanity.rs +47 -0
- data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
- data/rust/ruby-rbs-sys/Cargo.toml +23 -0
- data/rust/ruby-rbs-sys/build.rs +204 -0
- data/rust/ruby-rbs-sys/src/lib.rs +50 -0
- data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
- data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
- data/rust/ruby-rbs-sys/wrapper.h +1 -0
- data/sig/ast/ruby/annotations.rbs +191 -4
- data/sig/ast/ruby/members.rbs +21 -1
- data/sig/cli/validate.rbs +1 -6
- data/sig/definition_builder.rbs +2 -0
- data/sig/errors.rbs +0 -8
- data/sig/method_types.rbs +1 -1
- data/sig/parser.rbs +17 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/types.rbs +10 -11
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +339 -161
- data/src/lexstate.c +1 -1
- data/src/location.c +7 -47
- data/src/parser.c +674 -480
- data/src/util/rbs_constant_pool.c +0 -4
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -16
- data/stdlib/cgi-escape/0/escape.rbs +4 -4
- data/stdlib/coverage/0/coverage.rbs +4 -3
- data/stdlib/date/0/date.rbs +33 -28
- data/stdlib/date/0/date_time.rbs +24 -23
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/erb/0/erb.rbs +64 -53
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +138 -125
- data/stdlib/forwardable/0/forwardable.rbs +10 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +135 -108
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +159 -134
- data/stdlib/objspace/0/objspace.rbs +8 -7
- data/stdlib/open-uri/0/open-uri.rbs +8 -8
- data/stdlib/open3/0/open3.rbs +36 -35
- data/stdlib/openssl/0/openssl.rbs +144 -129
- data/stdlib/optparse/0/optparse.rbs +18 -14
- data/stdlib/pathname/0/pathname.rbs +2 -2
- data/stdlib/pp/0/pp.rbs +9 -8
- data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
- data/stdlib/pstore/0/pstore.rbs +35 -30
- data/stdlib/psych/0/psych.rbs +61 -8
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +2 -2
- data/stdlib/ripper/0/ripper.rbs +20 -17
- data/stdlib/securerandom/0/securerandom.rbs +1 -1
- data/stdlib/shellwords/0/shellwords.rbs +2 -2
- data/stdlib/socket/0/addrinfo.rbs +7 -7
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +10 -9
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +1 -1
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +55 -54
- data/stdlib/strscan/0/string_scanner.rbs +46 -44
- data/stdlib/tempfile/0/tempfile.rbs +24 -20
- data/stdlib/time/0/time.rbs +7 -5
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +26 -18
- data/stdlib/uri/0/file.rbs +2 -2
- data/stdlib/uri/0/generic.rbs +2 -2
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/ldap.rbs +2 -2
- data/stdlib/uri/0/mailto.rbs +3 -3
- data/stdlib/uri/0/rfc2396_parser.rbs +6 -5
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +4 -4
- data/stdlib/zlib/0/gzip_writer.rbs +14 -12
- data/stdlib/zlib/0/inflate.rbs +1 -1
- data/stdlib/zlib/0/need_dict.rbs +1 -1
- metadata +23 -5
- data/.github/workflows/valgrind.yml +0 -42
data/core/numeric.rbs
CHANGED
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
# two-member Array containing an object that has been coerced into an instance
|
|
24
24
|
# of the new class and `self` (see #coerce).
|
|
25
25
|
#
|
|
26
|
-
# Inheriting classes should also implement arithmetic operator methods
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
# classes.
|
|
26
|
+
# Inheriting classes should also implement arithmetic operator methods
|
|
27
|
+
# (<code>+</code>, <code>-</code>, <code>*</code> and <code>/</code>) and the
|
|
28
|
+
# <code><=></code> operator (see Comparable). These methods may rely on `coerce`
|
|
29
|
+
# to ensure interoperability with instances of other numeric classes.
|
|
30
30
|
#
|
|
31
31
|
# class Tally < Numeric
|
|
32
32
|
# def initialize(string)
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
#
|
|
89
89
|
# * #finite?: Returns true unless `self` is infinite or not a number.
|
|
90
90
|
# * #infinite?: Returns -1, `nil` or +1, depending on whether `self` is
|
|
91
|
-
#
|
|
91
|
+
# <code>-Infinity<tt>, finite, or <tt>+Infinity</code>.
|
|
92
92
|
# * #integer?: Returns whether `self` is an integer.
|
|
93
93
|
# * #negative?: Returns whether `self` is negative.
|
|
94
94
|
# * #nonzero?: Returns whether `self` is not zero.
|
|
@@ -119,27 +119,29 @@
|
|
|
119
119
|
# Math::PI otherwise.
|
|
120
120
|
# * #ceil: Returns the smallest number greater than or equal to `self`, to a
|
|
121
121
|
# given precision.
|
|
122
|
-
# * #coerce: Returns array
|
|
123
|
-
# value.
|
|
122
|
+
# * #coerce: Returns array <code>[coerced_self, coerced_other]</code> for the
|
|
123
|
+
# given other value.
|
|
124
124
|
# * #conj (aliased as #conjugate): Returns the complex conjugate of `self`.
|
|
125
125
|
# * #denominator: Returns the denominator (always positive) of the Rational
|
|
126
126
|
# representation of `self`.
|
|
127
127
|
# * #div: Returns the value of `self` divided by the given value and converted
|
|
128
128
|
# to an integer.
|
|
129
|
-
# * #divmod: Returns array
|
|
130
|
-
# `self` the given divisor.
|
|
129
|
+
# * #divmod: Returns array <code>[quotient, modulus]</code> resulting from
|
|
130
|
+
# dividing `self` the given divisor.
|
|
131
131
|
# * #fdiv: Returns the Float result of dividing `self` by the given divisor.
|
|
132
132
|
# * #floor: Returns the largest number less than or equal to `self`, to a
|
|
133
133
|
# given precision.
|
|
134
|
-
# * #i: Returns the Complex object
|
|
134
|
+
# * #i: Returns the Complex object <code>Complex(0, self)</code>. the given
|
|
135
|
+
# value.
|
|
135
136
|
# * #imaginary (aliased as #imag): Returns the imaginary part of the `self`.
|
|
136
137
|
# * #numerator: Returns the numerator of the Rational representation of
|
|
137
138
|
# `self`; has the same sign as `self`.
|
|
138
|
-
# * #polar: Returns the array
|
|
139
|
+
# * #polar: Returns the array <code>[self.abs, self.arg]</code>.
|
|
139
140
|
# * #quo: Returns the value of `self` divided by the given value.
|
|
140
141
|
# * #real: Returns the real part of `self`.
|
|
141
|
-
# * #rect (aliased as #rectangular): Returns the array
|
|
142
|
-
# * #remainder: Returns
|
|
142
|
+
# * #rect (aliased as #rectangular): Returns the array <code>[self, 0]</code>.
|
|
143
|
+
# * #remainder: Returns <code>self-arg*(self/arg).truncate</code> for the
|
|
144
|
+
# given `arg`.
|
|
143
145
|
# * #round: Returns the value of `self` rounded to the nearest value for the
|
|
144
146
|
# given a precision.
|
|
145
147
|
# * #to_c: Returns the Complex representation of `self`.
|
|
@@ -275,7 +277,7 @@ class Numeric
|
|
|
275
277
|
# as specified by the given `ndigits`, which must be an [integer-convertible
|
|
276
278
|
# object](rdoc-ref:implicit_conversion.rdoc@Integer-Convertible+Objects).
|
|
277
279
|
#
|
|
278
|
-
# Equivalent to
|
|
280
|
+
# Equivalent to <code>self.to_f.ceil(ndigits)</code>.
|
|
279
281
|
#
|
|
280
282
|
# Related: #floor, Float#ceil.
|
|
281
283
|
#
|
|
@@ -343,9 +345,9 @@ class Numeric
|
|
|
343
345
|
# rdoc-file=numeric.c
|
|
344
346
|
# - div(other) -> integer
|
|
345
347
|
# -->
|
|
346
|
-
# Returns the quotient
|
|
347
|
-
#
|
|
348
|
-
#
|
|
348
|
+
# Returns the quotient <code>self/other</code> as an integer (via `floor`),
|
|
349
|
+
# using method <code>/</code> as defined in the subclass of Numeric. (Numeric
|
|
350
|
+
# itself does not define <code>/</code>.)
|
|
349
351
|
#
|
|
350
352
|
# Of the Core and Standard Library classes, Only Float and Rational use this
|
|
351
353
|
# implementation.
|
|
@@ -356,7 +358,7 @@ class Numeric
|
|
|
356
358
|
# rdoc-file=numeric.c
|
|
357
359
|
# - divmod(other) -> array
|
|
358
360
|
# -->
|
|
359
|
-
# Returns a 2-element array
|
|
361
|
+
# Returns a 2-element array <code>[q, r]</code>, where
|
|
360
362
|
#
|
|
361
363
|
# q = (self/other).floor # Quotient
|
|
362
364
|
# r = self % other # Remainder
|
|
@@ -397,8 +399,8 @@ class Numeric
|
|
|
397
399
|
# 1.eql?(Rational(1, 1)) # => false
|
|
398
400
|
# 1.eql?(Complex(1, 0)) # => false
|
|
399
401
|
#
|
|
400
|
-
# Method
|
|
401
|
-
# while
|
|
402
|
+
# Method <code>eql?</code> is different from <code>==</code> in that
|
|
403
|
+
# <code>eql?</code> requires matching types, while <code>==</code> does not.
|
|
402
404
|
#
|
|
403
405
|
def eql?: (untyped) -> bool
|
|
404
406
|
|
|
@@ -406,8 +408,9 @@ class Numeric
|
|
|
406
408
|
# rdoc-file=numeric.c
|
|
407
409
|
# - fdiv(other) -> float
|
|
408
410
|
# -->
|
|
409
|
-
# Returns the quotient
|
|
410
|
-
# the subclass of Numeric. (Numeric itself does not
|
|
411
|
+
# Returns the quotient <code>self/other</code> as a float, using method
|
|
412
|
+
# <code>/</code> as defined in the subclass of Numeric. (Numeric itself does not
|
|
413
|
+
# define <code>/</code>.)
|
|
411
414
|
#
|
|
412
415
|
# Of the Core and Standard Library classes, only BigDecimal uses this
|
|
413
416
|
# implementation.
|
|
@@ -430,7 +433,7 @@ class Numeric
|
|
|
430
433
|
# specified by the given `ndigits`, which must be an [integer-convertible
|
|
431
434
|
# object](rdoc-ref:implicit_conversion.rdoc@Integer-Convertible+Objects).
|
|
432
435
|
#
|
|
433
|
-
# Equivalent to
|
|
436
|
+
# Equivalent to <code>self.to_f.floor(ndigits)</code>.
|
|
434
437
|
#
|
|
435
438
|
# Related: #ceil, Float#floor.
|
|
436
439
|
#
|
|
@@ -441,7 +444,7 @@ class Numeric
|
|
|
441
444
|
# rdoc-file=numeric.c
|
|
442
445
|
# - i -> complex
|
|
443
446
|
# -->
|
|
444
|
-
# Returns
|
|
447
|
+
# Returns <code>Complex(0, self)</code>:
|
|
445
448
|
#
|
|
446
449
|
# 2.i # => (0+2i)
|
|
447
450
|
# -2.i # => (0-2i)
|
|
@@ -470,8 +473,8 @@ class Numeric
|
|
|
470
473
|
# rdoc-file=numeric.rb
|
|
471
474
|
# - infinite? -> -1, 1, or nil
|
|
472
475
|
# -->
|
|
473
|
-
# Returns `nil`, -1, or 1 depending on whether `self` is finite,
|
|
474
|
-
#
|
|
476
|
+
# Returns `nil`, -1, or 1 depending on whether `self` is finite,
|
|
477
|
+
# <code>-Infinity</code>, or <code>+Infinity</code>.
|
|
475
478
|
#
|
|
476
479
|
def infinite?: () -> Integer?
|
|
477
480
|
|
|
@@ -539,7 +542,7 @@ class Numeric
|
|
|
539
542
|
# - nonzero? -> self or nil
|
|
540
543
|
# -->
|
|
541
544
|
# Returns `self` if `self` is not a zero value, `nil` otherwise; uses method
|
|
542
|
-
#
|
|
545
|
+
# <code>zero?</code> for the evaluation.
|
|
543
546
|
#
|
|
544
547
|
# The returned `self` allows the method to be chained:
|
|
545
548
|
#
|
|
@@ -571,7 +574,7 @@ class Numeric
|
|
|
571
574
|
# rdoc-file=complex.c
|
|
572
575
|
# - polar -> array
|
|
573
576
|
# -->
|
|
574
|
-
# Returns array
|
|
577
|
+
# Returns array <code>[self.abs, self.arg]</code>.
|
|
575
578
|
#
|
|
576
579
|
def polar: () -> [ Numeric, Numeric ]
|
|
577
580
|
|
|
@@ -609,7 +612,7 @@ class Numeric
|
|
|
609
612
|
def real?: () -> true
|
|
610
613
|
|
|
611
614
|
# <!-- rdoc-file=complex.c -->
|
|
612
|
-
# Returns array
|
|
615
|
+
# Returns array <code>[self, 0]</code>.
|
|
613
616
|
#
|
|
614
617
|
def rect: () -> [ Numeric, Numeric ]
|
|
615
618
|
|
|
@@ -617,7 +620,7 @@ class Numeric
|
|
|
617
620
|
# rdoc-file=complex.c
|
|
618
621
|
# - rect -> array
|
|
619
622
|
# -->
|
|
620
|
-
# Returns array
|
|
623
|
+
# Returns array <code>[self, 0]</code>.
|
|
621
624
|
#
|
|
622
625
|
alias rectangular rect
|
|
623
626
|
|
|
@@ -753,8 +756,8 @@ class Numeric
|
|
|
753
756
|
# If all the arguments are integers, the loop operates using an integer counter.
|
|
754
757
|
#
|
|
755
758
|
# If any of the arguments are floating point numbers, all are converted to
|
|
756
|
-
# floats, and the loop is executed
|
|
757
|
-
# where
|
|
759
|
+
# floats, and the loop is executed <em>floor(n + n*Float::EPSILON) + 1</em>
|
|
760
|
+
# times, where <em>n = (limit - self)/step</em>.
|
|
758
761
|
#
|
|
759
762
|
def step: (?Numeric limit, ?Numeric step) { (Numeric) -> void } -> self
|
|
760
763
|
| (?Numeric limit, ?Numeric step) -> Enumerator::ArithmeticSequence
|
data/core/object.rbs
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
# will find the top-level File class.
|
|
13
13
|
#
|
|
14
14
|
# In the descriptions of Object's methods, the parameter *symbol* refers to a
|
|
15
|
-
# symbol, which is either a quoted string or a Symbol (such as
|
|
15
|
+
# symbol, which is either a quoted string or a Symbol (such as
|
|
16
|
+
# <code>:name</code>).
|
|
16
17
|
#
|
|
17
18
|
# ## What's Here
|
|
18
19
|
#
|
|
@@ -32,7 +33,7 @@
|
|
|
32
33
|
# * #!~: Returns `true` if `self` does not match the given object, otherwise
|
|
33
34
|
# `false`.
|
|
34
35
|
# * #<=>: Returns 0 if `self` and the given object `object` are the same
|
|
35
|
-
# object, or if
|
|
36
|
+
# object, or if <code>self == object</code>; otherwise returns `nil`.
|
|
36
37
|
# * #===: Implements case equality, effectively the same as calling #==.
|
|
37
38
|
# * #eql?: Implements hash equality, effectively the same as calling #==.
|
|
38
39
|
# * #kind_of? (aliased as #is_a?): Returns whether given argument is an
|
|
@@ -43,7 +44,8 @@
|
|
|
43
44
|
# * #method: Returns the `Method` object for the given method in `self`.
|
|
44
45
|
# * #methods: Returns an array of symbol names of public and protected methods
|
|
45
46
|
# in `self`.
|
|
46
|
-
# * #nil?: Returns `false`. (Only `nil` responds `true` to method
|
|
47
|
+
# * #nil?: Returns `false`. (Only `nil` responds `true` to method
|
|
48
|
+
# <code>nil?</code>.)
|
|
47
49
|
# * #object_id: Returns an integer corresponding to `self` that is unique for
|
|
48
50
|
# the current process
|
|
49
51
|
# * #private_methods: Returns an array of the symbol names of the private
|
|
@@ -85,7 +87,7 @@
|
|
|
85
87
|
# frozen state.
|
|
86
88
|
# * #define_singleton_method: Defines a singleton method in `self` for the
|
|
87
89
|
# given symbol method-name and block or proc.
|
|
88
|
-
# * #display: Prints `self` to the given IO stream or
|
|
90
|
+
# * #display: Prints `self` to the given IO stream or <code>$stdout</code>.
|
|
89
91
|
# * #dup: Returns a shallow unfrozen copy of `self`.
|
|
90
92
|
# * #enum_for (aliased as #to_enum): Returns an Enumerator for `self` using
|
|
91
93
|
# the using the given method, arguments, and block.
|
|
@@ -104,7 +106,3 @@
|
|
|
104
106
|
class Object < BasicObject
|
|
105
107
|
include Kernel
|
|
106
108
|
end
|
|
107
|
-
|
|
108
|
-
# A previous incarnation of `interned` for backward-compatibility (see #1499)
|
|
109
|
-
%a{deprecated: Use `interned` instead}
|
|
110
|
-
type Object::name = interned
|
data/core/object_space.rbs
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
#
|
|
6
6
|
# ObjectSpace also provides support for object finalizers, procs that will be
|
|
7
7
|
# called after a specific object was destroyed by garbage collection. See the
|
|
8
|
-
# documentation for
|
|
9
|
-
# how to use this method correctly.
|
|
8
|
+
# documentation for <code>ObjectSpace.define_finalizer</code> for important
|
|
9
|
+
# information on how to use this method correctly.
|
|
10
10
|
#
|
|
11
11
|
# a = "A"
|
|
12
12
|
# b = "B"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
# a = nil
|
|
18
18
|
# b = nil
|
|
19
19
|
#
|
|
20
|
-
#
|
|
20
|
+
# <em>produces:</em>
|
|
21
21
|
#
|
|
22
22
|
# Finalizer two on 537763470
|
|
23
23
|
# Finalizer one on 537763480
|
|
@@ -50,9 +50,9 @@ module ObjectSpace
|
|
|
50
50
|
# The contents of the returned hash are implementation specific. It may be
|
|
51
51
|
# changed in future.
|
|
52
52
|
#
|
|
53
|
-
# The keys starting with
|
|
54
|
-
# the number of arrays.
|
|
55
|
-
#
|
|
53
|
+
# The keys starting with <code>:T_</code> means live objects. For example,
|
|
54
|
+
# <code>:T_ARRAY</code> is the number of arrays. <code>:FREE</code> means object
|
|
55
|
+
# slots which is not used now. <code>:TOTAL</code> means sum of above.
|
|
56
56
|
#
|
|
57
57
|
# If the optional argument `result_hash` is given, it is overwritten and
|
|
58
58
|
# returned. This is intended to avoid probe effect.
|
|
@@ -74,7 +74,7 @@ module ObjectSpace
|
|
|
74
74
|
# object ID of the *obj* will be passed as an argument to *aProc*. If *aProc* is
|
|
75
75
|
# a lambda or method, make sure it can be called with a single argument.
|
|
76
76
|
#
|
|
77
|
-
# The return value is an array
|
|
77
|
+
# The return value is an array <code>[0, aProc]</code>.
|
|
78
78
|
#
|
|
79
79
|
# The two recommended patterns are to either create the finaliser proc in a
|
|
80
80
|
# non-instance method where it can safely capture the needed state, or to use a
|
|
@@ -147,7 +147,7 @@ module ObjectSpace
|
|
|
147
147
|
# count = ObjectSpace.each_object(Job) {|x| p x }
|
|
148
148
|
# puts "Total count: #{count}"
|
|
149
149
|
#
|
|
150
|
-
#
|
|
150
|
+
# <em>produces:</em>
|
|
151
151
|
#
|
|
152
152
|
# #<Job:0x000000011d6cbbf0>
|
|
153
153
|
# #<Job:0x000000011d6cbc68>
|
|
@@ -155,8 +155,9 @@ module ObjectSpace
|
|
|
155
155
|
#
|
|
156
156
|
# Due to a current Ractor implementation issue, this method does not yield
|
|
157
157
|
# Ractor-unshareable objects when the process is in multi-Ractor mode.
|
|
158
|
-
# Multi-ractor mode is enabled when
|
|
159
|
-
# time. See https://bugs.ruby-lang.org/issues/19387 for more
|
|
158
|
+
# Multi-ractor mode is enabled when <code>Ractor.new</code> has been called for
|
|
159
|
+
# the first time. See https://bugs.ruby-lang.org/issues/19387 for more
|
|
160
|
+
# information.
|
|
160
161
|
#
|
|
161
162
|
# a = 12345678987654321 # shareable
|
|
162
163
|
# b = [].freeze # shareable
|