aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrnveach <rveach02@gmail.com>2017-12-15 22:19:29 -0500
committerRoman Ivanov <romani@users.noreply.github.com>2017-12-22 21:07:03 -0800
commit0c20ec3c398c1c85e12e2c4f1d9b874476ced4df (patch)
treea5e17251ba6b46f945418a6c5b0635800e328773
parent776171b71897fde845e1f1c08f7bd2250e1b203d (diff)
downloadcheckstyle-0c20ec3c398c1c85e12e2c4f1d9b874476ced4df.tar.gz
Pull #5363: added missing annotation token definition
-rw-r--r--src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java18
-rw-r--r--src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheckTest.java8
-rw-r--r--src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/requirethis/InputRequireThisAnnotationInterface.java9
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 {};
+}