boolean (UMethod method) { PsiMethod javaMethod = method.getJavaPsi(); boolean hasStatements = false; UExpression body = method.getUastBody(); if (body != null) { List<UExpression> statements = body instanceof UBlockExpression blockExpression ? blockExpression.getExpressions() : Collections.singletonList(body); if (statements.size() > 1) return false; for (UExpression expression : statements) { boolean isCallToSameSuper = false; if (expression instanceof UReturnExpression returnExpression) { UExpression returnExpr = returnExpression.getReturnExpression(); isCallToSameSuper = returnExpr == null || isCallToSuperMethod(returnExpr, method); } else if (!(expression instanceof UBlockExpression)) { isCallToSameSuper = isCallToSuperMethod(expression, method); } hasStatements = true; if (isCallToSameSuper) continue; return false; } } if (hasStatements) { final PsiMethod[] superMethods = javaMethod.findSuperMethods(); for (PsiMethod superMethod : superMethods) { if (VisibilityUtil.compare(VisibilityUtil.getVisibilityModifier(superMethod.getModifierList()), VisibilityUtil.getVisibilityModifier(javaMethod.getModifierList())) > 0) { return false; } } PsiClass aClass = javaMethod.getContainingClass(); if (aClass == null || GenericsHighlightUtil.getUnrelatedDefaultsMessage(aClass, Arrays.asList(superMethods), true) != null) { return false; } } return hasStatements; }