rbs 0.13.1 → 0.14.0

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -1
  3. data/.gitignore +0 -1
  4. data/CHANGELOG.md +7 -2
  5. data/Gemfile +3 -0
  6. data/README.md +8 -2
  7. data/Steepfile +1 -0
  8. data/bin/annotate-with-rdoc +1 -1
  9. data/bin/setup +0 -2
  10. data/docs/CONTRIBUTING.md +1 -0
  11. data/goodcheck.yml +22 -5
  12. data/lib/rbs/ast/comment.rb +1 -1
  13. data/lib/rbs/definition_builder.rb +4 -5
  14. data/lib/rbs/environment.rb +1 -1
  15. data/lib/rbs/namespace.rb +1 -1
  16. data/lib/rbs/parser.rb +3146 -0
  17. data/lib/rbs/parser.y +7 -2
  18. data/lib/rbs/test/setup_helper.rb +4 -4
  19. data/lib/rbs/test/type_check.rb +2 -2
  20. data/lib/rbs/type_name.rb +1 -1
  21. data/lib/rbs/variance_calculator.rb +1 -1
  22. data/lib/rbs/version.rb +1 -1
  23. data/lib/rbs/writer.rb +1 -1
  24. data/sig/constant.rbs +2 -2
  25. data/sig/constant_table.rbs +10 -10
  26. data/sig/declarations.rbs +1 -1
  27. data/sig/definition.rbs +1 -1
  28. data/sig/namespace.rbs +3 -3
  29. data/sig/parser.rbs +25 -0
  30. data/sig/substitution.rbs +3 -3
  31. data/sig/typename.rbs +1 -1
  32. data/sig/types.rbs +1 -1
  33. data/sig/writer.rbs +15 -15
  34. data/stdlib/benchmark/benchmark.rbs +2 -2
  35. data/stdlib/builtin/basic_object.rbs +54 -54
  36. data/stdlib/builtin/binding.rbs +42 -42
  37. data/stdlib/builtin/class.rbs +33 -33
  38. data/stdlib/builtin/complex.rbs +90 -90
  39. data/stdlib/builtin/encoding.rbs +33 -33
  40. data/stdlib/builtin/enumerable.rbs +32 -32
  41. data/stdlib/builtin/enumerator.rbs +35 -35
  42. data/stdlib/builtin/errors.rbs +1 -1
  43. data/stdlib/builtin/exception.rbs +50 -50
  44. data/stdlib/builtin/false_class.rbs +6 -6
  45. data/stdlib/builtin/fiber.rbs +14 -14
  46. data/stdlib/builtin/fiber_error.rbs +1 -1
  47. data/stdlib/builtin/float.rbs +161 -161
  48. data/stdlib/builtin/gc.rbs +1 -1
  49. data/stdlib/builtin/io.rbs +83 -83
  50. data/stdlib/builtin/kernel.rbs +69 -69
  51. data/stdlib/builtin/match_data.rbs +1 -1
  52. data/stdlib/builtin/method.rbs +19 -19
  53. data/stdlib/builtin/nil_class.rbs +20 -20
  54. data/stdlib/builtin/numeric.rbs +101 -101
  55. data/stdlib/builtin/object.rbs +172 -172
  56. data/stdlib/builtin/proc.rbs +91 -91
  57. data/stdlib/builtin/range.rbs +2 -4
  58. data/stdlib/builtin/rational.rbs +83 -83
  59. data/stdlib/builtin/signal.rbs +7 -7
  60. data/stdlib/builtin/string.rbs +4 -4
  61. data/stdlib/builtin/string_io.rbs +1 -1
  62. data/stdlib/builtin/thread.rbs +185 -185
  63. data/stdlib/builtin/thread_group.rbs +2 -2
  64. data/stdlib/builtin/true_class.rbs +9 -9
  65. data/stdlib/builtin/warning.rbs +1 -1
  66. data/stdlib/date/date.rbs +2 -2
  67. data/stdlib/find/find.rbs +10 -10
  68. data/stdlib/pathname/pathname.rbs +1 -1
  69. data/stdlib/tmpdir/tmpdir.rbs +12 -12
  70. metadata +3 -2
