private void ReportAnalyzerExceptions(Project project, ImmutableDictionary <DiagnosticAnalyzer, ImmutableArray <DiagnosticData> > exceptions) { foreach (var(analyzer, diagnostics) in exceptions) { foreach (var diagnostic in diagnostics) { _hostDiagnosticUpdateSourceOpt?.ReportAnalyzerDiagnostic(analyzer, diagnostic, project); } } }
private void ReportAnalyzerExceptions(Project project, ImmutableDictionary <DiagnosticAnalyzer, ImmutableArray <DiagnosticData> > exceptions) { foreach (var kv in exceptions) { var analyzer = kv.Key; foreach (var diagnostic in kv.Value) { _hostDiagnosticUpdateSource.ReportAnalyzerDiagnostic(analyzer, diagnostic, project); } } }
internal void ReportAnalyzerExceptionDiagnostic(DiagnosticAnalyzer analyzer, Diagnostic exceptionDiagnostic, Compilation compilation) { Contract.ThrowIfFalse(AnalyzerManager.IsAnalyzerExceptionDiagnostic(exceptionDiagnostic)); if (_hostDiagnosticUpdateSource == null) { return; } if (compilation != null) { var effectiveDiagnostic = CompilationWithAnalyzers.GetEffectiveDiagnostics(ImmutableArray.Create(exceptionDiagnostic), compilation).SingleOrDefault(); if (effectiveDiagnostic == null) { return; } else { exceptionDiagnostic = effectiveDiagnostic; } } _hostDiagnosticUpdateSource.ReportAnalyzerDiagnostic(analyzer, exceptionDiagnostic, this.Project.Solution.Workspace, this.Project); }