From 296fb4e0e4752c7c2e9752da612224d40ecdf2d1 Mon Sep 17 00:00:00 2001 From: ghm Date: Mon, 17 Mar 2025 07:12:59 -0700 Subject: [PATCH] Hardcode `BoxedPrimitiveEquality:ExemptStaticConstants = false`. PiperOrigin-RevId: 737602824 --- .../bugpatterns/BoxedPrimitiveEquality.java | 29 ++----------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/BoxedPrimitiveEquality.java b/core/src/main/java/com/google/errorprone/bugpatterns/BoxedPrimitiveEquality.java index 469fa29c2ce..abdefdf9232 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/BoxedPrimitiveEquality.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/BoxedPrimitiveEquality.java @@ -17,17 +17,11 @@ package com.google.errorprone.bugpatterns; import static com.google.errorprone.BugPattern.SeverityLevel.ERROR; -import static com.google.errorprone.util.ASTHelpers.getSymbol; import static com.google.errorprone.util.ASTHelpers.getType; -import static com.google.errorprone.util.ASTHelpers.isStatic; import com.google.errorprone.BugPattern; -import com.google.errorprone.ErrorProneFlags; import com.google.errorprone.VisitorState; import com.sun.source.tree.ExpressionTree; -import com.sun.tools.javac.code.Flags; -import com.sun.tools.javac.code.Symbol; -import com.sun.tools.javac.code.Symbol.VarSymbol; import com.sun.tools.javac.code.Type; import javax.inject.Inject; @@ -40,35 +34,16 @@ altNames = {"NumericEquality"}, severity = ERROR) public final class BoxedPrimitiveEquality extends AbstractReferenceEquality { - private final boolean exemptStaticConstants; - @Inject - BoxedPrimitiveEquality(ErrorProneFlags flags) { - this.exemptStaticConstants = - flags.getBoolean("BoxedPrimitiveEquality:ExemptStaticConstants").orElse(false); - } + BoxedPrimitiveEquality() {} @Override protected boolean matchArgument(ExpressionTree tree, VisitorState state) { var type = getType(tree); - if (type == null || !isRelevantType(type, state)) { - return false; - } - - // Using a static final field as a sentinel is OK - // TODO(cushon): revisit this assumption carried over from NumericEquality - return !(exemptStaticConstants && isStaticConstant(getSymbol(tree))); + return type != null && isRelevantType(type, state); } private boolean isRelevantType(Type type, VisitorState state) { return !type.isPrimitive() && state.getTypes().unboxedType(type).isPrimitive(); } - - private static boolean isStaticConstant(Symbol sym) { - return sym instanceof VarSymbol && isFinal(sym) && isStatic(sym); - } - - public static boolean isFinal(Symbol s) { - return (s.flags() & Flags.FINAL) == Flags.FINAL; - } }