@@ -1,6 +1,6 @@
1
1
  class Encoding < Object
2
2
  # Returns the hash of available encoding alias and original encoding name.
3
- #
3
+ #
4
4
  # Encoding.aliases
5
5
  # #=> {"BINARY"=>"ASCII-8BIT", "ASCII"=>"US-ASCII", "ANSI_X3.4-1986"=>"US-ASCII",
6
6
  # "SJIS"=>"Shift_JIS", "eucJP"=>"EUC-JP", "CP932"=>"Windows-31J"}
@@ -9,35 +9,35 @@ class Encoding < Object
9
9
  def self.compatible?: (untyped obj1, untyped obj2) -> Encoding?
10
10
 
11
11
  # Returns default external encoding.
12
- #
12
+ #
13
13
  # The default external encoding is used by default for strings created
14
14
  # from the following locations:
15
- #
15
+ #
16
16
  # - CSV
17
- #
17
+ #
18
18
  # - [File](https://ruby-doc.org/core-2.6.3/File.html) data read from
19
19
  # disk
20
- #
20
+ #
21
21
  # - SDBM
22
- #
22
+ #
23
23
  # - StringIO
24
- #
24
+ #
25
25
  # - Zlib::GzipReader
26
- #
26
+ #
27
27
  # - Zlib::GzipWriter
28
- #
28
+ #
29
29
  # - [String\#inspect](https://ruby-doc.org/core-2.6.3/String.html#method-i-inspect)
30
- #
30
+ #
31
31
  # - [Regexp\#inspect](https://ruby-doc.org/core-2.6.3/Regexp.html#method-i-inspect)
32
- #
32
+ #
33
33
  # While strings created from these locations will have this encoding, the
34
34
  # encoding may not be valid. Be sure to check
35
35
  # [String\#valid\_encoding?](https://ruby-doc.org/core-2.6.3/String.html#method-i-valid_encoding-3F)
36
36
  # .
37
- #
37
+ #
38
38
  # [File](https://ruby-doc.org/core-2.6.3/File.html) data written to disk
39
39
  # will be transcoded to the default external encoding when written.
40
- #
40
+ #
41
41
  # The default external encoding is initialized by the locale or -E option.
42
42
  def self.default_external: () -> Encoding
43
43
 
@@ -47,43 +47,43 @@ class Encoding < Object
47
47
  # Returns default internal encoding. Strings will be transcoded to the
48
48
  # default internal encoding in the following places if the default
49
49
  # internal encoding is not nil:
50
- #
50
+ #
51
51
  # - CSV
52
- #
52
+ #
53
53
  # - Etc.sysconfdir and Etc.systmpdir
54
- #
54
+ #
55
55
  # - [File](https://ruby-doc.org/core-2.6.3/File.html) data read from
56
56
  # disk
57
- #
57
+ #
58
58
  # - [File](https://ruby-doc.org/core-2.6.3/File.html) names from
59
59
  # [Dir](https://ruby-doc.org/core-2.6.3/Dir.html)
60
- #
60
+ #
61
61
  # - [Integer\#chr](https://ruby-doc.org/core-2.6.3/Integer.html#method-i-chr)
62
- #
62
+ #
63
63
  # - [String\#inspect](https://ruby-doc.org/core-2.6.3/String.html#method-i-inspect)
64
64
  # and
65
65
  # [Regexp\#inspect](https://ruby-doc.org/core-2.6.3/Regexp.html#method-i-inspect)
66
- #
66
+ #
67
67
  # - Strings returned from Readline
68
- #
68
+ #
69
69
  # - Strings returned from SDBM
70
- #
70
+ #
71
71
  # - [Time\#zone](https://ruby-doc.org/core-2.6.3/Time.html#method-i-zone)
72
- #
72
+ #
73
73
  # - Values from [ENV](https://ruby-doc.org/core-2.6.3/ENV.html)
