From 8f6299bc795a45a518981ce06a413a71097b6866 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Cassettari Date: Tue, 18 Feb 2025 15:56:20 -0300 Subject: [PATCH] Add `ToDictionarySkipDuplicates` --- .../Steps/ModuleInitializersRepackStep.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ILRepack/Steps/ModuleInitializersRepackStep.cs b/ILRepack/Steps/ModuleInitializersRepackStep.cs index 385443e9..b8c4ae60 100644 --- a/ILRepack/Steps/ModuleInitializersRepackStep.cs +++ b/ILRepack/Steps/ModuleInitializersRepackStep.cs @@ -135,9 +135,26 @@ private void DemoteModuleInitializerMethodToNormalMethod(MethodDefinition initia initializer.IsRuntimeSpecialName = false; } + private Dictionary ToDictionarySkipDuplicates(IEnumerable assemblies) + { + var dict = new Dictionary(); + foreach (var assembly in assemblies) + { + if (!dict.ContainsKey(assembly.Name.Name)) + { + dict[assembly.Name.Name] = assembly; + } + else + { + _logger.Verbose($"- Duplicate key found: {assembly.Name.Name} - skipping"); + } + } + return dict; + } + private List TopologicalSort(HashSet assemblies) { - var loadedAssemblies = assemblies.ToDictionary(a => a.Name.Name); // Ensure quick lookup + var loadedAssemblies = ToDictionarySkipDuplicates(assemblies); // Ensure quick lookup var visited = new HashSet(); var deepFirstAssemblies = new List(assemblies.Count);