public FindReferencesSearchEngine( Solution solution, IImmutableSet <Document> documents, ImmutableArray <IReferenceFinder> finders, IStreamingFindReferencesProgress progress, CancellationToken cancellationToken) { _documents = documents; _solution = solution; _finders = finders; _progress = progress; _cancellationToken = cancellationToken; _dependencyGraph = solution.GetProjectDependencyGraph(); _progressTracker = new StreamingProgressTracker(progress.ReportProgressAsync); }
public FindLiteralsSearchEngine( Solution solution, IStreamingFindLiteralReferencesProgress progress, object value, CancellationToken cancellationToken) { _solution = solution; _progress = progress; _progressTracker = new StreamingProgressTracker(_progress.ReportProgressAsync); _value = value; _cancellationToken = cancellationToken; switch (value) { case string s: _stringValue = s; _searchKind = SearchKind.StringLiterals; break; case double d: _longValue = BitConverter.DoubleToInt64Bits(d); _searchKind = SearchKind.NumericLiterals; break; case float f: _longValue = BitConverter.DoubleToInt64Bits(f); _searchKind = SearchKind.NumericLiterals; break; case decimal d: // unsupported _searchKind = SearchKind.None; break; case char c: _longValue = IntegerUtilities.ToInt64(value); _searchKind = SearchKind.CharacterLiterals; break; default: _longValue = IntegerUtilities.ToInt64(value); _searchKind = SearchKind.NumericLiterals; break; } }