diff --git a/clang-tools-extra/clangd/IncludeFixer.cpp b/clang-tools-extra/clangd/IncludeFixer.cpp --- a/clang-tools-extra/clangd/IncludeFixer.cpp +++ b/clang-tools-extra/clangd/IncludeFixer.cpp @@ -40,6 +40,7 @@ #include "llvm/ADT/StringSet.h" #include "llvm/Support/Error.h" #include "llvm/Support/FormatVariadic.h" +#include #include namespace clang { @@ -313,18 +314,18 @@ std::vector collectAccessibleScopes(Sema &Sem, const DeclarationNameInfo &Typo, Scope *S, Sema::LookupNameKind LookupKind) { - std::vector Scopes; VisitedContextCollector Collector; Sem.LookupVisibleDecls(S, LookupKind, Collector, /*IncludeGlobalScope=*/false, /*LoadExternal=*/false); - Scopes.push_back(""); + std::set Scopes; + Scopes.insert(""); for (const auto *Ctx : Collector.takeVisitedContexts()) { if (isa(Ctx)) - Scopes.push_back(printNamespaceScope(*Ctx)); + Scopes.insert(printNamespaceScope(*Ctx)); } - return Scopes; + return {Scopes.begin(), Scopes.end()}; } class IncludeFixer::UnresolvedNameRecorder : public ExternalSemaSource {