void (@NotNull PsiMethodCallExpression expression) { super.visitMethodCallExpression(expression); PsiExpression outerExpression = expression; while (outerExpression.getParent() instanceof PsiExpression) { outerExpression = (PsiExpression)outerExpression.getParent(); } final PsiElement parent = outerExpression.getParent(); if (!(parent instanceof PsiExpressionList)) { return; } final PsiElement grandParent = parent.getParent(); if (!(grandParent instanceof PsiCallExpression)) { return; } if (JavaPsiConstructorUtil.isConstructorCall(grandParent)) { //ignore nested method calls at the start of a constructor, //where they can't be extracted return; } if (m_ignoreFieldInitializations) { final PsiElement field = PsiTreeUtil.getParentOfType(expression, PsiField.class); if (field != null) { return; } } final PsiMethod method = expression.resolveMethod(); if (method == null) { return; } if (ignoreStaticMethods || ignoreGetterCalls) { if (ignoreStaticMethods && method.hasModifierProperty(PsiModifier.STATIC)) { return; } if (ignoreGetterCalls && PropertyUtil.isSimpleGetter(method)) { return; } } registerMethodCallError(expression); }