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;