rbs 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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