[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