From 1f1d927e0fd15c51f0b656db697ae2c301622999 Mon Sep 17 00:00:00 2001 From: ghm Date: Thu, 16 Oct 2025 07:16:22 -0700 Subject: [PATCH] TooManyParameters: treat any annotation containing "Inject" as a stop-annotation. PiperOrigin-RevId: 820220543 --- .../google/errorprone/bugpatterns/TooManyParameters.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/TooManyParameters.java b/core/src/main/java/com/google/errorprone/bugpatterns/TooManyParameters.java index a0bdfffa521..5f73787b458 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/TooManyParameters.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/TooManyParameters.java @@ -53,9 +53,6 @@ public class TooManyParameters extends BugChecker implements MethodTreeMatcher { "java.lang.Deprecated", "java.lang.Override", // dependency injection annotations - "jakarta.inject.Inject", - "javax.inject.Inject", - "com.google.inject.Inject", "com.google.inject.Provides", // JUnit @Test methods are never directly invoked (most of the time they don't even have // parameters, unless it's a parameterized test --- which still are not directly @@ -108,6 +105,10 @@ private static boolean shouldApplyApiChecks(MethodTree tree, VisitorState state) if (isRecord(symbol)) { return false; } + if (tree.getModifiers().getAnnotations().stream() + .anyMatch(a -> getSymbol(a).getSimpleName().toString().contains("Inject"))) { + return false; + } return METHOD_ANNOTATIONS_TO_IGNORE.stream().noneMatch(a -> hasAnnotation(tree, a, state)) && methodIsPublicAndNotAnOverride(symbol, state); }