diff options
Diffstat (limited to 'src/shared/cplusplus/CheckExpression.cpp')
-rw-r--r-- | src/shared/cplusplus/CheckExpression.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/shared/cplusplus/CheckExpression.cpp b/src/shared/cplusplus/CheckExpression.cpp index 25cfe8ba43a..ac93a1a9de0 100644 --- a/src/shared/cplusplus/CheckExpression.cpp +++ b/src/shared/cplusplus/CheckExpression.cpp @@ -383,4 +383,29 @@ bool CheckExpression::visit(MemberAccessAST *ast) return false; } +bool CheckExpression::visit(ObjCMessageExpressionAST *ast) +{ + semantic()->check(ast->receiver_expression, _scope); + + if (Name *name = semantic()->check(ast->selector, _scope)) + _scope->addUse(ast->selector->firstToken(), name); + + accept(ast->argument_list); + return false; +} + +bool CheckExpression::visit(ObjCEncodeExpressionAST * /*ast*/) +{ + // TODO: visit the type name, but store the type here? (EV) + return true; +} + +bool CheckExpression::visit(ObjCSelectorExpressionAST *ast) +{ + if (Name *name = semantic()->check(ast->selector, _scope)) + _scope->addUse(ast->selector->firstToken(), name); + + return false; +} + CPLUSPLUS_END_NAMESPACE |