@Override
  public boolean isValidReparse(@NotNull ASTNode oldNode, @NotNull ASTNode newNode) {
    PsiFile file = oldNode.getPsi().getContainingFile();
    String firstLineIndent = isAfterColonOnSameLine(oldNode.getPsi()) ? "" : PyIndentUtil.getElementIndent(oldNode.getPsi());
    if (!(file instanceof PyFile)) return false;

    LanguageLevel languageLevel = LanguageLevel.forElement(file);

    newNode.putUserData(LANGUAGE_LEVEL_KEY, languageLevel);
    newNode.putUserData(BASE_INDENT_KEY, firstLineIndent.length());

    ASTNode tmp = newNode.getFirstChildNode();
    if (tmp == null) {
      return false;
    }
    LOG.debug("Element of type " + this + " reparsed successfully");
    return true;
  }
@Override
  public boolean isValidReparse(@NotNull ASTNode oldNode, @NotNull ASTNode newNode)