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();
                    }
                    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());
                    }