From 7f9ce8bbcf0275a713fa335f9a2c1ab43bc13b22 Mon Sep 17 00:00:00 2001 From: ghm Date: Mon, 20 Mar 2023 11:08:55 -0700 Subject: [PATCH] UnusedNestedClass: don't complain about classes whose name begins with "Unused". PiperOrigin-RevId: 518021137 --- .../errorprone/bugpatterns/UnusedNestedClass.java | 5 ++++- .../errorprone/bugpatterns/UnusedNestedClassTest.java | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/UnusedNestedClass.java b/core/src/main/java/com/google/errorprone/bugpatterns/UnusedNestedClass.java index 2981f111f92..57aebe9705d 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/UnusedNestedClass.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/UnusedNestedClass.java @@ -16,6 +16,7 @@ package com.google.errorprone.bugpatterns; +import static com.google.common.base.Ascii.toLowerCase; import static com.google.errorprone.BugPattern.SeverityLevel.WARNING; import static com.google.errorprone.matchers.Description.NO_MATCH; import static com.google.errorprone.util.ASTHelpers.canBeRemoved; @@ -91,7 +92,9 @@ public Void visitClass(ClassTree classTree, Void unused) { } private boolean ignoreUnusedClass(ClassTree classTree, VisitorState state) { - return isSuppressed(classTree, state) || shouldKeep(classTree); + return isSuppressed(classTree, state) + || shouldKeep(classTree) + || toLowerCase(classTree.getSimpleName().toString()).startsWith("unused"); } } diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/UnusedNestedClassTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/UnusedNestedClassTest.java index 003935411f8..f1143e555db 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/UnusedNestedClassTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/UnusedNestedClassTest.java @@ -43,6 +43,17 @@ public void positive() { .doTest(); } + @Test + public void exemptedByUnusedPrefix() { + compilationHelper + .addSourceLines( + "Test.java", // + "class A {", + " private class UnusedClass {}", + "}") + .doTest(); + } + @Test public void nonPrivateNestedClass_noWarning() { compilationHelper