Update Doc
Bug: b/267149288
Change-Id: I4ee5ed695608ff54907c8be3aea70a218103171a
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/GenerateLintFiles.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/GenerateLintFiles.java
index 422be3d..6b22484 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/GenerateLintFiles.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/lint/GenerateLintFiles.java
@@ -78,6 +78,9 @@
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.
+ private static final AndroidApiLevel MAX_TESTED_ANDROID_API_LEVEL = AndroidApiLevel.T;
+
private final DexItemFactory factory = new DexItemFactory();
private final Reporter reporter = new Reporter();
private final InternalOptions options =
@@ -412,7 +415,7 @@
private void run() throws Exception {
// Run over all the API levels that the desugared library can be compiled with.
- for (int apiLevel = AndroidApiLevel.T.getLevel();
+ for (int apiLevel = MAX_TESTED_ANDROID_API_LEVEL.getLevel();
apiLevel >= desugaredLibrarySpecification.getRequiredCompilationApiLevel().getLevel();
apiLevel--) {
System.out.println("Generating lint files for compile API " + apiLevel);
@@ -842,7 +845,8 @@
private void generateDesugaredLibraryApisDocumetation() throws Exception {
PrintStream ps = new PrintStream(Files.newOutputStream(outputDirectory.resolve("apis.html")));
// Full classes added.
- SupportedMethods supportedMethods = collectSupportedMethods(AndroidApiLevel.Q, x -> true);
+ SupportedMethods supportedMethods =
+ collectSupportedMethods(MAX_TESTED_ANDROID_API_LEVEL, x -> true);
supportedMethods.classesWithAllMethodsSupported.stream()
.sorted(Comparator.comparing(clazz -> clazz.type.toSourceString()))
.forEach(clazz -> generateClassHTML(ps, clazz, true, field -> true, method -> true));
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java
index a33e2d3..55330bc 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/LintFilesTest.java
@@ -4,7 +4,9 @@
package com.android.tools.r8.desugar.desugaredlibrary;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK11;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK11_MINIMAL;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK11_PATH;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.JDK8;
import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8AndAll3Jdk11;
import static org.junit.Assert.assertEquals;
@@ -110,6 +112,9 @@
supportsMethodButNotAllMethodsInClass(
"java/util/stream/IntStream#allMatch(Ljava/util/function/IntPredicate;)Z"));
+ assertEquals(
+ libraryDesugaringSpecification != JDK8, supportsAllMethodsOf("java/util/concurrent/Flow"));
+
// Checks specific methods are supported or not in JDK8, all is supported in JDK11.
if (libraryDesugaringSpecification == JDK8) {
// Supported methods on ConcurrentHashMap.
@@ -225,5 +230,8 @@
// check that the doc generation ran without error and looks sane.
assertEquals("<tr>", html.get(0));
assertEquals("</tr>", html.get(html.size() - 2));
+ if (libraryDesugaringSpecification == JDK11 || libraryDesugaringSpecification == JDK11_PATH) {
+ assertEquals(7, html.stream().filter(s -> s.contains("Flow")).count());
+ }
}
}