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/numeric.rbs CHANGED
@@ -77,7 +77,6 @@
77
77
  # * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
78
78
  # * Includes [module Comparable](rdoc-ref:Comparable@What-27s+Here).
79
79
  #
80
- #
81
80
  # Here, class Numeric provides methods for:
82
81
  #
83
82
  # * [Querying](rdoc-ref:Numeric@Querying)
@@ -85,7 +84,6 @@
85
84
  # * [Converting](rdoc-ref:Numeric@Converting)
86
85
  # * [Other](rdoc-ref:Numeric@Other)
87
86
  #
88
- #
89
87
  # ### Querying
90
88
  #
91
89
  # * #finite?: Returns true unless `self` is infinite or not a number.
@@ -98,7 +96,6 @@
98
96
  # * #real?: Returns whether `self` is a real value.
99
97
  # * #zero?: Returns whether `self` is zero.
100
98
  #
101
- #
102
99
  # ### Comparing
103
100
  #
104
101
  # * #<=>: Returns:
@@ -108,11 +105,9 @@
108
105
  # * 1 if `self` is greater than the given value.
109
106
  # * `nil` if `self` and the given value are not comparable.
110
107
  #
111
- #
112
108
  # * #eql?: Returns whether `self` and the given value have the same value and
113
109
  # type.
114
110
  #
115
- #
116
111
  # ### Converting
117
112
  #
118
113
  # * #% (aliased as #modulo): Returns the remainder of `self` divided by the
@@ -152,7 +147,6 @@
152
147
  # necessary.
153
148
  # * #truncate: Returns `self` truncated (toward zero) to a given precision.
154
149
  #
155
- #
156
150
  # ### Other
157
151
  #
158
152
  # * #clone: Returns `self`; does not allow freezing.
@@ -202,7 +196,7 @@ class Numeric
202
196
  def +: (Numeric) -> Numeric
203
197
 
204
198
  # <!--
205
- # rdoc-file=numeric.c
199
+ # rdoc-file=numeric.rb
206
200
  # - +self -> self
207
201
  # -->
208
202
  # Returns `self`.
@@ -267,13 +261,15 @@ class Numeric
267
261
 
268
262
  # <!--
269
263
  # rdoc-file=numeric.c
270
- # - ceil(digits = 0) -> integer or float
264
+ # - ceil(ndigits = 0) -> float or integer
271
265
  # -->
272
- # Returns the smallest number that is greater than or equal to `self` with a
273
- # precision of `digits` decimal digits.
266
+ # Returns the smallest float or integer that is greater than or equal to `self`,
267
+ # as specified by the given `ndigits`, which must be an [integer-convertible
268
+ # object](rdoc-ref:implicit_conversion.rdoc@Integer-Convertible+Objects).
274
269
  #
275
- # Numeric implements this by converting `self` to a Float and invoking
276
- # Float#ceil.
270
+ # Equivalent to `self.to_f.ceil(ndigits)`.
271
+ #
272
+ # Related: #floor, Float#ceil.
277
273
  #
278
274
  def ceil: () -> Integer
279
275
  | (Integer digits) -> (Integer | Numeric)
@@ -393,8 +389,8 @@ class Numeric
393
389
  # 1.eql?(Rational(1, 1)) # => false
394
390
  # 1.eql?(Complex(1, 0)) # => false
395
391
  #
396
- # Method `eql?` is different from +==+ in that `eql?` requires matching types,
397
- # while +==+ does not.
392
+ # Method `eql?` is different from `==` in that `eql?` requires matching types,
393
+ # while `==` does not.
398
394
  #
399
395
  def eql?: (untyped) -> bool
400
396
 
@@ -420,13 +416,15 @@ class Numeric
420
416
 
421
417
  # <!--
422
418
  # rdoc-file=numeric.c
423
- # - floor(digits = 0) -> integer or float
419
+ # - floor(ndigits = 0) -> float or integer
424
420
  # -->
425
- # Returns the largest number that is less than or equal to `self` with a
426
- # precision of `digits` decimal digits.
421
+ # Returns the largest float or integer that is less than or equal to `self`, as
422
+ # specified by the given `ndigits`, which must be an [integer-convertible
423
+ # object](rdoc-ref:implicit_conversion.rdoc@Integer-Convertible+Objects).
427
424
  #
428
- # Numeric implements this by converting `self` to a Float and invoking
429
- # Float#floor.
425
+ # Equivalent to `self.to_f.floor(ndigits)`.
426
+ #
427
+ # Related: #ceil, Float#floor.
430
428
  #
