@Contract(pure = true)
  public boolean isSufficient(@NotNull LanguageLevel useSiteLevel) {
    return (useSiteLevel.isAtLeast(myLevel) || 
            useSiteLevel.isUnsupported() && myObsoletePreviewLevels.contains(useSiteLevel)) &&
           (!myLevel.isPreview() || useSiteLevel.isPreview());
  }
@Contract(pure = true)
  public boolean isSufficient(@NotNull LanguageLevel useSiteLevel)