[clangd] Add unittests for D51917
authorKadir Cetinkaya <kadircet@google.com>
Tue, 11 Sep 2018 15:12:10 +0000 (15:12 +0000)
committerKadir Cetinkaya <kadircet@google.com>
Tue, 11 Sep 2018 15:12:10 +0000 (15:12 +0000)
Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits

Differential Revision: https://reviews.llvm.org/D51924

llvm-svn: 341950

clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp

index c101003..248dab8 100644 (file)
@@ -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