diff options
author | Kadir Cetinkaya <kadircet@google.com> | 2018-09-11 15:02:18 +0000 |
---|---|---|
committer | Kadir Cetinkaya <kadircet@google.com> | 2018-09-11 15:02:18 +0000 |
commit | 84774c3ae3df8c71e0beffaf8553ac79f179fea5 (patch) | |
tree | d133c0734d7f80b3bdacfa2e16120708b4a228dc /clang/test/CodeCompletion/ctor-initializer.cpp | |
parent | 98e4a5ca110e2e24ceb5d67873f935f8c82166bb (diff) | |
download | bcm5719-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.cpp | 24 |
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; +}; |