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