diff options
author | rnveach <rveach02@gmail.com> | 2017-12-15 22:19:29 -0500 |
---|---|---|
committer | Roman Ivanov <romani@users.noreply.github.com> | 2017-12-22 21:07:03 -0800 |
commit | 0c20ec3c398c1c85e12e2c4f1d9b874476ced4df (patch) | |
tree | a5e17251ba6b46f945418a6c5b0635800e328773 | |
parent | 776171b71897fde845e1f1c08f7bd2250e1b203d (diff) | |
download | checkstyle-0c20ec3c398c1c85e12e2c4f1d9b874476ced4df.tar.gz |
Pull #5363: added missing annotation token definition
3 files changed, 26 insertions, 9 deletions
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java index fe671bb88..bc39110db 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java @@ -113,6 +113,7 @@ public class RequireThisCheck extends AbstractCheck { TokenTypes.METHOD_DEF, TokenTypes.CLASS_DEF, TokenTypes.ENUM_DEF, + TokenTypes.ANNOTATION_DEF, TokenTypes.INTERFACE_DEF, TokenTypes.PARAMETER_DEF, TokenTypes.TYPE_ARGUMENT, @@ -193,6 +194,7 @@ public class RequireThisCheck extends AbstractCheck { TokenTypes.CLASS_DEF, TokenTypes.INTERFACE_DEF, TokenTypes.ENUM_DEF, + TokenTypes.ANNOTATION_DEF, TokenTypes.CTOR_DEF, TokenTypes.METHOD_DEF, TokenTypes.SLIST, @@ -252,7 +254,12 @@ public class RequireThisCheck extends AbstractCheck { * @param ast IDENT to check. */ private void processIdent(DetailAST ast) { - final int parentType = ast.getParent().getType(); + int parentType = ast.getParent().getType(); + if (parentType == TokenTypes.EXPR + && ast.getParent().getParent().getParent().getType() + == TokenTypes.ANNOTATION_FIELD_DEF) { + parentType = TokenTypes.ANNOTATION_FIELD_DEF; + } switch (parentType) { case TokenTypes.ANNOTATION_MEMBER_VALUE_PAIR: case TokenTypes.ANNOTATION: @@ -870,14 +877,7 @@ public class RequireThisCheck extends AbstractCheck { */ private static AbstractFrame findFrame(AbstractFrame frame, DetailAST name, boolean lookForMethod) { - final AbstractFrame result; - if (frame == null) { - result = null; - } - else { - result = frame.getIfContains(name, lookForMethod); - } - return result; + return frame.getIfContains(name, lookForMethod); } /** diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheckTest.java index 38ca35151..f1deaf1c0 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheckTest.java @@ -316,6 +316,14 @@ public class RequireThisCheckTest extends AbstractModuleTestSupport { } @Test + public void testAnnotationInterface() throws Exception { + final DefaultConfiguration checkConfig = createModuleConfig(RequireThisCheck.class); + checkConfig.addAttribute("validateOnlyOverlapping", "false"); + final String[] expected = CommonUtils.EMPTY_STRING_ARRAY; + verify(checkConfig, getPath("InputRequireThisAnnotationInterface.java"), expected); + } + + @Test public void test() throws Exception { final DefaultConfiguration checkConfig = createModuleConfig(RequireThisCheck.class); final String[] expected = CommonUtils.EMPTY_STRING_ARRAY; diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/requirethis/InputRequireThisAnnotationInterface.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/requirethis/InputRequireThisAnnotationInterface.java new file mode 100644 index 000000000..b7b35495c --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/requirethis/InputRequireThisAnnotationInterface.java @@ -0,0 +1,9 @@ +package com.puppycrawl.tools.checkstyle.checks.coding.requirethis; + +public @interface InputRequireThisAnnotationInterface { + String DEFAULT_VALUE = "DEFAULT_VALUE"; + + String value() default DEFAULT_VALUE; + + String[] results() default {}; +} |