diff options
author | Francisco Lopes da Silva <oblita@gmail.com> | 2015-01-21 16:24:11 +0000 |
---|---|---|
committer | Francisco Lopes da Silva <oblita@gmail.com> | 2015-01-21 16:24:11 +0000 |
commit | 975a9f6ecea606c2af7b16f489893958badcad30 (patch) | |
tree | e7d6242fab5855cb423c0b825770f55b39fe5e44 /clang/lib/Parse/ParseDecl.cpp | |
parent | 3f02c14cc742180a27f5c99a998e3c5d1ac2f6c8 (diff) | |
download | bcm5719-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.cpp | 6 |
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); |