Skip to content

Commit

Permalink
Merge pull request #732 from pocke/Allow_Array____to_receive_Range_of…
Browse files Browse the repository at this point in the history
…_optional_Integer

Allow Array#[] to receive Range of optional Integer
  • Loading branch information
pocke authored Aug 10, 2021
2 parents 13f221f + 0589a5d commit c09ab98
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 4 deletions.
8 changes: 4 additions & 4 deletions core/array.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ class Array[unchecked out Elem] < Object
#
def []: (int index) -> Elem
| (int start, int length) -> ::Array[Elem]?
| (::Range[::Integer] range) -> ::Array[Elem]?
| (::Range[::Integer?] range) -> ::Array[Elem]?

# Element Assignment --- Sets the element at `index`, or replaces a subarray
# from the `start` index for `length` elements, or replaces a subarray specified
Expand Down Expand Up @@ -486,9 +486,9 @@ class Array[unchecked out Elem] < Object
| (int start, int length, Elem obj) -> Elem
| (int start, int length, ::Array[Elem]) -> ::Array[Elem]
| (int start, int length, nil) -> nil
| (::Range[::Integer], Elem obj) -> Elem
| (::Range[::Integer], ::Array[Elem]) -> ::Array[Elem]
| (::Range[::Integer], nil) -> nil
| (::Range[::Integer?], Elem obj) -> Elem
| (::Range[::Integer?], ::Array[Elem]) -> ::Array[Elem]
| (::Range[::Integer?], nil) -> nil

# See also Enumerable#all?
#
Expand Down
4 changes: 4 additions & 0 deletions test/stdlib/Array_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ def test_aref
[1,2,3], :[], 0...1
assert_send_type "(Range[Integer]) -> nil",
[1,2,3], :[], 5..8
assert_send_type "(Range[Integer?]) -> Array[Integer]",
[1,2,3], :[], 0...nil
end

def test_aupdate
Expand All @@ -121,6 +123,8 @@ def test_aupdate
[1,2,3], :[]=, 0...2, [-1]
assert_send_type "(Range[Integer], nil) -> nil",
[1,2,3], :[]=, 0...2, nil
assert_send_type "(Range[Integer?], Integer) -> Integer",
[1,2,3], :[]=, 0..nil, -1
end

def test_all?
Expand Down

0 comments on commit c09ab98

Please sign in to comment.