public TestDiagnosticAnalyzerDriver(Project project, ImmutableArray<DiagnosticAnalyzer> workspaceAnalyzers, Action<Exception, DiagnosticAnalyzer, Diagnostic> onAnalyzerException = null, bool logAnalyzerExceptionAsDiagnostics = false) { _workspaceAnalyzers = workspaceAnalyzers; _exceptionDiagnosticsSource = new TestHostDiagnosticUpdateSource(project.Solution.Workspace); _diagnosticAnalyzerService = new TestDiagnosticAnalyzerService(project.Language, workspaceAnalyzers, _exceptionDiagnosticsSource, onAnalyzerException); _incrementalAnalyzer = _diagnosticAnalyzerService.CreateIncrementalAnalyzer(project.Solution.Workspace); // If the test is not configured with a custom onAnalyzerException handler AND has not requested exceptions to be handled and logged as diagnostics, then FailFast on exceptions. if (onAnalyzerException == null && !logAnalyzerExceptionAsDiagnostics) { onAnalyzerException = DiagnosticExtensions.FailFastOnAnalyzerException; } _onAnalyzerException = onAnalyzerException; }
public TestDiagnosticAnalyzerDriver(Project project, ImmutableArray <DiagnosticAnalyzer> workspaceAnalyzers, Action <Exception, DiagnosticAnalyzer, Diagnostic> onAnalyzerException = null, bool logAnalyzerExceptionAsDiagnostics = false) { _workspaceAnalyzers = workspaceAnalyzers; _exceptionDiagnosticsSource = new TestHostDiagnosticUpdateSource(project.Solution.Workspace); _diagnosticAnalyzerService = new TestDiagnosticAnalyzerService(project.Language, workspaceAnalyzers, _exceptionDiagnosticsSource, onAnalyzerException); _incrementalAnalyzer = _diagnosticAnalyzerService.CreateIncrementalAnalyzer(project.Solution.Workspace); // If the test is not configured with a custom onAnalyzerException handler AND has not requested exceptions to be handled and logged as diagnostics, then FailFast on exceptions. if (onAnalyzerException == null && !logAnalyzerExceptionAsDiagnostics) { onAnalyzerException = DiagnosticExtensions.FailFastOnAnalyzerException; } _onAnalyzerException = onAnalyzerException; }