Navigatable (@NotNull Project project) { // no need to create delegate here, it may be expensive if (myDelegate.isComputed()) { return myDelegate.getValue().createNavigatable(project); } PsiElement elem = pointer.getElement(); if (elem instanceof Navigatable) { return ((Navigatable)elem); } return NonNavigatable.INSTANCE; }