FinalLocalVariableCheck updated to follow Cyclomatic Complexity rule. #954

This commit is contained in:
Roman Ivanov 2015-06-13 21:45:43 -07:00
parent 6d9d894a62
commit 3831aa913e
1 changed files with 25 additions and 16 deletions

View File

@ -167,22 +167,7 @@ public class FinalLocalVariableCheck extends Check {
case TokenTypes.IDENT:
final int parentType = ast.getParent().getType();
if ((TokenTypes.POST_DEC == parentType
|| TokenTypes.DEC == parentType
|| TokenTypes.POST_INC == parentType
|| TokenTypes.INC == parentType
|| TokenTypes.ASSIGN == parentType
|| TokenTypes.PLUS_ASSIGN == parentType
|| TokenTypes.MINUS_ASSIGN == parentType
|| TokenTypes.DIV_ASSIGN == parentType
|| TokenTypes.STAR_ASSIGN == parentType
|| TokenTypes.MOD_ASSIGN == parentType
|| TokenTypes.SR_ASSIGN == parentType
|| TokenTypes.BSR_ASSIGN == parentType
|| TokenTypes.SL_ASSIGN == parentType
|| TokenTypes.BXOR_ASSIGN == parentType
|| TokenTypes.BOR_ASSIGN == parentType
|| TokenTypes.BAND_ASSIGN == parentType)
if (isAssignOperator(parentType)
&& ast.getParent().getFirstChild() == ast) {
removeVariable(ast);
}
@ -192,6 +177,30 @@ public class FinalLocalVariableCheck extends Check {
}
}
/**
* is Arithmetic operator
* @param parentType token AST
* @return true is token type is in arithmetic operator
*/
private boolean isAssignOperator(int parentType) {
return TokenTypes.POST_DEC == parentType
|| TokenTypes.DEC == parentType
|| TokenTypes.POST_INC == parentType
|| TokenTypes.INC == parentType
|| TokenTypes.ASSIGN == parentType
|| TokenTypes.PLUS_ASSIGN == parentType
|| TokenTypes.MINUS_ASSIGN == parentType
|| TokenTypes.DIV_ASSIGN == parentType
|| TokenTypes.STAR_ASSIGN == parentType
|| TokenTypes.MOD_ASSIGN == parentType
|| TokenTypes.SR_ASSIGN == parentType
|| TokenTypes.BSR_ASSIGN == parentType
|| TokenTypes.SL_ASSIGN == parentType
|| TokenTypes.BXOR_ASSIGN == parentType
|| TokenTypes.BOR_ASSIGN == parentType
|| TokenTypes.BAND_ASSIGN == parentType;
}
/**
* Determines whether enhanced for-loop variable should be checked or not.
* @param ast The ast to compare.