Update SupportedClasses to Android U
Change-Id: If6088d76dec42b876faf7ed36a42b08b605de92f
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/AbstractGenerateFiles.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/AbstractGenerateFiles.java
index c76c17f..4a43131 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/AbstractGenerateFiles.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/AbstractGenerateFiles.java
@@ -31,7 +31,7 @@
private static final String ANDROID_JAR_PATTERN = "third_party/android_jar/lib-v%d/android.jar";
// If we increment this api level, we need to verify everything works correctly.
- static final AndroidApiLevel MAX_TESTED_ANDROID_API_LEVEL = AndroidApiLevel.T;
+ static final AndroidApiLevel MAX_TESTED_ANDROID_API_LEVEL = AndroidApiLevel.U;
private final DexItemFactory factory = new DexItemFactory();
private final Reporter reporter = new Reporter();
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/SupportedClasses.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/SupportedClasses.java
index f6eb4e4..8d01c4b 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/SupportedClasses.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/SupportedClasses.java
@@ -22,6 +22,12 @@
import java.util.function.BiConsumer;
import java.util.function.Consumer;
+/**
+ * A SupportedClasses describes what classes desugared library supports. On top of the specification
+ * flags, supportedClasses describes in detail which member is supported and the edge cases. For
+ * example, it details if a member is not supported at a given min-api level, or if a supported
+ * member is absent from the latest android.jar.
+ */
public class SupportedClasses {
private final Map<DexType, SupportedClass> supportedClasses;
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/PartialDesugaringTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/PartialDesugaringTest.java
index 6e3ea69..dd7c1cf 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/PartialDesugaringTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/PartialDesugaringTest.java
@@ -62,23 +62,26 @@
AndroidApiLevel.Q,
AndroidApiLevel.R,
AndroidApiLevel.S,
- AndroidApiLevel.T);
+ AndroidApiLevel.T,
+ AndroidApiLevel.U);
}
// TODO(b/268425188): Fix remaining failures.
private static final Set<String> FAILURES_STREAM =
ImmutableSet.of(
- // The takeWhile/dropWhile methods are not yet present on android.jar.
+ "java.util.stream.Stream java.util.stream.Stream.takeWhile(java.util.function.Predicate)",
+ "java.util.stream.Stream"
+ + " java.util.stream.Stream.dropWhile(java.util.function.Predicate)");
+ private static final Set<String> FAILURES_NUMBER_STREAM =
+ ImmutableSet.of(
"java.util.stream.IntStream"
+ " java.util.stream.IntStream.dropWhile(java.util.function.IntPredicate)",
- "java.util.stream.Stream java.util.stream.Stream.takeWhile(java.util.function.Predicate)",
"java.util.stream.LongStream"
+ " java.util.stream.LongStream.dropWhile(java.util.function.LongPredicate)",
"java.util.stream.DoubleStream"
+ " java.util.stream.DoubleStream.takeWhile(java.util.function.DoublePredicate)",
"java.util.stream.IntStream"
+ " java.util.stream.IntStream.takeWhile(java.util.function.IntPredicate)",
- "java.util.stream.Stream java.util.stream.Stream.dropWhile(java.util.function.Predicate)",
"java.util.stream.LongStream"
+ " java.util.stream.LongStream.takeWhile(java.util.function.LongPredicate)",
"java.util.stream.DoubleStream"
@@ -183,8 +186,11 @@
Set<String> expectedFailures = new HashSet<>();
boolean jdk11NonMinimal = librarySpecification != JDK8 && librarySpecification != JDK11_MINIMAL;
if (jdk11NonMinimal && api.isGreaterThanOrEqualTo(AndroidApiLevel.N)) {
- expectedFailures.addAll(FAILURES_STREAM);
- expectedFailures.addAll(FAILURES_DOUBLE_SUMMARY_STATISTICS);
+ expectedFailures.addAll(FAILURES_NUMBER_STREAM);
+ if (api.isLessThan(AndroidApiLevel.U)) {
+ expectedFailures.addAll(FAILURES_STREAM);
+ expectedFailures.addAll(FAILURES_DOUBLE_SUMMARY_STATISTICS);
+ }
if (api.isLessThan(AndroidApiLevel.T)) {
expectedFailures.addAll(FAILURES_SUMMARY_STATISTICS);
}
@@ -203,7 +209,9 @@
// Interestingly that was added somehow to JDK8 desugared library at some point...
expectedFailures.addAll(FAILURES_TO_ARRAY);
}
- if (jdk11NonMinimal && api.isGreaterThanOrEqualTo(AndroidApiLevel.O)) {
+ if (jdk11NonMinimal
+ && api.isGreaterThanOrEqualTo(AndroidApiLevel.O)
+ && api.isLessThan(AndroidApiLevel.U)) {
expectedFailures.addAll(FAILURES_CHRONOLOGY);
expectedFailures.addAll(FAILURES_DATE_TIME_BUILDER);
}