74
- #
74
+ #
75
75
  # - Values in ARGV including $PROGRAM\_NAME
76
- #
76
+ #
77
77
  # Additionally
78
78
  # [String\#encode](https://ruby-doc.org/core-2.6.3/String.html#method-i-encode)
79
79
  # and
80
80
  # [String\#encode\!](https://ruby-doc.org/core-2.6.3/String.html#method-i-encode-21)
81
81
  # use the default internal encoding if no encoding is given.
82
- #
82
+ #
83
83
  # The locale encoding (\_\_ENCODING\_\_), not
84
84
  # [::default\_internal](Encoding.downloaded.ruby_doc#method-c-default_internal)
85
85
  # , is used as the encoding of created strings.
86
- #
86
+ #
87
87
  # [::default\_internal](Encoding.downloaded.ruby_doc#method-c-default_internal)
88
88
  # is initialized by the source file's internal\_encoding or -E option.
89
89
  def self.default_internal: () -> Encoding?
@@ -97,7 +97,7 @@ class Encoding < Object
97
97
  def self.list: () -> ::Array[Encoding]
98
98
 
99
99
  # Returns the list of available encoding names.
100
- #
100
+ #
101
101
  # Encoding.name_list
102
102
  # #=> ["US-ASCII", "ASCII-8BIT", "UTF-8",
103
103
  # "ISO-8859-1", "Shift_JIS", "EUC-JP",
@@ -106,7 +106,7 @@ class Encoding < Object
106
106
  def self.name_list: () -> ::Array[String]
107
107
 
108
108
  # Returns whether ASCII-compatible or not.
109
- #
109
+ #
110
110
  # ```ruby
111
111
  # Encoding::UTF_8.ascii_compatible? #=> true
112
112
  # Encoding::UTF_16BE.ascii_compatible? #=> false
@@ -116,7 +116,7 @@ class Encoding < Object
116
116
  # Returns true for dummy encodings. A dummy encoding is an encoding for
117
117
  # which character handling is not properly implemented. It is used for
118
118
  # stateful encodings.
119
- #
119
+ #
120
120
  # ```ruby
121
121
  # Encoding::ISO_2022_JP.dummy? #=> true
122
122
  # Encoding::UTF_8.dummy? #=> false
@@ -126,14 +126,14 @@ class Encoding < Object
126
126
  def inspect: () -> String
127
127
 
128
128
  # Returns the name of the encoding.
129
- #
129
+ #
130
130
  # ```ruby
131
131
  # Encoding::UTF_8.name #=> "UTF-8"
132
132
  # ```
133
133
  def name: () -> String
134
134
 
135
135
  # Returns the list of name and aliases of the encoding.
136
- #
136
+ #
137
137
  # ```ruby
138
138
  # Encoding::WINDOWS_31J.names #=> ["Windows-31J", "CP932", "csWindows31J"]
139
139
  # ```
@@ -142,7 +142,7 @@ class Encoding < Object
142
142
  def replicate: (String name) -> Encoding
143
143
 
144
144
  # Returns the name of the encoding.
145
- #
145
+ #
146
146
  # ```ruby
147
147
  # Encoding::UTF_8.name #=> "UTF-8"
148
148
  # ```
@@ -11,10 +11,10 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
11
11
  # block is not given, Ruby adds an implicit block of `{ |obj| obj }` which
12
12
  # will cause [all?](Enumerable.downloaded.ruby_doc#method-i-all-3F) to
13
13
  # return `true` when none of the collection members are `false` or `nil` .
14
- #
14
+ #
15
15
  # If instead a pattern is supplied, the method returns whether `pattern
16
16
  # === element` for every collection member.
17
- #
17
+ #
18
18
  # %w[ant bear cat].all? { |word| word.length >= 3 } #=> true
19
19
  # %w[ant bear cat].all? { |word| word.length >= 4 } #=> false
20
20
  # %w[ant bear cat].all?(/t/) #=> false
@@ -30,10 +30,10 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
30
30
  # |obj| obj }` that will cause
