Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 18e91f1

Browse files
cushonError Prone Team
authored and
Error Prone Team
committedJan 31, 2024
Remove references to -XepOpt:Android:Java8Libs
PiperOrigin-RevId: 603126091
1 parent 4eb812d commit 18e91f1

File tree

3 files changed

+6
-38
lines changed

3 files changed

+6
-38
lines changed
 

‎core/src/main/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsChecker.java

+5-22
Original file line numberDiff line numberDiff line change
@@ -22,36 +22,31 @@
2222

2323
import com.google.common.io.Resources;
2424
import com.google.errorprone.BugPattern;
25-
import com.google.errorprone.ErrorProneFlags;
2625
import com.google.errorprone.VisitorState;
2726
import com.google.errorprone.matchers.Description;
2827
import com.google.errorprone.matchers.Matcher;
2928
import com.google.protobuf.ExtensionRegistry;
3029
import com.sun.source.tree.ExpressionTree;
3130
import java.io.IOException;
3231
import java.io.UncheckedIOException;
33-
import javax.inject.Inject;
3432

3533
/**
3634
* Checks for uses of classes, fields, or methods that are not compatible with legacy Android
3735
* devices. As of Android N, that includes all of JDK8 (which is only supported on Nougat) except
3836
* type and repeated annotations, which are compiled in a backwards compatible way.
3937
*/
4038
@BugPattern(
41-
name = "AndroidJdkLibsChecker",
4239
altNames = "AndroidApiChecker",
4340
summary = "Use of class, field, or method that is not compatible with legacy Android devices",
4441
severity = ERROR)
4542
// TODO(b/32513850): Allow Android N+ APIs, e.g., by computing API diff using android.jar
4643
public class AndroidJdkLibsChecker extends ApiDiffChecker {
4744

48-
private static ApiDiff loadApiDiff(boolean allowJava8) {
45+
private static ApiDiff loadApiDiff() {
4946
try {
5047
byte[] diffData =
5148
Resources.toByteArray(
52-
Resources.getResource(
53-
AndroidJdkLibsChecker.class,
54-
allowJava8 ? "android_java8.binarypb" : "android.binarypb"));
49+
Resources.getResource(AndroidJdkLibsChecker.class, "android_java8.binarypb"));
5550
ApiDiffProto.Diff diff =
5651
ApiDiffProto.Diff.newBuilder()
5752
.mergeFrom(diffData, ExtensionRegistry.getEmptyRegistry())
@@ -62,20 +57,8 @@ private static ApiDiff loadApiDiff(boolean allowJava8) {
6257
}
6358
}
6459

65-
private final boolean allowJava8;
66-
67-
@Inject
68-
AndroidJdkLibsChecker(ErrorProneFlags flags) {
69-
this(flags.getBoolean("Android:Java8Libs").orElse(false));
70-
}
71-
72-
public AndroidJdkLibsChecker() {
73-
this(false);
74-
}
75-
76-
private AndroidJdkLibsChecker(boolean allowJava8) {
77-
super(loadApiDiff(allowJava8));
78-
this.allowJava8 = allowJava8;
60+
private AndroidJdkLibsChecker() {
61+
super(loadApiDiff());
7962
}
8063

8164
private static final Matcher<ExpressionTree> FOREACH_ON_COLLECTION =
@@ -90,7 +73,7 @@ protected Description check(ExpressionTree tree, VisitorState state) {
9073
if (description.equals(NO_MATCH)) {
9174
return NO_MATCH;
9275
}
93-
if (allowJava8 && FOREACH_ON_COLLECTION.matches(tree, state)) {
76+
if (FOREACH_ON_COLLECTION.matches(tree, state)) {
9477
return NO_MATCH;
9578
}
9679
return description;

‎core/src/main/java/com/google/errorprone/bugpatterns/time/PreferJavaTimeOverload.java

-13
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535

3636
import com.google.common.collect.ImmutableMap;
3737
import com.google.errorprone.BugPattern;
38-
import com.google.errorprone.ErrorProneFlags;
3938
import com.google.errorprone.VisitorState;
4039
import com.google.errorprone.bugpatterns.BugChecker;
4140
import com.google.errorprone.bugpatterns.BugChecker.MethodInvocationTreeMatcher;
@@ -55,7 +54,6 @@
5554
import java.util.Map;
5655
import java.util.Optional;
5756
import java.util.concurrent.TimeUnit;
58-
import javax.inject.Inject;
5957

6058
/** This check suggests the use of {@code java.time}-based APIs, when available. */
6159
@BugPattern(
@@ -125,21 +123,10 @@ public final class PreferJavaTimeOverload extends BugChecker
125123
.onExactClass(JAVA_DURATION)
126124
.namedAnyOf("toNanos", "toMillis", "getSeconds", "toMinutes", "toHours", "toDays");
127125

128-
private final boolean hasJava8LibSupport;
129-
130-
@Inject
131-
PreferJavaTimeOverload(ErrorProneFlags flags) {
132-
this.hasJava8LibSupport = flags.getBoolean("Android:Java8Libs").orElse(false);
133-
}
134-
135126
// TODO(kak): Add support for constructors that accept a <long, TimeUnit> or JodaTime Duration
136127

137128
@Override
138129
public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) {
139-
// don't fire for Android code that doesn't have Java8 library support (b/138965731)
140-
if (state.isAndroidCompatible() && !hasJava8LibSupport) {
141-
return Description.NO_MATCH;
142-
}
143130

144131
// we return no match for a set of explicitly ignored APIs
145132
if (IGNORED_APIS.matches(tree, state)) {

‎core/src/test/java/com/google/errorprone/bugpatterns/apidiff/AndroidJdkLibsCheckerTest.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package com.google.errorprone.bugpatterns.apidiff;
1818

19-
import com.google.common.collect.ImmutableList;
2019
import com.google.errorprone.CompilationTestHelper;
2120
import org.junit.Test;
2221
import org.junit.runner.RunWith;
@@ -27,8 +26,7 @@
2726
public class AndroidJdkLibsCheckerTest extends Java7ApiCheckerTest {
2827

2928
private final CompilationTestHelper allowJava8Helper =
30-
CompilationTestHelper.newInstance(AndroidJdkLibsChecker.class, getClass())
31-
.setArgs(ImmutableList.of("-XepOpt:Android:Java8Libs"));
29+
CompilationTestHelper.newInstance(AndroidJdkLibsChecker.class, getClass());
3230

3331
public AndroidJdkLibsCheckerTest() {
3432
super(AndroidJdkLibsChecker.class);

0 commit comments

Comments
 (0)
Please sign in to comment.