[clang-tools-extra] ee4dd0f - [clangd] Remove the cross-file-rename option.

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 12 06:39:05 PST 2021


Author: Haojian Wu
Date: 2021-02-12T15:38:55+01:00
New Revision: ee4dd0f87698330a8d86ed268d69c4fe9be49e6f

URL: https://github.com/llvm/llvm-project/commit/ee4dd0f87698330a8d86ed268d69c4fe9be49e6f
DIFF: https://github.com/llvm/llvm-project/commit/ee4dd0f87698330a8d86ed268d69c4fe9be49e6f.diff

LOG: [clangd] Remove the cross-file-rename option.

and simplify the code.

Differential Revision: https://reviews.llvm.org/D96578

Added: 
    

Modified: 
    clang-tools-extra/clangd/ClangdServer.cpp
    clang-tools-extra/clangd/refactor/Rename.cpp
    clang-tools-extra/clangd/refactor/Rename.h
    clang-tools-extra/clangd/unittests/RenameTests.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/ClangdServer.cpp b/clang-tools-extra/clangd/ClangdServer.cpp
index a1ffacf96848..b39e582d84a1 100644
--- a/clang-tools-extra/clangd/ClangdServer.cpp
+++ b/clang-tools-extra/clangd/ClangdServer.cpp
@@ -397,20 +397,15 @@ void ClangdServer::prepareRename(PathRef File, Position Pos,
                                  const RenameOptions &RenameOpts,
                                  Callback<RenameResult> CB) {
   auto Action = [Pos, File = File.str(), CB = std::move(CB),
-                 NewName = std::move(NewName), RenameOpts,
-                 this](llvm::Expected<InputsAndAST> InpAST) mutable {
+                 NewName = std::move(NewName),
+                 RenameOpts](llvm::Expected<InputsAndAST> InpAST) mutable {
     if (!InpAST)
       return CB(InpAST.takeError());
-    // prepareRename is latency-sensitive:
-    //  - for single-file rename, performing rename isn't substantially more
-    //    expensive than doing an AST-based check (the index is used to see if
-    //    the rename is complete);
-    //  - for cross-file rename, we deliberately pass a nullptr index to save
-    //    the cost, thus the result may be incomplete as it only contains
-    //    main-file occurrences;
+    // prepareRename is latency-sensitive: we don't query the index, as we
+    // only need main-file references
     auto Results = clangd::rename(
         {Pos, NewName.getValueOr("__clangd_rename_dummy"), InpAST->AST, File,
-         RenameOpts.AllowCrossFile ? nullptr : Index, RenameOpts});
+         /*Index=*/nullptr, RenameOpts});
     if (!Results) {
       // LSP says to return null on failure, but that will result in a generic
       // failure message. If we send an LSP error response, clients can surface

diff  --git a/clang-tools-extra/clangd/refactor/Rename.cpp b/clang-tools-extra/clangd/refactor/Rename.cpp
index 6c117fc26273..96cd79bcea35 100644
--- a/clang-tools-extra/clangd/refactor/Rename.cpp
+++ b/clang-tools-extra/clangd/refactor/Rename.cpp
@@ -60,27 +60,6 @@ bool isInMacroBody(const SourceManager &SM, SourceLocation Loc) {
   return false;
 }
 
-// Query the index to find some other files where the Decl is referenced.
-llvm::Optional<std::string> getOtherRefFile(const Decl &D, StringRef MainFile,
-                                            const SymbolIndex &Index) {
-  RefsRequest Req;
-  // We limit the number of results, this is a correctness/performance
-  // tradeoff. We expect the number of symbol references in the current file
-  // is smaller than the limit.
-  Req.Limit = 100;
-  Req.IDs.insert(getSymbolID(&D));
-  llvm::Optional<std::string> OtherFile;
-  Index.refs(Req, [&](const Ref &R) {
-    if (OtherFile)
-      return;
-    if (auto RefFilePath = filePath(R.Location, /*HintFilePath=*/MainFile)) {
-      if (!pathEqual(*RefFilePath, MainFile))
-        OtherFile = *RefFilePath;
-    }
-  });
-  return OtherFile;
-}
-
 // Canonical declarations help simplify the process of renaming. Examples:
 // - Template's canonical decl is the templated declaration (i.e.
 //   ClassTemplateDecl is canonicalized to its child CXXRecordDecl,
@@ -195,7 +174,6 @@ enum class ReasonToReject {
   NoSymbolFound,
   NoIndexProvided,
   NonIndexable,
-  UsedOutsideFile, // for within-file rename only.
   UnsupportedSymbol,
   AmbiguousSymbol,
 
@@ -206,8 +184,7 @@ enum class ReasonToReject {
 
 llvm::Optional<ReasonToReject> renameable(const NamedDecl &RenameDecl,
                                           StringRef MainFilePath,
-                                          const SymbolIndex *Index,
-                                          bool CrossFile) {
+                                          const SymbolIndex *Index) {
   trace::Span Tracer("Renameable");
   // Filter out symbols that are unsupported in both rename modes.
   if (llvm::isa<NamespaceDecl>(&RenameDecl))
@@ -240,34 +217,9 @@ llvm::Optional<ReasonToReject> renameable(const NamedDecl &RenameDecl,
           IsMainFileOnly))
     return ReasonToReject::NonIndexable;
 
-  if (!CrossFile) {
-    if (!DeclaredInMainFile)
-      // We are sure the symbol is used externally, bail out early.
-      return ReasonToReject::UsedOutsideFile;
-
-    // If the symbol is declared in the main file (which is not a header), we
-    // rename it.
-    if (!MainFileIsHeader)
-      return None;
-
-    if (!Index)
-      return ReasonToReject::NoIndexProvided;
-
-    auto OtherFile = getOtherRefFile(RenameDecl, MainFilePath, *Index);
-    // If the symbol is indexable and has no refs from other files in the index,
-    // we rename it.
-    if (!OtherFile)
-      return None;
-    // If the symbol is indexable and has refs from other files in the index,
-    // we disallow rename.
-    return ReasonToReject::UsedOutsideFile;
-  }
-
-  assert(CrossFile);
 
   // FIXME: Renaming virtual methods requires to rename all overridens in
   // subclasses, our index doesn't have this information.
-  // Note: Within-file rename does support this through the AST.
   if (const auto *S = llvm::dyn_cast<CXXMethodDecl>(&RenameDecl)) {
     if (S->isVirtual())
       return ReasonToReject::UnsupportedSymbol;
@@ -282,8 +234,6 @@ llvm::Error makeError(ReasonToReject Reason) {
       return "there is no symbol at the given location";
     case ReasonToReject::NoIndexProvided:
       return "no index provided";
-    case ReasonToReject::UsedOutsideFile:
-      return "the symbol is used outside main file";
     case ReasonToReject::NonIndexable:
       return "symbol may be used in other files (not eligible for indexing)";
     case ReasonToReject::UnsupportedSymbol:
@@ -769,8 +719,7 @@ llvm::Expected<RenameResult> rename(const RenameInputs &RInputs) {
   if (Invalid)
     return makeError(*Invalid);
 
-  auto Reject = renameable(RenameDecl, RInputs.MainFilePath, RInputs.Index,
-                           Opts.AllowCrossFile);
+  auto Reject = renameable(RenameDecl, RInputs.MainFilePath, RInputs.Index);
   if (Reject)
     return makeError(*Reject);
 
@@ -795,7 +744,7 @@ llvm::Expected<RenameResult> rename(const RenameInputs &RInputs) {
 
   // return the main file edit if this is a within-file rename or the symbol
   // being renamed is function local.
-  if (!Opts.AllowCrossFile || RenameDecl.getParentFunctionOrMethod()) {
+  if (RenameDecl.getParentFunctionOrMethod()) {
     Result.GlobalChanges = FileEdits(
         {std::make_pair(RInputs.MainFilePath, std::move(MainFileEdits))});
     return Result;
@@ -804,7 +753,7 @@ llvm::Expected<RenameResult> rename(const RenameInputs &RInputs) {
   // If the index is nullptr, we don't know the completeness of the result, so
   // we don't populate the field GlobalChanges.
   if (!RInputs.Index) {
-    assert(Result.GlobalChanges.empty() && Opts.AllowCrossFile);
+    assert(Result.GlobalChanges.empty());
     return Result;
   }
 

diff  --git a/clang-tools-extra/clangd/refactor/Rename.h b/clang-tools-extra/clangd/refactor/Rename.h
index dbaf9dd2e284..7eca4610eaca 100644
--- a/clang-tools-extra/clangd/refactor/Rename.h
+++ b/clang-tools-extra/clangd/refactor/Rename.h
@@ -27,9 +27,6 @@ using DirtyBufferGetter =
     llvm::function_ref<llvm::Optional<std::string>(PathRef AbsPath)>;
 
 struct RenameOptions {
-  /// If true, enable cross-file rename; otherwise, only allows to rename a
-  /// symbol that's only used in the current file.
-  bool AllowCrossFile = true;
   /// The maximum number of affected files (0 means no limit), only meaningful
   /// when AllowCrossFile = true.
   /// If the actual number exceeds the limit, rename is forbidden.

diff  --git a/clang-tools-extra/clangd/unittests/RenameTests.cpp b/clang-tools-extra/clangd/unittests/RenameTests.cpp
index 2a746a06b286..b6eccf0c4e3b 100644
--- a/clang-tools-extra/clangd/unittests/RenameTests.cpp
+++ b/clang-tools-extra/clangd/unittests/RenameTests.cpp
@@ -189,25 +189,6 @@ TEST(RenameTest, WithinFileRename) {
         };
       )cpp",
 
-      // Class methods overrides.
-      R"cpp(
-        struct A {
-         virtual void [[f^oo]]() {}
-        };
-        struct B : A {
-          void [[f^oo]]() override {}
-        };
-        struct C : B {
-          void [[f^oo]]() override {}
-        };
-
-        void func() {
-          A().[[f^oo]]();
-          B().[[f^oo]]();
-          C().[[f^oo]]();
-        }
-      )cpp",
-
       // Templated method instantiation.
       R"cpp(
         template<typename T>
@@ -831,13 +812,10 @@ TEST(RenameTest, WithinFileRename) {
     auto TU = TestTU::withCode(Code.code());
     TU.ExtraArgs.push_back("-xobjective-c++");
     auto AST = TU.build();
+    auto Index = TU.index();
     for (const auto &RenamePos : Code.points()) {
-      auto RenameResult = rename({RenamePos,
-                                  NewName,
-                                  AST,
-                                  testPath(TU.Filename),
-                                  /*Index*/ nullptr,
-                                  {/*CrossFile*/ false}});
+      auto RenameResult =
+          rename({RenamePos, NewName, AST, testPath(TU.Filename), Index.get()});
       ASSERT_TRUE(bool(RenameResult)) << RenameResult.takeError();
       ASSERT_EQ(1u, RenameResult->GlobalChanges.size());
       EXPECT_EQ(
@@ -852,20 +830,8 @@ TEST(RenameTest, Renameable) {
     const char *Code;
     const char* ErrorMessage; // null if no error
     bool IsHeaderFile;
-    const SymbolIndex *Index;
     llvm::StringRef NewName = "DummyName";
   };
-  TestTU OtherFile = TestTU::withCode("Outside s; auto ss = &foo;");
-  const char *CommonHeader = R"cpp(
-    class Outside {};
-    void foo();
-  )cpp";
-  OtherFile.HeaderCode = CommonHeader;
-  OtherFile.Filename = "other.cc";
-  // The index has a "Outside" reference and a "foo" reference.
-  auto OtherFileIndex = OtherFile.index();
-  const SymbolIndex *Index = OtherFileIndex.get();
-
   const bool HeaderFile = true;
   Case Cases[] = {
       {R"cpp(// allow -- function-local
@@ -873,73 +839,39 @@ TEST(RenameTest, Renameable) {
           [[Local]] = 2;
         }
       )cpp",
-       nullptr, HeaderFile, Index},
-
-      {R"cpp(// allow -- symbol is indexable and has no refs in index.
-        void [[On^lyInThisFile]]();
-      )cpp",
-       nullptr, HeaderFile, Index},
-
-      {R"cpp(
-        void ^f();
-      )cpp",
-       "keyword", HeaderFile, Index, "return"},
-
-      {R"cpp(// disallow -- symbol is indexable and has other refs in index.
-        void f() {
-          Out^side s;
-        }
-      )cpp",
-       "used outside main file", HeaderFile, Index},
+       nullptr, HeaderFile},
 
       {R"cpp(// disallow -- symbol in anonymous namespace in header is not indexable.
         namespace {
         class Unin^dexable {};
         }
       )cpp",
-       "not eligible for indexing", HeaderFile, Index},
-
-      {R"cpp(// allow -- symbol in anonymous namespace in non-header file is indexable.
-        namespace {
-        class [[F^oo]] {};
-        }
-      )cpp",
-       nullptr, !HeaderFile, Index},
+       "not eligible for indexing", HeaderFile},
 
       {R"cpp(// disallow -- namespace symbol isn't supported
         namespace n^s {}
       )cpp",
-       "not a supported kind", HeaderFile, Index},
+       "not a supported kind", HeaderFile},
 
       {
           R"cpp(
          #define MACRO 1
          int s = MAC^RO;
        )cpp",
-          "not a supported kind", HeaderFile, Index},
+          "not a supported kind", HeaderFile},
 
       {
           R"cpp(
         struct X { X operator++(int); };
         void f(X x) {x+^+;})cpp",
