[ruby-core:62663] [ruby-trunk - Bug #9722] Failure with multiple keyword arguments

From: nagachika00@...
Date: 2014-05-18 15:38:39 UTC
List: ruby-core #62663
Issue #9722 has been updated by Tomoyuki Chikanaga.

Backport changed from 2.0.0: DONTNEED, 2.1: REQUIRED to 2.0.0: DONTNEED, 2.1: DONE

r45405 and r45408 were backported into `ruby_2_1` branch at r46005.

----------------------------------------
Bug #9722: Failure with multiple keyword arguments
https://bugs.ruby-lang.org/issues/9722#change-46798

* Author: Thomas Cioppettini
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: core
* Target version: current: 2.2.0
* ruby -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
* Backport: 2.0.0: DONTNEED, 2.1: DONE
----------------------------------------
I am running ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
Given the following person class:

~~~ruby
class Person
  attr_reader :name, :age

  def initialize name:, age:
    @name = name
    @age    = age
  end
end
~~~

There are a few cases of unexpected behavior when you instantiate a `Person` class given the above code.

Failure 1:

~~~ruby
person = Person.new(name: "Tom", age: 24)
person.name # expect "Tom"
=> nil
person.age # expect 24
=> 24
~~~

Failure 2: 

~~~ruby
person = Person.new(name: "Tom") # expect ArgumentError missing keyword age
person.name 
=> "Tom"
person.age 
=> "Tom"
~~~

If I were to just give an `age` keyword argument instantiation would fail as expected.



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

In This Thread

Prev Next