31
31
  # [any?](Enumerable.downloaded.ruby_doc#method-i-any-3F) to return `true`
32
32
  # if at least one of the collection members is not `false` or `nil` .
33
- #
33
+ #
34
34
  # If instead a pattern is supplied, the method returns whether `pattern
35
35
  # === element` for any collection member.
36
- #
36
+ #
37
37
  # ```ruby
38
38
  # %w[ant bear cat].any? { |word| word.length >= 3 } #=> true
39
39
  # %w[ant bear cat].any? { |word| word.length >= 4 } #=> true
@@ -54,7 +54,7 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
54
54
  # argument is given, the number of items in `enum` that are equal to
55
55
  # `item` are counted. If a block is given, it counts the number of
56
56
  # elements yielding a true value.
57
- #
57
+ #
58
58
  # ```ruby
59
59
  # ary = [1, 2, 4, 2]
60
60
  # ary.count #=> 4
@@ -86,11 +86,11 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
86
86
  | [U] (U arg0) -> ::Enumerator[[ Elem, U ], Return]
87
87
 
88
88
  # Returns an array containing the items in *enum* .
89
- #
89
+ #
90
90
  # ```ruby
91
91
  # (1..7).to_a #=> [1, 2, 3, 4, 5, 6, 7]
92
92
  # { 'a'=>1, 'b'=>2, 'c'=>3 }.to_a #=> [["a", 1], ["b", 2], ["c", 3]]
93
- #
93
+ #
94
94
  # require 'prime'
95
95
  # Prime.entries 10 #=> [2, 3, 5, 7]
96
96
  # ```
@@ -109,7 +109,7 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
109
109
  # Returns the first element, or the first `n` elements, of the enumerable.
110
110
  # If the enumerable is empty, the first form returns `nil`, and the
111
111
  # second form returns an empty array.
112
- #
112
+ #
113
113
  # ```ruby
114
114
  # %w[foo bar baz].first #=> "foo"
115
115
  # %w[foo bar baz].first(2) #=> ["foo", "bar"]
@@ -139,16 +139,16 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
139
139
  # Returns the object in *enum* with the maximum value. The first form
140
140
  # assumes all objects implement `Comparable` ; the second uses the block
141
141
  # to return *a \<=\> b* .
142
- #
142
+ #
143
143
  # ```ruby
144
144
  # a = %w(albatross dog horse)
145
145
  # a.max #=> "horse"
146
146
  # a.max { |a, b| a.length <=> b.length } #=> "albatross"
147
147
  # ```
148
- #
148
+ #
149
149
  # If the `n` argument is given, maximum `n` elements are returned as an
150
150
  # array, sorted in descending order.
151
- #
151
+ #
152
152
  # ```ruby
153
153
  # a = %w[albatross dog horse]
154
154
  # a.max(2) #=> ["horse", "dog"]
@@ -168,16 +168,16 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
168
168
  # Returns the object in *enum* with the minimum value. The first form
169
169
  # assumes all objects implement `Comparable` ; the second uses the block
170
170
  # to return *a \<=\> b* .
171
- #
171
+ #
172
172
  # ```ruby
173
173
  # a = %w(albatross dog horse)
174
174
  # a.min #=> "albatross"
175
175
  # a.min { |a, b| a.length <=> b.length } #=> "dog"
176
176
  # ```
177
- #
177
+ #
178
178
  # If the `n` argument is given, minimum `n` elements are returned as a
179
179
  # sorted array.
180
- #
180
+ #
181
181
  # ```ruby
182
182
  # a = %w[albatross dog horse]
183
183
  # a.min(2) #=> ["albatross", "dog"]
@@ -197,7 +197,7 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
197
197
  # Returns a two element array which contains the minimum and the maximum
198
198
  # value in the enumerable. The first form assumes all objects implement
199
199
  # `Comparable` ; the second uses the block to return *a \<=\> b* .
200
- #
200
+ #
201
201
  # ```ruby
202
202
  # a = %w(albatross dog horse)
203
203
  # a.minmax #=> ["albatross", "horse"]
