diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/SunApi.java b/core/src/main/java/com/google/errorprone/bugpatterns/SunApi.java index d7499eddbc4..b2b9b502713 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/SunApi.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/SunApi.java @@ -48,6 +48,9 @@ public Description matchIdentifier(IdentifierTree tree, VisitorState state) { @Override public Description matchMemberSelect(MemberSelectTree tree, VisitorState state) { + if (tree.getIdentifier().equals(state.getNames()._class)) { + return NO_MATCH; + } return match(tree, state); } diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/SunApiTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/SunApiTest.java index 89b6ec8b188..94781d68645 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/SunApiTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/SunApiTest.java @@ -36,6 +36,12 @@ public void positive() { class Test { // BUG: Diagnostic contains: sun.misc.Unsafe sun.misc.Unsafe u; + + Object u2 = + // BUG: Diagnostic contains: sun.misc.Unsafe + sun.misc.Unsafe + // But there is no additional diagnostic here! + .class; } """) .doTest(); @@ -50,6 +56,12 @@ public void positiveSource8() { class Test { // BUG: Diagnostic contains: sun.misc.Unsafe sun.misc.Unsafe u; + + Object u2 = + // BUG: Diagnostic contains: sun.misc.Unsafe + sun.misc.Unsafe + // But there is no additional diagnostic here! + .class; } """) .setArgs("-source", "8", "-target", "8")