void ( @NotNull PsiMethodCallExpression call) { if (recursive) { return; } super.visitMethodCallExpression(call); if (RecursionUtils.methodCallExpressionIndirectDefinitelyRecurses(call, method)) { recursive = true; return; } final PsiReferenceExpression methodExpression = call.getMethodExpression(); final String calledMethodName = methodExpression.getReferenceName(); if (!methodName.equals(calledMethodName)) { return; } final PsiMethod calledMethod = call.resolveMethod(); if (!method.equals(calledMethod)) { return; } if (method.hasModifierProperty(PsiModifier.STATIC) || method.hasModifierProperty(PsiModifier.PRIVATE)) { recursive = true; return; } final PsiExpression qualifier = methodExpression.getQualifierExpression(); if (qualifier == null || qualifier instanceof PsiThisExpression) { recursive = true; } }