@Override
    public void visitMethod(@NotNull PsiMethod method) {
      //no call to super, so we don't drill into anonymous classes
      if (!method.isConstructor()) {
        return;
      }
      if (method.hasModifierProperty(PsiModifier.PROTECTED)
          || method.hasModifierProperty(PsiModifier.PRIVATE)
          || method.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)) {
        return;
      }
      final PsiClass containingClass = method.getContainingClass();
      if (containingClass == null) {
        return;
      }
      if (m_ignoreNonPublicClasses &&
          !containingClass.hasModifierProperty(PsiModifier.PUBLIC)) {
        return;
      }
      if (!containingClass.hasModifierProperty(PsiModifier.ABSTRACT)) {
        return;
      }
      if (containingClass.isEnum()) {
        return;
      }
      registerMethodError(method);
    }
@Override
    public void visitMethod(@NotNull PsiMethod method)