-          "no symbol", HeaderFile, Index},
-
-      {R"cpp(// foo is declared outside the file.
-        void fo^o() {}
-      )cpp",
-       "used outside main file", !HeaderFile /*cc file*/, Index},
-
-      {R"cpp(
-         // We should detect the symbol is used outside the file from the AST.
-         void fo^o() {})cpp",
-       "used outside main file", !HeaderFile, nullptr /*no index*/},
+          "no symbol", HeaderFile},
 
       {R"cpp(// disallow rename on excluded symbols (e.g. std symbols)
          namespace std {
          class str^ing {};
          }
        )cpp",
-       "not a supported kind", !HeaderFile, Index},
+       "not a supported kind", !HeaderFile},
       {R"cpp(// disallow rename on excluded symbols (e.g. std symbols)
          namespace std {
          inline namespace __u {
@@ -947,33 +879,38 @@ TEST(RenameTest, Renameable) {
          }
          }
        )cpp",
-       "not a supported kind", !HeaderFile, Index},
+       "not a supported kind", !HeaderFile},
 
       {R"cpp(// disallow rename on non-normal identifiers.
          @interface Foo {}
          -(int) fo^o:(int)x; // Token is an identifier, but declaration name isn't a simple identifier.
          @end
        )cpp",
-       "not a supported kind", HeaderFile, Index},
-
+       "not a supported kind", HeaderFile},
+      {R"cpp(// FIXME: rename virtual/override methods is not supported yet.
+         struct A {
+          virtual void f^oo() {}
+         };
+      )cpp",
+       "not a supported kind", !HeaderFile},
       {R"cpp(
          void foo(int);
          void foo(char);
          template <typename T> void f(T t) {
            fo^o(t);
          })cpp",
