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 Dispose() { if (_analyzerReference is AnalyzerFileReference) { ((AnalyzerFileReference)_analyzerReference).AnalyzerLoadFailed -= OnAnalyzerLoadError; if (_analyzerLoadErrors != null && _analyzerLoadErrors.Count > 0) { _hostDiagnosticUpdateSource.ClearDiagnosticsForProject(_projectId, this); } } _analyzerLoadErrors = null; _tracker.Dispose(); _tracker.UpdatedOnDisk -= OnUpdatedOnDisk; }
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; }
internal void RemoveAnalyzerAlreadyLoadedDiagnostics(ProjectId projectId, string analyzerPath) { _updateSource.ClearDiagnosticsForProject(projectId, Tuple.Create(s_analyzerChangedErrorId, analyzerPath)); }