code: @Requires({
      "kind != null",
      "kind.isOld()",
      "list != null"
    })
    protected void invokeOldValues(ContractKind kind, List<Integer> list) {
      List<MethodContractHandle> olds =
          contracts.getMethodHandles(kind, methodName, methodDesc, 0);
      if (olds.isEmpty()) {
        return;
      }
  
      for (MethodContractHandle h : olds) {
        MethodNode contractMethod = injectContractMethod(h);
        int k = h.getKey();
  
        if (!statik) {
          loadThis();
        }
        loadArgs();
        invokeContractMethod(contractMethod);
  
        storeLocal(list.get(k));
      }
    }
docs: Injects calls to old value contract methods. old value contract
  methods get called with, in this order:
  
  <ul>
  <li>the {@code this} pointer, if any;
  <li>and the original method's parameters.
  </ul>
  
  @param kind either OLD or SIGNAL_OLD
  @param list the list that holds the allocated old value variable
  indexes