2 instantiations of ProjectId
Microsoft.CodeAnalysis.Workspaces (2)
2152 references to ProjectId
Analyzer.Utilities.UnitTests (4)
AnalyzerRunner (11)
GenerateDocumentationAndConfigFiles (1)
IdeCoreBenchmarks (8)
Microsoft.AspNetCore.Analyzer.Testing (5)
Microsoft.AspNetCore.Components.Analyzers.Tests (2)
Microsoft.AspNetCore.Components.SdkAnalyzers.Tests (2)
Microsoft.CodeAnalysis.Analyzers (4)
Microsoft.CodeAnalysis.Analyzers.UnitTests (2)
Microsoft.CodeAnalysis.BannedApiAnalyzers (1)
Microsoft.CodeAnalysis.BannedApiAnalyzers.UnitTests (1)
Microsoft.CodeAnalysis.CodeStyle.Fixes (2)
Microsoft.CodeAnalysis.CodeStyle.UnitTestUtilities (1)
Microsoft.CodeAnalysis.CSharp.CodeStyle.UnitTests (1)
Microsoft.CodeAnalysis.CSharp.EditorFeatures.UnitTests (42)
Microsoft.CodeAnalysis.CSharp.Features (1)
Microsoft.CodeAnalysis.CSharp.Features.UnitTests (5)
Microsoft.CodeAnalysis.CSharp.Workspaces.UnitTests (5)
Microsoft.CodeAnalysis.EditorFeatures (24)
Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities (12)
Microsoft.CodeAnalysis.EditorFeatures.UnitTests (29)
Microsoft.CodeAnalysis.EditorFeatures2.UnitTests (5)
Diagnostics\DiagnosticProviderTests.vb (4)
327Private Shared Function GetProjectId(workspace As EditorTestWorkspace, projectName As String) As ProjectId
339Private Shared Function SourceError(id As String, message As String, docId As DocumentId, projId As ProjectId, mappedLine As Integer, originalLine As Integer, mappedColumn As Integer,
344Private Shared Function SourceWarning(id As String, message As String, docId As DocumentId, projId As ProjectId, mappedLine As Integer, originalLine As Integer, mappedColumn As Integer,
349Private Shared Function CreateDiagnostic(id As String, message As String, severity As DiagnosticSeverity, docId As DocumentId, projId As ProjectId, mappedLine As Integer, originalLine As Integer, mappedColumn As Integer,
Microsoft.CodeAnalysis.ExternalAccess.Debugger (1)
Microsoft.CodeAnalysis.ExternalAccess.FSharp (8)
Microsoft.CodeAnalysis.ExternalAccess.OmniSharp (1)
Microsoft.CodeAnalysis.ExternalAccess.Razor.Features (7)
Microsoft.CodeAnalysis.Features (239)
AddImport\AddImportFixData.cs (6)
22ProjectId projectReferenceToAdd = null,
23ProjectId portableExecutableReferenceProjectId = null,
67public readonly ProjectId ProjectReferenceToAdd = projectReferenceToAdd;
79public readonly ProjectId PortableExecutableReferenceProjectId = portableExecutableReferenceProjectId;
113public static AddImportFixData CreateForProjectSymbol(ImmutableArray<TextChange> textChanges, string title, ImmutableArray<string> tags, CodeActionPriority priority, ProjectId projectReferenceToAdd)
121public static AddImportFixData CreateForMetadataSymbol(ImmutableArray<TextChange> textChanges, string title, ImmutableArray<string> tags, CodeActionPriority priority, ProjectId portableExecutableReferenceProjectId, string portableExecutableReferenceFilePathToAdd)
EditAndContinue\EmitSolutionUpdateResults.cs (30)
34public required ImmutableDictionary<ProjectId, ImmutableArray<ProjectId>> ProjectsToRestart { get; init; }
37public required ImmutableArray<ProjectId> ProjectsToRebuild { get; init; }
76public static Data CreateFromInternalError(Solution solution, string errorMessage, ImmutableDictionary<ProjectId, RunningProjectInfo> runningProjects)
104ProjectsToRestart = ImmutableDictionary<ProjectId, ImmutableArray<ProjectId>>.Empty,
130public required ImmutableDictionary<ProjectId, ImmutableArray<ProjectId>> ProjectsToRestart { get; init; }
137public required ImmutableArray<ProjectId> ProjectsToRebuild { get; init; }
146ProjectsToRestart = ImmutableDictionary<ProjectId, ImmutableArray<ProjectId>>.Empty,
186ImmutableDictionary<ProjectId, RunningProjectInfo> runningProjects,
187out ImmutableDictionary<ProjectId, ImmutableArray<ProjectId>> projectsToRestart,
188out ImmutableArray<ProjectId> projectsToRebuild)
215using var _1 = ArrayBuilder<ProjectId>.GetInstance(out var traversalStack);
218var projectsToRestartBuilder = PooledDictionary<ProjectId, ArrayBuilder<ProjectId>>.GetInstance();
220using var _3 = PooledHashSet<ProjectId>.GetInstance(out var projectsToRebuildBuilder);
221using var _4 = ArrayBuilder<(ProjectId projectWithRudeEdits, ImmutableArray<ProjectId> impactedRunningProjects)>.GetInstance(out var impactedRunningProjectMap);
222using var _5 = ArrayBuilder<ProjectId>.GetInstance(out var impactedRunningProjects);
281using var _6 = PooledHashSet<ProjectId>.GetInstance(out var updatedProjects);
282using var _7 = ArrayBuilder<ProjectId>.GetInstance(out var updatedProjectsToRemove);
283using var _8 = PooledHashSet<ProjectId>.GetInstance(out var projectsThatCausedRestart);
346void AddImpactedRunningProjects(ArrayBuilder<ProjectId> impactedProjects, ProjectId initialProject, bool isBlocking)
362foreach (var referencingProjectId in graph.GetProjectsThatDirectlyDependOnThisProject(projectId))
407public ImmutableArray<(ProjectId projectId, ImmutableArray<Diagnostic> diagnostics)> GetTransientDiagnostics()
409using var _ = ArrayBuilder<(ProjectId projectId, ImmutableArray<Diagnostic> diagnostics)>.GetInstance(out var result);
ExternalAccess\UnitTesting\SolutionCrawler\UnitTestingWorkCoordinator.UnitTestingSemanticChangeProcessor.cs (11)
177var projectId = thisDocument.Id.ProjectId;
211var self = project.Id;
224foreach (var projectId in GetProjectsToAnalyze(solution, self))
300private static IEnumerable<ProjectId> GetProjectsToAnalyze(Solution solution, ProjectId projectId)
323private static readonly Func<int, ProjectId, string> s_enqueueLogger = (t, i) => string.Format("[{0}] {1}", t, i.ToString());
331private readonly Dictionary<ProjectId, UnitTestingData> _pendingWork = [];
361public void Enqueue(ProjectId projectId, bool needDependencyTracking = false)
419foreach (var projectId in GetProjectsToAnalyze(solution, data.ProjectId))
439private readonly struct UnitTestingData(ProjectId projectId, bool needDependencyTracking, IAsyncToken asyncToken)
442public readonly ProjectId ProjectId = projectId;
FindUsages\DefinitionItemFactory.cs (4)
123var metadataLocations = GetMetadataLocations(definition, solution, out var originatingProjectId);
148internal static ImmutableDictionary<string, string> WithMetadataSymbolProperties(this ImmutableDictionary<string, string> properties, ISymbol symbol, ProjectId originatingProjectId)
154internal static AssemblyLocation GetMetadataLocation(IAssemblySymbol assembly, Solution solution, out ProjectId originatingProjectId)
164internal static ImmutableArray<AssemblyLocation> GetMetadataLocations(ISymbol definition, Solution solution, out ProjectId? originatingProjectId)
NavigateTo\IRemoteNavigateToSearchService.cs (2)
21ValueTask SearchProjectsAsync(Checksum solutionChecksum, ImmutableArray<ProjectId> projectIds, ImmutableArray<DocumentId> priorityDocumentIds, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
23ValueTask SearchGeneratedDocumentsAsync(Checksum solutionChecksum, ImmutableArray<ProjectId> projectIds, string searchPattern, ImmutableArray<string> kinds, RemoteServiceCallbackId callbackId, CancellationToken cancellationToken);
PdbSourceDocument\PdbSourceDocumentMetadataAsSourceFileProvider.cs (8)
57private readonly Dictionary<string, ProjectId> _assemblyToProjectMap = [];
64private readonly HashSet<ProjectId> _sourceLinkEnabledProjects = [];
219if (!_assemblyToProjectMap.TryGetValue(assemblyName, out var projectId))
322var projectId = ProjectId.CreateNewId();
338SourceFileInfo?[] sourceFileInfos, Encoding encoding, ProjectId projectId, Workspace sourceWorkspace, Project sourceProject)
458foreach (var projectId in _assemblyToProjectMap.Values)
490internal record struct SourceDocumentInfo(DocumentId DocumentId, Encoding Encoding, SourceHashAlgorithm ChecksumAlgorithm, ProjectId SourceProjectId, Workspace SourceWorkspace, DocumentInfo DocumentInfo);
Microsoft.CodeAnalysis.Features.Test.Utilities (20)
EditAndContinue\EditAndContinueWorkspaceTestBase.cs (8)
45private protected readonly Dictionary<ProjectId, CompilationOutputs> _mockCompilationOutputs = [];
270internal static IEnumerable<string> InspectDiagnostics(ImmutableArray<(ProjectId project, ImmutableArray<Diagnostic> diagnostics)> diagnostics)
306ProjectId projectId,
329ProjectId projectId,
353ProjectId projectId,
378ProjectId projectId,
414internal Guid EmitLibrary(ProjectId projectId, Compilation compilation, DebugInformationFormat pdbFormat = DebugInformationFormat.PortablePdb)
479internal static DocumentInfo CreateDesignTimeOnlyDocument(ProjectId projectId, string name = "design-time-only.cs", string path = "design-time-only.cs")
EditAndContinue\Extensions.cs (8)
57public static Project AddTestProject(this Solution solution, string projectName, out ProjectId id)
60public static Project AddTestProject(this Solution solution, string projectName, string language, out ProjectId id)
61=> AddTestProject(solution, projectName, language, TargetFramework.NetLatest, id = ProjectId.CreateNewId(debugName: projectName));
63public static Project AddTestProject(this Solution solution, string projectName, string language, TargetFramework targetFramework, out ProjectId id)
70public static Project AddTestProject(this Solution solution, string projectName, string language = LanguageNames.CSharp, TargetFramework targetFramework = TargetFramework.NetLatest, ProjectId? id = null)
72id ??= ProjectId.CreateNewId(debugName: projectName);
87public static Document AddTestDocument(this Solution solution, ProjectId projectId, string source, string path, out DocumentId id)
102public static ProjectInfo CreateProjectInfo(string projectName, ProjectId id, string language = LanguageNames.CSharp)
EditAndContinue\MockEditAndContinueService.cs (4)
26public Func<Solution, ImmutableDictionary<ProjectId, RunningProjectInfo>, ActiveStatementSpanProvider, EmitSolutionUpdateResults>? EmitSolutionUpdateImpl;
29public Action<Solution, ImmutableArray<ProjectId>>? UpdateBaselinesImpl;
43public void UpdateBaselines(DebuggingSessionId sessionId, Solution solution, ImmutableArray<ProjectId> rebuiltProjects)
46public ValueTask<EmitSolutionUpdateResults> EmitSolutionUpdateAsync(DebuggingSessionId sessionId, Solution solution, ImmutableDictionary<ProjectId, RunningProjectInfo> runningProjects, ActiveStatementSpanProvider activeStatementSpanProvider, CancellationToken cancellationToken)
Microsoft.CodeAnalysis.Features.UnitTests (44)
EditAndContinue\EditAndContinueWorkspaceServiceTests.cs (18)
72var projectPId = ProjectId.CreateNewId("P");
996var projectId = ProjectId.CreateNewId();
1228var projectId = project.Id;
1645var projectAId = ProjectId.CreateNewId("A");
1646var projectBId = ProjectId.CreateNewId("B");
1647var projectCId = ProjectId.CreateNewId("C");
1991var projectAId = documentA1.Project.Id;
1992var projectBId = ProjectId.CreateNewId("B");
3056var runningProjects = ImmutableDictionary<ProjectId, RunningProjectInfo>.Empty
4886var result1 = await encService.EmitSolutionUpdateAsync(sessionId, solution1, runningProjects: ImmutableDictionary<ProjectId, RunningProjectInfo>.Empty, s_noActiveSpans, CancellationToken.None);
4893var result2 = await encService.EmitSolutionUpdateAsync(sessionId, solution2, runningProjects: ImmutableDictionary<ProjectId, RunningProjectInfo>.Empty, s_noActiveSpans, CancellationToken.None);
4916await Assert.ThrowsAsync<ObjectDisposedException>(async () => await debuggingSession.EmitSolutionUpdateAsync(solution, runningProjects: ImmutableDictionary<ProjectId, RunningProjectInfo>.Empty, s_noActiveSpans, CancellationToken.None));
Microsoft.CodeAnalysis.LanguageServer (7)
Microsoft.CodeAnalysis.LanguageServer.Protocol (12)
Microsoft.CodeAnalysis.LanguageServer.Protocol.UnitTests (1)
Microsoft.CodeAnalysis.LanguageServer.UnitTests (1)
Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers (1)
Microsoft.CodeAnalysis.PublicApiAnalyzers.CodeFixes (5)
Microsoft.CodeAnalysis.Remote.ServiceHub (33)
Services\SourceGeneration\RemoteSourceGenerationService.cs (5)
33Checksum solutionChecksum, ProjectId projectId, bool withFrozenSourceGeneratedDocuments, CancellationToken cancellationToken)
53Checksum solutionChecksum, ProjectId projectId, ImmutableArray<DocumentId> documentIds, bool withFrozenSourceGeneratedDocuments, CancellationToken cancellationToken)
89ProjectId projectId,
139ProjectId projectId,
155ProjectId projectId,
Microsoft.CodeAnalysis.Remote.Workspaces (16)
BrokeredServiceConnection.cs (4)
197public override async ValueTask<bool> TryInvokeAsync(SolutionCompilationState compilationState, ProjectId projectId, Func<TService, Checksum, CancellationToken, ValueTask> invocation, CancellationToken cancellationToken)
213public override async ValueTask<Optional<TResult>> TryInvokeAsync<TResult>(SolutionCompilationState compilationState, ProjectId projectId, Func<TService, Checksum, CancellationToken, ValueTask<TResult>> invocation, CancellationToken cancellationToken)
268public override async ValueTask<bool> TryInvokeAsync(SolutionCompilationState compilationState, ProjectId projectId, Func<TService, Checksum, RemoteServiceCallbackId, CancellationToken, ValueTask> invocation, CancellationToken cancellationToken)
287public override async ValueTask<Optional<TResult>> TryInvokeAsync<TResult>(SolutionCompilationState compilationState, ProjectId projectId, Func<TService, Checksum, RemoteServiceCallbackId, CancellationToken, ValueTask<TResult>> invocation, CancellationToken cancellationToken)
Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests (1)
Microsoft.CodeAnalysis.Workspaces (709)
FindSymbols\IRemoteSymbolFinderService.cs (3)
36Checksum solutionChecksum, ProjectId projectId, string name, SearchKind searchKind, SymbolFilter criteria, CancellationToken cancellationToken);
42Checksum solutionChecksum, ProjectId projectId, string name, bool ignoreCase, SymbolFilter criteria, CancellationToken cancellationToken);
48Checksum solutionChecksum, ProjectId projectId, string pattern, SymbolFilter criteria, CancellationToken cancellationToken);
SourceGeneration\IRemoteSourceGenerationService.cs (5)
35Checksum solutionChecksum, ProjectId projectId, bool withFrozenSourceGeneratedDocuments, CancellationToken cancellationToken);
46Checksum solutionChecksum, ProjectId projectId, ImmutableArray<DocumentId> documentIds, bool withFrozenSourceGeneratedDocuments, CancellationToken cancellationToken);
52Checksum solutionChecksum, ProjectId projectId, ImmutableArray<Checksum> analyzerReferenceChecksums, string language, CancellationToken cancellationToken);
59Checksum solutionChecksum, ProjectId projectId, string analyzerReferenceFullPath, CancellationToken cancellationToken);
66Checksum solutionChecksum, ProjectId projectId, string analyzerReferenceFullPath, CancellationToken cancellationToken);
Workspace\ProjectSystem\ProjectSystemProjectFactory.cs (25)
61private ImmutableDictionary<ProjectId, string?> _projectToMaxSupportedLangVersionMap = ImmutableDictionary<ProjectId, string?>.Empty;
64private ImmutableDictionary<ProjectId, string> _projectToDependencyNodeTargetIdentifier = ImmutableDictionary<ProjectId, string>.Empty;
102var projectId = ProjectId.CreateNewId(projectSystemName);
191public string? TryGetDependencyNodeTargetIdentifier(ProjectId projectId)
198public string? TryGetMaxSupportedLanguageVersion(ProjectId projectId)
269public void ApplyChangeToWorkspace(ProjectId projectId, Func<CodeAnalysis.Solution, CodeAnalysis.Solution> solutionTransformation)
360private static ProjectUpdateState GetReferenceInformation(ProjectId projectId, ProjectUpdateState projectUpdateState, out ProjectReferenceInformation projectReference)
381internal void RemoveProjectFromTrackingMaps_NoLock(ProjectId projectId)
413ImmutableInterlocked.TryRemove<ProjectId, string?>(ref _projectToMaxSupportedLangVersionMap, projectId, out _);
473internal void SetMaxLanguageVersion(ProjectId projectId, string? maxLanguageVersion)
482internal void SetDependencyNodeTargetIdentifier(ProjectId projectId, string targetIdentifier)
492ProjectId projectId,
522foreach (var otherProjectId in projectsForOutputPath)
541/// <param name="projectIdToReference">The <see cref="ProjectId"/> of the project that could be referenced in place
548ProjectId projectIdToReference,
638/// <param name="projectId">The <see cref="ProjectId"/> of the project being referenced.</param>
645ProjectId projectId,
650foreach (var projectIdToRetarget in solutionChanges.Solution.ProjectIds)
707var projectIdToReference = ids.First();
737ProjectId referencingProject,
765ProjectId projectId,
872Func<Solution, ProjectId, ProjectUpdateState, TReference, TReference, (Solution newSolution, ProjectUpdateState newProjectUpdateState)> update,
Workspace\ProjectSystem\ProjectSystemProjectFactory.ProjectUpdateState.cs (13)
53ImmutableDictionary<string, ImmutableArray<ProjectId>> ProjectsByOutputPath,
54ImmutableDictionary<ProjectId, ProjectReferenceInformation> ProjectReferenceInfos,
61ImmutableDictionary<string, ImmutableArray<ProjectId>>.Empty.WithComparers(StringComparer.OrdinalIgnoreCase),
62ImmutableDictionary<ProjectId, ProjectReferenceInformation>.Empty, [], [], [], []);
64public ProjectUpdateState WithProjectReferenceInfo(ProjectId projectId, ProjectReferenceInformation projectReferenceInformation)
72public ProjectUpdateState WithProjectOutputPath(string projectOutputPath, ProjectId projectId)
79static ImmutableDictionary<string, ImmutableArray<ProjectId>> AddProject(string path, ProjectId projectId, ImmutableDictionary<string, ImmutableArray<ProjectId>> map)
92public ProjectUpdateState RemoveProjectOutputPath(string projectOutputPath, ProjectId projectId)
99static ImmutableDictionary<string, ImmutableArray<ProjectId>> RemoveProject(string path, ProjectId projectId, ImmutableDictionary<string, ImmutableArray<ProjectId>> map)
Workspace\Solution\ProjectDependencyGraph.cs (110)
35private readonly ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> _referencesMap;
45private ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? _lazyReverseReferencesMap;
48private ImmutableArray<ProjectId> _lazyTopologicallySortedProjects;
53private ImmutableArray<IEnumerable<ProjectId>> _lazyDependencySets;
56private ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> _transitiveReferencesMap;
57private ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> _reverseTransitiveReferencesMap;
60private static readonly ObjectPool<ImmutableHashSet<ProjectId>.Builder> s_reverseReferencesBuilderPool = new(static () => ImmutableHashSet.CreateBuilder<ProjectId>(), size: 256);
69ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>.Empty,
71ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>.Empty,
72ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>.Empty,
77ImmutableHashSet<ProjectId> projectIds,
78ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> referencesMap)
83transitiveReferencesMap: ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>.Empty,
84reverseTransitiveReferencesMap: ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>.Empty,
92ImmutableHashSet<ProjectId> projectIds,
93ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> referencesMap,
94ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? reverseReferencesMap,
95ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> transitiveReferencesMap,
96ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> reverseTransitiveReferencesMap,
97ImmutableArray<ProjectId> topologicallySortedProjects,
98ImmutableArray<IEnumerable<ProjectId>> dependencySets)
115internal ImmutableHashSet<ProjectId> ProjectIds { get; }
117private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> RemoveItemsWithEmptyValues(
118ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> map)
120ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>.Builder? builder = null;
135internal ProjectDependencyGraph WithProjectReferences(ProjectId projectId, IReadOnlyList<ProjectReference> projectReferences)
169public IImmutableSet<ProjectId> GetProjectsThatThisProjectDirectlyDependsOn(ProjectId projectId)
182public IImmutableSet<ProjectId> GetProjectsThatDirectlyDependOnThisProject(ProjectId projectId)
203private ImmutableHashSet<ProjectId> GetProjectsThatDirectlyDependOnThisProject_NoLock(ProjectId projectId)
214private ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeReverseReferencesMap()
216using var _1 = PooledDictionary<ProjectId, ImmutableHashSet<ProjectId>.Builder>.GetInstance(out var reverseReferencesMapBuilders);
219foreach (var referencedId in references)
232var reverseReferencesBuilder = ImmutableDictionary.CreateBuilder<ProjectId, ImmutableHashSet<ProjectId>>();
252internal ImmutableHashSet<ProjectId>? TryGetProjectsThatThisProjectTransitivelyDependsOn(ProjectId projectId)
266public IImmutableSet<ProjectId> GetProjectsThatThisProjectTransitivelyDependsOn(ProjectId projectId)
288private ImmutableHashSet<ProjectId> GetProjectsThatThisProjectTransitivelyDependsOn_NoLock(ProjectId projectId)
292using var pooledObject = SharedPools.Default<HashSet<ProjectId>>().GetPooledObject();
302private void ComputeTransitiveReferences(ProjectId project, HashSet<ProjectId> result)
306foreach (var other in otherProjects)
318public IEnumerable<ProjectId> GetProjectsThatTransitivelyDependOnThisProject(ProjectId projectId)
340private ImmutableHashSet<ProjectId> GetProjectsThatTransitivelyDependOnThisProject_NoLock(ProjectId projectId)
344using var pooledObject = SharedPools.Default<HashSet<ProjectId>>().GetPooledObject();
355private void ComputeReverseTransitiveReferences(ProjectId project, HashSet<ProjectId> results)
358foreach (var other in otherProjects)
372public IEnumerable<ProjectId> GetTopologicallySortedProjects(CancellationToken cancellationToken = default)
389using var seenProjects = SharedPools.Default<HashSet<ProjectId>>().GetPooledObject();
390using var resultList = SharedPools.Default<List<ProjectId>>().GetPooledObject();
397IEnumerable<ProjectId> projectIds,
398HashSet<ProjectId> seenProjects,
399List<ProjectId> resultList,
402foreach (var projectId in projectIds)
424public IEnumerable<IEnumerable<ProjectId>> GetDependencySets(CancellationToken cancellationToken = default)
437private ImmutableArray<IEnumerable<ProjectId>> GetDependencySets_NoLock(CancellationToken cancellationToken)
441using var seenProjects = SharedPools.Default<HashSet<ProjectId>>().GetPooledObject();
442using var results = SharedPools.Default<List<IEnumerable<ProjectId>>>().GetPooledObject();
450private void ComputeDependencySets(HashSet<ProjectId> seenProjects, List<IEnumerable<ProjectId>> results, CancellationToken cancellationToken)
452foreach (var project in ProjectIds)
458using var dependencySet = SharedPools.Default<HashSet<ProjectId>>().GetPooledObject();
465using var topologicallySeenProjects = SharedPools.Default<HashSet<ProjectId>>().GetPooledObject();
466using var sortedProjects = SharedPools.Default<List<ProjectId>>().GetPooledObject();
473private void ComputedDependencySet(ProjectId project, HashSet<ProjectId> result)
480foreach (var other in otherProjects)
489ImmutableHashSet<ProjectId> projectIds,
490ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> referencesMap)
500foreach (var referencedProject in referencedProjects)
509ImmutableHashSet<ProjectId> projectIds,
510ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> forwardReferencesMap,
511ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? reverseReferencesMap)
521foreach (var referencedProject in referencedProjects)
531foreach (var referencingProject in referencingProjects)
549public ImmutableHashSet<ProjectId>? TryGetProjectsThatTransitivelyDependOnThisProject(ProjectId projectId)
564internal bool DoesProjectTransitivelyDependOnProject(ProjectId id, ProjectId potentialDependency)
Workspace\Solution\ProjectDependencyGraph_AddProjectReference.cs (30)
15internal ProjectDependencyGraph WithAdditionalProjectReferences(ProjectId projectId, IReadOnlyCollection<ProjectReference> projectReferences)
58private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReferencesMapForAdditionalProjectReferences(
59ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingReferencesMap,
60ProjectId projectId,
61IReadOnlyList<ProjectId> referencedProjectIds)
78private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? ComputeNewReverseReferencesMapForAdditionalProjectReferences(
79ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? existingReverseReferencesMap,
80ProjectId projectId,
81IReadOnlyList<ProjectId> referencedProjectIds)
88foreach (var referencedProject in referencedProjectIds)
99private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewTransitiveReferencesMapForAdditionalProjectReferences(
100ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingTransitiveReferencesMap,
101ProjectId projectId,
102IReadOnlyList<ProjectId> referencedProjectIds)
108var newTransitiveReferences = new HashSet<ProjectId>(referencedProjectIds);
110foreach (var referencedProjectId in referencedProjectIds)
126foreach (var projectIdToUpdate in existingTransitiveReferencesMap.Keys)
155private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReverseTransitiveReferencesMapForAdditionalProjectReferences(
156ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingReverseTransitiveReferencesMap,
157ProjectId projectId,
158IReadOnlyList<ProjectId> referencedProjectIds)
174foreach (var projectIdToUpdate in existingReverseTransitiveReferencesMap.Keys)
Workspace\Solution\ProjectDependencyGraph_RemoveAllProjectReferences.cs (24)
14internal ProjectDependencyGraph WithAllProjectReferencesRemoved(ProjectId projectId)
40private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReferencesMapForRemovedAllProjectReferences(
41ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingForwardReferencesMap,
42ProjectId projectId)
58private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? ComputeNewReverseReferencesMapForRemovedAllProjectReferences(
59ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? existingReverseReferencesMap,
60ProjectId projectId,
61ImmutableHashSet<ProjectId> referencedProjectIds)
69foreach (var referencedProjectId in referencedProjectIds)
77private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewTransitiveReferencesMapForRemovedAllProjectReferences(
78ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingTransitiveReferencesMap,
79ProjectId projectId,
80ImmutableHashSet<ProjectId> referencedProjectIds)
104private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReverseTransitiveReferencesMapForRemovedAllProjectReferences(
105ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingReverseTransitiveReferencesMap,
106ProjectId projectId)
Workspace\Solution\ProjectDependencyGraph_RemoveProject.cs (37)
14internal ProjectDependencyGraph WithProjectsRemoved(ArrayBuilder<ProjectId> removedProjectIds)
19foreach (var projectId in removedProjectIds)
55private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReferencesMapForRemovedProject(
56ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingForwardReferencesMap,
57ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? existingReverseReferencesMap,
58ArrayBuilder<ProjectId> removedProjectIds)
65foreach (var removedProjectId in removedProjectIds)
71foreach (var id in referencingProjects)
82foreach (var removedProjectId in removedProjectIds)
88foreach (var removedProjectId in removedProjectIds)
99private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? ComputeNewReverseReferencesMapForRemovedProject(
100ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingForwardReferencesMap,
101ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? existingReverseReferencesMap,
102ArrayBuilder<ProjectId> removedProjectIds)
110foreach (var removedProjectId in removedProjectIds)
118foreach (var referencedProjectId in forwardReferences)
123foreach (var removedProjectId in removedProjectIds)
133private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewTransitiveReferencesMapForRemovedProject(
134ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingTransitiveReferencesMap,
135ArrayBuilder<ProjectId> removedProjectIds)
143foreach (var removedProjectId in removedProjectIds)
157foreach (var removedProjectId in removedProjectIds)
167private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReverseTransitiveReferencesMapForRemovedProject(
168ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingReverseTransitiveReferencesMap,
169ArrayBuilder<ProjectId> removedProjectIds)
177foreach (var removedProjectId in removedProjectIds)
191foreach (var removedProjectId in removedProjectIds)
Workspace\Solution\ProjectDependencyGraph_RemoveProjectReference.cs (26)
14internal ProjectDependencyGraph WithProjectReferenceRemoved(ProjectId projectId, ProjectId referencedProjectId)
38private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReferencesMapForRemovedProjectReference(
39ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingForwardReferencesMap,
40ProjectId projectId,
41ProjectId referencedProjectId)
55private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? ComputeNewReverseReferencesMapForRemovedProjectReference(
56ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>>? existingReverseReferencesMap,
57ProjectId projectId,
58ProjectId referencedProjectId)
68private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewTransitiveReferencesMapForRemovedProjectReference(
69ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingTransitiveReferencesMap,
70ProjectId projectId,
71ProjectId referencedProjectId)
95private static ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> ComputeNewReverseTransitiveReferencesMapForRemovedProjectReference(
96ImmutableDictionary<ProjectId, ImmutableHashSet<ProjectId>> existingReverseTransitiveReferencesMap,
97ProjectId projectId,
98ProjectId referencedProjectId)
Workspace\Solution\Solution.cs (52)
33private readonly Dictionary<ProjectId, Project> _projectIdToProjectMap = [];
86internal ProjectState? GetProjectState(ProjectId projectId) => this.SolutionState.GetProjectState(projectId);
121public IReadOnlyList<ProjectId> ProjectIds => this.SolutionState.ProjectIds;
125/// Ordered by <see cref="ProjectState.Id"/>'s <see cref="ProjectId.Id"/> value.
143public bool ContainsProject([NotNullWhen(returnValue: true)] ProjectId? projectId)
151public Project? GetProject(ProjectId? projectId)
164private static readonly Func<ProjectId, Solution, Project> s_createProjectFunction = CreateProject;
165private static Project CreateProject(ProjectId projectId, Solution solution)
180var projectId = SolutionCompilationState.GetProjectId(assemblySymbol);
185/// Given a <paramref name="symbol"/> returns the <see cref="ProjectId"/> of the <see cref="Project"/> it came
204internal ProjectId? GetOriginatingProjectId(ISymbol symbol)
242public DocumentId? GetDocumentId(SyntaxTree? syntaxTree, ProjectId? projectId)
327internal Document? GetDocument(SyntaxTree? syntaxTree, ProjectId? projectId)
360var id = ProjectId.CreateNewId(debugName: name);
367public Solution AddProject(ProjectId projectId, string name, string assemblyName, string language)
383public Solution RemoveProject(ProjectId projectId)
385using var _ = ArrayBuilder<ProjectId>.GetInstance(1, out var projectIds);
391internal Solution RemoveProjects(ArrayBuilder<ProjectId> projectIds)
398public Solution WithProjectAssemblyName(ProjectId projectId, string assemblyName)
413public Solution WithProjectOutputFilePath(ProjectId projectId, string? outputFilePath)
423public Solution WithProjectOutputRefFilePath(ProjectId projectId, string? outputRefFilePath)
433public Solution WithProjectCompilationOutputInfo(ProjectId projectId, in CompilationOutputInfo info)
443public Solution WithProjectDefaultNamespace(ProjectId projectId, string? defaultNamespace)
453internal Solution WithProjectChecksumAlgorithm(ProjectId projectId, SourceHashAlgorithm checksumAlgorithm)
463public Solution WithProjectName(ProjectId projectId, string name)
478public Solution WithProjectFilePath(ProjectId projectId, string? filePath)
489public Solution WithProjectCompilationOptions(ProjectId projectId, CompilationOptions options)
505public Solution WithProjectParseOptions(ProjectId projectId, ParseOptions options)
528internal Solution WithHasAllInformation(ProjectId projectId, bool hasAllInformation)
540internal Solution WithRunAnalyzers(ProjectId projectId, bool runAnalyzers)
551internal Solution WithHasSdkCodeStyleAnalyzers(ProjectId projectId, bool hasSdkCodeStyleAnalyzers)
567public Solution WithProjectDocumentsOrder(ProjectId projectId, ImmutableList<DocumentId> documentIds)
605public Solution AddProjectReference(ProjectId projectId, ProjectReference projectReference)
621public Solution AddProjectReferences(ProjectId projectId, IEnumerable<ProjectReference> projectReferences)
651public Solution RemoveProjectReference(ProjectId projectId, ProjectReference projectReference)
682public Solution WithProjectReferences(ProjectId projectId, IEnumerable<ProjectReference>? projectReferences)
703public Solution AddMetadataReference(ProjectId projectId, MetadataReference metadataReference)
718public Solution AddMetadataReferences(ProjectId projectId, IEnumerable<MetadataReference> metadataReferences)
745public Solution RemoveMetadataReference(ProjectId projectId, MetadataReference metadataReference)
767public Solution WithProjectMetadataReferences(ProjectId projectId, IEnumerable<MetadataReference> metadataReferences)
783public Solution AddAnalyzerReference(ProjectId projectId, AnalyzerReference analyzerReference)
798public Solution AddAnalyzerReferences(ProjectId projectId, IEnumerable<AnalyzerReference> analyzerReferences)
832public Solution RemoveAnalyzerReference(ProjectId projectId, AnalyzerReference analyzerReference)
861public Solution WithProjectAnalyzerReferences(ProjectId projectId, IEnumerable<AnalyzerReference> analyzerReferences)
1128internal ProjectState GetRequiredProjectState(ProjectId projectId)
1588internal DocumentId? GetFirstRelatedDocumentId(DocumentId documentId, ProjectId? relatedProjectIdHint)
1669internal Solution WithCachedSourceGeneratorState(ProjectId projectToUpdate, Project projectWithCachedGeneratorState)
1741private void CheckContainsProject(ProjectId projectId)
1853private void CheckCircularProjectReferences(ProjectId projectId, IReadOnlyCollection<ProjectReference> projectReferences)
1878private void CheckSubmissionProjectReferences(ProjectId projectId, IEnumerable<ProjectReference> projectReferences, bool ignoreExistingReferences)
1906internal SourceGeneratorExecutionVersion GetSourceGeneratorExecutionVersion(ProjectId projectId)
Workspace\Solution\SolutionCompilationState.cs (74)
32private static readonly ConditionalWeakTable<ISymbol, ProjectId> s_assemblyOrModuleSymbolToProjectMap = new();
47private ImmutableSegmentedDictionary<ProjectId, ICompilationTracker> _projectIdToTrackerMap;
62ImmutableSegmentedDictionary<ProjectId, ICompilationTracker> projectIdToTrackerMap,
94projectIdToTrackerMap: ImmutableSegmentedDictionary<ProjectId, ICompilationTracker>.Empty,
117ImmutableSegmentedDictionary<ProjectId, ICompilationTracker>? projectIdToTrackerMap = null,
181var projectId = newProjectState.Id;
208/// Creates a mapping of <see cref="ProjectId"/> to <see cref="ICompilationTracker"/>
214private ImmutableSegmentedDictionary<ProjectId, ICompilationTracker> CreateCompilationTrackerMap<TArg>(
215ProjectId changedProjectId,
217Action<ImmutableSegmentedDictionary<ProjectId, ICompilationTracker>.Builder, TArg> modifyNewTrackerInfo,
224static bool CanReuse(ProjectId id, (ProjectId changedProjectId, ProjectDependencyGraph dependencyGraph) arg)
236/// Creates a mapping of <see cref="ProjectId"/> to <see cref="ICompilationTracker"/>
242private ImmutableSegmentedDictionary<ProjectId, ICompilationTracker> CreateCompilationTrackerMap<TArg>(
243ImmutableArray<ProjectId> changedProjectIds,
245Action<ImmutableSegmentedDictionary<ProjectId, ICompilationTracker>.Builder, TArg> modifyNewTrackerInfo,
252static bool CanReuse(ProjectId id, (ImmutableArray<ProjectId> changedProjectIds, ProjectDependencyGraph dependencyGraph) arg)
257foreach (var changedProjectId in arg.changedProjectIds)
268/// Creates a mapping of <see cref="ProjectId"/> to <see cref="ICompilationTracker"/>
274private ImmutableSegmentedDictionary<ProjectId, ICompilationTracker> CreateCompilationTrackerMap<TArgCanReuse, TArgModifyNewTrackerInfo>(
275Func<ProjectId, TArgCanReuse, bool> canReuse,
277Action<ImmutableSegmentedDictionary<ProjectId, ICompilationTracker>.Builder, TArgModifyNewTrackerInfo> modifyNewTrackerInfo,
330using var _ = PooledHashSet<ProjectId>.GetInstance(out var dependentProjects);
359public SolutionCompilationState RemoveProjects(ArrayBuilder<ProjectId> projectIds)
368using var _ = PooledHashSet<ProjectId>.GetInstance(out var dependentProjects);
371foreach (var projectId in projectIds)
373foreach (var dependentProject in originalDependencyGraph.GetProjectsThatTransitivelyDependOnThisProject(projectId))
388foreach (var projectId in projectIds)
395foreach (var projectId in projectIds)
406ProjectId projectId, string assemblyName)
417public SolutionCompilationState WithProjectOutputFilePath(ProjectId projectId, string? outputFilePath)
427ProjectId projectId, string? outputRefFilePath)
437ProjectId projectId, in CompilationOutputInfo info)
447ProjectId projectId, string? defaultNamespace)
457ProjectId projectId, SourceHashAlgorithm checksumAlgorithm)
468ProjectId projectId, string name)
478ProjectId projectId, string? filePath)
488ProjectId projectId, CompilationOptions? options)
498ProjectId projectId, ParseOptions? options)
523ProjectId projectId, bool hasAllInformation)
533ProjectId projectId, bool runAnalyzers)
543ProjectId projectId, bool hasSdkCodeStyleAnalyzers)
553ProjectId projectId, ImmutableList<DocumentId> documentIds)
564var projectId = attributes.Id;
593var projectId = info.Id;
660ProjectId projectId, IReadOnlyCollection<ProjectReference> projectReferences)
669public SolutionCompilationState RemoveProjectReference(ProjectId projectId, ProjectReference projectReference)
679ProjectId projectId, IReadOnlyList<ProjectReference> projectReferences)
689ProjectId projectId, IReadOnlyCollection<MetadataReference> metadataReferences)
698public SolutionCompilationState RemoveMetadataReference(ProjectId projectId, MetadataReference metadataReference)
708ProjectId projectId, IReadOnlyList<MetadataReference> metadataReferences)
742ProjectId projectId, IReadOnlyList<AnalyzerReference> analyzerReferences)
841var projectId = g.Key;
868IEnumerable<(ProjectId projectId, ImmutableArray<TDocumentState> updatedDocumentState)> updatedDocumentStatesPerProject,
1142public static ProjectId? GetProjectId(IAssemblySymbol? assemblySymbol)
1147s_assemblyOrModuleSymbolToProjectMap.TryGetValue(assemblySymbol, out var id);
1151private bool TryGetCompilationTracker(ProjectId projectId, [NotNullWhen(returnValue: true)] out ICompilationTracker? tracker)
1154private static readonly Func<ProjectId, SolutionState, RegularCompilationTracker> s_createCompilationTrackerFunction = CreateCompilationTracker;
1156private static RegularCompilationTracker CreateCompilationTracker(ProjectId projectId, SolutionState solution)
1163private ICompilationTracker GetCompilationTracker(ProjectId projectId)
1173public Task<VersionStamp> GetDependentVersionAsync(ProjectId projectId, CancellationToken cancellationToken)
1176public Task<VersionStamp> GetDependentSemanticVersionAsync(ProjectId projectId, CancellationToken cancellationToken)
1179public bool TryGetCompilation(ProjectId projectId, [NotNullWhen(returnValue: true)] out Compilation? compilation)
1189/// Returns the compilation for the specified <see cref="ProjectId"/>. Can return <see langword="null"/> when the project
1195private Task<Compilation?> GetCompilationAsync(ProjectId projectId, CancellationToken cancellationToken)
1362foreach (var projectId in projectIdsToUnfreeze)
1566private (ImmutableArray<ProjectState> sortedProjectStates, ImmutableSegmentedDictionary<ProjectId, ICompilationTracker>) ComputeFrozenSnapshotMaps(CancellationToken cancellationToken)
1584var projectId = newSortedProjectStatesBuilder[i].Id;
1724using var _ = PooledDictionary<ProjectId, ArrayBuilder<DocumentState>>.GetInstance(out var missingDocumentStates);
1773var projectId = g.Key;
1803private SolutionCompilationState RemoveDocumentsFromSingleProject<T>(ProjectId projectId, ImmutableArray<DocumentId> documentIds)
1850/// <inheritdoc cref="Solution.WithCachedSourceGeneratorState(ProjectId, Project)"/>
1851public SolutionCompilationState WithCachedSourceGeneratorState(ProjectId projectToUpdate, Project projectWithCachedGeneratorState)
Workspace\Solution\SolutionState.cs (49)
71IReadOnlyList<ProjectId> projectIds,
117projectIds: SpecializedCollections.EmptyBoxedImmutableArray<ProjectId>(),
134/// Ordered by <see cref="ProjectState.Id"/>'s <see cref="ProjectId.Id"/> value.
157public IReadOnlyList<ProjectId> ProjectIds { get; }
179IReadOnlyList<ProjectId>? projectIds = null,
276public bool ContainsProject([NotNullWhen(returnValue: true)] ProjectId? projectId)
321public ProjectState? GetProjectState(ProjectId projectId)
328private static ProjectState? GetProjectState(ImmutableArray<ProjectState> sortedProjectStates, ProjectId projectId)
340private static int GetProjectStateIndex(ImmutableArray<ProjectState> sortedProjectStates, ProjectId projectId)
347public ProjectState GetRequiredProjectState(ProjectId projectId)
377var projectId = projectInfo.Id;
409using var _1 = ArrayBuilder<ProjectId>.GetInstance(ProjectIds.Count + projectStates.Count, out var newProjectIdsBuilder);
410using var _2 = PooledHashSet<ProjectId>.GetInstance(out var addedProjectIds);
433var projectId = projectState.Id;
462public SolutionState RemoveProjects(ArrayBuilder<ProjectId> projectIds)
469foreach (var projectId in projectIds)
475using var _ = PooledHashSet<ProjectId>.GetInstance(out var projectIdsSet);
483foreach (var projectId in projectIds)
537public StateChange WithProjectAssemblyName(ProjectId projectId, string assemblyName)
553public StateChange WithProjectOutputFilePath(ProjectId projectId, string? outputFilePath)
569public StateChange WithProjectOutputRefFilePath(ProjectId projectId, string? outputRefFilePath)
585public StateChange WithProjectCompilationOutputInfo(ProjectId projectId, in CompilationOutputInfo info)
601public StateChange WithProjectDefaultNamespace(ProjectId projectId, string? defaultNamespace)
617public StateChange WithProjectChecksumAlgorithm(ProjectId projectId, SourceHashAlgorithm checksumAlgorithm)
633public StateChange WithProjectName(ProjectId projectId, string name)
649public StateChange WithProjectFilePath(ProjectId projectId, string? filePath)
666public StateChange WithProjectCompilationOptions(ProjectId projectId, CompilationOptions? options)
683public StateChange WithProjectParseOptions(ProjectId projectId, ParseOptions? options)
700public StateChange WithHasAllInformation(ProjectId projectId, bool hasAllInformation)
718public StateChange WithRunAnalyzers(ProjectId projectId, bool runAnalyzers)
736internal StateChange WithHasSdkCodeStyleAnalyzers(ProjectId projectId, bool hasSdkCodeStyleAnalyzers)
754public StateChange AddProjectReferences(ProjectId projectId, IReadOnlyCollection<ProjectReference> projectReferences)
775public StateChange RemoveProjectReference(ProjectId projectId, ProjectReference projectReference)
815public StateChange WithProjectReferences(ProjectId projectId, IReadOnlyList<ProjectReference> projectReferences)
832public StateChange WithProjectDocumentsOrder(ProjectId projectId, ImmutableList<DocumentId> documentIds)
863public StateChange AddMetadataReferences(ProjectId projectId, IReadOnlyCollection<MetadataReference> metadataReferences)
881public StateChange RemoveMetadataReference(ProjectId projectId, MetadataReference metadataReference)
898public StateChange WithProjectMetadataReferences(ProjectId projectId, IReadOnlyList<MetadataReference> metadataReferences)
914public StateChange WithProjectAnalyzerReferences(ProjectId projectId, IReadOnlyList<AnalyzerReference> analyzerReferences)
1180var projectId = newProjectState.Id;
1214IReadOnlyList<ProjectId> projectIds,
1262public DocumentId? GetFirstRelatedDocumentId(DocumentId documentId, ProjectId? relatedProjectIdHint)
1370private void CheckNotContainsProject(ProjectId projectId)
1378internal void CheckContainsProject(ProjectId projectId)
1386internal bool ContainsProjectReference(ProjectId projectId, ProjectReference projectReference)
1389internal bool ContainsMetadataReference(ProjectId projectId, MetadataReference metadataReference)
1392internal bool ContainsAnalyzerReference(ProjectId projectId, AnalyzerReference analyzerReference)
1395internal bool ContainsTransitiveReference(ProjectId fromProjectId, ProjectId toProjectId)
Workspace\Workspace.cs (54)
97_updateSourceGeneratorsQueue = new AsyncBatchingWorkQueue<(ProjectId? projectId, bool forceRegeneration)>(
101EqualityComparer<(ProjectId? projectId, bool forceRegeneration)>.Default,
200/// <inheritdoc cref="SetCurrentSolution(Func{Solution, Solution}, Func{Solution, Solution, ValueTuple{WorkspaceChangeKind, ProjectId?, DocumentId?}}, Action{Solution, Solution}?, Action{Solution, Solution}?)"/>
204ProjectId? projectId = null,
232Func<Solution, Solution, (WorkspaceChangeKind changeKind, ProjectId? projectId, DocumentId? documentId)> changeKind,
252Func<Solution, Solution, (WorkspaceChangeKind changeKind, ProjectId? projectId, DocumentId? documentId)> changeKind,
331ProjectId? relatedProjectIdHint = null;
691protected virtual void ClearProjectData(ProjectId projectId)
854var projectId = reloadedProjectInfo.Id;
869protected internal virtual void OnProjectRemoved(ProjectId projectId)
892protected virtual void CheckProjectCanBeRemoved(ProjectId projectId)
899protected internal void OnAssemblyNameChanged(ProjectId projectId, string assemblyName)
905protected internal void OnOutputFilePathChanged(ProjectId projectId, string? outputFilePath)
911protected internal void OnOutputRefFilePathChanged(ProjectId projectId, string? outputFilePath)
921protected internal void OnProjectNameChanged(ProjectId projectId, string name, string? filePath)
927internal void OnDefaultNamespaceChanged(ProjectId projectId, string? defaultNamespace)
933protected internal void OnCompilationOptionsChanged(ProjectId projectId, CompilationOptions options)
939protected internal void OnParseOptionsChanged(ProjectId projectId, ParseOptions options)
945protected internal void OnProjectReferenceAdded(ProjectId projectId, ProjectReference projectReference)
962protected internal void OnProjectReferenceRemoved(ProjectId projectId, ProjectReference projectReference)
976protected internal void OnMetadataReferenceAdded(ProjectId projectId, MetadataReference metadataReference)
988protected internal void OnMetadataReferenceRemoved(ProjectId projectId, MetadataReference metadataReference)
1000protected internal void OnAnalyzerReferenceAdded(ProjectId projectId, AnalyzerReference analyzerReference)
1012protected internal void OnAnalyzerReferenceRemoved(ProjectId projectId, AnalyzerReference analyzerReference)
1056internal void OnHasAllInformationChanged(ProjectId projectId, bool hasAllInformation)
1062internal void OnRunAnalyzersChanged(ProjectId projectId, bool runAnalyzers)
1087foreach (var projectId in data.documentInfos.Select(i => i.Id.ProjectId).Distinct())
1478var outputAssemblyToProjectIdMap = new Dictionary<string, ProjectId>();
1493foreach (var pid in solution.ProjectIds)
1504if ((!RoslynString.IsNullOrEmpty(pemeta.Display) && outputAssemblyToProjectIdMap.TryGetValue(pemeta.Display, out var matchingProjectId)) ||
1540internal virtual bool CanAddProjectReference(ProjectId referencingProject, ProjectId referencedProject)
2102protected virtual void ApplyProjectRemoved(ProjectId projectId)
2113protected virtual void ApplyCompilationOptionsChanged(ProjectId projectId, CompilationOptions options)
2131protected virtual void ApplyParseOptionsChanged(ProjectId projectId, ParseOptions options)
2148protected virtual void ApplyProjectReferenceAdded(ProjectId projectId, ProjectReference projectReference)
2159protected virtual void ApplyProjectReferenceRemoved(ProjectId projectId, ProjectReference projectReference)
2170protected virtual void ApplyMetadataReferenceAdded(ProjectId projectId, MetadataReference metadataReference)
2181protected virtual void ApplyMetadataReferenceRemoved(ProjectId projectId, MetadataReference metadataReference)
2192protected virtual void ApplyAnalyzerReferenceAdded(ProjectId projectId, AnalyzerReference analyzerReference)
2203protected virtual void ApplyAnalyzerReferenceRemoved(ProjectId projectId, AnalyzerReference analyzerReference)
2361protected void CheckProjectIsInCurrentSolution(ProjectId projectId)
2364private static void CheckProjectIsInSolution(Solution solution, ProjectId projectId)
2377protected void CheckProjectIsNotInCurrentSolution(ProjectId projectId)
2380private static void CheckProjectIsNotInSolution(Solution solution, ProjectId projectId)
2393protected void CheckProjectHasProjectReference(ProjectId fromProjectId, ProjectReference projectReference)
2406protected void CheckProjectDoesNotHaveProjectReference(ProjectId fromProjectId, ProjectReference projectReference)
2419protected void CheckProjectDoesNotHaveTransitiveProjectReference(ProjectId fromProjectId, ProjectId toProjectId)
2433protected void CheckProjectHasMetadataReference(ProjectId projectId, MetadataReference metadataReference)
2444protected void CheckProjectDoesNotHaveMetadataReference(ProjectId projectId, MetadataReference metadataReference)
2455protected void CheckProjectHasAnalyzerReference(ProjectId projectId, AnalyzerReference analyzerReference)
2466protected void CheckProjectDoesNotHaveAnalyzerReference(ProjectId projectId, AnalyzerReference analyzerReference)
2592protected virtual string GetProjectName(ProjectId projectId)
Microsoft.CodeAnalysis.Workspaces.MSBuild (55)
MSBuild\MSBuildProjectLoader.Worker.cs (9)
45/// Map of <see cref="ProjectId"/>s, project paths, and output file paths.
69private readonly Dictionary<ProjectId, ProjectFileInfo> _projectIdToFileInfoMap;
70private readonly Dictionary<ProjectId, List<ProjectReference>> _projectIdToProjectReferencesMap;
232var idsAndFileInfos = new List<(ProjectId id, ProjectFileInfo fileInfo)>();
236var projectId = _projectMap.GetOrCreateProjectId(projectFileInfo);
248projectId = ProjectId.CreateNewId(debugName: projectFileInfo.FilePath);
274private Task<ProjectInfo> CreateProjectInfoAsync(ProjectFileInfo projectFileInfo, ProjectId projectId, bool addDiscriminator, CancellationToken cancellationToken)
436private ImmutableArray<DocumentInfo> CreateDocumentInfos(IReadOnlyList<DocumentFileInfo> documentFileInfos, ProjectId projectId, Encoding? encoding)
479private void CheckForDuplicateDocuments(ImmutableArray<DocumentInfo> documents, string? projectFilePath, ProjectId projectId)
MSBuild\MSBuildProjectLoader.Worker_ResolveReferences.cs (10)
187private async Task<ResolvedReferences> ResolveReferencesAsync(ProjectId id, ProjectFileInfo projectFileInfo, CommandLineArguments commandLineArgs, CancellationToken cancellationToken)
247var unknownProjectId = _projectMap.GetOrCreateProjectId(projectFileReference.Path);
268private async Task<bool> TryLoadAndAddReferenceAsync(ProjectId id, string projectReferencePath, ImmutableArray<string> aliases, ResolvedReferencesBuilder builder, CancellationToken cancellationToken)
370private ProjectReference CreateProjectReference(ProjectId from, ProjectId to, ImmutableArray<string> aliases)
377private bool ProjectReferenceExists(ProjectId to, ProjectId from)
381private static bool ProjectReferenceExists(ProjectId to, ProjectInfo from)
385ProjectId id,
392foreach (var projectReferenceId in projectReferenceIds)
MSBuild\ProjectMap.cs (29)
21/// A map of project path to <see cref="ProjectId"/>s. Note that there can be multiple <see cref="ProjectId"/>s per project path
24private readonly Dictionary<string, HashSet<ProjectId>> _projectPathToProjectIdsMap;
27/// A map of project path to <see cref="ProjectInfo"/>s. Note that there can be multiple <see cref="ProjectId"/>s per project path
33/// A map of <see cref="ProjectId"/> to the output file of the project (if any).
35private readonly Dictionary<ProjectId, string> _projectIdToOutputFilePathMap;
38/// A map of <see cref="ProjectId"/> to the output ref file of the project (if any).
40private readonly Dictionary<ProjectId, string> _projectIdToOutputRefFilePathMap;
44_projectPathToProjectIdsMap = new Dictionary<string, HashSet<ProjectId>>(PathUtilities.Comparer);
81private void Add(ProjectId projectId, string? projectPath, string? outputFilePath, string? outputRefFilePath)
122private ProjectId CreateProjectId(string? projectPath, string? outputFilePath, string? outputRefFilePath)
124var newProjectId = ProjectId.CreateNewId(debugName: projectPath);
129internal ProjectId GetOrCreateProjectId(string projectPath)
142internal ProjectId GetOrCreateProjectId(ProjectFileInfo projectFileInfo)
150if (TryFindOutputFileRefPathInProjectIdSet(outputRefFilePath, projectIds, out var projectId) ||
160private bool TryFindOutputFileRefPathInProjectIdSet(string? outputRefFilePath, HashSet<ProjectId> set, [NotNullWhen(true)] out ProjectId? result)
163private bool TryFindOutputFilePathInProjectIdSet(string? outputFilePath, HashSet<ProjectId> set, [NotNullWhen(true)] out ProjectId? result)
166private static bool TryFindPathInProjectIdSet(string? path, Func<ProjectId, string?> getPathById, HashSet<ProjectId> set, [NotNullWhen(true)] out ProjectId? result)
170foreach (var id in set)
186internal string? GetOutputRefFilePathById(ProjectId projectId)
191internal string? GetOutputFilePathById(ProjectId projectId)
196internal bool TryGetIdsByProjectPath(string projectPath, [NotNullWhen(true)] out HashSet<ProjectId>? ids)
199internal bool TryGetOutputFilePathById(ProjectId id, [NotNullWhen(true)] out string? outputFilePath)
202internal bool TryGetOutputRefFilePathById(ProjectId id, [NotNullWhen(true)] out string? outputRefFilePath)
Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests (7)
Microsoft.CodeAnalysis.Workspaces.Test.Utilities (23)
Microsoft.CodeAnalysis.Workspaces.UnitTests (513)
FindReferencesTests.cs (19)
27private static Solution AddProjectWithMetadataReferences(Solution solution, string projectName, string languageName, string code, IEnumerable<MetadataReference> metadataReference, params ProjectId[] projectReferences)
30var pid = ProjectId.CreateNewId();
43private static Solution AddProjectWithMetadataReferences(Solution solution, string projectName, string languageName, string code, MetadataReference metadataReference, params ProjectId[] projectReferences)
46var pid = ProjectId.CreateNewId();
61var pid = ProjectId.CreateNewId();
71var pid = ProjectId.CreateNewId();
120var pid = ProjectId.CreateNewId();
169var prj1Id = ProjectId.CreateNewId();
208var prj1Id = ProjectId.CreateNewId();
272var prj1Id = ProjectId.CreateNewId();
396var projectIds = new HashSet<ProjectId>();
SolutionTests\ProjectInfoTests.cs (34)
23var pid = ProjectId.CreateNewId();
36var pid = ProjectId.CreateNewId();
51var projectReference = new ProjectReference(ProjectId.CreateNewId());
74var documentInfo = DocumentInfo.Create(DocumentId.CreateNewId(ProjectId.CreateNewId()), "doc");
76var info1 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", documents: [documentInfo]);
79var info2 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#");
82var info3 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", documents: []);
85var info4 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", documents: []);
93var documentInfo = DocumentInfo.Create(DocumentId.CreateNewId(ProjectId.CreateNewId()), "doc");
95var info1 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", additionalDocuments: [documentInfo]);
98var info2 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#");
101var info3 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", additionalDocuments: []);
104var info4 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", additionalDocuments: []);
112var projectReference = new ProjectReference(ProjectId.CreateNewId());
114var info1 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", projectReferences: [projectReference]);
117var info2 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#");
120var info3 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", projectReferences: []);
123var info4 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", projectReferences: []);
133var info1 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", metadataReferences: [metadataReference]);
136var info2 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#");
139var info3 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", metadataReferences: []);
142var info4 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", metadataReferences: []);
152var info1 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", analyzerReferences: [analyzerReference]);
155var info2 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#");
158var info3 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", analyzerReferences: []);
161var info4 = ProjectInfo.Create(ProjectId.CreateNewId(), version, "proj", "assembly", "C#", analyzerReferences: []);
168var projectInfo = ProjectInfo.Create(name: "Goo", filePath: @"C:\", id: ProjectId.CreateNewId(), version: VersionStamp.Default, assemblyName: "Bar", language: "C#");
175var projectInfo = ProjectInfo.Create(name: "Goo", id: ProjectId.CreateNewId(), version: VersionStamp.Default, assemblyName: "Bar", language: "C#");
182var projectId = ProjectId.CreateNewId();
184var instance = ProjectInfo.Create(name: "Name", id: ProjectId.CreateNewId(), version: VersionStamp.Default, assemblyName: "AssemblyName", language: "C#");
186SolutionTestHelpers.TestProperty(instance, (old, value) => old.WithId(value), opt => opt.Id, ProjectId.CreateNewId(), defaultThrows: true);
SolutionTests\SolutionTests.cs (338)
48private static readonly DocumentId s_unrelatedDocumentId = DocumentId.CreateNewId(ProjectId.CreateNewId());
52var projectId = ProjectId.CreateNewId();
70var projectId1 = ProjectId.CreateNewId();
71var projectId2 = ProjectId.CreateNewId();
271var projectId = documentId.ProjectId;
326var projectId = ProjectId.CreateNewId();
831var projectId1 = ProjectId.CreateNewId();
832var projectId2 = ProjectId.CreateNewId();
1073var projectId = ProjectId.CreateNewId();
1074var projectId2 = ProjectId.CreateNewId();
1293var projectId = ProjectId.CreateNewId();
1328var projectId = ProjectId.CreateNewId();
1363var projectId = ProjectId.CreateNewId();
1398var projectId = ProjectId.CreateNewId();
1433var projectId = ProjectId.CreateNewId();
1449Assert.Throws<InvalidOperationException>(() => solution.WithProjectAssemblyName(ProjectId.CreateNewId(), "x.dll"));
1455var projectId = ProjectId.CreateNewId();
1473Assert.Throws<InvalidOperationException>(() => solution.WithProjectOutputFilePath(ProjectId.CreateNewId(), "x.dll"));
1479var projectId = ProjectId.CreateNewId();
1510var projectId = ProjectId.CreateNewId();
1527Assert.Throws<InvalidOperationException>(() => solution.WithProjectOutputRefFilePath(ProjectId.CreateNewId(), "x.dll"));
1533var projectId = ProjectId.CreateNewId();
1550Assert.Throws<InvalidOperationException>(() => solution.WithProjectCompilationOutputInfo(ProjectId.CreateNewId(), info));
1556var projectId = ProjectId.CreateNewId();
1573Assert.Throws<InvalidOperationException>(() => solution.WithProjectDefaultNamespace(ProjectId.CreateNewId(), "x"));
1579var projectId = ProjectId.CreateNewId();
1596var projectId = ProjectId.CreateNewId();
1670var projectId = ProjectId.CreateNewId();
1687Assert.Throws<InvalidOperationException>(() => solution.WithProjectName(ProjectId.CreateNewId(), "x"));
1693var projectId = ProjectId.CreateNewId();
1710Assert.Throws<InvalidOperationException>(() => solution.WithProjectFilePath(ProjectId.CreateNewId(), "x"));
1716var projectId = ProjectId.CreateNewId();
1726Assert.Throws<InvalidOperationException>(() => solution.WithProjectCompilationOptions(ProjectId.CreateNewId(), options));
1732var projectId = ProjectId.CreateNewId();
1758var projectId = ProjectId.CreateNewId();
1775Assert.Throws<InvalidOperationException>(() => solution.WithProjectParseOptions(ProjectId.CreateNewId(), options));
1781var projectId = ProjectId.CreateNewId();
1815var projectId = ProjectId.CreateNewId();
1853var projectId = ProjectId.CreateNewId();
1872var projectId = ProjectId.CreateNewId();
1891var projectId = ProjectId.CreateNewId();
1912var projectId = solution.Projects.Single().Id;
1914var projectId2 = ProjectId.CreateNewId();
1933Assert.Throws<InvalidOperationException>(() => solution.WithProjectReferences(ProjectId.CreateNewId(), [projectRef]));
1945var projectId = solution.Projects.Single().Id;
1946var externalProjectRef = new ProjectReference(ProjectId.CreateNewId());
1961var projectId = solution.Projects.Single().Id;
1962var projectId2 = ProjectId.CreateNewId();
1963var projectId3 = ProjectId.CreateNewId();
1971var externalProjectRef = new ProjectReference(ProjectId.CreateNewId());
2003var projectId = solution.Projects.Single().Id;
2005var projectId2 = ProjectId.CreateNewId();
2008var externalProjectRef = new ProjectReference(ProjectId.CreateNewId());
2027Assert.Throws<ArgumentException>("projectReference", () => solution.RemoveProjectReference(projectId, new ProjectReference(ProjectId.CreateNewId())));
2030Assert.Throws<InvalidOperationException>(() => solution.RemoveProjectReference(ProjectId.CreateNewId(), projectRef2));
2039var projectId0 = ProjectId.CreateNewId();
2040var submissionId1 = ProjectId.CreateNewId();
2041var submissionId2 = ProjectId.CreateNewId();
2042var submissionId3 = ProjectId.CreateNewId();
2074var projectId = solution.Projects.Single().Id;
2084Assert.Throws<InvalidOperationException>(() => solution.WithProjectMetadataReferences(ProjectId.CreateNewId(), [metadataRef]));
2092var projectId = solution.Projects.Single().Id;
2117var projectId = solution.Projects.Single().Id;
2136Assert.Throws<InvalidOperationException>(() => solution.RemoveMetadataReference(ProjectId.CreateNewId(), metadataRef1));
2144var projectId = solution.Projects.Single().Id;
2154Assert.Throws<InvalidOperationException>(() => solution.WithProjectAnalyzerReferences(ProjectId.CreateNewId(), [analyzerRef]));
2162var projectId = solution.Projects.Single().Id;
2190var projectId = solution.Projects.Single().Id;
2209Assert.Throws<InvalidOperationException>(() => solution.RemoveAnalyzerReference(ProjectId.CreateNewId(), analyzerRef1));
2357var projectId = ProjectId.CreateNewId();
2376Assert.Throws<InvalidOperationException>(() => solution.AddDocument(documentId: DocumentId.CreateNewId(ProjectId.CreateNewId()), "name", loader));
2382var projectId = ProjectId.CreateNewId();
2407Assert.Throws<InvalidOperationException>(() => solution.AddDocument(documentId: DocumentId.CreateNewId(ProjectId.CreateNewId()), "name", "text"));
2413var projectId = ProjectId.CreateNewId();
2435Assert.Throws<InvalidOperationException>(() => solution.AddDocument(documentId: DocumentId.CreateNewId(ProjectId.CreateNewId()), "name", sourceText));
2464var projectId = ProjectId.CreateNewId();
2487Assert.Throws<InvalidOperationException>(() => solution.AddDocument(documentId: DocumentId.CreateNewId(ProjectId.CreateNewId()), "name", syntaxRoot: root));
2493var projectId = ProjectId.CreateNewId();
2527var projectId = ProjectId.CreateNewId();
2554var pid = ProjectId.CreateNewId();
2567var project1 = ProjectId.CreateNewId();
2579var project1 = ProjectId.CreateNewId();
2580var project2 = ProjectId.CreateNewId();
2589var pid = ProjectId.CreateNewId();
2614var pid2 = solution.Projects.Single().Id;
2633var projectId = ProjectId.CreateNewId();
2656var projectId1 = ProjectId.CreateNewId();
2657var projectId2 = ProjectId.CreateNewId();
2683var projectId1 = ProjectId.CreateNewId();
2684var projectId2 = ProjectId.CreateNewId();
2709var projectId = ProjectId.CreateNewId();
2729var projectId1 = ProjectId.CreateNewId();
2730var projectId2 = ProjectId.CreateNewId();
2751var projectId1 = ProjectId.CreateNewId();
2752var projectId2 = ProjectId.CreateNewId();
2770var projectId1 = ProjectId.CreateNewId();
2771var projectId2 = ProjectId.CreateNewId();
2789var projectId1 = ProjectId.CreateNewId();
2790var projectId2 = ProjectId.CreateNewId();
2824var pm1 = ProjectId.CreateNewId();
2825var pm2 = ProjectId.CreateNewId();
2842var pm1 = ProjectId.CreateNewId();
2843var pm2 = ProjectId.CreateNewId();
2950var projectIds = Enumerable.Range(0, 5).Select(i => ProjectId.CreateNewId()).ToArray();
2970var project1 = ProjectId.CreateNewId();
3008var project1 = ProjectId.CreateNewId();
3066var project1 = ProjectId.CreateNewId();
3085var pid = ProjectId.CreateNewId();
3104var pid = ProjectId.CreateNewId();
3105var pid2 = ProjectId.CreateNewId();
3130var pid = ProjectId.CreateNewId();
3131var pid2 = ProjectId.CreateNewId();
3160var pid = ProjectId.CreateNewId();
3182var projectId = ProjectId.CreateNewId();
3204var pid = ProjectId.CreateNewId();
3242var pid = ProjectId.CreateNewId();
3283var projectId = ProjectId.CreateNewId();
3323var pid = ProjectId.CreateNewId();
3347var pid = ProjectId.CreateNewId();
3367var pid = ProjectId.CreateNewId();
3390var pid = ProjectId.CreateNewId();
3414var pid = ProjectId.CreateNewId();
3434var pid = ProjectId.CreateNewId();
3455var pid = ProjectId.CreateNewId();
3477var pid = ProjectId.CreateNewId();
3497var pid = ProjectId.CreateNewId();
3517var pid = ProjectId.CreateNewId();
3536var pid = ProjectId.CreateNewId();
3567var pid = ProjectId.CreateNewId();
3598var pid = ProjectId.CreateNewId();
3624var pid = ProjectId.CreateNewId();
3651var pid = ProjectId.CreateNewId();
3675var pid = ProjectId.CreateNewId();
3740var pid = ProjectId.CreateNewId();
3755private static ObjectReference<Compilation> GetObservedCompilationAsync(Solution solution, ProjectId projectId)
3765var pid = ProjectId.CreateNewId();
3780private static ObjectReference<Compilation> GetObservedCompilation(Solution solution, ProjectId projectId)
3794var pid = ProjectId.CreateNewId();
3933var pid = ProjectId.CreateNewId();
3958var pid1 = ProjectId.CreateNewId("p1");
3959var pid2 = ProjectId.CreateNewId("p2");
3960var pid3 = ProjectId.CreateNewId("p3");
4051ProjectId.CreateNewId(),
4063ProjectId.CreateNewId(),
4083ProjectId.CreateNewId(),
4093ProjectId.CreateNewId(),
4256ProjectId.CreateNewId(),
4269ProjectId.CreateNewId(),
4605var pid = ProjectId.CreateNewId();
4676var pid = ProjectId.CreateNewId();
4714var projectId = ProjectId.CreateNewId();
4750var projectId = ProjectId.CreateNewId();
4791var projectId = ProjectId.CreateNewId();
4836var projectId = ProjectId.CreateNewId();
4867var projectId = ProjectId.CreateNewId();
4918var projectId = ProjectId.CreateNewId();
4938var projectId = ProjectId.CreateNewId();
4959var projectId = ProjectId.CreateNewId();
4977var projectId = ProjectId.CreateNewId();
5001var projectId1 = ProjectId.CreateNewId();
5002var projectId2 = ProjectId.CreateNewId();
5023var projectId1 = ProjectId.CreateNewId();
5024var projectId2 = ProjectId.CreateNewId();
5051var projectId1 = ProjectId.CreateNewId();
5052var projectId2 = ProjectId.CreateNewId();
5079var projectId1 = ProjectId.CreateNewId();
5080var projectId2 = ProjectId.CreateNewId();
5081var projectId3 = ProjectId.CreateNewId();
5108var projectId1 = ProjectId.CreateNewId();
5109var projectId2 = ProjectId.CreateNewId();
5110var projectId3 = ProjectId.CreateNewId();
5139var projectId1 = ProjectId.CreateNewId();
5140var projectId2 = ProjectId.CreateNewId();
5141var projectId3 = ProjectId.CreateNewId();
5177var projectId1 = ProjectId.CreateNewId();
5194var projectId1 = ProjectId.CreateNewId();
5195var projectId2 = ProjectId.CreateNewId();
5196var projectId3 = ProjectId.CreateNewId();
5218using var _2 = ArrayBuilder<ProjectId>.GetInstance(out var projectsToRemove);
5240var projectId1 = ProjectId.CreateNewId();
5241var projectId2 = ProjectId.CreateNewId();
5242var projectId3 = ProjectId.CreateNewId();
5262using var _2 = ArrayBuilder<ProjectId>.GetInstance(out var projectsToRemove);
5284var projectId1 = ProjectId.CreateNewId();
5285var projectId2 = ProjectId.CreateNewId();
5295using var _2 = ArrayBuilder<ProjectId>.GetInstance(out var projectsToRemove);
5308var csProjectId = ProjectId.CreateNewId();
5309var vbProjectId = ProjectId.CreateNewId();
5365ProjectId.CreateNewId(),
5379ProjectId.CreateNewId(),
5392ProjectId.CreateNewId(),
5406ProjectId.CreateNewId(),
5420ProjectId.CreateNewId(),
5430ProjectId.CreateNewId(),
5478var pid = ProjectId.CreateNewId();
5561var projectId = ProjectId.CreateNewId();
WorkspaceTests\WorkspaceTests.cs (8)
24var projectId = ws.AddProject("TestProject", LanguageNames.CSharp).Id;
37var projectId = ws.AddProject("TestProject", LanguageNames.CSharp).Id;
53var projectId = ws.AddProject("TestProject", LanguageNames.CSharp).Id;
71var projectId = ws.AddProject("TestProject", LanguageNames.CSharp).Id;
88var projectId = ws.AddProject("TestProject", LanguageNames.CSharp).Id;
104var projectId = ws.AddProject("TestProject", LanguageNames.CSharp).Id;
129var info = ProjectInfo.Create(ProjectId.CreateNewId(), VersionStamp.Create(), name, name, language);
147public Document AddDocument(ProjectId projectId, string name, SourceText text)
Microsoft.Interop.ComInterfaceGenerator (1)
Microsoft.Interop.LibraryImportGenerator (1)
Microsoft.ML.CodeAnalyzer.Tests (1)
Microsoft.VisualStudio.LanguageServices (180)
Library\ObjectBrowser\AbstractListItemFactory.cs (25)
69protected MemberListItem CreateFullyQualifiedMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden)
78protected MemberListItem CreateInheritedMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden)
81protected MemberListItem CreateSimpleMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden)
84private MemberListItem CreateMemberListItem(ISymbol memberSymbol, ProjectId projectId, bool hidden, bool isInherited)
98protected TypeListItem CreateSimpleTypeListItem(INamedTypeSymbol namedTypeSymbol, ProjectId projectId, bool hidden)
111protected TypeListItem CreateFullyQualifiedTypeListItem(INamedTypeSymbol namedTypeSymbol, ProjectId projectId, bool hidden)
124protected NamespaceListItem CreateNamespaceListItem(INamespaceSymbol namespaceSymbol, ProjectId projectId)
170ProjectId projectId,
171Func<TSymbol, ProjectId, bool, ObjectListItem> listItemCreator)
184ProjectId projectId,
185Func<TSymbol, ProjectId, bool, ObjectListItem> listItemCreator,
205private ImmutableArray<ObjectListItem> GetBaseTypeListItems(INamedTypeSymbol namedTypeSymbol, Compilation compilation, ProjectId projectId)
293ProjectId projectId,
405public void CollectNamespaceListItems(IAssemblySymbol assemblySymbol, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
456private sealed class AssemblySymbolComparer : IEqualityComparer<(ProjectId, IAssemblySymbol)>
458public bool Equals((ProjectId, IAssemblySymbol) x, (ProjectId, IAssemblySymbol) y)
461public int GetHashCode((ProjectId, IAssemblySymbol) obj)
465public async Task<ImmutableHashSet<(ProjectId, IAssemblySymbol)>> GetAssemblySetAsync(
470foreach (var projectId in solution.ProjectIds)
507public async Task<ImmutableHashSet<(ProjectId, IAssemblySymbol)>> GetAssemblySetAsync(Project project, bool lookInReferences, CancellationToken cancellationToken)
597foreach (var projectId in projectIds)
690ProjectId projectId,
743public void CollectTypeListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
775public void CollectMemberListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
Library\ObjectBrowser\AbstractObjectBrowserLibraryManager_ListItems.cs (5)
14internal void CollectMemberListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
17internal void CollectNamespaceListItems(IAssemblySymbol assemblySymbol, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
20internal void CollectTypeListItems(IAssemblySymbol assemblySymbol, Compilation compilation, ProjectId projectId, ImmutableArray<ObjectListItem>.Builder builder, string searchString)
23internal Task<ImmutableHashSet<(ProjectId, IAssemblySymbol)>> GetAssemblySetAsync(Solution solution, string languageName, CancellationToken cancellationToken)
26internal Task<ImmutableHashSet<(ProjectId, IAssemblySymbol)>> GetAssemblySetAsync(Project project, bool lookInReferences, CancellationToken cancellationToken)
Packaging\PackageInstallerServiceFactory.cs (14)
80private readonly AsyncBatchingWorkQueue<(bool solutionChanged, ProjectId? changedProject)> _workQueue;
82private readonly ConcurrentDictionary<ProjectId, ProjectState> _projectToInstalledPackageAndVersion = [];
131_workQueue = new AsyncBatchingWorkQueue<(bool solutionChanged, ProjectId? changedProject)>(
134equalityComparer: EqualityComparer<(bool solutionChanged, ProjectId? changedProject)>.Default,
198bool IPackageInstallerService.IsEnabled(ProjectId projectId)
275var projectId = documentId.ProjectId;
429ProjectId? changedProject = null;
457ImmutableSegmentedList<(bool solutionChanged, ProjectId? changedProject)> workQueue, CancellationToken cancellationToken)
472ImmutableSegmentedList<(bool solutionChanged, ProjectId? changedProject)> workQueue, CancellationToken cancellationToken)
479using var _ = PooledHashSet<ProjectId>.GetInstance(out var projectsToProcess);
521ImmutableSegmentedList<(bool solutionChanged, ProjectId? changedProject)> workQueue, Solution solution, HashSet<ProjectId> projectsToProcess)
542ProjectId projectId,
605public bool IsInstalled(ProjectId projectId, string packageName)
ProjectSystem\VisualStudioWorkspaceImpl.cs (32)
81private ImmutableDictionary<ProjectId, IVsHierarchy?> _projectToHierarchyMap = ImmutableDictionary<ProjectId, IVsHierarchy?>.Empty;
82private ImmutableDictionary<ProjectId, Guid> _projectToGuidMap = ImmutableDictionary<ProjectId, Guid>.Empty;
86/// <see cref="TryGetRuleSetPathForProject(ProjectId)"/> and any other use is extremely suspicious, since direct use of this is out of
90private ImmutableDictionary<ProjectId, Func<string?>> _projectToRuleSetFilePath = ImmutableDictionary<ProjectId, Func<string?>>.Empty;
283internal override string? TryGetRuleSetPathForProject(ProjectId projectId)
373internal bool IsCPSProject(ProjectId projectId)
385internal bool IsPrimaryProject(ProjectId projectId)
446private bool TryGetProjectData(ProjectId projectId, [NotNullWhen(returnValue: true)] out IVsHierarchy? hierarchy, [NotNullWhen(returnValue: true)] out EnvDTE.Project? project)
455internal void GetProjectData(ProjectId projectId, out IVsHierarchy hierarchy, out EnvDTE.Project project)
463internal EnvDTE.Project? TryGetDTEProject(ProjectId projectId)
466internal bool TryAddReferenceToProject(ProjectId projectId, string assemblyName)
489protected override void ApplyCompilationOptionsChanged(ProjectId projectId, CompilationOptions options)
507protected override void ApplyParseOptionsChanged(ProjectId projectId, ParseOptions options)
524protected override void ApplyAnalyzerReferenceAdded(ProjectId projectId, AnalyzerReference analyzerReference)
546protected override void ApplyAnalyzerReferenceRemoved(ProjectId projectId, AnalyzerReference analyzerReference)
579ProjectId projectId, MetadataReference metadataReference)
605ProjectId projectId, MetadataReference metadataReference)
662async Task<MultiDictionary<string, (TextChange TextChange, ProjectId ProjectId)>> GetMappedTextChangesAsync(SolutionChanges solutionChanges)
664var filePathToMappedTextChanges = new MultiDictionary<string, (TextChange TextChange, ProjectId ProjectId)>();
698ProjectId projectId, ProjectReference projectReference)
738ProjectId projectId, ProjectReference projectReference)
1099internal void OpenDocumentFromPath(string? filePath, ProjectId projectId, bool activate = true)
1120private bool TryGetFrame(string? filePath, ProjectId projectId, [NotNullWhen(returnValue: true)] out IVsWindowFrame? frame)
1383public override IVsHierarchy? GetHierarchy(ProjectId projectId)
1389internal override Guid GetProjectGuid(ProjectId projectId)
1395internal string? TryGetDependencyNodeTargetIdentifier(ProjectId projectId)
1472internal bool TryGetHierarchy(ProjectId projectId, [NotNullWhen(returnValue: true)] out IVsHierarchy? hierarchy)
1524internal override bool CanAddProjectReference(ProjectId referencingProject, ProjectId referencedProject)
TaskList\ExternalErrorDiagnosticUpdateSource.cs (11)
106public bool IsSupportedDiagnosticId(ProjectId projectId, string id)
109public void ClearErrors(ProjectId projectId)
139public void AddNewErrors(ProjectId projectId, Guid projectHierarchyGuid, ImmutableArray<DiagnosticData> diagnostics)
152private async Task ClearPreviousAsync(ProjectId? projectId, CancellationToken cancellationToken)
166private async ValueTask ProcessDiagnosticsReportAsync(ProjectId projectId, Guid projectHierarchyGuid, ImmutableArray<DiagnosticData> diagnostics, InProgressState state, CancellationToken cancellationToken)
195private static Microsoft.VisualStudio.RpcContracts.DiagnosticManagement.Diagnostic? CreateDiagnostic(ProjectId projectId, Guid projectHierarchyGuid, DiagnosticData diagnostic, Solution solution)
318private readonly Dictionary<ProjectId, ImmutableHashSet<string>> _allDiagnosticIdMap = [];
328public bool IsSupportedDiagnosticId(ProjectId projectId, string id)
332ProjectId projectId,
333Dictionary<ProjectId, ImmutableHashSet<string>> diagnosticIdMap,
353private ImmutableHashSet<string> GetOrCreateSupportedDiagnosticIds(ProjectId projectId)
Microsoft.VisualStudio.LanguageServices.CSharp (1)
Microsoft.VisualStudio.LanguageServices.CSharp.UnitTests (6)
Microsoft.VisualStudio.LanguageServices.LiveShare (12)
Microsoft.VisualStudio.LanguageServices.UnitTests (3)
Microsoft.VisualStudio.LanguageServices.VisualBasic (1)
Microsoft.VisualStudio.LanguageServices.Xaml (1)
Roslyn.Diagnostics.Analyzers (1)
Roslyn.Diagnostics.Analyzers.UnitTests (1)
Roslyn.VisualStudio.Next.UnitTests (66)
Services\SolutionServiceTests.cs (9)
87ProjectId.CreateNewId(), VersionStamp.Create(), "test", "test.dll", LanguageNames.CSharp,
116ProjectId.CreateNewId(), VersionStamp.Create(), "test", "test.dll", LanguageNames.CSharp,
217foreach (var projectId in solution.ProjectIds)
252var projectId = solution.ProjectIds.Single();
305var existingProjectId = s.ProjectIds.First();
330var projectId = workspace.CurrentSolution.ProjectIds.First();
361var projectId = workspace.CurrentSolution.ProjectIds.First();
394var projectId = workspace.CurrentSolution.ProjectIds.First();
923project1 = project1.AddProjectReference(new ProjectReference(ProjectId.CreateNewId()));
Test.Utilities (2)
Text.Analyzers (1)
Text.Analyzers.UnitTests (2)