Issue #9448 has been updated by Nobuyoshi Nakada.

Status changed from Rejected to Open

Indeed, thank you.

----------------------------------------
Bug #9448: Assignment with overridden []= returns return value of method rather than new value
https://bugs.ruby-lang.org/issues/9448#change-44588

* Author: Simon Eskildsen
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0dev
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
When calling []= the assignment will return the return value of the []= method, rather than the value of the right-hand side, which is the behaviour in 2.1.0-p0, 2.0.0-p353 and 1.9.3-p484.

Example code:

    class Animal                                                                                                                  
      def []=(key, new_value)                                                                                                      
        "walrus"                                                                                                                 
      end                                                                                                                          
    end                                                                                                                            
    animal = Animal.new                                                                                                               
    puts animal['current'] = "unicorn" 

In trunk, this returns 'walrus'. In other releases (tested in the ones mentioned above), this returns 'unicorn'.



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