431
429
  def floor: () -> Integer
432
430
  | (Integer digits) -> Numeric
@@ -532,17 +530,19 @@ class Numeric
532
530
  # rdoc-file=numeric.c
533
531
  # - nonzero? -> self or nil
534
532
  # -->
535
- # Returns `self` if `self` is not a zero value, `nil` otherwise; uses method
536
- # `zero?` for the evaluation.
533
+ # Returns +self+ if +self+ is not a zero value, +nil+ otherwise;
534
+ # uses method <tt>zero?</tt> for the evaluation.
535
+ #
536
+ # The returned +self+ allows the method to be chained:
537
537
  #
538
- # The returned `self` allows the method to be chained:
538
+ # a = %w[z Bb bB bb BB a aA Aa AA A]
539
+ # a.sort {|a, b| (a.downcase <=> b.downcase).nonzero? || a <=> b }
540
+ # # => ["A", "a", "AA", "Aa", "aA", "BB", "Bb", "bB", "bb", "z"]
539
541
  #
540
- # a = %w[z Bb bB bb BB a aA Aa AA A]
541
- # a.sort {|a, b| (a.downcase <=> b.downcase).nonzero? || a <=> b }
542
- # # => ["A", "a", "AA", "Aa", "aA", "BB", "Bb", "bB", "bb", "z"]
542
+ # Of the Core and Standard Library classes,
543
+ # Integer, Float, Rational, and Complex use this implementation.
543
544
  #
544
- # Of the Core and Standard Library classes, Integer, Float, Rational, and
545
- # Complex use this implementation.
545
+ # Related: #zero?
546
546
  #
547
547
  def nonzero?: () -> self?
548
548
 
@@ -670,86 +670,83 @@ class Numeric
670
670
  # -->
671
671
  # Generates a sequence of numbers; with a block given, traverses the sequence.
672
672
  #
