Handle SENTINEL return from findSingleTargetFromSubtypes
Change-Id: I36bfcfef1c46e7e33fcd65a6b7b773acda677667
diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
index e3cce51..45f5bed 100644
--- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
+++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
@@ -884,7 +884,7 @@
DexEncodedMethod singleTarget, DexEncodedMethod resolutionResult) {
assert resolutionResult.isValidVirtualTarget(options());
- if (singleTarget == null) {
+ if (singleTarget == null || singleTarget == DexEncodedMethod.SENTINEL) {
return null;
}
@@ -991,8 +991,7 @@
!refinedHolder.accessFlags.isAbstract(),
topIsFromInterface),
topMethod.asSingleTarget());
- // Map the failure case of SENTINEL to null.
- result = result == DexEncodedMethod.SENTINEL ? null : result;
+ assert result != DexEncodedMethod.SENTINEL;
method.setSingleVirtualMethodCache(refinedReceiverType, result);
return result;
}