diff options
author | Steve Naroff <snaroff@apple.com> | 2007-09-16 16:16:00 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2007-09-16 16:16:00 +0000 |
commit | 8c9f13e494109426f358ef73bf873f77b1221564 (patch) | |
tree | 01849aa2006e9f240da31c5c4f139f9d1118d5cf /Parse/ParseObjc.cpp | |
parent | 1b273c403734d343d720acb28f04011807c8aa56 (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.cpp | 9 |
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() { |