Author: Haojian Wu Date: 2020-07-13T11:26:45+02:00 New Revision: 26cf6c1513f95082cedd4f2acf0881dd9ab56461
URL: https://github.com/llvm/llvm-project/commit/26cf6c1513f95082cedd4f2acf0881dd9ab56461 DIFF: https://github.com/llvm/llvm-project/commit/26cf6c1513f95082cedd4f2acf0881dd9ab56461.diff LOG: [clangd] Add metrics for recovery-expr type propagation. Differential Revision: https://reviews.llvm.org/D83657 Added: Modified: clang-tools-extra/clangd/Selection.cpp clang-tools-extra/clangd/unittests/SelectionTests.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clangd/Selection.cpp b/clang-tools-extra/clangd/Selection.cpp index 1db15ba6699a..e94a3ca5a0c3 100644 --- a/clang-tools-extra/clangd/Selection.cpp +++ b/clang-tools-extra/clangd/Selection.cpp @@ -41,10 +41,13 @@ using ast_type_traits::DynTypedNode; void recordMetrics(const SelectionTree &S) { static constexpr trace::Metric SelectionUsedRecovery( "selection_recovery", trace::Metric::Distribution); + static constexpr trace::Metric RecoveryType("selection_recovery_type", + trace::Metric::Distribution); const auto *Common = S.commonAncestor(); for (const auto *N = Common; N; N = N->Parent) { - if (N->ASTNode.get<RecoveryExpr>()) { + if (const auto *RE = N->ASTNode.get<RecoveryExpr>()) { SelectionUsedRecovery.record(1); // used recovery ast. + RecoveryType.record(RE->isTypeDependent() ? 0 : 1); return; } } diff --git a/clang-tools-extra/clangd/unittests/SelectionTests.cpp b/clang-tools-extra/clangd/unittests/SelectionTests.cpp index 6f8c10e966a8..051580ba6e49 100644 --- a/clang-tools-extra/clangd/unittests/SelectionTests.cpp +++ b/clang-tools-extra/clangd/unittests/SelectionTests.cpp @@ -453,6 +453,8 @@ TEST(SelectionTree, Metrics) { auto T = makeSelectionTree(Code, AST); EXPECT_THAT(Tracer.takeMetric("selection_recovery"), testing::ElementsAreArray({1})); + EXPECT_THAT(Tracer.takeMetric("selection_recovery_type"), + testing::ElementsAreArray({1})); } // FIXME: Doesn't select the binary operator node in _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits