On 11 Feb 2003 at 11:13, Sean Chittenden wrote: > (snip) > > f = Foo.new() > i = f.a = 42 # i == 42 > i = f.b = 42 # i == 42 (now it's 42, but should be 28) > > b=() modifies the return value. Is that what's inconsistent? That > the return value is different than argument? Not to quote Dave, but > this seems a little too "mother knows best" given that the default > does return 42 and the only time it isn't 42 is when the author meant > for it to be something other than 42. Is it a consistency issue for > people who don't use return()? If that's the case, then that's just > sloppy/poor programing practices and something that I'd love to see > prevented when -w is thrown on. When reading code I read the assignment operator as an assignment. After obj.attr = value I expect that obj.attr == value and the return value of obj.attr = value to be the same as obj.attr (after the assignment) so the new behavior just feels right. I think you should use other method names if the methods don't adhere to these semantics. All the code examples that were broken by the new behavior were hard for me to read. Regards, Pit