@Override
  protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi) {
    PsiElement parentPsiElement = chameleon.getTreeParent().getPsi();
    assert parentPsiElement != null : "parent psi is null: " + chameleon;

    Integer indent = chameleon.getUserData(BASE_INDENT_KEY);
    assert indent != null;

    LanguageLevel languageLevel = chameleon.getUserData(LANGUAGE_LEVEL_KEY);
    if (languageLevel == null) {
      languageLevel = LanguageLevel.getDefault();
    }

    PythonIndentingLexer lexer = new PythonIndentingLexerForLazyElements(indent.intValue());

    LOG.debug("Performing lazy reparse for element of type " + this);
    final PsiBuilder builder = createBuilder(parentPsiElement, chameleon, lexer);
    final PyLazyParser parser = new PyLazyParser();
    parser.setLanguageLevel(languageLevel);
    return parser.parseLazyElement(this, builder, languageLevel, PyLazyParser::parseStatementList);
  }
@Override
  protected ASTNode doParseContents(@NotNull ASTNode chameleon, @NotNull PsiElement psi)