-       "multiple symbols", !HeaderFile, nullptr /*no index*/},
+       "multiple symbols", !HeaderFile},
 
       {R"cpp(// disallow rename on unrelated token.
          cl^ass Foo {};
        )cpp",
-       "no symbol", !HeaderFile, nullptr},
+       "no symbol", !HeaderFile},
 
       {R"cpp(// disallow rename on unrelated token.
          temp^late<typename T>
          class Foo {};
        )cpp",
-       "no symbol", !HeaderFile, nullptr},
+       "no symbol", !HeaderFile},
 
       {R"cpp(
         namespace {
@@ -981,13 +918,13 @@ TEST(RenameTest, Renameable) {
         int Va^r;
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         int Conflict;
         int Va^r;
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         class Foo {
@@ -995,7 +932,7 @@ TEST(RenameTest, Renameable) {
           int Va^r;
         };
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         enum E {
@@ -1003,7 +940,7 @@ TEST(RenameTest, Renameable) {
           Fo^o,
         };
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         int Conflict;
@@ -1011,7 +948,7 @@ TEST(RenameTest, Renameable) {
           F^oo,
         };
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func() {
@@ -1020,7 +957,7 @@ TEST(RenameTest, Renameable) {
           char Conflict;
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func() {
@@ -1029,7 +966,7 @@ TEST(RenameTest, Renameable) {
           }
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func() {
@@ -1039,7 +976,7 @@ TEST(RenameTest, Renameable) {
           }
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func() {
@@ -1049,7 +986,7 @@ TEST(RenameTest, Renameable) {
           }
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func() {
@@ -1058,7 +995,7 @@ TEST(RenameTest, Renameable) {
           }
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func() {
@@ -1068,7 +1005,7 @@ TEST(RenameTest, Renameable) {
           }
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func() {
@@ -1076,14 +1013,14 @@ TEST(RenameTest, Renameable) {
           }
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func(int Conflict) {
           bool V^ar;
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func(int Var);
@@ -1092,7 +1029,7 @@ TEST(RenameTest, Renameable) {
           bool Conflict;
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(// No conflict: only forward declaration's argument is renamed.
         void func(int [[V^ar]]);
@@ -1101,33 +1038,31 @@ TEST(RenameTest, Renameable) {
           bool Conflict;
         }
       )cpp",
-       nullptr, !HeaderFile, nullptr, "Conflict"},
+       nullptr, !HeaderFile, "Conflict"},
 
       {R"cpp(
         void func(int V^ar, int Conflict) {
         }
       )cpp",
-       "conflict", !HeaderFile, nullptr, "Conflict"},
+       "conflict", !HeaderFile, "Conflict"},
 
       {R"cpp(// Trying to rename into the same name, SameName == SameName.
         void func() {
           int S^ameName;
         }
       )cpp",
-       "new name is the same", !HeaderFile, nullptr, "SameName"},
+       "new name is the same", !HeaderFile, "SameName"},
       {R"cpp(// Ensure it doesn't associate base specifier with base name.
         struct A {};
         struct B : priv^ate A {};
       )cpp",
-       "Cannot rename symbol: there is no symbol at the given location", false,
-       nullptr},
+       "Cannot rename symbol: there is no symbol at the given location", false},
   };
 
   for (const auto& Case : Cases) {
     SCOPED_TRACE(Case.Code);
     Annotations T(Case.Code);
     TestTU TU = TestTU::withCode(T.code());
-    TU.HeaderCode = CommonHeader;
     TU.ExtraArgs.push_back("-fno-delayed-template-parsing");
     if (Case.IsHeaderFile) {
       // We open the .h file as the main file.
@@ -1137,12 +1072,7 @@ TEST(RenameTest, Renameable) {
     }
     auto AST = TU.build();
     llvm::StringRef NewName = Case.NewName;
-    auto Results = rename({T.point(),
-                           NewName,
-                           AST,
-                           testPath(TU.Filename),
-                           Case.Index,
-                           {/*CrossFile=*/false}});
+    auto Results = rename({T.point(), NewName, AST, testPath(TU.Filename)});
     bool WantRename = true;
     if (T.ranges().empty())
       WantRename = false;
@@ -1176,10 +1106,8 @@ TEST(RenameTest, IndexMergeMainFile) {
     auto GetDirtyBuffer = [&](PathRef Path) -> llvm::Optional<std::string> {
       return Code.code().str(); // Every file has the same content.
     };
-    RenameOptions Opts;
-    Opts.AllowCrossFile = true;
-    RenameInputs Inputs{Code.point(), "xPrime", AST,           Main,
-                        Idx,          Opts,     GetDirtyBuffer};
+    RenameInputs Inputs{Code.point(), "xPrime",        AST,           Main,
+                        Idx,          RenameOptions(), GetDirtyBuffer};
     auto Results = rename(Inputs);
     EXPECT_TRUE(bool(Results)) << llvm::toString(Results.takeError());
     return std::move(*Results);
@@ -1273,7 +1201,7 @@ TEST(RenameTest, PrepareRename) {
   runAddDocument(Server, FooCCPath, FooCC.code());
 
   auto Results = runPrepareRename(Server, FooCCPath, FooCC.point(),
-                                  /*NewName=*/llvm::None, {/*CrossFile=*/true});
+                                  /*NewName=*/llvm::None, {});
   // Verify that for multi-file rename, we only return main-file occurrences.
   ASSERT_TRUE(bool(Results)) << Results.takeError();
   // We don't know the result is complete in prepareRename (passing a nullptr
@@ -1283,21 +1211,13 @@ TEST(RenameTest, PrepareRename) {
               testing::UnorderedElementsAreArray(Results->LocalChanges));
 
   // Name validation.
-  Results =
-      runPrepareRename(Server, FooCCPath, FooCC.point(),
-                       /*NewName=*/std::string("int"), {/*CrossFile=*/true});
+  Results = runPrepareRename(Server, FooCCPath, FooCC.point(),
+                             /*NewName=*/std::string("int"), {});
   EXPECT_FALSE(Results);
   EXPECT_THAT(llvm::toString(Results.takeError()),
               testing::HasSubstr("keyword"));
   EXPECT_THAT(Tracer.takeMetric("rename_name_invalid", "Keywords"),
               ElementsAre(1));
-
-  // Single-file rename on global symbols, we should report an error.
-  Results = runPrepareRename(Server, FooCCPath, FooCC.point(),
-                             /*NewName=*/llvm::None, {/*CrossFile=*/false});
-  EXPECT_FALSE(Results);
-  EXPECT_THAT(llvm::toString(Results.takeError()),
-              testing::HasSubstr("is used outside"));
 }
 
 TEST(CrossFileRenameTests, DirtyBuffer) {
@@ -1334,7 +1254,7 @@ TEST(CrossFileRenameTests, DirtyBuffer) {
                          AST,
                          MainFilePath,
                          Index.get(),
-                         {/*CrossFile=*/true},
+                         {},
                          GetDirtyBuffer});
   ASSERT_TRUE(bool(Results)) << Results.takeError();
   EXPECT_THAT(
@@ -1355,7 +1275,7 @@ TEST(CrossFileRenameTests, DirtyBuffer) {
                     AST,
                     MainFilePath,
                     Index.get(),
-                    {/*CrossFile=*/true},
+                    {},
                     GetDirtyBuffer});
   ASSERT_TRUE(bool(Results)) << Results.takeError();
   EXPECT_THAT(
@@ -1397,7 +1317,7 @@ TEST(CrossFileRenameTests, DirtyBuffer) {
                     AST,
                     MainFilePath,
                     &PIndex,
-                    {/*CrossFile=*/true},
+                    {},
                     GetDirtyBuffer});
   EXPECT_FALSE(Results);
   EXPECT_THAT(llvm::toString(Results.takeError()),
@@ -1448,12 +1368,8 @@ TEST(CrossFileRenameTests, DeduplicateRefsFromIndex) {
     Ref ReturnedRef;
   } DIndex(XRefInBarCC);
   llvm::StringRef NewName = "newName";
-  auto Results = rename({MainCode.point(),
-                         NewName,
-                         AST,
-                         MainFilePath,
-                         &DIndex,
-                         {/*CrossFile=*/true}});
+  auto Results =
+      rename({MainCode.point(), NewName, AST, MainFilePath, &DIndex});
   ASSERT_TRUE(bool(Results)) << Results.takeError();
   EXPECT_THAT(
       applyEdits(std::move(Results->GlobalChanges)),
@@ -1652,8 +1568,8 @@ TEST(CrossFileRenameTests, WithUpToDateIndex) {
     llvm::StringRef NewName = "NewName";
     for (const auto &RenamePos : FooH.points()) {
       EXPECT_THAT(Tracer.takeMetric("rename_files"), SizeIs(0));
-      auto FileEditsList = llvm::cantFail(runRename(
-          Server, FooHPath, RenamePos, NewName, {/*CrossFile=*/true}));
+      auto FileEditsList =
+          llvm::cantFail(runRename(Server, FooHPath, RenamePos, NewName, {}));
       EXPECT_THAT(Tracer.takeMetric("rename_files"), ElementsAre(2));
       EXPECT_THAT(
           applyEdits(std::move(FileEditsList.GlobalChanges)),


        


More information about the cfe-commits mailing list