Fix ClassCastException running R8
Manually resolved conflict in
src/main/java/com/android/tools/r8/R8.java
Fixes: b/310939676
Change-Id: Ib68e2335f143e64fd762d5a9535c4bcfd44dd679
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 71898e2..74de3e6 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -724,16 +724,16 @@
timing.end();
// Perform repackaging.
- if (options.isRepackagingEnabled()) {
- DirectMappedDexApplication.Builder appBuilder =
- appView.appInfo().app().asDirect().builder();
- RepackagingLens lens =
- new Repackaging(appView.withLiveness()).run(appBuilder, executorService, timing);
- if (lens != null) {
- appView.rewriteWithLensAndApplication(lens, appBuilder.build());
- }
- }
if (appView.appInfo().hasLiveness()) {
+ if (options.isRepackagingEnabled()) {
+ DirectMappedDexApplication.Builder appBuilder =
+ appView.appInfo().app().asDirect().builder();
+ RepackagingLens lens =
+ new Repackaging(appView.withLiveness()).run(appBuilder, executorService, timing);
+ if (lens != null) {
+ appView.rewriteWithLensAndApplication(lens, appBuilder.build());
+ }
+ }
assert Repackaging.verifyIdentityRepackaging(appView.withLiveness());
}
diff --git a/src/test/java/com/android/tools/r8/repackage/RepackageWithoutAnyOptimizationTest.java b/src/test/java/com/android/tools/r8/repackage/RepackageWithoutAnyOptimizationTest.java
index 2dbc058..4d9ce90 100644
--- a/src/test/java/com/android/tools/r8/repackage/RepackageWithoutAnyOptimizationTest.java
+++ b/src/test/java/com/android/tools/r8/repackage/RepackageWithoutAnyOptimizationTest.java
@@ -3,10 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.repackage;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
-import com.android.tools.r8.CompilationFailedException;
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
@@ -28,20 +25,15 @@
@Test
public void testR8() throws Exception {
- Throwable t =
- assertThrows(
- CompilationFailedException.class,
- () ->
- testForR8(parameters.getBackend())
- .addInnerClasses(getClass())
- .setMinApi(parameters.getApiLevel())
- .addKeepMainRule(TestClass.class)
- .addDontOptimize()
- .addDontObfuscate()
- .addDontShrink()
- .addKeepRules("-repackageclasses")
- .compile());
- assertTrue(t.getCause() instanceof ClassCastException);
+ testForR8(parameters.getBackend())
+ .addInnerClasses(getClass())
+ .setMinApi(parameters.getApiLevel())
+ .addKeepMainRule(TestClass.class)
+ .addDontOptimize()
+ .addDontObfuscate()
+ .addDontShrink()
+ .addKeepRules("-repackageclasses")
+ .compile();
}
static class TestClass {