summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/CodeComplete.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/CodeComplete.cpp')
-rw-r--r--clang-tools-extra/clangd/CodeComplete.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp
index fec91e12ead..c79f0171761 100644
--- a/clang-tools-extra/clangd/CodeComplete.cpp
+++ b/clang-tools-extra/clangd/CodeComplete.cpp
@@ -541,16 +541,14 @@ struct SpecifiedScope {
// Set if the qualifier is not fully resolved by Sema.
Optional<std::string> UnresolvedQualifier;
- // Construct scopes being queried in indexes.
+ // Construct scopes being queried in indexes. The results are deduplicated.
// This method format the scopes to match the index request representation.
std::vector<std::string> scopesForIndexQuery() {
- std::vector<std::string> Results;
- for (StringRef AS : AccessibleScopes) {
- Results.push_back(AS);
- if (UnresolvedQualifier)
- Results.back() += *UnresolvedQualifier;
- }
- return Results;
+ std::set<std::string> Results;
+ for (StringRef AS : AccessibleScopes)
+ Results.insert(
+ ((UnresolvedQualifier ? *UnresolvedQualifier : "") + AS).str());
+ return {Results.begin(), Results.end()};
}
};
OpenPOWER on IntegriCloud