@Contract(pure=true)
  public @NotNull LookupElementBuilder withPsiElement(@Nullable PsiElement psi) {
    return cloneWithUserData(myLookupString, myObject, myInsertHandler, myRenderer, myExpensiveRenderer, myHardcodedPresentation,
                             psi == null ? null : SmartPointerManager.createPointer(psi),
                             myAllLookupStrings, myCaseSensitive);
  }
@Contract(pure=true)
  public @NotNull LookupElementBuilder withPsiElement(@Nullable PsiElement psi)