Issue #9448 has been updated by Eric Wong.


 nobu / ruby-lang.org wrote:
 > Applied in changeset r44705.
 
 Thank you!  Sorry for the breakage.
 I need to study/understand compile.c better :x

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

* Author: Simon Eskildsen
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0dev
* Backport: 1.9.3: DONTNEED, 2.0.0: DONTNEED, 2.1: DONTNEED
----------------------------------------
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/