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);
     }