Avoid double checkcast on AutoCloseableRetargeter
Change-Id: I81dadd85fa1ea773f249254e3898ac10734b358d
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java
index 7f80f81..d4d8f78 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java
@@ -99,7 +99,6 @@
// Call basic block.
instructions.add(new CfLoad(ValueType.fromDexType(receiverType), 0));
- instructions.add(new CfCheckCast(dispatch.getKey()));
forwardCall(instructions, dispatch.getValue());
addReturn(instructions);
}
@@ -116,6 +115,7 @@
private void forwardCall(List<CfInstruction> instructions, DexMethod method) {
if (dispatchType == ALL_STATIC
|| appView.getSyntheticItems().isSynthetic(method.getHolderType())) {
+ instructions.add(new CfCheckCast(method.getParameter(0)));
loadExtraParameters(instructions);
instructions.add(new CfInvoke(Opcodes.INVOKESTATIC, method, false));
return;