summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/ResolveExpression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus/ResolveExpression.cpp')
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index 9b09c2c5b5..63dc2b92b2 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -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;