com.puppycrawl.tools.checkstyle.checks.coding
Class UnnecessaryParenthesesCheck

java.lang.Object
  extended bycom.puppycrawl.tools.checkstyle.api.AutomaticBean
      extended bycom.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
          extended bycom.puppycrawl.tools.checkstyle.api.Check
              extended bycom.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck
All Implemented Interfaces:
Configurable, Contextualizable

public class UnnecessaryParenthesesCheck
extends Check

Checks if unnecessary parentheses are used in a statement or expression. The check will flag the following with warnings.

     return (x);          // parens around identifier
     return (x + 1);      // parens around return value
     int x = (y / 2 + 1); // parens around assignment rhs
     for (int i = (0); i < 10; i++) {  // parens around literal
     t -= (z + 1);        // parens around assignment rhs

The check is not "type aware", that is to say, it can't tell if parentheses are unnecessary based on the types in an expression. It also doesn't know about operator precedence and associatvity; therefore it won't catch something like

     int x = (a + b) + c;

In the above case, given that a, b, and c are all int variables, the parentheses around a + b are not needed.

Author:
Eric Roe

Constructor Summary
UnnecessaryParenthesesCheck()
           
 
Method Summary
 int[] getDefaultTokens()
          Returns the default token a check is interested in.
 void leaveToken(DetailAST aAST)
          Called after all the child nodes have been process.
 void visitToken(DetailAST aAST)
          Called to process a token.
 
Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check
beginTree, destroy, finishTree, getAcceptableTokens, getClassLoader, getFileContents, getLines, getRequiredTokens, getTabWidth, getTokenNames, init, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
 
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getMessageBundle, getSeverity, getSeverityLevel, log, log, log, log, log, log, log, log, log, setSeverity
 
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnnecessaryParenthesesCheck

public UnnecessaryParenthesesCheck()
Method Detail

getDefaultTokens

public int[] getDefaultTokens()
Description copied from class: Check
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.

Specified by:
getDefaultTokens in class Check
Returns:
the default tokens
See Also:
Check

visitToken

public void visitToken(DetailAST aAST)
Description copied from class: Check
Called to process a token.

Overrides:
visitToken in class Check
Parameters:
aAST - the token to process
See Also:
Check

leaveToken

public void leaveToken(DetailAST aAST)
Description copied from class: Check
Called after all the child nodes have been process.

Overrides:
leaveToken in class Check
Parameters:
aAST - the token leaving
See Also:
Check

Back to the Checkstyle Home Page