[#65451] [ruby-trunk - Feature #10333] [PATCH 3/1] optimize: "yoda literal" == string — ko1@...

Issue #10333 has been updated by Koichi Sasada.

9 messages 2014/10/07

[ruby-core:65487] [ruby-trunk - Bug #10291] [Closed] Strange behaviour of splat in Ruby 2.0.0

From: ruby-core@...
Date: 2014-10-07 19:56:26 UTC
List: ruby-core #65487
Issue #10291 has been updated by Marc-Andre Lafortune.

Status changed from Open to Closed

Better test with latest releases before making a bug report...

Duplicate of #9622.


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

* Author: siddharth sharma
* Status: Closed
* 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/

In This Thread

Prev Next