Fix red test
Bug:147848950
Change-Id: I21c9d78ecfa68d89775546930d320a79efd193e1
diff --git a/src/main/java/com/android/tools/r8/graph/ResolutionResult.java b/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
index 6f5a1d7..23f2a61 100644
--- a/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
+++ b/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.graph;
+import com.android.tools.r8.errors.CompilationError;
import com.android.tools.r8.utils.SetUtils;
import com.google.common.collect.Sets;
import java.util.Collection;
@@ -182,6 +183,15 @@
@Override
public DexEncodedMethod lookupInvokeSuperTarget(
DexProgramClass context, AppInfoWithClassHierarchy appInfo) {
+ // TODO(b/147848950): Investigate and remove the Compilation error. It could compile to
+ // throw IAE.
+ if (resolvedMethod.isInstanceInitializer()
+ || (appInfo.hasSubtyping()
+ && initialResolutionHolder != context
+ && !isSuperclass(initialResolutionHolder, context, appInfo.withSubtyping()))) {
+ throw new CompilationError(
+ "Illegal invoke-super to " + resolvedMethod.toSourceString(), context.getOrigin());
+ }
if (!isAccessibleFrom(context, appInfo)) {
return null;
}