boolean (@NotNull PsiMethodCallExpression call) { PsiMethod method = call.resolveMethod(); if (method == null) return false; if (method.getName().startsWith("assert") && ExpressionUtils.isVoidContext(call)) return false; if (PropertyUtilBase.isSimplePropertyGetter(method)) return true; PsiExpression[] args = call.getArgumentList().getExpressions(); PsiExpression qualifier = ExpressionUtils.getEffectiveQualifier(call.getMethodExpression()); if (PropertyUtilBase.isSimplePropertySetter(method) && ExpressionUtils.resolveLocalVariable(qualifier) == myVariable) { return true; } for (PsiExpression expr : ArrayUtil.append(args, qualifier)) { if (expr != null) { PsiLocalVariable variable = ExpressionUtils.resolveLocalVariable(expr); if (expr instanceof PsiLambdaExpression lambda && lambda.getBody() != null && SideEffectChecker.mayHaveNonLocalSideEffects(lambda.getBody())) { continue; } if (!isInside(variable) && !ClassUtils.isImmutable(expr.getType())) return false; } } return true; }