Index: clang-tools-extra/trunk/clangd/Selection.cpp =================================================================== --- clang-tools-extra/trunk/clangd/Selection.cpp +++ clang-tools-extra/trunk/clangd/Selection.cpp @@ -61,7 +61,7 @@ bool TraverseTypeLoc(TypeLoc X) { return traverseNode(&X, [&] { return Base::TraverseTypeLoc(X); }); } - bool TraverseTypeNestedNameSpecifierLoc(NestedNameSpecifierLoc X) { + bool TraverseNestedNameSpecifierLoc(NestedNameSpecifierLoc X) { return traverseNode( &X, [&] { return Base::TraverseNestedNameSpecifierLoc(X); }); } Index: clang-tools-extra/trunk/clangd/unittests/SelectionTests.cpp =================================================================== --- clang-tools-extra/trunk/clangd/unittests/SelectionTests.cpp +++ clang-tools-extra/trunk/clangd/unittests/SelectionTests.cpp @@ -92,6 +92,13 @@ Case Cases[] = { { R"cpp( + template + int x = [[T::^U::]]ccc(); + )cpp", + "NestedNameSpecifierLoc", + }, + { + R"cpp( struct AAA { struct BBB { static int ccc(); };}; int x = AAA::[[B^B^B]]::ccc(); )cpp", @@ -184,8 +191,7 @@ template <[[template class /*cursor here*/^U]]> struct Foo*> {}; )cpp", - "TemplateTemplateParmDecl" - }, + "TemplateTemplateParmDecl"}, }; for (const Case &C : Cases) { Annotations Test(C.Code);