Commit ce7cbad0 authored by Aiden Benner's avatar Aiden Benner Committed by Commit Bot

Turn off RedundantFieldInitCheck for classes that implement IInterface

See bugs for rationale

Bug: 904912,906160
Change-Id: Ib3e45f2eee2189e90179a6857e5878342c9393ce
Reviewed-on: https://chromium-review.googlesource.com/c/1340900Reviewed-by: default avataragrieve <agrieve@chromium.org>
Commit-Queue: Aiden Benner <abenner@google.com>
Cr-Commit-Position: refs/heads/master@{#608954}
parent 914c1688
......@@ -10,8 +10,10 @@ import com.google.errorprone.VisitorState;
import com.google.errorprone.bugpatterns.BugChecker;
import com.google.errorprone.fixes.SuggestedFix;
import com.google.errorprone.matchers.Description;
import com.google.errorprone.matchers.Matcher;
import com.google.errorprone.matchers.Matchers;
import com.google.errorprone.util.ASTHelpers;
import com.sun.source.tree.ClassTree;
import com.sun.source.tree.ExpressionTree;
import com.sun.source.tree.LiteralTree;
import com.sun.source.tree.ModifiersTree;
......@@ -31,6 +33,9 @@ import javax.lang.model.element.Modifier;
link = "https://issuetracker.google.com/issues/37124982")
public class NoRedundantFieldInitCheck
extends BugChecker implements BugChecker.VariableTreeMatcher {
private static final Matcher<ClassTree> SUBTYPE_OF_IINTERFACE =
Matchers.isSubtypeOf("android.os.IInterface");
@Override
public Description matchVariable(VariableTree variableTree, VisitorState visitorState) {
// Only match on fields.
......@@ -41,6 +46,12 @@ public class NoRedundantFieldInitCheck
Symbol.VarSymbol variableSymbol = ASTHelpers.getSymbol(variableTree);
Symbol.ClassSymbol enclosingClass = ASTHelpers.enclosingClass(variableSymbol);
// Temporarily turn off checks if the enclosing class is a subclass of IInterface.
if (SUBTYPE_OF_IINTERFACE.matches(
ASTHelpers.findClass(enclosingClass, visitorState), visitorState)) {
return Description.NO_MATCH;
}
// Skip fields that are final.
ModifiersTree modifiers = variableTree.getModifiers();
if (modifiers.getFlags().contains(Modifier.FINAL)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment