Don't desugar interface methods when building main-dex root set.
Bug: b/244970402
Change-Id: I9a4557137a57a9a347d40611d153a4546ccb9004
diff --git a/src/main/java/com/android/tools/r8/shaking/RootSetUtils.java b/src/main/java/com/android/tools/r8/shaking/RootSetUtils.java
index 7275e72..fddac9e 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetUtils.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetUtils.java
@@ -1706,7 +1706,8 @@
}
private boolean isInterfaceMethodNeedingDesugaring(ProgramDefinition item) {
- return options.isInterfaceMethodDesugaringEnabled()
+ return !isMainDexRootSetBuilder()
+ && options.isInterfaceMethodDesugaringEnabled()
&& item.isMethod()
&& item.asMethod().getHolder().isInterface()
&& !item.asMethod().getDefinition().isClassInitializer()
diff --git a/src/test/java/com/android/tools/r8/desugar/staticinterfacemethod/RegressionB244970402.java b/src/test/java/com/android/tools/r8/desugar/staticinterfacemethod/RegressionB244970402.java
index e3bfcf4..58142a8 100644
--- a/src/test/java/com/android/tools/r8/desugar/staticinterfacemethod/RegressionB244970402.java
+++ b/src/test/java/com/android/tools/r8/desugar/staticinterfacemethod/RegressionB244970402.java
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.desugar.staticinterfacemethod;
-import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
@@ -27,8 +26,7 @@
this.parameters = parameters;
}
- // TODO(b/244970402): This should not fail.
- @Test(expected = CompilationFailedException.class)
+ @Test
public void testR8() throws Exception {
testForR8(parameters.getBackend())
.addProgramClasses(I.class, TestClass.class)