From f8cb0a41bcb41f659ab5c90aaec4b86ace25feb4 Mon Sep 17 00:00:00 2001 From: Travis Schneeberger Date: Wed, 1 Apr 2009 02:33:26 +0000 Subject: [PATCH] fixing bug#2123003 --- .../checks/coding/RequireThisCheck.java | 8 ++++++++ .../checkstyle/coding/InputRequireThis.java | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java index 37e4a7dd9..a346cc726 100755 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/coding/RequireThisCheck.java @@ -138,6 +138,14 @@ public class RequireThisCheck extends DeclarationCollector { final int parentType = aAST.getParent().getType(); + if (parentType == TokenTypes.ANNOTATION_MEMBER_VALUE_PAIR + || parentType == TokenTypes.ANNOTATION + || parentType == TokenTypes.ANNOTATION_FIELD_DEF) + { + //cannot refer to 'this' from annotations + return; + } + // let's check method calls if (parentType == TokenTypes.METHOD_CALL) { if (mCheckMethods) { diff --git a/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputRequireThis.java b/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputRequireThis.java index 8f02a85aa..88115f850 100755 --- a/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputRequireThis.java +++ b/src/testinputs/com/puppycrawl/tools/checkstyle/coding/InputRequireThis.java @@ -51,3 +51,22 @@ enum MyEnum z = 0; } } + +class Bug2123003 { + @Rock(band = "GnR") + private String band; + + class Inner { + @Rock(band = {"GnR"}) + private String band; + } + + class Inner2 { + @Rock(band = {(true) ? "GnR" : "Tool"}) + private String band; + } + + @interface Rock { + String[] band() default "Metallica"; + } +} \ No newline at end of file