Author: Haojian Wu Date: 2020-02-26T16:22:45+01:00 New Revision: 02323a3d5f9ea676865f78d603e68fa4b4b62608
URL: https://github.com/llvm/llvm-project/commit/02323a3d5f9ea676865f78d603e68fa4b4b62608 DIFF: https://github.com/llvm/llvm-project/commit/02323a3d5f9ea676865f78d603e68fa4b4b62608.diff LOG: [clangd] use printQualifiedName to skip the inlinenamespace qualifiers. Summary: symbols in libcpp are inside the inline namespace, printQualifierAsString will print the inline namespace, which is unexpected. Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75174 Added: Modified: clang-tools-extra/clangd/refactor/Rename.cpp clang-tools-extra/clangd/unittests/RenameTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/refactor/Rename.cpp b/clang-tools-extra/clangd/refactor/Rename.cpp index ec33f16eac05..fd2146eb4fb7 100644 --- a/clang-tools-extra/clangd/refactor/Rename.cpp +++ b/clang-tools-extra/clangd/refactor/Rename.cpp @@ -110,7 +110,7 @@ bool isBlacklisted(const NamedDecl &RenameDecl) { #include "StdSymbolMap.inc" #undef SYMBOL }); - return StdSymbols->count(RenameDecl.getQualifiedNameAsString()); + return StdSymbols->count(printQualifiedName(RenameDecl)); } enum ReasonToReject { diff --git a/clang-tools-extra/clangd/unittests/RenameTests.cpp b/clang-tools-extra/clangd/unittests/RenameTests.cpp index 3b2b96e51dd1..9906d6b3c29d 100644 --- a/clang-tools-extra/clangd/unittests/RenameTests.cpp +++ b/clang-tools-extra/clangd/unittests/RenameTests.cpp @@ -593,6 +593,14 @@ TEST(RenameTest, Renameable) { } )cpp", "not a supported kind", !HeaderFile, Index}, + {R"cpp(// disallow rename on blacklisted symbols (e.g. std symbols) + namespace std { + inline namespace __u { + class str^ing {}; + } + } + )cpp", + "not a supported kind", !HeaderFile, Index}, {R"cpp( void foo(int); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits