void (@NotNull PsiCallExpression callExpression) { super.visitCallExpression(callExpression); if (!anyMethodMayClose) { return; } final PsiExpressionList argumentList = callExpression.getArgumentList(); if (argumentList == null) { return; } final PsiExpression[] expressions = argumentList.getExpressions(); for (PsiExpression argument : expressions) { final PsiExpression maybeReferenceExpression = PsiUtil.deparenthesizeExpression(argument); if (!(maybeReferenceExpression instanceof PsiReferenceExpression)) { continue; } if (ExpressionUtils.isReferenceTo(maybeReferenceExpression, boundVariable)) { if (callExpression instanceof PsiMethodCallExpression) { PsiExpression returnedValue = JavaMethodContractUtil.findReturnedValue((PsiMethodCallExpression)callExpression); if (returnedValue != null && returnedValue == maybeReferenceExpression) return; } escaped = true; break; } } }