forked from qt-creator/qt-creator
C++: code completion for lambda calls
support for lambdas, e.g.:
struct S { int bar; };
[]() { return new S; } ()->bar;
[] { return new S; } ()->bar;
[]() ->S* { return new S(); } ()->bar;
[]() throw() { return new S(); } ()->bar;
[]() throw()->S* { return new S(); } ()->bar;
Task-number: QTCREATORBUG-9523
Change-Id: I43fbf6f0ee0bb11411c53c984df75ef33a276466
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
committed by
Erik Verbruggen
parent
ab15d38726
commit
46461fc183
@@ -366,6 +366,18 @@ bool ResolveExpression::visit(CompoundExpressionAST *ast)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ResolveExpression::visit(LambdaExpressionAST *ast)
|
||||
{
|
||||
accept(ast->statement);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ResolveExpression::visit(ReturnStatementAST *ast)
|
||||
{
|
||||
accept(ast->expression);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ResolveExpression::visit(NestedExpressionAST *ast)
|
||||
{
|
||||
accept(ast->expression);
|
||||
@@ -626,6 +638,11 @@ bool ResolveExpression::visit(CallAST *ast)
|
||||
{
|
||||
const QList<LookupItem> baseResults = resolve(ast->base_expression, _scope);
|
||||
|
||||
if (ast->base_expression->asLambdaExpression()) {
|
||||
_results = baseResults;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Compute the types of the actual arguments.
|
||||
unsigned actualArgumentCount = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user