sammccall updated this revision to Diff 252689. sammccall marked 3 inline comments as done. sammccall added a comment.
address comments, rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73369/new/ https://reviews.llvm.org/D73369 Files: clang-tools-extra/clangd/XRefs.cpp clang-tools-extra/clangd/unittests/XRefsTests.cpp Index: clang-tools-extra/clangd/unittests/XRefsTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/XRefsTests.cpp +++ clang-tools-extra/clangd/unittests/XRefsTests.cpp @@ -358,15 +358,15 @@ )cpp", R"cpp(// Forward class declaration - class Foo; - class [[Foo]] {}; + class $decl[[Foo]]; + class $def[[Foo]] {}; F^oo* foo(); )cpp", R"cpp(// Function declaration - void foo(); + void $decl[[foo]](); void g() { f^oo(); } - void [[foo]]() {} + void $def[[foo]]() {} )cpp", R"cpp( Index: clang-tools-extra/clangd/XRefs.cpp =================================================================== --- clang-tools-extra/clangd/XRefs.cpp +++ clang-tools-extra/clangd/XRefs.cpp @@ -226,23 +226,21 @@ llvm::DenseMap<SymbolID, size_t> ResultIndex; auto AddResultDecl = [&](const NamedDecl *D) { - const NamedDecl *Def = getDefinition(D); - const NamedDecl *Preferred = Def ? Def : D; - - auto Loc = makeLocation(AST.getASTContext(), nameLocation(*Preferred, SM), + D = llvm::cast<NamedDecl>(D->getCanonicalDecl()); + auto Loc = makeLocation(AST.getASTContext(), nameLocation(*D, SM), MainFilePath); if (!Loc) return; Result.emplace_back(); - Result.back().Name = printName(AST.getASTContext(), *Preferred); + Result.back().Name = printName(AST.getASTContext(), *D); Result.back().PreferredDeclaration = *Loc; - // Preferred is always a definition if possible, so this check works. - if (Def == Preferred) - Result.back().Definition = *Loc; + if (const NamedDecl *Def = getDefinition(D)) + Result.back().Definition = makeLocation( + AST.getASTContext(), nameLocation(*Def, SM), MainFilePath); // Record SymbolID for index lookup later. - if (auto ID = getSymbolID(Preferred)) + if (auto ID = getSymbolID(D)) ResultIndex[*ID] = Result.size() - 1; };
Index: clang-tools-extra/clangd/unittests/XRefsTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/XRefsTests.cpp +++ clang-tools-extra/clangd/unittests/XRefsTests.cpp @@ -358,15 +358,15 @@ )cpp", R"cpp(// Forward class declaration - class Foo; - class [[Foo]] {}; + class $decl[[Foo]]; + class $def[[Foo]] {}; F^oo* foo(); )cpp", R"cpp(// Function declaration - void foo(); + void $decl[[foo]](); void g() { f^oo(); } - void [[foo]]() {} + void $def[[foo]]() {} )cpp", R"cpp( Index: clang-tools-extra/clangd/XRefs.cpp =================================================================== --- clang-tools-extra/clangd/XRefs.cpp +++ clang-tools-extra/clangd/XRefs.cpp @@ -226,23 +226,21 @@ llvm::DenseMap<SymbolID, size_t> ResultIndex; auto AddResultDecl = [&](const NamedDecl *D) { - const NamedDecl *Def = getDefinition(D); - const NamedDecl *Preferred = Def ? Def : D; - - auto Loc = makeLocation(AST.getASTContext(), nameLocation(*Preferred, SM), + D = llvm::cast<NamedDecl>(D->getCanonicalDecl()); + auto Loc = makeLocation(AST.getASTContext(), nameLocation(*D, SM), MainFilePath); if (!Loc) return; Result.emplace_back(); - Result.back().Name = printName(AST.getASTContext(), *Preferred); + Result.back().Name = printName(AST.getASTContext(), *D); Result.back().PreferredDeclaration = *Loc; - // Preferred is always a definition if possible, so this check works. - if (Def == Preferred) - Result.back().Definition = *Loc; + if (const NamedDecl *Def = getDefinition(D)) + Result.back().Definition = makeLocation( + AST.getASTContext(), nameLocation(*Def, SM), MainFilePath); // Record SymbolID for index lookup later. - if (auto ID = getSymbolID(Preferred)) + if (auto ID = getSymbolID(D)) ResultIndex[*ID] = Result.size() - 1; };
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits