Skip to content

Commit

Permalink
Hardcode DoNotCallChecker:CheckMemberReferencesToThirdPartyTypes
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 421784451
  • Loading branch information
graememorgan authored and Error Prone Team committed Jan 14, 2022
1 parent ccb0127 commit 9889e7a
Showing 1 changed file with 12 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
import com.sun.tools.javac.code.Symbol.VarSymbol;
import com.sun.tools.javac.code.Type;
import com.sun.tools.javac.code.Types;
import java.util.Map.Entry;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
import javax.lang.model.element.Modifier;
Expand Down Expand Up @@ -135,12 +135,9 @@ public class DoNotCallChecker extends BugChecker
static final String DO_NOT_CALL = "com.google.errorprone.annotations.DoNotCall";

private final boolean checkAssignedTypes;
private final boolean checkMemberReferencesToThirdPartyTypes;

public DoNotCallChecker(ErrorProneFlags flags) {
this.checkAssignedTypes = flags.getBoolean("DoNotCallChecker:CheckAssignedTypes").orElse(true);
this.checkMemberReferencesToThirdPartyTypes =
flags.getBoolean("DoNotCallChecker:CheckMemberReferencesToThirdPartyTypes").orElse(true);
}

@Override
Expand Down Expand Up @@ -197,28 +194,24 @@ public Description matchCompilationUnit(CompilationUnitTree tree, VisitorState s
new SuppressibleTreePathScanner<Void, Void>() {
@Override
public Void visitMethodInvocation(MethodInvocationTree tree, Void unused) {
for (Entry<Matcher<ExpressionTree>, String> matcher : THIRD_PARTY_METHODS.entrySet()) {
if (matcher.getKey().matches(tree, state)) {
state.reportMatch(buildDescription(tree).setMessage(matcher.getValue()).build());
return super.visitMethodInvocation(tree, null);
}
}
checkTree(tree, getSymbol(tree), state);
handleTree(tree, getSymbol(tree));
return super.visitMethodInvocation(tree, null);
}

@Override
public Void visitMemberReference(MemberReferenceTree tree, Void unused) {
if (checkMemberReferencesToThirdPartyTypes) {
for (Entry<Matcher<ExpressionTree>, String> matcher : THIRD_PARTY_METHODS.entrySet()) {
if (matcher.getKey().matches(tree, state)) {
state.reportMatch(buildDescription(tree).setMessage(matcher.getValue()).build());
return super.visitMemberReference(tree, null);
}
handleTree(tree, getSymbol(tree));
return super.visitMemberReference(tree, null);
}

private void handleTree(ExpressionTree tree, MethodSymbol symbol) {
for (Map.Entry<Matcher<ExpressionTree>, String> matcher : THIRD_PARTY_METHODS.entrySet()) {
if (matcher.getKey().matches(tree, state)) {
state.reportMatch(buildDescription(tree).setMessage(matcher.getValue()).build());
return;
}
}
checkTree(tree, getSymbol(tree), state);
return super.visitMemberReference(tree, null);
checkTree(tree, symbol, state);
}

private void checkTree(ExpressionTree tree, MethodSymbol sym, VisitorState state) {
Expand Down

0 comments on commit 9889e7a

Please sign in to comment.