673
- # Of the Core and Standard Library classes,
674
- # Integer, Float, and Rational use this implementation.
675
- #
676
- # A quick example:
677
- #
678
- # squares = []
679
- # 1.step(by: 2, to: 10) {|i| squares.push(i*i) }
680
- # squares # => [1, 9, 25, 49, 81]
681
- #
682
- # The generated sequence:
683
- #
684
- # - Begins with +self+.
685
- # - Continues at intervals of +by+ (which may not be zero).
686
- # - Ends with the last number that is within or equal to +to+;
687
- # that is, less than or equal to +to+ if +by+ is positive,
688
- # greater than or equal to +to+ if +by+ is negative.
689
- # If +to+ is +nil+, the sequence is of infinite length.
690
- #
691
- # If a block is given, calls the block with each number in the sequence;
692
- # returns +self+. If no block is given, returns an Enumerator::ArithmeticSequence.
693
- #
694
- # <b>Keyword Arguments</b>
695
- #
696
- # With keyword arguments +by+ and +to+,
697
- # their values (or defaults) determine the step and limit:
698
- #
699
- # # Both keywords given.
700
- # squares = []
701
- # 4.step(by: 2, to: 10) {|i| squares.push(i*i) } # => 4
702
- # squares # => [16, 36, 64, 100]
703
- # cubes = []
704
- # 3.step(by: -1.5, to: -3) {|i| cubes.push(i*i*i) } # => 3
705
- # cubes # => [27.0, 3.375, 0.0, -3.375, -27.0]
706
- # squares = []
707
- # 1.2.step(by: 0.2, to: 2.0) {|f| squares.push(f*f) }
708
- # squares # => [1.44, 1.9599999999999997, 2.5600000000000005, 3.24, 4.0]
709
- #
710
- # squares = []
711
- # Rational(6/5).step(by: 0.2, to: 2.0) {|r| squares.push(r*r) }
712
- # squares # => [1.0, 1.44, 1.9599999999999997, 2.5600000000000005, 3.24, 4.0]
713
- #
714
- # # Only keyword to given.
715
- # squares = []
716
- # 4.step(to: 10) {|i| squares.push(i*i) } # => 4
717
- # squares # => [16, 25, 36, 49, 64, 81, 100]
718
- # # Only by given.
719
- #
720
- # # Only keyword by given
721
- # squares = []
722
- # 4.step(by:2) {|i| squares.push(i*i); break if i > 10 }
723
- # squares # => [16, 36, 64, 100, 144]
724
- #
725
- # # No block given.
726
- # e = 3.step(by: -1.5, to: -3) # => (3.step(by: -1.5, to: -3))
727
- # e.class # => Enumerator::ArithmeticSequence
728
- #
729
- # <b>Positional Arguments</b>
730
- #
731
- # With optional positional arguments +to+ and +by+,
732
- # their values (or defaults) determine the step and limit:
733
- #
734
- # squares = []
735
- # 4.step(10, 2) {|i| squares.push(i*i) } # => 4
736
- # squares # => [16, 36, 64, 100]
737
- # squares = []
738
- # 4.step(10) {|i| squares.push(i*i) }
739
- # squares # => [16, 25, 36, 49, 64, 81, 100]
740
- # squares = []
741
- # 4.step {|i| squares.push(i*i); break if i > 10 } # => nil
742
- # squares # => [16, 25, 36, 49, 64, 81, 100, 121]
673
+ # Of the Core and Standard Library classes, Integer, Float, and Rational use
674
+ # this implementation.
675
+ #
676
+ # A quick example:
677
+ #
678
+ # squares = []
679
+ # 1.step(by: 2, to: 10) {|i| squares.push(i*i) }
680
+ # squares # => [1, 9, 25, 49, 81]
681
+ #
682
+ # The generated sequence:
683
+ #
684
+ # * Begins with `self`.
685
+ # * Continues at intervals of `by` (which may not be zero).
686
+ # * Ends with the last number that is within or equal to `to`; that is, less
687
+ # than or equal to `to` if `by` is positive, greater than or equal to `to`
688
+ # if `by` is negative. If `to` is `nil`, the sequence is of infinite length.
689
+ #
690
+ # If a block is given, calls the block with each number in the sequence; returns
691
+ # `self`. If no block is given, returns an Enumerator::ArithmeticSequence.
692
+ #
693
+ # **Keyword Arguments**
694
+ #
695
+ # With keyword arguments `by` and `to`, their values (or defaults) determine the
696
+ # step and limit:
697
+ #
698
+ # # Both keywords given.
699
+ # squares = []
700
+ # 4.step(by: 2, to: 10) {|i| squares.push(i*i) } # => 4
701
+ # squares # => [16, 36, 64, 100]
702
+ # cubes = []
703
+ # 3.step(by: -1.5, to: -3) {|i| cubes.push(i*i*i) } # => 3
704
+ # cubes # => [27.0, 3.375, 0.0, -3.375, -27.0]
705
+ # squares = []
706
+ # 1.2.step(by: 0.2, to: 2.0) {|f| squares.push(f*f) }
707
+ # squares # => [1.44, 1.9599999999999997, 2.5600000000000005, 3.24, 4.0]
708
+ #
709
+ # squares = []
710
+ # Rational(6/5).step(by: 0.2, to: 2.0) {|r| squares.push(r*r) }
711
+ # squares # => [1.0, 1.44, 1.9599999999999997, 2.5600000000000005, 3.24, 4.0]
712
+ #
713
+ # # Only keyword to given.
714
+ # squares = []
715
+ # 4.step(to: 10) {|i| squares.push(i*i) } # => 4
716
+ # squares # => [16, 25, 36, 49, 64, 81, 100]
717
+ # # Only by given.
718
+ #
719
+ # # Only keyword by given
720
+ # squares = []
721
+ # 4.step(by:2) {|i| squares.push(i*i); break if i > 10 }
722
+ # squares # => [16, 36, 64, 100, 144]
723
+ #
724
+ # # No block given.
725
+ # e = 3.step(by: -1.5, to: -3) # => (3.step(by: -1.5, to: -3))
726
+ # e.class # => Enumerator::ArithmeticSequence
727
+ #
728
+ # **Positional Arguments**
729
+ #
730
+ # With optional positional arguments `to` and `by`, their values (or defaults)
731
+ # determine the step and limit:
732
+ #
733
+ # squares = []
734
+ # 4.step(10, 2) {|i| squares.push(i*i) } # => 4
735
+ # squares # => [16, 36, 64, 100]
736
+ # squares = []
737
+ # 4.step(10) {|i| squares.push(i*i) }
738
+ # squares # => [16, 25, 36, 49, 64, 81, 100]
739
+ # squares = []
740
+ # 4.step {|i| squares.push(i*i); break if i > 10 } # => nil
741
+ # squares # => [16, 25, 36, 49, 64, 81, 100, 121]
743
742
  #
744
743
  # **Implementation Notes**
745
744
  #
746
- # If all the arguments are integers, the loop operates using an integer
747
- # counter.
745
+ # If all the arguments are integers, the loop operates using an integer counter.
748
746
  #
749
- # If any of the arguments are floating point numbers, all are converted
750
- # to floats, and the loop is executed
751
- # <i>floor(n + n*Float::EPSILON) + 1</i> times,
752
- # where <i>n = (limit - self)/step</i>.
747
+ # If any of the arguments are floating point numbers, all are converted to
748
+ # floats, and the loop is executed *floor(n + n*Float::EPSILON) + 1* times,
749
+ # where *n = (limit - self)/step*.
753
750
  #
754
751
  def step: (?Numeric limit, ?Numeric step) { (Numeric) -> void } -> self
755
752
  | (?Numeric limit, ?Numeric step) -> Enumerator[Numeric, self]
data/core/object.rbs CHANGED
@@ -21,14 +21,12 @@
21
21
  # * Inherits from [class BasicObject](rdoc-ref:BasicObject@What-27s+Here).
22
22
  # * Includes [module Kernel](rdoc-ref:Kernel@What-27s+Here).
23
23
  #
24
- #
25
24
  # Here, class Object provides methods for:
26
25
  #
27
26
  # * [Querying](rdoc-ref:Object@Querying)
28
27
  # * [Instance Variables](rdoc-ref:Object@Instance+Variables)
29
28
  # * [Other](rdoc-ref:Object@Other)
30
29
  #
31
- #
32
30
  # ### Querying
33
31
  #
34
32
  # * #!~: Returns `true` if `self` does not match the given object, otherwise
@@ -70,7 +68,6 @@
70
68
  # argument.
71
69
  # * #send: Calls the given method in `self` with the given argument.
72
70
  #
73
- #
74
71
  # ### Instance Variables
75
72
  #
76
73
  # * #instance_variable_get: Returns the value of the given instance variable
@@ -82,7 +79,6 @@
82
79
  # * #remove_instance_variable: Removes the named instance variable from
83
80
  # `self`.
84
81
  #
85
- #
86
82
  # ### Other
87
83
  #
88
84
  # * #clone: Returns a shallow copy of `self`, including singleton class and
@@ -22,17 +22,16 @@ module ObjectSpace
22
22
  #
23
23
  # val = nil
24
24
  # GC.start
25
- # # There is no more references to `val`, yet the pair isn't
25
+ # # There are no more references to `val`, yet the pair isn't
26
26
  # # garbage-collected.
27
27
  # map["name"] #=> 2023-12-07 00:00:00 +0200
28
28
  #
29
29
  # key = nil
30
30
  # GC.start
31
- # # There is no more references to `key`, key and value are
31
+ # # There are no more references to `key`, key and value are
32
32
  # # garbage-collected.
33
33
  # map["name"] #=> nil
34
34
  #
35
- #
36
35
  # (Note that GC.start is used here only for demonstrational purposes and might
37
36
  # not always lead to demonstrated results.)
38
37
  #
@@ -55,7 +54,7 @@ module ObjectSpace
55
54
  # end
56
55
  #
57
56
  # This will result in `make_value` returning the same object for same set of
58
- # attributes always, but the values that aren't needed anymore woudn't be
57
+ # attributes always, but the values that aren't needed anymore wouldn't be
59
58
  # sitting in the cache forever.
60
59
  #
61
60
  class WeakKeyMap[Key, Value]
@@ -4,9 +4,9 @@
4
4
  # an iterator.
5
5
  #
6
6
  # ObjectSpace also provides support for object finalizers, procs that will be
7
- # called when a specific object is about to be destroyed by garbage collection.
8
- # See the documentation for `ObjectSpace.define_finalizer` for important
9
- # information on how to use this method correctly.
7
+ # called after a specific object was destroyed by garbage collection. See the
8
+ # documentation for `ObjectSpace.define_finalizer` for important information on
9
+ # how to use this method correctly.
10
10
  #
11
11
  # a = "A"
12
12
  # b = "B"
data/core/proc.rbs CHANGED
@@ -56,7 +56,6 @@
56
56
  #
57
57
  # lambda2 = ->(x) { x**2 }
58
58
  #
59
- #
60
59
  # ## Lambda and non-lambda semantics
61
60
  #
62
61
  # Procs are coming in two flavors: lambda and non-lambda (regular procs).
@@ -75,7 +74,6 @@
75
74
  # filled with `nil`, single Array arguments are deconstructed if the proc
76
75
  # has multiple arguments, and there is no error raised on extra arguments.
77
76
  #
78
- #
79
77
  # Examples:
80
78
  #
81
79
  # # +return+ in non-lambda proc, +b+, exits +m2+.