void (@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); }