@@ -213,10 +213,10 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
213
213
  # returns `true` if the block never returns `true` for all elements. If
214
214
  # the block is not given, `none?` will return `true` only if none of the
215
215
  # collection members is true.
216
- #
216
+ #
217
217
  # If instead a pattern is supplied, the method returns whether `pattern
218
218
  # === element` for none of the collection members.
219
- #
219
+ #
220
220
  # ```ruby
221
221
  # %w{ant bear cat}.none? { |word| word.length == 5 } #=> true
222
222
  # %w{ant bear cat}.none? { |word| word.length >= 4 } #=> false
@@ -234,10 +234,10 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
234
234
  # returns `true` if the block returns `true` exactly once. If the block is
235
235
  # not given, `one?` will return `true` only if exactly one of the
236
236
  # collection members is true.
237
- #
237
+ #
238
238
  # If instead a pattern is supplied, the method returns whether `pattern
239
239
  # === element` for exactly one collection member.
240
- #
240
+ #
241
241
  # ```ruby
242
242
  # %w{ant bear cat}.one? { |word| word.length == 4 } #=> true
243
243
  # %w{ant bear cat}.one? { |word| word.length > 4 } #=> false
@@ -261,22 +261,22 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
261
261
  | () -> ::Enumerator[Elem, Return]
262
262
 
263
263
  # Returns an array containing the items in *enum* sorted.
264
- #
264
+ #
265
265
  # Comparisons for the sort will be done using the items’ own `<=>`
266
266
  # operator or using an optional code block.
267
- #
267
+ #
268
268
  # The block must implement a comparison between `a` and `b` and return an
269
269
  # integer less than 0 when `b` follows `a`, `0` when `a` and `b` are
270
270
  # equivalent, or an integer greater than 0 when `a` follows `b` .
271
- #
271
+ #
272
272
  # The result is not guaranteed to be stable. When the comparison of two
273
273
  # elements returns `0`, the order of the elements is unpredictable.
274
- #
274
+ #
275
275
  # ```ruby
276
276
  # %w(rhea kea flea).sort #=> ["flea", "kea", "rhea"]
277
277
  # (1..10).sort { |a, b| b <=> a } #=> [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
278
278
  # ```
279
- #
279
+ #
280
280
  # See also [\#sort\_by](Enumerable.downloaded.ruby_doc#method-i-sort_by).
281
281
  # It implements a Schwartzian transform which is useful when key
282
282
  # computation or comparison is expensive.
@@ -294,13 +294,13 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
294
294
  # Implemented in C++
295
295
  # Returns the result of interpreting *enum* as a list of `[key, value]`
296
296
  # pairs.
297
- #
297
+ #
298
298
  # %i[hello world].each_with_index.to_h
299
299
  # # => {:hello => 0, :world => 1}
300
- #
300
+ #
301
301
  # If a block is given, the results of the block on each element of the
302
302
  # enum will be used as pairs.
303
- #
303
+ #
304
304
  # ```ruby
305
305
  # (1..5).to_h {|x| [x, x ** 2]}
306
306
  # #=> {1=>1, 2=>4, 3=>9, 4=>16, 5=>25}
@@ -324,11 +324,11 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
324
324
  alias reduce inject
325
325
 
326
326
  # Returns an array containing the items in *enum* .
327
- #
327
+ #
328
328
  # ```ruby
329
329
  # (1..7).to_a #=> [1, 2, 3, 4, 5, 6, 7]
330
330
  # { 'a'=>1, 'b'=>2, 'c'=>3 }.to_a #=> [["a", 1], ["b", 2], ["c", 3]]
331
- #
331
+ #
332
332
  # require 'prime'
333
333
  # Prime.entries 10 #=> [2, 3, 5, 7]
334
334
  # ```
@@ -342,10 +342,10 @@ module Enumerable[unchecked out Elem, out Return]: _Each[Elem, Return]
342
342
  # [\#drop\_while](Enumerable.downloaded.ruby_doc#method-i-drop_while)
343
343
  # enumerate values only on an as-needed basis. However, if a block is
