summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseDecl.cpp
diff options
context:
space:
mode:
authorFrancisco Lopes da Silva <oblita@gmail.com>2015-01-21 16:24:11 +0000
committerFrancisco Lopes da Silva <oblita@gmail.com>2015-01-21 16:24:11 +0000
commit975a9f6ecea606c2af7b16f489893958badcad30 (patch)
treee7d6242fab5855cb423c0b825770f55b39fe5e44 /clang/lib/Parse/ParseDecl.cpp
parent3f02c14cc742180a27f5c99a998e3c5d1ac2f6c8 (diff)
downloadbcm5719-llvm-975a9f6ecea606c2af7b16f489893958badcad30.tar.gz
bcm5719-llvm-975a9f6ecea606c2af7b16f489893958badcad30.zip
Initial support for C++ parameter completion
The improved completion in call context now works with: - Functions. - Member functions. - Constructors. - New expressions. - Function call expressions. - Template variants of the previous. There are still rough edges to be fixed: - Provide support for optional parameters. (fix known) - Provide support for member initializers. (fix known) - Provide support for variadic template functions. (fix unknown) - Others? llvm-svn: 226670
Diffstat (limited to 'clang/lib/Parse/ParseDecl.cpp')
-rw-r--r--clang/lib/Parse/ParseDecl.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 1ee243155ab..8fcfcb34be2 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -1993,7 +1993,11 @@ Decl *Parser::ParseDeclarationAfterDeclaratorAndAttributes(
Actions.ActOnCXXEnterDeclInitializer(getCurScope(), ThisDecl);
}
- if (ParseExpressionList(Exprs, CommaLocs)) {
+ if (ParseExpressionList(Exprs, CommaLocs, [&] {
+ Actions.CodeCompleteConstructor(getCurScope(),
+ cast<VarDecl>(ThisDecl)->getType()->getCanonicalTypeInternal(),
+ ThisDecl->getLocation(), Exprs);
+ })) {
Actions.ActOnInitializerError(ThisDecl);
SkipUntil(tok::r_paren, StopAtSemi);
OpenPOWER on IntegriCloud