[clang-tools-extra] 209694d - [clangd] Make the order of missing-include edits deterministic
Haojian Wu via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 21 05:16:37 PDT 2023
Author: Haojian Wu
Date: 2023-07-21T14:16:16+02:00
New Revision: 209694ded0e06edfed11d6e67b396112dae21629
URL: https://github.com/llvm/llvm-project/commit/209694ded0e06edfed11d6e67b396112dae21629
DIFF: https://github.com/llvm/llvm-project/commit/209694ded0e06edfed11d6e67b396112dae21629.diff
LOG: [clangd] Make the order of missing-include edits deterministic
Fixes https://github.com/llvm/llvm-project/issues/63995
Added:
Modified:
clang-tools-extra/clangd/IncludeCleaner.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clangd/IncludeCleaner.cpp b/clang-tools-extra/clangd/IncludeCleaner.cpp
index 2ecc15973337a7..9708c67ca2883c 100644
--- a/clang-tools-extra/clangd/IncludeCleaner.cpp
+++ b/clang-tools-extra/clangd/IncludeCleaner.cpp
@@ -38,7 +38,6 @@
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ErrorHandling.h"
@@ -47,6 +46,7 @@
#include "llvm/Support/Regex.h"
#include <cassert>
#include <iterator>
+#include <map>
#include <memory>
#include <optional>
#include <string>
@@ -256,7 +256,7 @@ addAllMissingIncludes(llvm::ArrayRef<Diag> MissingIncludeDiags) {
AddAllMissing.Message = "add all missing includes";
// A map to deduplicate the edits with the same new text.
// newText (#include "my_missing_header.h") -> TextEdit.
- llvm::StringMap<TextEdit> Edits;
+ std::map<std::string, TextEdit> Edits;
for (const auto &Diag : MissingIncludeDiags) {
assert(Diag.Fixes.size() == 1 && "Expected exactly one fix.");
for (const auto &Edit : Diag.Fixes.front().Edits) {
@@ -272,7 +272,7 @@ addAllMissingIncludes(llvm::ArrayRef<Diag> MissingIncludeDiags) {
unsigned I = 0;
for (auto &It : Edits) {
ChangeAnnotationIdentifier ID = AddAllMissingID + std::to_string(I++);
- AddAllMissing.Edits.push_back(std::move(It.getValue()));
+ AddAllMissing.Edits.push_back(std::move(It.second));
AddAllMissing.Edits.back().annotationId = ID;
AddAllMissing.Annotations.push_back({ID, Annotation});
More information about the cfe-commits
mailing list