void (@NotNull PsiClass aClass) { // no call to super, so that it doesn't drill down to inner classes if (aClass.isInterface() || aClass.isAnnotationType() || aClass.isEnum()) { return; } if (aClass instanceof PsiTypeParameter || aClass instanceof PsiAnonymousClass) { return; } if (!aClass.hasModifierProperty(PsiModifier.ABSTRACT)) { return; } if (PsiUtil.isLocalClass(aClass) && !HighlightingFeature.LOCAL_INTERFACES.isAvailable(aClass)) { return; } if (!mayBeInterface(aClass)) { return; } if (ClassUtils.isInnerClass(aClass)) { final InnerClassReferenceVisitor visitor = new InnerClassReferenceVisitor(aClass); aClass.accept(visitor); if (!visitor.canInnerClassBeStatic()) { return; } } registerClassError(aClass); }