RequireThisCheck.java
com.puppycrawl.tools.checkstyle.checks.coding.RequireThisCheck
diff --git a/.ci/pitest-survival-check-html.sh b/.ci/pitest-survival-check-html.sh
index 26078f26936..b783c639836 100755
--- a/.ci/pitest-survival-check-html.sh
+++ b/.ci/pitest-survival-check-html.sh
@@ -199,7 +199,6 @@ pitest-coding-2)
pitest-coding-require-this-check)
declare -a ignoredItems=(
"RequireThisCheck.java.html: && ast.getParent().getType() != TokenTypes.LITERAL_CATCH) { | "
- "RequireThisCheck.java.html: if (isAnonymousClassDef(ast)) { | "
"RequireThisCheck.java.html: if (toVisit == null) { | "
"RequireThisCheck.java.html: && parent.getType() != TokenTypes.CTOR_DEF | "
"RequireThisCheck.java.html: && lastChild.getType() == TokenTypes.OBJBLOCK; | "
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 43379a9deb5..519185510cd 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
@@ -443,6 +443,14 @@ public void testRecordsDefault() throws Exception {
expected);
}
+ @Test
+ public void testAnonymousInnerClass() throws Exception {
+ final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
+
+ verifyWithInlineConfigParser(
+ getPath("InputRequireThisAnonymousInnerClass.java"), expected);
+ }
+
@Test
public void testUnusedMethod() throws Exception {
final DetailAstImpl ident = new DetailAstImpl();
diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/requirethis/InputRequireThisAnonymousInnerClass.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/requirethis/InputRequireThisAnonymousInnerClass.java
new file mode 100644
index 00000000000..91033a8084b
--- /dev/null
+++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/coding/requirethis/InputRequireThisAnonymousInnerClass.java
@@ -0,0 +1,46 @@
+/*
+RequireThis
+checkFields = (default)true
+checkMethods = (default)true
+validateOnlyOverlapping = (default)true
+
+
+*/
+
+package com.puppycrawl.tools.checkstyle.checks.coding.requirethis;
+
+public class InputRequireThisAnonymousInnerClass {
+ int a = 12;
+
+ void method() {
+ int a = 1;
+ InputRequireThisAnonymousInnerClass obj =
+ new InputRequireThisAnonymousInnerClass() {
+ void method() {
+ a += 1;
+ }
+ };
+ }
+
+ void anotherMethod() {
+ int var1 = 12;
+ int var2 = 13;
+ Foo obj = new Foo() {
+ void method() {
+ var2 += var1;
+ }
+ };
+ obj.getClass();
+ }
+}
+
+class SharkFoo {
+ int var1 = 12;
+}
+
+class Foo {
+ int var2 = 13;
+
+ class SharkFoo {
+ }
+}