Issue #10291 has been reported by siddharth sharma.

----------------------------------------
Bug #10291: Strange behaviour of splat in Ruby 2.0.0
https://bugs.ruby-lang.org/issues/10291

* Author: siddharth sharma
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: 2.0.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------

In Ruby 1.9.3, when a method defined with some required number of arguments, method always checks the number of required arguments when called with a splat.
But in ruby 2.0.0, when a method defined with some required number of arguments, method checks the number of arguments when called with a splat, but does not check the number of arguments after first successful call.



Method method_called_with splat will check number of arguments in the first call, but after first successful method call, method_called_with splat wont check number of arguments it is being called with.
This happens only when the arguments go through the same splat.

~~~
Case 1(it is not working fine)


def method_called_with splat(argument)
  p argument
end


def method_accepting_any_number_of_arguments(*args)
  method_called_with splat(*args)
end

~~~

The issue wont come in this case, as the successful call is from one splat and other calls are from the other splat.

~~~

Case 2(it is working fine)

def method_called_with splat(argument)
  p argument
end


def method_accepting_any_number_of_arguments(*args)
  (args.length == 1) ? method_called_with splat(*args) : method_called_with splat(*args)
end

~~~




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