diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-08-28 00:00:50 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-08-28 00:00:50 +0000 |
commit | 0133f525a23e18dd444880f7554f25fbcbd834e5 (patch) | |
tree | 8a1c0245e35990dd83ece2c65e6c471f62f7a5d0 /lib/Parse/ParseDeclCXX.cpp | |
parent | c620ace6dbeb2a07e80088d64ea98cc0c8b58121 (diff) |
Basic code completion support for the base and member initializers in
a constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112330 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | lib/Parse/ParseDeclCXX.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp index a62e37bc43..26d460c6ff 100644 --- a/lib/Parse/ParseDeclCXX.cpp +++ b/lib/Parse/ParseDeclCXX.cpp @@ -1714,12 +1714,19 @@ void Parser::ParseConstructorInitializer(Decl *ConstructorDecl) { bool AnyErrors = false; do { - MemInitResult MemInit = ParseMemInitializer(ConstructorDecl); - if (!MemInit.isInvalid()) - MemInitializers.push_back(MemInit.get()); - else - AnyErrors = true; - + if (Tok.is(tok::code_completion)) { + Actions.CodeCompleteConstructorInitializer(ConstructorDecl, + MemInitializers.data(), + MemInitializers.size()); + ConsumeCodeCompletionToken(); + } else { + MemInitResult MemInit = ParseMemInitializer(ConstructorDecl); + if (!MemInit.isInvalid()) + MemInitializers.push_back(MemInit.get()); + else + AnyErrors = true; + } + if (Tok.is(tok::comma)) ConsumeToken(); else if (Tok.is(tok::l_brace)) |