Skip to content

Commit 5fba7d6

Browse files
committed
PR feedback
1 parent 7cf7f45 commit 5fba7d6

File tree

1 file changed

+14
-20
lines changed

1 file changed

+14
-20
lines changed

src/Tasks/Microsoft.NET.Build.Tasks/DependencyContextBuilder.cs

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -312,54 +312,47 @@ public DependencyContext Build(string[] userRuntimeAssemblies = null)
312312
* libraryCandidatesForRemoval if it isn't already there
313313
* Repeat 3 until libraryCandidatesForRemoval is empty
314314
*/
315-
var references = runtimeLibraries.ToDictionary(lib => lib.Library.Name, lib => lib);
315+
var libraries = runtimeLibraries.ToDictionary(lib => lib.Library.Name, lib => lib);
316316
foreach (var reference in runtimeLibraries)
317317
{
318318
foreach (var dependency in reference.Library.Dependencies)
319319
{
320-
if (references.TryGetValue(dependency.Name, out var dep))
320+
if (libraries.TryGetValue(dependency.Name, out var dep))
321321
{
322322
dep.Dependents.Add(reference.Library.Name);
323323
}
324324
}
325325
}
326326

327-
var unprocessedReferences = runtimeLibraries.ToHashSet();
328-
HashSet<ModifiableRuntimeLibrary> temp = new();
329-
while (unprocessedReferences.Any())
327+
var unprocessedLibraries = runtimeLibraries.ToHashSet();
328+
while (unprocessedLibraries.Any())
330329
{
331-
var lib = unprocessedReferences.First();
332-
unprocessedReferences.Remove(lib);
330+
var lib = unprocessedLibraries.First();
331+
unprocessedLibraries.Remove(lib);
333332

334333
if (lib.Library.RuntimeAssemblyGroups.Count == 0 && lib.Library.NativeLibraryGroups.Count == 0 && lib.Library.ResourceAssemblies.Count == 0)
335334
{
336-
if (lib.Library.Dependencies.All(d => !references.TryGetValue(d.Name, out var dependency) || dependency.Dependents.Count > 1))
335+
if (lib.Library.Dependencies.All(d => !libraries.TryGetValue(d.Name, out var dependency) || dependency.Dependents.Count > 1))
337336
{
338337
runtimeLibraries.Remove(lib);
339-
references.Remove(lib.Library.Name);
338+
libraries.Remove(lib.Library.Name);
340339
foreach (var dependency in lib.Library.Dependencies)
341340
{
342-
if (references.TryGetValue(dependency.Name, out ModifiableRuntimeLibrary? value))
341+
if (libraries.TryGetValue(dependency.Name, out ModifiableRuntimeLibrary? value))
343342
{
344343
value.Dependents.Remove(lib.Library.Name);
345344
}
346345
}
347346

348347
foreach (var dependent in lib.Dependents)
349348
{
350-
if (references.TryGetValue(dependent, out var dep))
349+
if (libraries.TryGetValue(dependent, out var dep))
351350
{
352-
temp.Add(dep);
351+
unprocessedLibraries.Add(dep);
353352
}
354353
}
355354
}
356355
}
357-
358-
if (!unprocessedReferences.Any())
359-
{
360-
unprocessedReferences = temp;
361-
temp = new();
362-
}
363356
}
364357

365358
List<CompilationLibrary> compilationLibraries = new();
@@ -947,13 +940,14 @@ private struct LibraryDependency
947940

948941
private class ModifiableRuntimeLibrary
949942
{
950-
public RuntimeLibrary Library { get; set; }
943+
// Dependents are assemblies that depend on this library, as opposed to dependencies which are libraries that this one depends on
951944
public HashSet<string> Dependents { get; set; }
945+
public RuntimeLibrary Library { get; set; }
952946

953947
public ModifiableRuntimeLibrary(RuntimeLibrary library)
954948
{
955-
this.Library = library;
956949
this.Dependents = new();
950+
this.Library = library;
957951
}
958952
}
959953
}

0 commit comments

Comments
 (0)