diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/OtherLeftCurlyCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/OtherLeftCurlyCheck.java index 770677e8d..8ef6d9e7f 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/OtherLeftCurlyCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/OtherLeftCurlyCheck.java @@ -62,28 +62,25 @@ public class OtherLeftCurlyCheck case TokenTypes.LITERAL_CATCH: case TokenTypes.LITERAL_SYNCHRONIZED: case TokenTypes.LITERAL_FOR: - brace = aAST.getLastChild(); - break; case TokenTypes.LITERAL_TRY: case TokenTypes.LITERAL_FINALLY: case TokenTypes.LITERAL_DO: - brace = (DetailAST) aAST.getFirstChild(); + case TokenTypes.LITERAL_IF: + brace = aAST.findFirstToken(TokenTypes.SLIST); break; + case TokenTypes.LITERAL_ELSE: final DetailAST candidate = (DetailAST) aAST.getFirstChild(); - if (candidate.getType() == TokenTypes.SLIST) { - brace = candidate; - } - else { - // silently ignore - brace = null; - } + brace = + (candidate.getType() == TokenTypes.SLIST) + ? candidate + : null; // silently ignore break; - case TokenTypes.LITERAL_SWITCH: - case TokenTypes.LITERAL_IF: - brace = (DetailAST) aAST.getFirstChild().getNextSibling() - .getNextSibling().getNextSibling(); + + case TokenTypes.LITERAL_SWITCH : + brace = aAST.findFirstToken(TokenTypes.LCURLY); break; + default: brace = null; } diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/InputBraces.java b/src/testinputs/com/puppycrawl/tools/checkstyle/InputBraces.java index 14956cfbb..0ae805388 100644 --- a/src/testinputs/com/puppycrawl/tools/checkstyle/InputBraces.java +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/InputBraces.java @@ -100,7 +100,7 @@ class InputBraces if (condition()) testIf(); } - + void whitespaceAfterSemi() { //reject diff --git a/src/tests/com/puppycrawl/tools/checkstyle/OtherLeftCurlyCheckTest.java b/src/tests/com/puppycrawl/tools/checkstyle/OtherLeftCurlyCheckTest.java index 8853ad336..95cbcb5ca 100644 --- a/src/tests/com/puppycrawl/tools/checkstyle/OtherLeftCurlyCheckTest.java +++ b/src/tests/com/puppycrawl/tools/checkstyle/OtherLeftCurlyCheckTest.java @@ -41,4 +41,16 @@ public class OtherLeftCurlyCheckTest }; verify(c, fname, expected); } + + public void testMissingBraces() + throws Exception + { + final CheckConfiguration checkConfig = new CheckConfiguration(); + checkConfig.setClassname(OtherLeftCurlyCheck.class.getName()); + final Checker c = createChecker(checkConfig); + final String fname = getPath("InputBraces.java"); + final String[] expected = { + }; + verify(c, fname, expected); + } }