Merge "Don't warn on missing desugared java8 methods"
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
index 4e91c62..a9a571f 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
@@ -151,6 +151,10 @@
InvokeStatic invokeStatic = instruction.asInvokeStatic();
DexMethod method = invokeStatic.getInvokedMethod();
DexClass clazz = findDefinitionFor(method.holder);
+ if (Java8MethodRewriter.hasJava8MethodRewritePrefix(method.holder)) {
+ // We did not create this code yet, but it will not require rewriting.
+ continue;
+ }
if (clazz == null) {
// NOTE: leave unchanged those calls to undefined targets. This may lead to runtime
// exception but we can not report it as error since it can also be the intended
diff --git a/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java b/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java
index 053ac5c..4d5ade8 100644
--- a/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java
@@ -4,7 +4,6 @@
package com.android.tools.r8.desugar;
-import com.android.tools.r8.D8TestCompileResult;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.utils.AndroidApiLevel;
import java.nio.file.Path;
@@ -34,29 +33,27 @@
String jvmOutput = testForJvm()
.addTestClasspath()
.run(MergeRun.class).getStdOut();
-
// See b/123242448
Path zip1 = temp.newFile("first.zip").toPath();
Path zip2 = temp.newFile("second.zip").toPath();
- Path zip3 = temp.newFile("third.zip").toPath();
- D8TestCompileResult result1 =
- testForD8()
- .setMinApi(AndroidApiLevel.L)
- .addProgramClasses(MergeRun.class, MergeInputB.class)
- .compile()
- .writeToZip(zip1);
- D8TestCompileResult result2 =
- testForD8()
- .setMinApi(AndroidApiLevel.L)
- .addProgramClasses(MergeInputA.class)
- .compile()
- .writeToZip(zip2);
-
+ testForD8()
+ .setMinApi(AndroidApiLevel.L)
+ .addProgramClasses(MergeRun.class, MergeInputB.class)
+ .compile()
+ .assertNoMessages()
+ .writeToZip(zip1);
+ testForD8()
+ .setMinApi(AndroidApiLevel.L)
+ .addProgramClasses(MergeInputA.class)
+ .compile()
+ .assertNoMessages()
+ .writeToZip(zip2);
testForD8()
.addProgramFiles(zip1, zip2)
.setMinApi(AndroidApiLevel.L)
.compile()
+ .assertNoMessages()
.run(MergeRun.class)
.assertSuccessWithOutput(jvmOutput);
}