Fix ClassCastException running R8
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 e452427..65a88a9 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -727,10 +727,10 @@
timing.end();
// Perform repackaging.
- if (options.isRepackagingEnabled()) {
- new Repackaging(appView.withLiveness()).run(executorService, timing);
- }
if (appView.hasLiveness()) {
+ if (options.isRepackagingEnabled()) {
+ new Repackaging(appView.withLiveness()).run(executorService, timing);
+ }
assert Repackaging.verifyIdentityRepackaging(appView.withLiveness(), executorService);
}
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 {