void (@NotNull PsiClass aClass) { // no call to super, so that it doesn't drill down to inner classes if (!UtilityClassUtil.isUtilityClass(aClass)) { return; } if (aClass.hasModifierProperty(PsiModifier.FINAL) || aClass.hasModifierProperty(PsiModifier.ABSTRACT)) { return; } final Query<PsiClass> query = ClassInheritorsSearch.search(aClass, false); final PsiClass subclass = query.findFirst(); if (subclass != null) { return; } registerClassError(aClass, aClass); }