SourceLocation LBracLoc = ConsumeBracket(); // consume '['
// Parse receiver
- if (Tok.is(tok::identifier) &&
- (Actions.isTypeName(*Tok.getIdentifierInfo(), CurScope)
- || Tok.isNamedIdentifier("super"))) {
+ if (isTokObjCMessageIdentifierReceiver()) {
IdentifierInfo *ReceiverName = Tok.getIdentifierInfo();
ConsumeToken();
return ParseObjCMessageExpressionBody(LBracLoc, ReceiverName, 0);
//===--------------------------------------------------------------------===//
// Objective-C Expressions
+
+ bool isTokObjCMessageIdentifierReceiver() const {
+ if (!Tok.is(tok::identifier))
+ return false;
+
+ if (Actions.isTypeName(*Tok.getIdentifierInfo(), CurScope))
+ return true;
+
+ return Tok.isNamedIdentifier("super");
+ }
+
ExprResult ParseObjCAtExpression(SourceLocation AtLocation);
ExprResult ParseObjCStringLiteral(SourceLocation AtLoc);
ExprResult ParseObjCEncodeExpression(SourceLocation AtLoc);