Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #11210

Re: Curious compiler warning

From Lew <noone@lewscanon.com>
Newsgroups comp.lang.java.programmer
Subject Re: Curious compiler warning
Date 2012-01-10 19:03 -0800
Organization albasani.net
Message-ID <jeiu63$es3$1@news.albasani.net> (permalink)
References <Xns9FD6D451D5F1Djpnasty@94.75.214.39> <jeir2s$7v0$3@news.albasani.net> <jeisjs$4k4$1@speranza.aioe.org>

Show all headers | View raw


On 01/10/2012 06:36 PM, glen herrmannsfeldt wrote:
> Lew<noone@lewscanon.com>  wrote:
>
> (snip)
>>> I've got a fairly simply method name foo() that takes two parameters, ints
>>> called start and finish. During this method, I decrement start and finish
>>> and then calls another method, bar(), passing the decremented versions of
>>> start and finish. For some reason, the compiler objects to the statements
>>> where I decrement start and finish and says "the parameter should not be
>>> assigned". I'm running Eclipse 3.7.1 with a 1.6.18 JDK.
>
> (snip)
>>>     start--;
>>>     finish--;
>>>     bar(start, finish);
>
>> What's exactly wrong is that the assignment to the parameters
>> is thrown away, and does you no good.
>
> Well, not thrown away until after the call to bar.

Irrelevant.  There's absolutely no value to storing the result because it 
isn't reused.

> Does it actual notice that it isn't used other than
> the call to bar?
>
> How about:
>
>     while(start+finish>0) {
>        start--;
>        finish--;
>        bar(start, finish);
>        }
>
> Would it complain in that case?

Apples and oranges.  The OP's example didn't reuse the stored value.  And yes, 
Eclipse would complain (but only if you enable it to do so) because you are 
modifying a parameter, which is what the warning cares about.  You could 
justify it perhaps in this case because you are using the new value, unlike in 
the OP's example.  But then that's a different scenario, so not relevant here.

And why does everyone insist on putting autodecrement on a separate line anyway?

My Eclipse instance was not configured out of the box to report this warning. 
  So I turned the warning on.  (Which the OP must have done, eh?  Begging the 
question of why if they hate the feature so much.)  You don't have to set it 
as an error, or even a warning if you don't like it.

I also found an explanation in the Eclipse help of all places for the warning:
"Parameter assignment
"Assigning a value to a parameter is generally considered poor style 
programming. When this option is enabled, the compiler will signal such 
scenario either as an error or a warning."
which you can get by the inbuilt help or online at
<http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings.htm>

It's really a good idea to reach for product documentation (and Google) when 
you have such a question.  I think there are a lot of programmers who 
foolishly fail to read the docs.  We're talking fundamental user guide stuff 
here, not weird little corner facts.

Notice that they point out that it's considered poor style.  The engineering 
reason behind this is that parameter assignment goes away at the end of the 
method block.

In the OP's example the other reason is that the assignment is unnecessary; it 
doesn't help anything and increases code complexity, making it a bad idea.

