diff --git a/analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ControllersHaveTooManyResponsibilities.cs b/analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ControllersHaveTooManyResponsibilities.cs index 4eaccc59d59..dc6670dce56 100644 --- a/analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ControllersHaveTooManyResponsibilities.cs +++ b/analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ControllersHaveTooManyResponsibilities.cs @@ -19,7 +19,6 @@ */ using System.Collections.Concurrent; -using static SonarAnalyzer.Helpers.DisjointSetsPrimitives; namespace SonarAnalyzer.Rules.CSharp; @@ -87,13 +86,13 @@ private static void CheckApiController(SonarSymbolStartAnalysisContext symbolSta symbolStartContext.RegisterSymbolEndAction(symbolEndContext => { - var parents = memberNames.ToDictionary(x => x, x => x); // Start with singleton sets + var dependencySets = new DisjointSets(memberNames); foreach (var dependency in dependencies) { - Union(parents, dependency.From, dependency.To); + dependencySets.Union(dependency.From, dependency.To); } - var responsibilityGroups = DisjointSets(parents); + var responsibilityGroups = dependencySets.GetAllSets(); if (responsibilityGroups.Count > 1) { var secondaryLocations = SecondaryLocations(controllerSymbol, responsibilityGroups);