[#6660] Ruby on Neko ? — Nicolas Cannasse <ncannasse@...>

Hi folks,

14 messages 2005/11/19

[#6672] testing for hardlink with "test(?-, ...)" flawed on Windows — noreply@...

Bugs item #2858, was opened at 2005-11-20 16:35

13 messages 2005/11/20

[#6684] semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...>

Hi all,

81 messages 2005/11/21
[#6685] Re: semenatics of if/unless/while statement modifiers — Mauricio Fern疣dez <mfp@...> 2005/11/22

On Tue, Nov 22, 2005 at 08:22:59AM +0900, Stefan Kaes wrote:

[#6686] Re: semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...> 2005/11/22

Mauricio Fern疣dez wrote:

[#6687] Re: semenatics of if/unless/while statement modifiers — Eric Hodel <drbrain@...7.net> 2005/11/22

On Nov 21, 2005, at 4:37 PM, Stefan Kaes wrote:

[#6689] Re: semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...> 2005/11/22

Eric Hodel wrote:

[#6693] Re: semenatics of if/unless/while statement modifiers — Yukihiro Matsumoto <matz@...> 2005/11/22

Hi,

[#6695] Re: semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...> 2005/11/22

Yukihiro Matsumoto wrote:

[#6718] Re: semenatics of if/unless/while statement modifiers — mathew <meta@...> 2005/11/22

[#6722] Re: semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...> 2005/11/22

mathew wrote:

[#6707] Re: semenatics of if/unless/while statement modifiers — "David A. Black" <dblack@...> 2005/11/22

Hi --

[#6708] Re: semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...> 2005/11/22

David A. Black wrote:

[#6714] Re: semenatics of if/unless/while statement modifiers — "David A. Black" <dblack@...> 2005/11/22

Hi --

[#6717] Re: semenatics of if/unless/while statement modifiers — Stefan Kaes <skaes@...> 2005/11/22

David A. Black wrote:

[#6798] ruby 1.8.4 preview2 — Yukihiro Matsumoto <matz@...>

Hi,

37 messages 2005/11/30

Re: semenatics of if/unless/while statement modifiers

From: Stefan Kaes <skaes@...>
Date: 2005-11-23 14:47:46 UTC
List: ruby-core #6758
David A. Black wrote:

> Hi --
>
> On Wed, 23 Nov 2005, Sean E. Russell wrote:
>
>> On Tuesday 22 November 2005 15:37, David A. Black wrote:
>>
>>> Actually I meant what I wrote.  Since 1 is always true, there's no
>>> point ever testing it for truth.  (I purposely chose an example where
>>> you get the warning, which you don't if there's any point to the
>>> test.)
>>
>>
>> Yeah, but I think what he was getting at was:
>>
>>     def foo x
>>         if n = x
>>             blah(n)
>>         end
>>     end
>>
>> ... which he'd like to be able to do without being told that he's made a
>> mistake.  Which he hasn't.  Hence, his request that the warning be 
>> reworded
>> to "might", rather than "should".
>>
>> I think the point here is that the message that Ruby is giving is 
>> provably
>> wrong.  If Stefan wrote the above code, then Ruby is wrong to tell 
>> him that
>> he "should" be performing a comparison rather than an assignment.
>
>
Exactly.

> But that code doesn't produce a warning:
>
>   irb(main):011:0> def foo(x); if n = x; end; end
>   => nil
>   irb(main):012:0> foo(true)
>   => nil
>
> The warning is "intelligent".  It only appears in cases where there
> really is no possibility that the "if" can ever have two branches:
>
>   irb(main):013:0> if n = true; end
>   (irb):13: warning: found = in conditional, should be ==
>   => nil

This doesn't really make it any better. There is no way a program could 
read the programmers mind to an extent that would enable the program to 
know whether the assigment wasn't put there on purpose.

Telling me I've made a mistake when I haven't, is a mistake ;-)

So Ruby can't know whether occurence of an equal sign inside an "if" 
condition is a programmers intention or not, unless the LHS of the 
assignment is a constant expression. But that is a completely different 
error.

And why do I get this warning even if I haven't turned warnings on? This 
seems wrong too.

-- stefan


In This Thread