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; - } }