Hi --
On Thu, 24 Nov 2005, Stefan Kaes wrote:

> Well, the warning text is somewhat misleading, because the occurence of the 
> equal sign isn't the problem, but the fact that I assign a constant to a 
> value and this is the top level expression of the condition.
>
> Because,
>
> if (x=1) or (x=2) then 4 else 2 end
>
> doesn't give a warning, neither does
>
> if x = 1||2 then 4 else 2 end
>
> nor
>
> if x = 1+2 then 4 else 2 end
>
> And I probably meant == in all of these.

But how annoying it would be to get warned every time, even when you
wanted "if x = ...".  I know there's a school of thought that this is
such a pitfall that you should do "if 3 == x" and have the interpreter
warn you if it sees "if x = " and so on... but I've never agreed with
that.  ("if 3 == x" gives me a feeling like putting my shoes on the
wrong feet.)

I guess my base assumption has always been that people should just use
the right number of = characters :-)  So the way I look at it, the
programmer is responsible for getting it right (which is fine with me,
since in the general case neither = nor == is inherently right), and
Ruby speaks up only when it's demonstrably a non-= case.


David

-- 
David A. Black
dblack / wobblini.net