summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeCompletion/ctor-initializer.cpp
diff options
context:
space:
mode:
authorKadir Cetinkaya <kadircet@google.com>2018-09-11 15:02:18 +0000
committerKadir Cetinkaya <kadircet@google.com>2018-09-11 15:02:18 +0000
commit84774c3ae3df8c71e0beffaf8553ac79f179fea5 (patch)
treed133c0734d7f80b3bdacfa2e16120708b4a228dc /clang/test/CodeCompletion/ctor-initializer.cpp
parent98e4a5ca110e2e24ceb5d67873f935f8c82166bb (diff)
downloadbcm5719-llvm-84774c3ae3df8c71e0beffaf8553ac79f179fea5.tar.gz
bcm5719-llvm-84774c3ae3df8c71e0beffaf8553ac79f179fea5.zip
[CodeCompletion] Enable signature help when initializing class/struct/union members.
Summary: Factors out member decleration gathering and uses it in parsing to call signature help. Doesn't support signature help for base class constructors, the code was too coupled with diagnostic handling, but still can be factored out but just needs more afford. Reviewers: sammccall, ilya-biryukov, ioeric Reviewed By: ilya-biryukov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D51917 llvm-svn: 341949
Diffstat (limited to 'clang/test/CodeCompletion/ctor-initializer.cpp')
-rw-r--r--clang/test/CodeCompletion/ctor-initializer.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/clang/test/CodeCompletion/ctor-initializer.cpp b/clang/test/CodeCompletion/ctor-initializer.cpp
index e1a0d143687..2eff48a4a0c 100644
--- a/clang/test/CodeCompletion/ctor-initializer.cpp
+++ b/clang/test/CodeCompletion/ctor-initializer.cpp
@@ -64,3 +64,27 @@ struct B {
// CHECK-CC8: COMPLETION: Pattern : member2(<#args#>
int member1, member2;
};
+
+struct Base2 {
+ Base2(int);
+};
+
+struct Composition1 {
+ Composition1() : b2_elem() {}
+ // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:73:28 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s
+ // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:73:28 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s
+ // CHECK-CC9: OVERLOAD: Base2(<#int#>)
+ // CHECK-CC9: OVERLOAD: Base2(<#const Base2 &#>)
+ // CHECK-CC9-NOT: OVERLOAD: Composition1
+ Composition1(Base2);
+ Base2 b2_elem;
+};
+
+struct Composition2 {
+ Composition2() : c1_elem(Base2(1)) {}
+ // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:84:34 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s
+ // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:84:34 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s
+ // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:84:35 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s
+ // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:84:35 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s
+ Composition1 c1_elem;
+};
OpenPOWER on IntegriCloud