private static ImmutableDictionary <string, ImmutableDictionary <DiagnosticAnalyzer, ProviderId> > CreateAnalyzerIdMap( AnalyzerManager analyzerManager, string language) { var index = 0; var map = ImmutableDictionary.CreateBuilder <string, ImmutableDictionary <DiagnosticAnalyzer, ProviderId> >(); foreach (var kv in analyzerManager.GetHostDiagnosticAnalyzersPerReference(language)) { var perAnalyzerMap = ImmutableDictionary.CreateBuilder <DiagnosticAnalyzer, ProviderId>(); var referenceIdentity = kv.Key; var perLanguageAnalyzers = kv.Value; if (perLanguageAnalyzers.Length > 0) { foreach (var analyzer in perLanguageAnalyzers) { var analyzerId = index++; perAnalyzerMap.Add(analyzer, analyzerId); } map.Add(referenceIdentity, perAnalyzerMap.ToImmutable()); } } return(map.ToImmutable()); }