From 4a0da2c6f2663d9469bfd929fa682b6df7d42ab7 Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Fri, 31 Jul 2009 16:03:48 +0200 Subject: Added Semantic checks for ObjC methods. --- src/shared/cplusplus/CheckExpression.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/shared/cplusplus/CheckExpression.cpp') diff --git a/src/shared/cplusplus/CheckExpression.cpp b/src/shared/cplusplus/CheckExpression.cpp index 25cfe8ba43..ac93a1a9de 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 -- cgit v1.2.1