Ignore java override warning in L8 compilation

Bug: 219741905
Change-Id: I40100dc623f6ab792022e3409d33658bf3cd59d8
diff --git a/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java b/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java
index 35a2dd6..b781f0b 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java
@@ -231,6 +231,9 @@
 
   private static void warnJavaLibraryOverride(
       InternalOptions options, Set<DexType> javaLibraryOverride) {
+    if (options.ignoreJavaLibraryOverride) {
+      return;
+    }
     String joined =
         javaLibraryOverride.stream()
             .sorted()
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineSpecificationConverter.java b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineSpecificationConverter.java
index 0701952..51516d4 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineSpecificationConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/desugaredlibrary/specificationconversion/HumanToMachineSpecificationConverter.java
@@ -16,6 +16,7 @@
 import com.android.tools.r8.graph.DexReference;
 import com.android.tools.r8.graph.DexString;
 import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.graph.DirectMappedDexApplication;
 import com.android.tools.r8.ir.desugar.desugaredlibrary.DesugaredLibraryAmender;
 import com.android.tools.r8.ir.desugar.desugaredlibrary.humanspecification.HumanDesugaredLibrarySpecification;
 import com.android.tools.r8.ir.desugar.desugaredlibrary.humanspecification.HumanRewritingFlags;
@@ -154,7 +155,11 @@
   private DexApplication readApp(AndroidApp inputApp, InternalOptions options) throws IOException {
     ApplicationReader applicationReader = new ApplicationReader(inputApp, options, Timing.empty());
     ExecutorService executorService = ThreadUtils.getExecutorService(options);
-    return applicationReader.read(executorService).toDirect();
+    assert !options.ignoreJavaLibraryOverride;
+    options.ignoreJavaLibraryOverride = true;
+    DirectMappedDexApplication app = applicationReader.read(executorService).toDirect();
+    options.ignoreJavaLibraryOverride = false;
+    return app;
   }
 
   void warnMissingReferences(String message, Set<? extends DexReference> missingReferences) {
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index ea4779a..3fec28a 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -349,6 +349,8 @@
   public boolean invalidDebugInfoStrict =
       System.getProperty("com.android.tools.r8.strictdebuginfo") != null;
 
+  public boolean ignoreJavaLibraryOverride = false;
+
   // When dexsplitting we ignore main dex classes missing in the application. These will be
   // fused together by play store when shipped for pre-L devices.
   public boolean ignoreMainDexMissingClasses = false;
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
index 744e127..2684b3b 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryContentTest.java
@@ -119,18 +119,7 @@
     ToolHelper.runL8(l8Builder.build(), options -> {});
     CodeInspector codeInspector = new CodeInspector(desugaredLib);
     assertCorrect(codeInspector);
-    assertOneWarning(diagnosticsHandler);
-  }
-
-  private void assertOneWarning(TestDiagnosticMessagesImpl diagnosticsHandler) {
-    if (requiresAnyCoreLibDesugaring(parameters)) {
-      String msg = diagnosticsHandler.getWarnings().get(0).getDiagnosticMessage();
-      assertTrue(
-          msg.contains(
-              "The following library types, prefixed by java., are present both as library and non"
-                  + " library classes"));
-    }
-    diagnosticsHandler.assertNoErrors();
+    diagnosticsHandler.assertNoMessages();
   }
 
   private void assertCorrect(CodeInspector inspector) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java
index ac49689..0c61a06 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryWarningTest.java
@@ -4,8 +4,6 @@
 
 package com.android.tools.r8.desugar.desugaredlibrary;
 
-import static org.junit.Assert.assertTrue;
-
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.L8Command;
 import com.android.tools.r8.OutputMode;
@@ -67,19 +65,6 @@
           Arrays.asList(FUNCTION_KEEP.split(System.lineSeparator())), Origin.unknown());
     }
     ToolHelper.runL8(l8Builder.build(), options -> {});
-    boolean hasWarning = requiresAnyCoreLibDesugaring(parameters);
-    diagnosticsHandler.assertNoErrors();
-    if (hasWarning) {
-      assertTrue(
-          diagnosticsHandler
-              .getWarnings()
-              .get(0)
-              .getDiagnosticMessage()
-              .contains(
-                  "The following library types, prefixed by java., are present both as library and"
-                      + " non library classes:"));
-    } else {
-      diagnosticsHandler.assertNoWarnings();
-    }
+    diagnosticsHandler.assertNoMessages();
   }
 }