aboutsummaryrefslogtreecommitdiff
path: root/Parse/ParseObjc.cpp
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2007-09-16 16:16:00 +0000
committerSteve Naroff <snaroff@apple.com>2007-09-16 16:16:00 +0000
commit8c9f13e494109426f358ef73bf873f77b1221564 (patch)
tree01849aa2006e9f240da31c5c4f139f9d1118d5cf /Parse/ParseObjc.cpp
parent1b273c403734d343d720acb28f04011807c8aa56 (diff)
Fixes/tweaks that prevent "defaults-i.m" from compiling.
- Allow classnames as the receiver (removing a FIXME from ParseObjCMessageExpression). - Added a FIXME to ParseObjCMessageExpression()...we need to return a message expr AST node! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42001 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Parse/ParseObjc.cpp')
-rw-r--r--Parse/ParseObjc.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/Parse/ParseObjc.cpp b/Parse/ParseObjc.cpp
index 8fa071a3fe..e382974daf 100644
--- a/Parse/ParseObjc.cpp
+++ b/Parse/ParseObjc.cpp
@@ -986,8 +986,11 @@ Parser::ExprResult Parser::ParseObjCMessageExpression() {
assert(Tok.getKind() == tok::l_square && "'[' expected");
SourceLocation Loc = ConsumeBracket(); // consume '['
// Parse receiver
- // FIXME: receiver as type-name/class-name
- ParseAssignmentExpression();
+ if (Tok.getKind() == tok::identifier &&
+ Actions.isTypeName(*Tok.getIdentifierInfo(), CurScope))
+ ConsumeToken();
+ else
+ ParseAssignmentExpression();
// Parse objc-selector
IdentifierInfo *selIdent = ParseObjCSelector();
if (Tok.getKind() == tok::colon) {
@@ -1024,7 +1027,7 @@ Parser::ExprResult Parser::ParseObjCMessageExpression() {
return 0;
}
ConsumeBracket(); // consume ']'
- return 0;
+ return 0; // FIXME: return a message expr AST!
}
Parser::ExprResult Parser::ParseObjCStringLiteral() {