boolean (@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; }