kadircet created this revision. kadircet added a reviewer: ilya-biryukov. Herald added subscribers: cfe-commits, usaxena95, arphaman, jkorous, MaskRay. Herald added a project: clang.
Clangd was printing lambdas as `(anonymous class)` before, we can improve it by at least printing `(lambda)` instead. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D71544 Files: clang-tools-extra/clangd/AST.cpp clang-tools-extra/clangd/unittests/HoverTests.cpp Index: clang-tools-extra/clangd/unittests/HoverTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/HoverTests.cpp +++ clang-tools-extra/clangd/unittests/HoverTests.cpp @@ -362,8 +362,7 @@ } )cpp", [](HoverInfo &HI) { - // FIXME: Special case lambdas. - HI.Name = "(anonymous class)"; + HI.Name = "(lambda)"; HI.Kind = index::SymbolKind::Class; }}, // auto on template instantiation Index: clang-tools-extra/clangd/AST.cpp =================================================================== --- clang-tools-extra/clangd/AST.cpp +++ clang-tools-extra/clangd/AST.cpp @@ -223,8 +223,11 @@ // Come up with a presentation for an anonymous entity. if (isa<NamespaceDecl>(ND)) return "(anonymous namespace)"; - if (auto *Cls = llvm::dyn_cast<RecordDecl>(&ND)) + if (auto *Cls = llvm::dyn_cast<RecordDecl>(&ND)) { + if (Cls->isLambda()) + return "(lambda)"; return ("(anonymous " + Cls->getKindName() + ")").str(); + } if (isa<EnumDecl>(ND)) return "(anonymous enum)"; return "(anonymous)";
Index: clang-tools-extra/clangd/unittests/HoverTests.cpp =================================================================== --- clang-tools-extra/clangd/unittests/HoverTests.cpp +++ clang-tools-extra/clangd/unittests/HoverTests.cpp @@ -362,8 +362,7 @@ } )cpp", [](HoverInfo &HI) { - // FIXME: Special case lambdas. - HI.Name = "(anonymous class)"; + HI.Name = "(lambda)"; HI.Kind = index::SymbolKind::Class; }}, // auto on template instantiation Index: clang-tools-extra/clangd/AST.cpp =================================================================== --- clang-tools-extra/clangd/AST.cpp +++ clang-tools-extra/clangd/AST.cpp @@ -223,8 +223,11 @@ // Come up with a presentation for an anonymous entity. if (isa<NamespaceDecl>(ND)) return "(anonymous namespace)"; - if (auto *Cls = llvm::dyn_cast<RecordDecl>(&ND)) + if (auto *Cls = llvm::dyn_cast<RecordDecl>(&ND)) { + if (Cls->isLambda()) + return "(lambda)"; return ("(anonymous " + Cls->getKindName() + ")").str(); + } if (isa<EnumDecl>(ND)) return "(anonymous enum)"; return "(anonymous)";
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits