@Override
  public int hashCode(@Nullable PsiElement element) {
    if (element == null) return 0;
    String text = ReadAction.compute(() -> {
      PsiElement elementToCompare = substituteElement(element);
      return elementToCompare instanceof PsiNamedElement ? ((PsiNamedElement)elementToCompare).getName()
                                                         : AstBufferUtil.getTextSkippingWhitespaceComments(elementToCompare.getNode());
    });
    return Comparing.hashcode(text);
  }
@Override
  public int hashCode(@Nullable PsiElement element)