From: simon@... Date: 2014-01-25T13:33:10+00:00 Subject: [ruby-core:60100] [ruby-trunk - Bug #9448] Assignment with overridden []= returns return value of method rather than new value Issue #9448 has been updated by Simon Eskildsen. Thanks a lot for the quick fix! ---------------------------------------- Bug #9448: Assignment with overridden []= returns return value of method rather than new value https://bugs.ruby-lang.org/issues/9448#change-44600 * 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/