diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsChecker.java b/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsChecker.java index 0e10bcc79a7..9a1c40c5b60 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsChecker.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsChecker.java @@ -82,6 +82,12 @@ private static String packageName(String className) { return className.substring(0, className.lastIndexOf('/') + 1); } + private static final ImmutableSetMultimap + ADDITIONAL_MEMBERS_REQUIRING_DESUGAR = + ImmutableSetMultimap.builder() + .put("com/google/common/base/Stopwatch", ClassMemberKey.create("elapsed", "")) + .build(); + private static class ClassSupportInfo { private final ImmutableSet allowedPackages; @@ -95,7 +101,7 @@ private static class ClassSupportInfo { allowedClasses = allowJava8 ? DESUGAR_ALLOWED_CLASSES : BASE_ALLOWED_CLASSES; bannedClasses = BASE_BANNED_CLASSES; allowedMembers = allowJava8 ? DESUGAR_ALLOWED_MEMBERS : ImmutableSetMultimap.of(); - bannedMembers = allowJava8 ? DESUGAR_BANNED_MEMBERS : ImmutableSetMultimap.of(); + bannedMembers = allowJava8 ? DESUGAR_BANNED_MEMBERS : ADDITIONAL_MEMBERS_REQUIRING_DESUGAR; } private boolean memberIsAllowed(Map.Entry member) { diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsCheckerTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsCheckerTest.java index 2d68fc4a049..0aa612f949a 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsCheckerTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsCheckerTest.java @@ -100,6 +100,21 @@ public void typeKind() { .doTest(); } + @Test + public void stopwatchElapsed() { + compilationHelper + .addSourceLines( + "Test.java", + "import com.google.common.base.Stopwatch;", + "public class Test {", + " Object o() {", + " // BUG: Diagnostic contains:", + " return Stopwatch.createStarted().elapsed();", + " }", + "}") + .doTest(); + } + @Test public void allowJava8Flag_packageAllowed() { allowJava8Helper