-- 
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Curious compiler warning Novice <novice@example..com> - 2012-01-11 01:51 +0000
  Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-10 18:10 -0800
    Re: Curious compiler warning glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-01-11 02:36 +0000
      Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-10 19:03 -0800
        Re: Curious compiler warning glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-01-11 07:50 +0000
          Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-10 23:57 -0800
        Re: Curious compiler warning Arved Sandstrom <asandstrom3minus1@eastlink.ca> - 2012-01-11 05:47 -0400
          Re: Curious compiler warning glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-01-11 13:25 +0000
            Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-11 06:58 -0800
              Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-11 07:01 -0800
              Re: Curious compiler warning Patricia Shanahan <pats@acm.org> - 2012-01-11 10:03 -0800
                Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-11 23:30 -0800
              Re: Curious compiler warning Gene Wirchenko <genew@ocis.net> - 2012-01-11 18:10 -0800
                Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-11 23:32 -0800
                Re: Curious compiler warning Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-01-12 01:44 -0600
                Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 07:42 -0800
                Re: Curious compiler warning Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-01-12 10:51 -0600
                Re: Curious compiler warning Patricia Shanahan <pats@acm.org> - 2012-01-12 07:50 -0800
                Re: Curious compiler warning Leif Roar Moldskred <leifm@dimnakorr.com> - 2012-01-12 10:54 -0600
                Re: Curious compiler warning Wanja Gayk <brixomatic@yahoo.com> - 2012-01-21 12:52 +0100
                Re: Curious compiler warning Gene Wirchenko <genew@ocis.net> - 2012-01-12 11:51 -0800
                Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 20:58 -0800
        Re: Curious compiler warning "Gavino" <invalid@invalid.invalid> - 2012-01-11 20:05 +0100
          Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 07:47 -0800
        Re: Curious compiler warning Wanja Gayk <brixomatic@yahoo.com> - 2012-01-21 12:52 +0100
          Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-21 12:13 -0800
    Re: Curious compiler warning Novice <novice@example..com> - 2012-01-11 04:55 +0000
      Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-10 21:46 -0800
      Re: Curious compiler warning glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-01-11 07:55 +0000
      Re: Curious compiler warning Roedy Green <see_website@mindprod.com.invalid> - 2012-01-11 01:35 -0800
        Re: Curious compiler warning "Gavino" <invalid@invalid.invalid> - 2012-01-11 20:05 +0100
          Re: Curious compiler warning Gene Wirchenko <genew@ocis.net> - 2012-01-11 18:18 -0800
            Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 07:55 -0800
              Re: Curious compiler warning Gene Wirchenko <genew@ocis.net> - 2012-01-12 11:59 -0800
            Re: Curious compiler warning Martin Gregorie <martin@address-in-sig.invalid> - 2012-01-13 00:02 +0000
              Re: Curious compiler warning Patricia Shanahan <pats@acm.org> - 2012-01-12 16:11 -0800
                Re: Curious compiler warning Martin Gregorie <martin@address-in-sig.invalid> - 2012-01-13 01:31 +0000
          Re: Curious compiler warning Roedy Green <see_website@mindprod.com.invalid> - 2012-01-11 18:26 -0800
            Re: Curious compiler warning Patricia Shanahan <pats@acm.org> - 2012-01-11 19:01 -0800
              Re: Curious compiler warning Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-01-11 23:23 -0500
                Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 08:00 -0800
            Re: Curious compiler warning Wanja Gayk <brixomatic@yahoo.com> - 2012-01-21 12:52 +0100
          Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 07:50 -0800
        Re: Curious compiler warning Gene Wirchenko <genew@ocis.net> - 2012-01-11 18:14 -0800
          Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 08:05 -0800
            Re: Curious compiler warning Gene Wirchenko <genew@ocis.net> - 2012-01-12 12:02 -0800
  Re: Curious compiler warning Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-01-10 21:11 -0500
    Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-10 18:17 -0800
    Re: Curious compiler warning bugbear <bugbear@trim_papermule.co.uk_trim> - 2012-01-11 16:10 +0000
    Re: Curious compiler warning Lars Enderin <lars.enderin@telia.com> - 2012-01-11 20:45 +0100
      Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 08:09 -0800
      Re: Curious compiler warning Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2012-01-12 18:14 +0200
      Re: Curious compiler warning Wanja Gayk <brixomatic@yahoo.com> - 2012-01-21 12:52 +0100
      Re: Curious compiler warning David Lamb <dalamb@cs.queensu.ca> - 2012-01-21 09:12 -0500
    Re: Curious compiler warning Gene Wirchenko <genew@ocis.net> - 2012-01-11 18:21 -0800
    Re: Curious compiler warning Lew <noone@lewscanon.com> - 2012-01-12 08:08 -0800
  Re: Eclipse 3.7.1 compiler warning v_borchert@despammed.com (Volker Borchert) - 2012-01-11 21:10 +0000

csiph-web