private DfaValue @Nullable [] popCallArguments(DataFlowInterpreter interpreter, DfaMemoryState memState) {
    DfaValue[] argValues = null;
    PsiParameterList paramList = null;
    if (myTargetMethod != null) {
      paramList = myTargetMethod.getParameterList();
      int paramCount = paramList.getParametersCount();
      if (paramCount == myArgCount) {
        argValues = paramCount == 0 ? DfaValue.EMPTY_ARRAY : new DfaValue[paramCount];
      }
    }

    for (int i = 0; i < myArgCount; i++) {
      DfaValue arg = memState.pop();
      int paramIndex = myArgCount - i - 1;

      boolean parameterMayNotLeak =
        HardcodedContracts.isKnownNoParameterLeak(myTargetMethod) ||
        (myMutation.isPure() ||
         myMutation.equals(MutationSignature.pure().alsoMutatesArg(paramIndex))) &&
        !JavaDfaHelpers.mayLeakFromType(typedObject(getResultType(), Nullability.UNKNOWN));
      if (!parameterMayNotLeak) {
        // If we write to local object only, it should not leak
        arg = JavaDfaHelpers.dropLocality(arg, memState);
      }
      if (getContext() instanceof PsiMethodReferenceExpression methodRef && paramList != null) {
        PsiParameter parameter = paramList.getParameter(paramIndex);
        if (parameter != null) {
          Nullability nullability = getArgRequiredNullability(paramIndex);
          arg = MethodReferenceInstruction.adaptMethodRefArgument(interpreter, memState, arg, methodRef, parameter, nullability);
        }
      }
      if (myMutation.mutatesArg(paramIndex)) {
        DfType dfType = memState.getDfType(arg);
        if (!Mutability.fromDfType(dfType).canBeModified() &&
            // Empty array cannot be modified at all
            !memState.getDfType(SpecialField.ARRAY_LENGTH.createValue(interpreter.getFactory(), arg)).equals(intValue(0))) {
          PsiElement anchor = getArgumentAnchor(paramIndex);
          interpreter.getListener().onCondition(new MutabilityProblem(anchor, false), arg, ThreeState.YES, memState);
          memState.updateDfType(
            arg, type -> type instanceof DfReferenceType refType ? refType.dropMutability().meet(Mutability.MUTABLE.asDfType()) : type);
        }
      }
      if (argValues != null) {
        argValues[paramIndex] = arg;
      }
    }
    return argValues;
  }
private DfaValue @Nullable [] popCallArguments(DataFlowInterpreter interpreter, DfaMemoryState memState)