void (@NotNull PsiSuperExpression expr, @NotNull HighlightInfo.Builder highlightInfo) { LOG.assertTrue(expr.getQualifier() == null); final PsiClass containingClass = PsiTreeUtil.getParentOfType(expr, PsiClass.class); if (containingClass != null) { final PsiMethodCallExpression callExpression = PsiTreeUtil.getParentOfType(expr, PsiMethodCallExpression.class); if (callExpression != null) { final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(callExpression.getProject()); for (PsiClass superClass : containingClass.getSupers()) { if (superClass.isInterface()) { final PsiMethodCallExpression copy = (PsiMethodCallExpression)callExpression.copy(); final PsiExpression superQualifierCopy = copy.getMethodExpression().getQualifierExpression(); LOG.assertTrue(superQualifierCopy != null); superQualifierCopy.delete(); PsiMethod method; try { method = ((PsiMethodCallExpression)elementFactory.createExpressionFromText(copy.getText(), superClass)).resolveMethod(); } catch (IncorrectOperationException e) { LOG.info(e); return; } if (method != null && !method.hasModifierProperty(PsiModifier.ABSTRACT)) { var action = new QualifySuperArgumentFix(expr, superClass); highlightInfo.registerFix(action, null, null, null, null); } } } } } }