private boolean mayLeakThis(@NotNull DfaMemoryState memState, DfaValue @Nullable [] argValues) {
    MutationSignature signature = getMutationSignature();
    if (signature == MutationSignature.unknown()) return true;
    if (JavaDfaHelpers.mayLeakFromType(typedObject(getResultType(), Nullability.UNKNOWN))) return true;
    if (argValues == null) {
      return signature.isPure() || signature.equals(MutationSignature.pure().alsoMutatesThis());
    }
    for (int i = 0; i < argValues.length; i++) {
      if (signature.mutatesArg(i)) {
        DfType type = memState.getDfType(argValues[i]);
        if (JavaDfaHelpers.mayLeakFromType(type)) return true;
      }
    }
    return false;
  }
private boolean mayLeakThis(@NotNull DfaMemoryState memState, DfaValue @Nullable [] argValues)