From 9ddad74e484384e5ca2d88ab0fe21922189e2b85 Mon Sep 17 00:00:00 2001 From: Ruslan Diachenko Date: Thu, 27 Aug 2015 23:12:48 +0100 Subject: [PATCH] Issue #1566: ReturnCount violation fixed for LeftCurlyCheck --- .../checks/blocks/LeftCurlyCheck.java | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java index 1bce0d945..328dab21b 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/blocks/LeftCurlyCheck.java @@ -233,33 +233,38 @@ public class LeftCurlyCheck * @return {@code DetailAST}. */ private static DetailAST skipAnnotationOnlyLines(DetailAST ast) { + DetailAST resultNode = ast; final DetailAST modifiers = ast.findFirstToken(TokenTypes.MODIFIERS); - if (modifiers == null) { - return ast; - } - DetailAST lastAnnotation = findLastAnnotation(modifiers); - if (lastAnnotation == null) { - // There are no annotations. - return ast; - } - final DetailAST tokenAfterLast; - if (lastAnnotation.getNextSibling() == null) { - tokenAfterLast = modifiers.getNextSibling(); - } - else { - tokenAfterLast = lastAnnotation.getNextSibling(); - } + if (modifiers != null) { + DetailAST lastAnnotation = findLastAnnotation(modifiers); - if (tokenAfterLast.getLineNo() > lastAnnotation.getLineNo()) { - return tokenAfterLast; + if (lastAnnotation != null) { + final DetailAST tokenAfterLast; + + if (lastAnnotation.getNextSibling() == null) { + tokenAfterLast = modifiers.getNextSibling(); + } + else { + tokenAfterLast = lastAnnotation.getNextSibling(); + } + + if (tokenAfterLast.getLineNo() > lastAnnotation.getLineNo()) { + resultNode = tokenAfterLast; + } + else { + final int lastAnnotationLineNumber = lastAnnotation.getLineNo(); + while (lastAnnotation.getPreviousSibling() != null + && lastAnnotation.getPreviousSibling().getLineNo() + == lastAnnotationLineNumber) { + + lastAnnotation = lastAnnotation.getPreviousSibling(); + } + resultNode = lastAnnotation; + } + } } - final int lastAnnotationLineNumber = lastAnnotation.getLineNo(); - while (lastAnnotation.getPreviousSibling() != null - && lastAnnotation.getPreviousSibling().getLineNo() == lastAnnotationLineNumber) { - lastAnnotation = lastAnnotation.getPreviousSibling(); - } - return lastAnnotation; + return resultNode; } /**