On Jan 20, 2008 8:01 PM, Alex Satrapa <[EMAIL PROTECTED]> wrote: > On 19/01/2008, at 17:36 , David Chelimsky wrote: > > > When you say 5 == 3, what that is really saying is 5.==(3), which is > > how we're able to support 5.should == 3 (becomes 5.should.==(3)). > > Would it be true to say that the reason "5.should != 3" won't work is > that somewhere inside Ruby the x != y comparison is remapped to !(x > == y), and thus the "5.should != 3" is remapped to "not (5.should.== > 3)", with rspec generating a failure when "should" sees false coming > back from the "==" method? > > Or am I barking up the wrong tree and potentially misleading dozens > of programmers down the garden path?
I'm 99 44/100% sure that you have it right. The expression x != y is syntactic sugar for !(x == y) much like x += y is syntactic sugar for x = (x +y) The parser turns these into an internal representation (abstract syntax tree for 1.8, byte-codes for 1.9) which is identical to the second form. -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/ _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users