@Override
    public void visitMethodCallExpression(@NotNull PsiMethodCallExpression expression) {
      super.visitMethodCallExpression(expression);
      if (!MethodCallUtils.isCallDuringObjectConstruction(expression)) {
        return;
      }
      final PsiReferenceExpression methodExpression = expression.getMethodExpression();
      final PsiExpression qualifier = methodExpression.getQualifierExpression();
      if (qualifier != null) {
        if (!(qualifier instanceof PsiThisExpression) && !(qualifier instanceof PsiSuperExpression)) {
          return;
        }
      }
      final PsiMethod calledMethod = (PsiMethod)methodExpression.resolve();
      if (calledMethod == null || calledMethod.isConstructor() || !calledMethod.hasModifierProperty(PsiModifier.ABSTRACT)) {
        return;
      }
      final PsiClass calledMethodClass = calledMethod.getContainingClass();
      if (calledMethodClass == null) {
        return;
      }
      final PsiClass containingClass = PsiTreeUtil.getParentOfType(expression, PsiClass.class);
      if (!calledMethodClass.equals(containingClass)) {
        return;
      }
      registerMethodCallError(expression);
    }
@Override
    public void visitMethodCallExpression(@NotNull PsiMethodCallExpression expression)