+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
>>
>

Reply via email to