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
                       ));
        }
Exemple #2
0
 internal SourceGeneratedDocument GetOrCreateSourceGeneratedDocument(SourceGeneratedDocumentState state)
 => ImmutableHashMapExtensions.GetOrAdd(ref _idToSourceGeneratedDocumentMap, state.Id, s_createSourceGeneratedDocumentFunction, (state, this)) !;
Exemple #3
0
 internal SourceGeneratedDocument GetOrCreateSourceGeneratedDocument(
     SourceGeneratedDocumentState state
     ) =>
Exemple #4
0
 public GeneratedFileReplacingCompilationTracker(ICompilationTracker underlyingTracker, SourceGeneratedDocumentState replacementDocumentState)
 {
     _underlyingTracker = underlyingTracker;
     _replacedGeneratedDocumentState = replacementDocumentState;
 }
 internal SourceGeneratedDocument(Project project, SourceGeneratedDocumentState state)
     : base(project, state)
 {
 }
 public GeneratedFileReplacingCompilationTracker(ICompilationTracker underlyingTracker, SourceGeneratedDocumentState replacementDocumentState)
 {
     _underlyingTracker = underlyingTracker;
     _replacedGeneratedDocumentState = replacementDocumentState;
     SkeletonReferenceCache          = underlyingTracker.SkeletonReferenceCache.Clone();
 }