Disable LambdaMerger if running in debug mode
Change-Id: I48bd021fdb72c32d5ce8d801501cc5811f5af2db
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index f9c2050..69b022d 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -861,6 +861,7 @@
internal.enableClassStaticizer = false;
internal.outline.enabled = false;
internal.enableEnumUnboxing = false;
+ internal.enableLambdaMerging = false;
}
if (!internal.isShrinking()) {
// If R8 is not shrinking, there is no point in unboxing enums since the unboxed enums
diff --git a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
index ec8d46c..3a795be 100644
--- a/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/lambda/KotlinLambdaMergingDebugTest.java
@@ -3,10 +3,8 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.kotlin.lambda;
-import static com.android.tools.r8.DiagnosticsMatcher.diagnosticException;
-import static org.junit.Assert.assertThrows;
+import static org.hamcrest.CoreMatchers.equalTo;
-import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.CompilationMode;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
@@ -35,21 +33,15 @@
}
@Test
- public void testMergingKStyleLambdasAndReprocessingInDebug() {
- assertThrows(
- CompilationFailedException.class,
- () -> {
- testForR8(parameters.getBackend())
- .setMode(CompilationMode.DEBUG)
- .addProgramFiles(getKotlinJarFile(FOLDER))
- .addProgramFiles(getJavaJarFile(FOLDER))
- .setMinApi(parameters.getApiLevel())
- .addKeepMainRule(MAIN_CLASS)
- .allowDiagnosticWarningMessages()
- .compileWithExpectedDiagnostics(
- diagnostics -> {
- diagnostics.assertErrorsMatch(diagnosticException(AssertionError.class));
- });
- });
+ public void testMergingKStyleLambdasAndReprocessingInDebug() throws Exception {
+ testForR8(parameters.getBackend())
+ .setMode(CompilationMode.DEBUG)
+ .addProgramFiles(getKotlinJarFile(FOLDER))
+ .addProgramFiles(getJavaJarFile(FOLDER))
+ .setMinApi(parameters.getApiLevel())
+ .addKeepMainRule(MAIN_CLASS)
+ .allowDiagnosticWarningMessages()
+ .compile()
+ .assertAllWarningMessagesMatch(equalTo("Resource 'META-INF/MANIFEST.MF' already exists."));
}
}