void (@NotNull PsiMethod method) { super.visitMethod(method); if (method.isConstructor()) { return; } if (method.hasModifierProperty(PsiModifier.PRIVATE) || method.hasModifierProperty(PsiModifier.FINAL) || method.hasModifierProperty(PsiModifier.ABSTRACT) || method.hasModifierProperty(PsiModifier.STATIC)) { return; } final PsiClass containingClass = method.getContainingClass(); if (containingClass == null) { return; } if (containingClass.isEnum() || containingClass.isInterface() || containingClass.isAnnotationType()) { return; } if (containingClass.hasModifierProperty(PsiModifier.FINAL)) { return; } if (containingClass instanceof PsiAnonymousClass) { return; } final PsiCodeBlock body = method.getBody(); if (ControlFlowUtils.isEmptyCodeBlock(body)) { return; } registerMethodError(method, method); }