Finish defining Action API for message expressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42059 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Parse/ParseObjc.cpp b/Parse/ParseObjc.cpp
index d61d621..87cc277 100644
--- a/Parse/ParseObjc.cpp
+++ b/Parse/ParseObjc.cpp
@@ -1051,11 +1051,18 @@
   }
   ConsumeBracket(); // consume ']'
   
+  if (KeyInfo.size()) {
+    // We've just parsed a keyword message.
+    if (ReceiverName) 
+      return Actions.ActOnKeywordMessage(ReceiverName, 
+                                            &KeyInfo[0], KeyInfo.size());
+    return Actions.ActOnKeywordMessage(ReceiverExpr, 
+                                            &KeyInfo[0], KeyInfo.size());
+  }
+  // We've just parsed a unary message (a message with no arguments).
   if (ReceiverName) 
-    return Actions.ActOnMessageExpression(ReceiverName, 
-                                          &KeyInfo[0], KeyInfo.size());
-  return Actions.ActOnMessageExpression(ReceiverExpr, 
-                                          &KeyInfo[0], KeyInfo.size());
+    return Actions.ActOnUnaryMessage(ReceiverName, selIdent);
+  return Actions.ActOnUnaryMessage(ReceiverExpr, selIdent);
 }
 
 Parser::ExprResult Parser::ParseObjCStringLiteral() {