summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/CheckExpression.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2009-07-31 16:03:48 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2009-07-31 16:03:48 +0200
commit4a0da2c6f2663d9469bfd929fa682b6df7d42ab7 (patch)
treed8fb1fbbeacaadad06024ecd5ce8e84c8f30d547 /src/shared/cplusplus/CheckExpression.cpp
parentb713f1772a4de8330bcdd96a00b9cf103541e008 (diff)
downloadqt-creator-4a0da2c6f2663d9469bfd929fa682b6df7d42ab7.tar.gz
Added Semantic checks for ObjC methods.
Diffstat (limited to 'src/shared/cplusplus/CheckExpression.cpp')
-rw-r--r--src/shared/cplusplus/CheckExpression.cpp25
1 files changed, 25 insertions, 0 deletions
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