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

Reply via email to