344
344
  # given to zip, values are enumerated immediately.
345
- #
346
- #
345
+ #
346
+ #
347
347
  # The following program finds pythagorean triples:
348
- #
348
+ #
349
349
  # ```ruby
350
350
  # def pythagorean_triples
351
351
  # (1..Float::INFINITY).lazy.flat_map {|z|
@@ -1,59 +1,59 @@
1
1
  # A class which allows both internal and external iteration.
2
- #
2
+ #
3
3
  # An [Enumerator](Enumerator) can be created by the
4
4
  # following methods.
5
- #
5
+ #
6
6
  # - Kernel\#to\_enum
7
- #
7
+ #
8
8
  # - Kernel\#enum\_for
9
- #
9
+ #
10
10
  # - [::new](Enumerator#method-c-new)
11
- #
11
+ #
12
12
  # Most methods have two forms: a block form where the contents are
13
13
  # evaluated for each item in the enumeration, and a non-block form which
14
14
  # returns a new [Enumerator](Enumerator) wrapping the
15
15
  # iteration.
16
- #
16
+ #
17
17
  # ```ruby
18
18
  # enumerator = %w(one two three).each
19
19
  # puts enumerator.class # => Enumerator
20
- #
20
+ #
21
21
  # enumerator.each_with_object("foo") do |item, obj|
22
22
  # puts "#{obj}: #{item}"
23
23
  # end
24
- #
24
+ #
25
25
  # # foo: one
26
26
  # # foo: two
27
27
  # # foo: three
28
- #
28
+ #
29
29
  # enum_with_obj = enumerator.each_with_object("foo")
30
30
  # puts enum_with_obj.class # => Enumerator
31
- #
31
+ #
32
32
  # enum_with_obj.each do |item, obj|
33
33
  # puts "#{obj}: #{item}"
34
34
  # end
35
- #
35
+ #
36
36
  # # foo: one
37
37
  # # foo: two
38
38
  # # foo: three
39
39
  # ```
40
- #
40
+ #
41
41
  # This allows you to chain Enumerators together. For example, you can map
42
42
  # a list's elements to strings containing the index and the element as a
43
43
  # string via:
44
- #
44
+ #
45
45
  # ```ruby
46
46
  # puts %w[foo bar baz].map.with_index { |w, i| "#{i}:#{w}" }
47
47
  # # => ["0:foo", "1:bar", "2:baz"]
48
48
  # ```
49
- #
49
+ #
50
50
  # An [Enumerator](Enumerator) can also be used as an
51
51
  # external iterator. For example,
52
52
  # [\#next](Enumerator#method-i-next) returns the next
53
53
  # value of the iterator or raises
54
54
  # [StopIteration](https://ruby-doc.org/core-2.6.3/StopIteration.html) if
55
55
  # the [Enumerator](Enumerator) is at the end.
56
- #
56
+ #
57
57
  # ```ruby
58
58
  # e = [1,2,3].each # returns an enumerator object.
59
59
  # puts e.next # => 1
@@ -61,9 +61,9 @@
61
61
  # puts e.next # => 3
62
62
  # puts e.next # raises StopIteration
63
63
  # ```
64
- #
64
+ #
65
65
  # You can use this to implement an internal iterator as follows:
66
- #
66
+ #
67
67
  # ```ruby
68
68
  # def ext_each(e)
69
69
  # while true
@@ -76,20 +76,20 @@
76
76
  # e.feed y
77
77
  # end
78
78
  # end
79
- #
79
+ #
80
80
  # o = Object.new
81
- #
81
+ #
82
82
  # def o.each
83
83
  # puts yield
84
84
  # puts yield(1)
85
85
  # puts yield(1, 2)
86
86
  # 3
87
87
  # end
88
- #
88
+ #
89
89
  # # use o.each as an internal iterator directly.
90
90
  # puts o.each {|*x| puts x; [:b, *x] }
91
91
  # # => [], [:b], [1], [:b, 1], [1, 2], [:b, 1, 2], 3
92
- #
92
+ #
93
93
  # # convert o.each to an external iterator for
94
94
  # # implementing an internal iterator.
95
95
  # puts ext_each(o.to_enum) {|*x| puts x; [:b, *x] }
@@ -112,8 +112,8 @@ class Enumerator[unchecked out Elem, out Return] < Object
112
112
  # position forward. When the position reached at the end,
113
113
  # [StopIteration](https://ruby-doc.org/core-2.6.3/StopIteration.html) is
114
114
  # raised.
115
- #
116
- #
115
+ #
116
+ #
117
117
  # ```ruby
118
118
  # a = [1,2,3]
119
119
  # e = a.to_enum
@@ -122,7 +122,7 @@ class Enumerator[unchecked out Elem, out Return] < Object
122
122
  # p e.next #=> 3
123
123
  # p e.next #raises StopIteration
124
124
  # ```
125
- #
125
+ #
126
126
  # Note that enumeration sequence by `next` does not affect other
127
127
  # non-external enumeration methods, unless the underlying iteration
128
128
  # methods itself has side-effect, e.g.
@@ -134,10 +134,10 @@ class Enumerator[unchecked out Elem, out Return] < Object
134
134
  # internal position forward. When the position reached at the end,
135
135
  # [StopIteration](https://ruby-doc.org/core-2.6.3/StopIteration.html) is
136
136
  # raised.
137
- #
137
+ #
138
138
  # This method can be used to distinguish `yield` and `yield nil` .
139
- #
140
- #
139
+ #
140
+ #
141
141
  # ```ruby
142
142
  # o = Object.new
143
143
  # def o.each
@@ -159,7 +159,7 @@ class Enumerator[unchecked out Elem, out Return] < Object
159
159
  # p e.next
160
160
  # p e.next
161
161
  # p e.next
162
- #
162
+ #
163
163
  # ## yield args next_values next
164
164
  # # yield [] nil
165
165
  # # yield 1 [1] 1
@@ -167,7 +167,7 @@ class Enumerator[unchecked out Elem, out Return] < Object
167
167
  # # yield nil [nil] nil
168
168
  # # yield [1, 2] [[1, 2]] [1, 2]
169
169
  # ```
170
- #
170
+ #
171
171
  # Note that `next_values` does not affect other non-external enumeration
172
172
  # methods unless underlying iteration method itself has side-effect, e.g.
173
173
  # [IO\#each\_line](https://ruby-doc.org/core-2.6.3/IO.html#method-i-each_line)
@@ -178,8 +178,8 @@ class Enumerator[unchecked out Elem, out Return] < Object
178
178
  # position forward. If the position is already at the end,
179
179
  # [StopIteration](https://ruby-doc.org/core-2.6.3/StopIteration.html) is
180
180
  # raised.
181
- #
182
- #
181
+ #
182
+ #
183
183
  # ```ruby
184
184
  # a = [1,2,3]
185
185
  # e = a.to_enum
@@ -199,8 +199,8 @@ class Enumerator[unchecked out Elem, out Return] < Object
199
199
  # already at the end,
200
200
  # [StopIteration](https://ruby-doc.org/core-2.6.3/StopIteration.html) is
201
201
  # raised.
202
- #
203
- #
202
+ #
203
+ #
204
204
  # ```ruby
205
205
  # o = Object.new
206
206
  # def o.each
@@ -221,13 +221,13 @@ class Enumerator[unchecked out Elem, out Return] < Object
221
221
  def peek_values: () -> ::Array[Elem]
222
222
 
223
223
  # Rewinds the enumeration sequence to the beginning.
224
- #
224
+ #
225
225
  # If the enclosed object responds to a “rewind” method, it is called.
226
226
  def rewind: () -> self
227
227
 
228
228
  # Returns the size of the enumerator, or `nil` if it can’t be calculated
229
229
  # lazily.
230
- #
230
+ #
231
231
  # ```ruby
232
232
  # (1..100).to_a.permutation(4).size # => 94109400
233
233
  # loop.size # => Float::INFINITY