void (@NotNull PsiSuperExpression expression) { super.visitSuperExpression(expression); final PsiJavaCodeReferenceElement qualifier = expression.getQualifier(); if (qualifier == null) { return; } final PsiElement resolve = qualifier.resolve(); if (!(resolve instanceof PsiClass)) { return; } final PsiElement parent = expression.getParent(); if (parent instanceof PsiReferenceExpression) { final PsiReferenceExpression copy; final PsiElement gParent = parent.getParent(); if (gParent instanceof PsiMethodCallExpression) { copy = ((PsiMethodCallExpression)gParent.copy()).getMethodExpression(); } else { copy = (PsiReferenceExpression)parent.copy(); } final PsiExpression copyQualifierExpression = copy.getQualifierExpression(); assert copyQualifierExpression != null; PsiReplacementUtil.replaceExpression(copyQualifierExpression, PsiKeyword.SUPER); if (copy.resolve() == ((PsiReferenceExpression)parent).resolve()) { registerError(qualifier, expression); } } }