Actions
Bug #10475
closedArray#flatten should not accept a nil argument
Description
Currently Array#flatten
accepts an explicit nil
argument which has the same meaning as -1
(or no arguemnt) - meaning endless recursive flattening. I'd expect flatten
to accept an integer argument only (or not at all, with a default of -1
).
Moreover, the behaviour of arr.flatten(-1)
is not described in the method's documentation.
Current behaviour (Ruby 2.1.4):
2.1.4 :001 > arr = [1, [2, [3, [4, 5]]]]
=> [1, [2, [3, [4, 5]]]]
2.1.4 :002 > arr.flatten
=> [1, 2, 3, 4, 5]
2.1.4 :003 > arr.flatten(-1)
=> [1, 2, 3, 4, 5]
2.1.4 :004 > arr.flatten(nil)
=> [1, 2, 3, 4, 5]
Expected behaviour:
- The last call (
arr.flatten(nil)
) should raise ArgumentError exception. - The -1 (as "indefinite") should be documented.
Note that this suggestion will break applications/gems that rely on the fact that arr.flatten(nil)
is identical to arr.flatten
.
I'd like to hear your opinions on this. If accepted, I'm willing to try and write a patch.
Actions
Like0
Like0Like0Like0Like0Like0