|
20 | 20 | import static com.google.errorprone.util.ASTHelpers.getGeneratedBy; |
21 | 21 | import static com.google.errorprone.util.ASTHelpers.getSymbol; |
22 | 22 | import static com.google.errorprone.util.ASTHelpers.getType; |
| 23 | +import static com.google.errorprone.util.ASTHelpers.isGeneratedConstructor; |
23 | 24 | import static com.google.errorprone.util.FindIdentifiers.findIdent; |
24 | 25 | import static com.sun.tools.javac.code.Kinds.KindSelector.VAL_TYP; |
25 | 26 | import static java.util.stream.Collectors.toCollection; |
|
37 | 38 | import com.google.errorprone.fixes.SuggestedFix; |
38 | 39 | import com.google.errorprone.matchers.Description; |
39 | 40 | import com.google.errorprone.util.ASTHelpers; |
| 41 | +import com.sun.source.tree.ClassTree; |
40 | 42 | import com.sun.source.tree.CompilationUnitTree; |
41 | 43 | import com.sun.source.tree.IdentifierTree; |
42 | 44 | import com.sun.source.tree.ImportTree; |
43 | 45 | import com.sun.source.tree.MemberSelectTree; |
| 46 | +import com.sun.source.tree.MethodTree; |
44 | 47 | import com.sun.source.tree.Tree; |
45 | 48 | import com.sun.source.util.SimpleTreeVisitor; |
46 | 49 | import com.sun.source.util.TreePath; |
@@ -86,6 +89,25 @@ public Void visitImport(ImportTree importTree, Void unused) { |
86 | 89 | return null; |
87 | 90 | } |
88 | 91 |
|
| 92 | + @Override |
| 93 | + public Void visitClass(ClassTree tree, Void unused) { |
| 94 | + scan(tree.getModifiers(), null); |
| 95 | + scan(tree.getTypeParameters(), null); |
| 96 | + // Some anonymous classes have an extends clause which is fully qualified. Just ignore it. |
| 97 | + if (!getSymbol(tree).isAnonymous()) { |
| 98 | + scan(tree.getExtendsClause(), null); |
| 99 | + scan(tree.getImplementsClause(), null); |
| 100 | + } |
| 101 | + scan(tree.getMembers(), null); |
| 102 | + return null; |
| 103 | + } |
| 104 | + |
| 105 | + @Override |
| 106 | + public Void visitMethod(MethodTree tree, Void unused) { |
| 107 | + // Some generated constructors sneak in a fully qualified argument. |
| 108 | + return isGeneratedConstructor(tree) ? null : super.visitMethod(tree, null); |
| 109 | + } |
| 110 | + |
89 | 111 | @Override |
90 | 112 | public Void visitMemberSelect(MemberSelectTree memberSelectTree, Void unused) { |
91 | 113 | if (!shouldIgnore()) { |
|
0 commit comments