private async Task ProcessDocumentAsync( Document document, SymbolAndProjectId symbolAndProjectId, IReferenceFinder finder, ProgressWrapper wrapper) { using (Logger.LogBlock(FunctionId.FindReference_ProcessDocumentAsync, s_logDocument, document, symbolAndProjectId.Symbol, _cancellationToken)) { try { var references = await finder.FindReferencesInDocumentAsync(symbolAndProjectId, document, _cancellationToken).ConfigureAwait(false); foreach (var location in references) { await HandleLocationAsync(symbolAndProjectId, location).ConfigureAwait(false); } } finally { await wrapper.IncrementAsync().ConfigureAwait(false); } } }