private <D, R> void invoke(
      Rop rop,
      MethodId<D, R> method,
      Local<? super R> target,
      Local<? extends D> object,
      Local<?>... args) {
    addInstruction(
        new ThrowingCstInsn(
            rop, sourcePosition, concatenate(object, args), catches, method.constant));
    if (target != null) {
      moveResult(target, false);
    }
  }
Calls the interface method {@code method} of {@code instance} using {@code args} and assigns
the result to {@code target}.

@param method a method declared on an interface.
@param target the local to receive the method's return value, or {@code null} if the return
    type is {@code void} or if its value not needed.
android/android_framework/dex-maker/src/main/java/com/android/dx/Code.java