public void Dispose() { ResetReferenceAndErrors(out var reference, out var loadErrors); if (reference is AnalyzerFileReference fileReference) { fileReference.AnalyzerLoadFailed -= OnAnalyzerLoadError; if (!loadErrors.IsEmpty) { _hostDiagnosticUpdateSource.ClearDiagnosticsForProject(_projectId, this); } _hostDiagnosticUpdateSource.ClearAnalyzerReferenceDiagnostics(fileReference, _language, _projectId); } }
public void Reset() { var analyzerFileReference = _analyzerReference as AnalyzerFileReference; if (analyzerFileReference != null) { analyzerFileReference.AnalyzerLoadFailed -= OnAnalyzerLoadError; if (_analyzerLoadErrors != null && _analyzerLoadErrors.Count > 0) { _hostDiagnosticUpdateSource.ClearDiagnosticsForProject(_projectId, this); } _hostDiagnosticUpdateSource.ClearAnalyzerReferenceDiagnostics(analyzerFileReference, _language, _projectId); } _analyzerLoadErrors = null; _analyzerReference = null; }