From: sawadatsuyoshi@... Date: 2019-06-22T02:41:31+00:00 Subject: [ruby-core:93307] [Ruby trunk Feature#9948] Safely insert an object into an array Issue #9948 has been updated by sawa (Tsuyoshi Sawada). I withdraw this proposal. Please close it. ---------------------------------------- Feature #9948: Safely insert an object into an array https://bugs.ruby-lang.org/issues/9948#change-78778 * Author: sawa (Tsuyoshi Sawada) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- When I insert an object using `Array#insert(index, object)` method (or `Array#[index]= object`), it happened sometimes that I mistakenly passed `index` that is too big, and too often in such cases was the bug very difficult to detect because in such case, `insert` will silently insert `nil` to fill up the empty slots: ~~~ruby [:foo, :bar].insert(4, :baz) # => [:foo, :bar, nil, nil, :baz] ~~~ On the other hand, when the index is too small (negative), `index` raises an index error. I wish that an error were raised when the index is too big (when `index` is greater than `length` of `self`), but it is perhaps a bad idea to change the feature of `insert` by now. So I propose that a new method being added, something like `Array#safely_insert`, which works the same as `insert`, except that when `index` is larger than the size of the array, it should raise: Index Error: index #{indexs} too large for array; maximum: #{length} -- https://bugs.ruby-lang.org/ Unsubscribe: