diff --git a/clang-tools-extra/clangd/refactor/Rename.cpp b/clang-tools-extra/clangd/refactor/Rename.cpp --- a/clang-tools-extra/clangd/refactor/Rename.cpp +++ b/clang-tools-extra/clangd/refactor/Rename.cpp @@ -110,7 +110,7 @@ #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 --- a/clang-tools-extra/clangd/unittests/RenameTests.cpp +++ b/clang-tools-extra/clangd/unittests/RenameTests.cpp @@ -593,6 +593,14 @@ } )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);