void (@NotNull HighlightInfo.Builder builder, @NotNull PsiMethodCallExpression methodCall, @NotNull PsiMethod resolvedMethod) { if (!JavaPsiConstructorUtil.isSuperConstructorCall(methodCall)) return; if (!resolvedMethod.isConstructor() || !resolvedMethod.getParameterList().isEmpty()) return; PsiClass psiClass = resolvedMethod.getContainingClass(); if (psiClass == null || !CommonClassNames.JAVA_LANG_OBJECT.equals(psiClass.getQualifiedName())) return; PsiClass containingClass = ClassUtils.getContainingClass(methodCall); if (containingClass == null) return; PsiReferenceList extendsList = containingClass.getExtendsList(); if (extendsList != null && extendsList.getReferenceElements().length > 0) return; PsiReferenceList implementsList = containingClass.getImplementsList(); if (implementsList == null) return; for (PsiClassType type : implementsList.getReferencedTypes()) { PsiClass superInterface = type.resolve(); if (superInterface != null && !superInterface.isInterface()) { for (PsiMethod constructor : superInterface.getConstructors()) { if (!constructor.getParameterList().isEmpty()) { builder.registerFix(QuickFixFactory.getInstance().createChangeExtendsToImplementsFix(containingClass, type), null, null, null, null); } } } } }