diff --git a/src/StructuredLogger/Construction/Construction.cs b/src/StructuredLogger/Construction/Construction.cs index 1a6548eb9..860fe0c71 100644 --- a/src/StructuredLogger/Construction/Construction.cs +++ b/src/StructuredLogger/Construction/Construction.cs @@ -117,7 +117,11 @@ private void CalculateTargetGraph(Project project) { if (t.Project == project) { - t.DependsOnTargets = stringTable.Intern(string.Join(",", targetGraph.GetDependencies(t.Name))); + var dependencies = targetGraph.GetDependencies(t.Name); + if (dependencies != null && dependencies.Any()) + { + t.DependsOnTargets = stringTable.Intern(string.Join(",", dependencies)); + } } }); } diff --git a/src/StructuredLogger/Construction/TargetGraph.cs b/src/StructuredLogger/Construction/TargetGraph.cs index 344e3cc3f..8963eb06b 100644 --- a/src/StructuredLogger/Construction/TargetGraph.cs +++ b/src/StructuredLogger/Construction/TargetGraph.cs @@ -43,17 +43,20 @@ private void Calculate() public string GetDependent(string target) { - return dependents[target].FirstOrDefault(); - } + HashSet bucket; + if (dependents.TryGetValue(target, out bucket)) + { + return bucket.FirstOrDefault(); + } - public IEnumerable GetDependents(string target) - { - return dependents[target]; + return null; } public IEnumerable GetDependencies(string target) { - return dependencies[target]; + HashSet bucket; + dependencies.TryGetValue(target, out bucket); + return bucket ?? Enumerable.Empty(); } public IEnumerable GetTargetClosure(string targetName)