I believe there is consensus that the parens should be added back in.

On 5/13/13, Nick Williams <nicho...@nicholaswilliams.net> wrote:
> I'm confused. Does this mean the consensus is that I should add the
> parentheses back in? Ralph says:
>
>> Anybody who thinks they understand something but doesn't is just going to
>> be plain dangerous.
>
>
> I say that's exactly why the parentheses should be left out. Putting them
> back in perpetuates that danger by making that dangerous person think he's
> right.
>
> Nick
>
> On May 13, 2013, at 1:22 PM, Ralph Goers wrote:
>
>> I'll be honest and admit that I overuse parens a lot because I don't ever
>> want to have to remember precedence rules.   So I will always do (a * b) /
>> c or (a / b) * c regardless of the whether they are needed or not.  The
>> same is true of logical operators - unless they are all the same.  I don't
>> really follow the logic of the guy who misunderstands precedence rules and
>> removes the parens as there is something wrong with that picture.  Anybody
>> who thinks they understand something but doesn't is just going to be plain
>> dangerous.
>>
>> Ralph
>>
>>
>> On May 13, 2013, at 9:50 AM, Remko Popma wrote:
>>
>>> +1 on extra parens
>>> Teachable moments always seem to happen on Friday night when you really
>>> want to go home but it. just. doesn't. work...
>>> Not a fan. :-)
>>>
>>> From: Scott Deboy <scott.de...@gmail.com>
>>> To: Log4J Developers List <log4j-dev@logging.apache.org>
>>> Sent: Tuesday, May 14, 2013 1:27 AM
>>> Subject: Re: "Useless parentheses?"
>>>
>>> I'd prefer if we leave the extra parens. IMO clarity trumps teachable
>>> moments. Just disable the warning?
>>> On May 13, 2013 8:26 AM, "Nick Williams" <nicho...@nicholaswilliams.net>
>>> wrote:
>>> It's not 100% harmless, but it is harmless as far as operation of the
>>> code.
>>>
>>> To understand how it could cause "harm", consider the situation where
>>> another developer who understands precedence incorrectly happens across
>>> the code and sees these parentheses. Seeing these parentheses will
>>> solidify his incorrect understanding of precedence. If, however, he sees
>>> it without parentheses, it will not make sense to him, and he will have
>>> to look up Java operator precedence to understand why it works.
>>>
>>> An unlikely scenario, to be sure, but that's enough to make me remove the
>>> parentheses.
>>>
>>> Nick
>>>
>>> On May 13, 2013, at 10:21 AM, Jess Holle wrote:
>>>
>>>> I'm guilty of that weird (and useless) style -- for me it's an old habit
>>>> from C days where I frequently defined a return(X) macro when doing
>>>> certain types of troubleshooting.
>>>>
>>>> While this case is useless, it's also harmless.
>>>>
>>>> On 5/13/2013 10:14 AM, Gary Gregory wrote:
>>>>> The parentheses are useless to the compiler because && takes precedence
>>>>> over ||. The parentheses are useful to humans who have not memorized
>>>>> Java operator precedence ;)
>>>>>
>>>>> This warning is useful to catch weird style choices like "return (foo +
>>>>> bar);" I've seen other odd choices in parentheses styling.
>>>>>
>>>>> Gary
>>>>>
>>>>>
>>>>> On Mon, May 13, 2013 at 11:09 AM, Nick Williams
>>>>> <nicho...@nicholaswilliams.net> wrote:
>>>>> The PMD inspector says the following if statement contains "Useless
>>>>> parentheses."
>>>>>
>>>>>         if ((isEventTimestamp && isLiteralValue) || (isEventTimestamp
>>>>> && isPattern) || (isLiteralValue && isPattern)) {
>>>>>             LOGGER.error("The pattern, literal, and isEventTimestamp
>>>>> attributes are mutually exclusive.");
>>>>>             return null;
>>>>>         }
>>>>>
>>>>> I'm all for removing useless parentheses; unfortunately, I don't see
>>>>> how these are useless. The way I see it, if isLiteralValue is false,
>>>>> with parentheses it will (correctly) continue to evaluate after the
>>>>> first grouped condition but without parentheses it would (incorrectly)
>>>>> short circuit after the first use of isLiteralValue.
>>>>>
>>>>> Am I missing something here? Or is this a PMD bug?
>>>>>
>>>>> Nick
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
>>>>> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>> Java Persistence with Hibernate, Second Edition
>>>>> JUnit in Action, Second Edition
>>>>> Spring Batch in Action
>>>>> Blog: http://garygregory.wordpress.com
>>>>> Home: http://garygregory.com/
>>>>> Tweet! http://twitter.com/GaryGregory
>>>>
>>>
>>>
>>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to