From 7718c0a5d3884439ac86909ef50c082f4a765d73 Mon Sep 17 00:00:00 2001 From: Subbu Dantu Date: Tue, 21 Mar 2017 05:30:20 +0530 Subject: [PATCH] Issue #3048: ParenPad now correctly evaluates precedence parens --- .../checks/whitespace/ParenPadCheck.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/ParenPadCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/ParenPadCheck.java index 62a127da5eb4..c83383aa0d54 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/ParenPadCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/ParenPadCheck.java @@ -181,11 +181,21 @@ private void processExpression(DetailAST ast) { DetailAST childAst = ast.getFirstChild(); while (childAst != null) { if (childAst.getType() == TokenTypes.LPAREN) { - processLeft(childAst); - processExpression(childAst); + if (childAst.getNextSibling().getType() == TokenTypes.TYPECAST) { + processExpression(childAst); + } + else { + processLeft(childAst); + processExpression(childAst); + } } else if (childAst.getType() == TokenTypes.RPAREN && !isInTypecast(childAst)) { - processRight(childAst); + if (childAst.getPreviousSibling().getType() == TokenTypes.TYPECAST) { + processExpression(childAst); + } + else { + processRight(childAst); + } } else if (!isAcceptableToken(childAst)) { //Traverse all subtree tokens which will never be configured