1 type derived from AsyncLazy
Microsoft.CodeAnalysis.Workspaces (1)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncLazy`1.cs (1)
43private sealed class AsyncLazyImpl<TData> : AsyncLazy<T>
159 references to AsyncLazy
Microsoft.CodeAnalysis.CSharp.Features (1)
Copilot\CSharpImplementNotImplementedExceptionFixProvider.cs (1)
67var lazy = AsyncLazy.Create(GetDocumentUpdater(context));
Microsoft.CodeAnalysis.CSharp.Features.UnitTests (4)
EditAndContinue\CSharpEditAndContinueAnalyzerTests.cs (4)
121var baseActiveStatements = AsyncLazy.Create(activeStatementMap ?? ActiveStatementsMap.Empty); 122var lazyCapabilities = AsyncLazy.Create(capabilities); 745var baseActiveStatements = AsyncLazy.Create(ActiveStatementsMap.Empty); 746var capabilities = AsyncLazy.Create(EditAndContinueTestVerifier.Net5RuntimeCapabilities);
Microsoft.CodeAnalysis.Features (48)
AddImport\AbstractAddImportFeatureService.cs (3)
145var projectToAssembly = new ConcurrentDictionary<Project, AsyncLazy<IAssemblySymbol>>(concurrencyLevel: 2, capacity: project.Solution.ProjectIds.Count); 170ConcurrentDictionary<Project, AsyncLazy<IAssemblySymbol>> projectToAssembly, 215ConcurrentDictionary<Project, AsyncLazy<IAssemblySymbol>> projectToAssembly,
AddImport\SearchScopes\SourceSymbolsProjectSearchScope.cs (4)
24ConcurrentDictionary<Project, AsyncLazy<IAssemblySymbol?>> projectToAssembly, 27private readonly ConcurrentDictionary<Project, AsyncLazy<IAssemblySymbol?>> _projectToAssembly = projectToAssembly; 43var lazyAssembly = _projectToAssembly.GetOrAdd(_project, CreateLazyAssembly); 50static AsyncLazy<IAssemblySymbol?> CreateLazyAssembly(Project project)
AddImport\SymbolReferenceFinder.cs (1)
99internal Task<ImmutableArray<SymbolReference>> FindInSourceSymbolsInProjectAsync(ConcurrentDictionary<Project, AsyncLazy<IAssemblySymbol>> projectToAssembly, Project project, bool exact, CancellationToken cancellationToken)
Completion\SharedSyntaxContextsWithSpeculativeModel.cs (3)
20private readonly ConcurrentDictionary<Document, AsyncLazy<SyntaxContext>> _cache; 33if (!_cache.TryGetValue(document, out var lazyContext)) 44static AsyncLazy<SyntaxContext> GetLazySyntaxContextWithSpeculativeModel(Document document, SharedSyntaxContextsWithSpeculativeModel self)
DesignerAttribute\DesignerAttributeDiscoveryService.cs (6)
49private static readonly ConditionalWeakTable<MetadataId, AsyncLazy<bool>> s_metadataIdToDesignerAttributeInfo = new(); 96var asyncLazy = s_metadataIdToDesignerAttributeInfo.GetValue( 140var lazyProjectVersion = AsyncLazy.Create(static (frozenProject, c) => 188var lazyProjectVersion = AsyncLazy.Create(static (project, c) => 200AsyncLazy<VersionStamp> lazyProjectVersion, 223AsyncLazy<VersionStamp> lazyProjectVersion,
EditAndContinue\AbstractEditAndContinueAnalyzer.cs (2)
508AsyncLazy<ActiveStatementsMap> lazyOldActiveStatementMap, 510AsyncLazy<EditAndContinueCapabilities> lazyCapabilities,
EditAndContinue\EditAndContinueDocumentAnalysesCache.cs (8)
24internal sealed class EditAndContinueDocumentAnalysesCache(AsyncLazy<ActiveStatementsMap> baseActiveStatements, AsyncLazy<EditAndContinueCapabilities> capabilities, TraceLog log) 27private readonly Dictionary<DocumentId, (AsyncLazy<DocumentAnalysisResults> results, Project oldProject, Document? newDocument, ImmutableArray<ActiveStatementLineSpan> activeStatementSpans)> _analyses = []; 28private readonly AsyncLazy<ActiveStatementsMap> _baseActiveStatements = baseActiveStatements; 29private readonly AsyncLazy<EditAndContinueCapabilities> _capabilities = capabilities; 87AsyncLazy<DocumentAnalysisResults> lazyResults; 175private AsyncLazy<DocumentAnalysisResults> GetDocumentAnalysisNoLock(Project oldProject, Project newProject, Document? oldDocument, Document? newDocument, ImmutableArray<ActiveStatementLineSpan> activeStatementSpans) 201var lazyResults = AsyncLazy.Create(
EditAndContinue\EditSession.cs (3)
70internal readonly AsyncLazy<EditAndContinueCapabilities> Capabilities; 76internal readonly AsyncLazy<ActiveStatementsMap> BaseActiveStatements; 93AsyncLazy<ActiveStatementsMap>? lazyActiveStatementMap,
EditAndContinue\IEditAndContinueAnalyzer.cs (2)
22AsyncLazy<ActiveStatementsMap> lazyBaseActiveStatements, 24AsyncLazy<EditAndContinueCapabilities> lazyCapabilities,
EncapsulateField\EncapsulateFieldResult.cs (1)
16private readonly AsyncLazy<Solution> _lazySolution = AsyncLazy.Create(getSolutionAsync);
Extensions\ExtensionFolder.cs (6)
31private readonly AsyncLazy<(IExtensionAssemblyLoader? assemblyLoader, Exception? extensionException)> _lazyAssemblyLoader; 37private ImmutableDictionary<string, AsyncLazy<AssemblyMessageHandlers>> _assemblyFilePathToHandlers = ImmutableDictionary<string, AsyncLazy<AssemblyMessageHandlers>>.Empty; 136public (bool removeFolder, AsyncLazy<AssemblyMessageHandlers> lazyHandlers) UnregisterAssembly(string assemblyFilePath) 144if (!_assemblyFilePathToHandlers.TryGetValue(assemblyFilePath, out var lazyHandlers)) 159if (!_assemblyFilePathToHandlers.TryGetValue(assemblyFilePath, out var lazyHandlers))
Extensions\ExtensionMessageHandlerService.cs (2)
18using CachedHandlers = Dictionary<string, AsyncLazy<ImmutableArray<IExtensionMessageHandlerWrapper>>>; 189AsyncLazy<HandlerWrappers> lazyHandlers;
ExtractMethod\ExtractMethodResult.cs (1)
25private readonly AsyncLazy<(Document document, SyntaxToken? invocationNameToken)>? _lazyData;
NavigateTo\AbstractNavigateToSearchService.CachedDocumentSearch.cs (2)
24using CachedIndexMap = ConcurrentDictionary<(IChecksummedPersistentStorageService service, DocumentKey documentKey, StringTable stringTable), AsyncLazy<TopLevelSyntaxTreeIndex?>>; 179var asyncLazy = cachedIndexMap.GetOrAdd(
Wrapping\BinaryExpression\BinaryExpressionCodeActionComputer.cs (1)
44private readonly AsyncLazy<SyntaxTriviaList> _smartIndentTrivia;
Wrapping\ChainedExpression\ChainedExpressionCodeActionComputer.cs (1)
65private readonly AsyncLazy<SyntaxTriviaList> _smartIndentTrivia;
Wrapping\SeparatedSyntaxList\SeparatedSyntaxListCodeActionComputer.cs (2)
48private readonly AsyncLazy<SyntaxTrivia> _singleIndentationTrivia; 57private readonly AsyncLazy<SyntaxTrivia> _braceIndentationTrivia;
Microsoft.CodeAnalysis.Features.Test.Utilities (2)
EditAndContinue\EditAndContinueTestVerifier.cs (2)
162var lazyCapabilities = AsyncLazy.Create(requiredCapabilities); 190var lazyOldActiveStatementMap = AsyncLazy.Create(expectedResult.ActiveStatements.OldStatementsMap);
Microsoft.CodeAnalysis.LanguageServer.Protocol (3)
Handler\Diagnostics\DiagnosticSources\AbstractWorkspaceDocumentDiagnosticSource.cs (3)
33private static readonly ConditionalWeakTable<Project, AsyncLazy<ILookup<DocumentId, DiagnosticData>>> s_projectToDiagnostics = new(); 63if (!s_projectToDiagnostics.TryGetValue(Document.Project, out var lazyDiagnostics)) 72AsyncLazy<ILookup<DocumentId, DiagnosticData>> GetLazyDiagnostics()
Microsoft.CodeAnalysis.Remote.ServiceHub (3)
Services\ClientOptionsProvider.cs (3)
16private ImmutableDictionary<string, AsyncLazy<TOptions>> _cache = ImmutableDictionary<string, AsyncLazy<TOptions>>.Empty; 20var lazyOptions = ImmutableInterlocked.GetOrAdd(ref _cache, languageServices.Language, _ => AsyncLazy.Create(
Microsoft.CodeAnalysis.Workspaces (86)
Diagnostics\Extensions.cs (2)
27private static readonly ConditionalWeakTable<Project, AsyncLazy<Checksum>> s_projectToDiagnosticChecksum = new(); 470var lazyChecksum = s_projectToDiagnosticChecksum.GetValue(
FindSymbols\Declarations\DeclarationFinder.cs (1)
69AsyncLazy<IAssemblySymbol?> lazyAssembly,
FindSymbols\Declarations\DeclarationFinder_AllDeclarations.cs (2)
66var lazyCompilation = AsyncLazy.Create(static (project, cancellationToken) => 119var lazyAssembly = AsyncLazy.Create(static async (arg, cancellationToken) =>
FindSymbols\FindReferences\DependentTypeFinder_ProjectIndex.cs (1)
34private static readonly ConditionalWeakTable<ProjectState, StrongBox<(Checksum checksum, AsyncLazy<ProjectIndex> lazyProjectIndex)>> s_projectToIndex = new();
FindSymbols\FindReferences\FindReferenceCache.cs (2)
26private static readonly ConditionalWeakTable<Document, AsyncLazy<FindReferenceCache>> s_cache = new(); 30var lazy = s_cache.GetValue(document, static document => AsyncLazy.Create(ComputeCacheAsync, document));
FindSymbols\SymbolTree\SymbolTreeInfo.cs (4)
131SearchQuery query, AsyncLazy<IAssemblySymbol?> lazyAssembly, 144SearchQuery query, AsyncLazy<IAssemblySymbol?> lazyAssembly, CancellationToken cancellationToken) 169AsyncLazy<IAssemblySymbol?> lazyAssembly, string name, CancellationToken cancellationToken) 215AsyncLazy<IAssemblySymbol?> lazyAssembly,
FindSymbols\SymbolTree\SymbolTreeInfo_Metadata.cs (6)
40private static readonly ConditionalWeakTable<PortableExecutableReference, AsyncLazy<SymbolTreeInfo>> s_peReferenceToInfo = new(); 52private static readonly ConditionalWeakTable<MetadataId, AsyncLazy<SymbolTreeInfo>> s_metadataIdToSymbolTreeInfo = new(); 133if (s_peReferenceToInfo.TryGetValue(reference, out var infoTask)) 159var asyncLazy = s_peReferenceToInfo.GetValue( 179var asyncLazy = s_metadataIdToSymbolTreeInfo.GetValue( 203if (!s_peReferenceToInfo.TryGetValue(reference, out var infoTask))
FindSymbols\SymbolTree\SymbolTreeInfo_Source.cs (2)
69private static readonly ConditionalWeakTable<ProjectState, AsyncLazy<Checksum>> s_projectToSourceChecksum = new(); 73var lazy = s_projectToSourceChecksum.GetValue(
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncLazy.cs (9)
13public static AsyncLazy<T> Create<T, TArg>(Func<TArg, CancellationToken, Task<T>> asynchronousComputeFunction, Func<TArg, CancellationToken, T>? synchronousComputeFunction, TArg arg) 14=> AsyncLazy<T>.Create(asynchronousComputeFunction, synchronousComputeFunction, arg); 16public static AsyncLazy<T> Create<T, TArg>(Func<TArg, CancellationToken, Task<T>> asynchronousComputeFunction, TArg arg) 22public static AsyncLazy<T> Create<T, TArg>(Func<TArg, CancellationToken, T> synchronousComputeFunction, TArg arg) 28public static AsyncLazy<T> Create<T>(Func<CancellationToken, Task<T>> asynchronousComputeFunction) 33public static AsyncLazy<T> Create<T>(Func<CancellationToken, T> synchronousComputeFunction) 38public static AsyncLazy<T> Create<T>(Func<CancellationToken, Task<T>> asynchronousComputeFunction, Func<CancellationToken, T> synchronousComputeFunction) 44public static AsyncLazy<T> Create<T>(T value) 45=> AsyncLazy<T>.Create<T>(value);
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncLazy`1.cs (5)
21public static AsyncLazy<T> Create<TData>( 29public static AsyncLazy<T> Create<TData>(T value) 39/// Creators of an <see cref="AsyncLazy{T}" /> can specify whether the result of the computation is 122public static AsyncLazy<T> CreateImpl(T value) 125public static AsyncLazy<T> CreateImpl(
Workspace\Solution\AnalyzerConfigDocumentState.cs (2)
15private readonly AsyncLazy<AnalyzerConfig> _lazyAnalyzerConfig; 23AsyncLazy<AnalyzerConfig>? lazyAnalyzerConfig = null)
Workspace\Solution\Document.cs (2)
579private AsyncLazy<DocumentOptionSet>? _cachedOptions; 602var newAsyncLazy = AsyncLazy.Create(static async (arg, cancellationToken) =>
Workspace\Solution\DocumentState_LinkedFileReuse.cs (2)
25AsyncLazy<TreeAndVersion> lazyComputation) : ITreeAndVersionSource 117var lazyComputation = AsyncLazy.Create(
Workspace\Solution\DocumentState_TreeTextSource.cs (1)
16internal sealed class TreeTextSource(AsyncLazy<SourceText> textSource, VersionStamp version) : ITextAndVersionSource
Workspace\Solution\ProjectState.AnalyzerConfigOptionsCache.cs (1)
37public readonly AsyncLazy<Value> Lazy = AsyncLazy.Create(
Workspace\Solution\ProjectState.cs (15)
48private readonly AsyncLazy<VersionStamp> _lazyLatestDocumentVersion; 49private readonly AsyncLazy<VersionStamp> _lazyLatestDocumentTopLevelChangeVersion; 62AsyncLazy<VersionStamp> lazyLatestDocumentVersion, 63AsyncLazy<VersionStamp> lazyLatestDocumentTopLevelChangeVersion, 143private AsyncLazy<ProjectStateChecksums> LazyChecksums 160private AsyncLazy<Dictionary<ImmutableArray<byte>, DocumentId>> LazyContentHashToDocumentId 239private AsyncLazy<VersionStamp> CreateLazyLatestDocumentTopLevelChangeVersion( 703AsyncLazy<VersionStamp>? latestDocumentVersion = null, 704AsyncLazy<VersionStamp>? latestDocumentTopLevelChangeVersion = null, 994out var dependentDocumentVersion, 995out var dependentSemanticVersion); 1019out var dependentDocumentVersion, 1020out var dependentSemanticVersion); 1055out AsyncLazy<VersionStamp> dependentDocumentVersion, 1056out AsyncLazy<VersionStamp> dependentSemanticVersion)
Workspace\Solution\Solution.cs (6)
37private readonly AsyncLazy<Solution> _cachedFrozenSolution; 43private readonly Dictionary<DocumentId, AsyncLazy<Solution>> _documentIdToFrozenSolution = []; 47AsyncLazy<Solution>? cachedFrozenSolution = null) 1532AsyncLazy<Solution> GetLazySolution() 1536if (!_documentIdToFrozenSolution.TryGetValue(documentId, out var lazySolution)) 1547static AsyncLazy<Solution> CreateLazyFrozenSolution(SolutionCompilationState compilationState, DocumentId documentId)
Workspace\Solution\SolutionCompilationState.cs (3)
57private readonly AsyncLazy<SolutionCompilationState> _cachedFrozenSnapshot; 65AsyncLazy<SolutionCompilationState>? cachedFrozenSnapshot = null) 120AsyncLazy<SolutionCompilationState>? cachedFrozenSnapshot = null)
Workspace\Solution\SolutionCompilationState.RegularCompilationTracker.cs (2)
1018private AsyncLazy<VersionStamp>? _lazyDependentVersion; 1019private AsyncLazy<VersionStamp>? _lazyDependentSemanticVersion;
Workspace\Solution\SolutionCompilationState.SkeletonReferenceCache.cs (2)
101private static readonly ConditionalWeakTable<Compilation, AsyncLazy<SkeletonReferenceSet?>> s_compilationToSkeletonSet = new(); 210var lazy = s_compilationToSkeletonSet.GetValue(compilation,
Workspace\Solution\SolutionCompilationState_Checksum.cs (4)
25private readonly AsyncLazy<SolutionCompilationStateChecksums> _lazyChecksums; 31private readonly Dictionary<ProjectId, AsyncLazy<(SolutionCompilationStateChecksums checksums, ProjectCone projectCone)>> _lazyProjectChecksums = []; 38AsyncLazy<(SolutionCompilationStateChecksums checksums, ProjectCone projectCone)>? lazyChecksums; 75AsyncLazy<(SolutionCompilationStateChecksums checksums, ProjectCone projectCone)>? checksums;
Workspace\Solution\SolutionCompilationState_SourceGenerators.cs (3)
25using AnalyzerReferenceMap = ConditionalWeakTable<IReadOnlyList<AnalyzerReference>, AsyncLazy<bool>>; 115if (!analyzerReferenceMap.TryGetValue(projectState.AnalyzerReferences, out var lazy)) 123AsyncLazy<bool> GetLazy(AnalyzerReferenceMap analyzerReferenceMap, ProjectState projectState)
Workspace\Solution\SolutionState_Checksum.cs (4)
26private readonly AsyncLazy<SolutionStateChecksums> _lazyChecksums; 32private readonly Dictionary<ProjectId, AsyncLazy<SolutionStateChecksums>> _lazyProjectChecksums = []; 39AsyncLazy<SolutionStateChecksums>? checksums; 69AsyncLazy<SolutionStateChecksums>? checksums;
Workspace\Solution\TextDocumentState.cs (1)
25private readonly AsyncLazy<DocumentStateChecksums> _lazyChecksums;
Workspace\Solution\VersionSource\SimpleTreeAndVersionSource.cs (4)
15/// cref="AsyncLazy{TreeAndVersion}"/>."/> 19private readonly AsyncLazy<TreeAndVersion> _source; 21private SimpleTreeAndVersionSource(AsyncLazy<TreeAndVersion> source) 39return new(AsyncLazy<TreeAndVersion>.Create(asynchronousComputeFunction, synchronousComputeFunction, arg));
Microsoft.CodeAnalysis.Workspaces.UnitTests (12)
UtilityTest\AsyncLazyTests.cs (12)
25var lazy = AsyncLazy.Create(static c => Task.FromResult(5)); 43var lazy = AsyncLazy.Create( 139private static void GetValueOrGetValueAsyncThrowsCorrectExceptionDuringCancellation(Action<AsyncLazy<object>, CancellationToken> doGetValue, bool includeSynchronousComputation) 147AsyncLazy<object> lazy; 186AssertEx.Fail(nameof(AsyncLazy<>.GetValue) + " did not throw an exception."); 199var lazy = AsyncLazy.Create(static (cancellationTokenSource, c) => Task.Run((Func<object>)(() => 214AssertEx.Fail(nameof(AsyncLazy<>.GetValueAsync) + " did not throw an exception."); 243var lazy = AsyncLazy.Create( 266var lazy = AsyncLazy.Create(static c => Task.FromResult(new object())); 290var lazy = producerAsync 313var lazy = AsyncLazy.Create( 371var lazy = AsyncLazy.Create(