PsiElement (Editor editor, int offset, int flags, @NotNull PsiElement targetElement) { if (targetElement instanceof PsiKeyword) { if (targetElement.getParent() instanceof PsiThisExpression) { if (!BitUtil.isSet(flags, THIS_ACCEPTED)) return null; PsiType type = ((PsiThisExpression)targetElement.getParent()).getType(); if (!(type instanceof PsiClassType)) return null; return ((PsiClassType)type).resolve(); } if (targetElement.getParent() instanceof PsiSuperExpression) { if (!BitUtil.isSet(flags, SUPER_ACCEPTED)) return null; PsiType type = ((PsiSuperExpression)targetElement.getParent()).getType(); if (!(type instanceof PsiClassType)) return null; return ((PsiClassType)type).resolve(); } } return super.adjustTargetElement(editor, offset, flags, targetElement); }