From 873cae5ae7efdbe9fdfe7b7ffba923516b7d14af Mon Sep 17 00:00:00 2001 From: Kadir Cetinkaya Date: Tue, 11 Sep 2018 15:12:10 +0000 Subject: [PATCH] [clangd] Add unittests for D51917 Reviewers: ilya-biryukov Reviewed By: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D51924 llvm-svn: 341950 --- .../unittests/clangd/CodeCompleteTests.cpp | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp index c101003..248dab8 100644 --- a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp +++ b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp @@ -1967,6 +1967,45 @@ TEST(SignatureHelpTest, InsideArgument) { } } +TEST(SignatureHelpTest, ConstructorInitializeFields) { + { + const auto Results = signatures(R"cpp( + struct A { + A(int); + }; + struct B { + B() : a_elem(^) {} + A a_elem; + }; + )cpp"); + EXPECT_THAT(Results.signatures, UnorderedElementsAre( + Sig("A(int)", {"int"}), + Sig("A(A &&)", {"A &&"}), + Sig("A(const A &)", {"const A &"}) + )); + } + { + const auto Results = signatures(R"cpp( + struct A { + A(int); + }; + struct C { + C(int); + C(A); + }; + struct B { + B() : c_elem(A(1^)) {} + C c_elem; + }; + )cpp"); + EXPECT_THAT(Results.signatures, UnorderedElementsAre( + Sig("A(int)", {"int"}), + Sig("A(A &&)", {"A &&"}), + Sig("A(const A &)", {"const A &"}) + )); + } +} + } // namespace } // namespace clangd } // namespace clang -- 2.7.4