private bool ShouldAnalysisBeDisabledOnTree(SyntaxTree tree)
        {
            if (tree == null)
            {
                return(false);
            }

            IEnumerable <AnalyzerReference> references            = workspace?.CurrentSolution?.GetDocument(tree)?.Project?.AnalyzerReferences;
            ProjectAnalyzerStatus           projectAnalyzerStatus = GetProjectAnalyzerConflictStatus(references);

            return(HasConflictingAnalyzerReference(projectAnalyzerStatus) ||
                   this.GetIsBoundWithoutAnalyzer(projectAnalyzerStatus));
        }
 internal /*for testing purposes*/ static bool HasConflictingAnalyzerReference(
     ProjectAnalyzerStatus projectAnalyzerStatus)
 {
     return(projectAnalyzerStatus == ProjectAnalyzerStatus.DifferentVersion);
 }
 internal /*for testing purposes*/ static bool HasConflictingAnalyzerReference(
     ProjectAnalyzerStatus projectAnalyzerStatus)
 {
     return projectAnalyzerStatus == ProjectAnalyzerStatus.DifferentVersion;
 }
 internal /*for testing purposes*/ bool GetIsBoundWithoutAnalyzer(ProjectAnalyzerStatus projectAnalyzerStatus)
 {
     return(projectAnalyzerStatus == ProjectAnalyzerStatus.NoAnalyzer &&
            this.activeSolutionBoundTracker != null &&
            this.activeSolutionBoundTracker.IsActiveSolutionBound);
 }
 internal /*for testing purposes*/ bool GetIsBoundWithoutAnalyzer(ProjectAnalyzerStatus projectAnalyzerStatus)
 {
     return projectAnalyzerStatus == ProjectAnalyzerStatus.NoAnalyzer &&
         this.activeSolutionBoundTracker != null &&
         this.activeSolutionBoundTracker.IsActiveSolutionBound;
 }