public SourceGeneratedDocumentState WithUpdatedGeneratedContent(
            SourceText sourceText,
            SyntaxTree lazySyntaxTree,
            ParseOptions parseOptions,
            CancellationToken cancellationToken
            )
        {
            if (
                TryGetText(out var existingText) &&
                Checksum.From(existingText.GetChecksum())
                == Checksum.From(sourceText.GetChecksum()) &&
                SyntaxTree.Options.Equals(parseOptions)
                )
            {
                // We can reuse this instance directly
                return(this);
            }

            return(SourceGeneratedDocumentState.Create(
                       this.HintName,
                       sourceText,
                       lazySyntaxTree,
                       this.Id,
                       this.SourceGenerator,
                       this.LanguageServices,
                       this.solutionServices,
                       cancellationToken
                       ));
        }