Issue #12984 has been updated by bug hit.


Nobuyoshi Nakada wrote:
> It's similar to:
> 
> ```ruby
> super(*[])
> ```

I guess there's some similarity.  But super has a very explicit definition.  Only a naked super is auto-forwarding, any attempt to pass args turns it into manual super. So super *[] is equivalent to super(), which makes sense, because by doing super(*array) you are clearly trying to call explicit super.

----------------------------------------
Bug #12984: `rescue *[]` should be equivalent to `rescue` as `method_call(*[])` is equivalent to `method_call`
https://bugs.ruby-lang.org/issues/12984#change-61776

* Author: bug hit
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
splatting an empty array to a construct that takes a list is suppose to be equivalent to specifying no list

```ruby
def foo
end

foo *[] #works

```

so `rescue *[]` should be equivalent to `rescue`

```ruby
begin
  raise 'error' #Uncaught exception
rescue *[]
  puts 'caught'
end
```




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>