aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaPseudoObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sema/SemaPseudoObject.cpp')
-rw-r--r--lib/Sema/SemaPseudoObject.cpp42
1 files changed, 14 insertions, 28 deletions
diff --git a/lib/Sema/SemaPseudoObject.cpp b/lib/Sema/SemaPseudoObject.cpp
index 08b3fc82ca..fa56b258da 100644
--- a/lib/Sema/SemaPseudoObject.cpp
+++ b/lib/Sema/SemaPseudoObject.cpp
@@ -492,11 +492,9 @@ ExprResult ObjCPropertyOpBuilder::buildGet() {
assert(Getter);
QualType receiverType;
- SourceLocation superLoc;
if (RefExpr->isClassReceiver()) {
receiverType = S.Context.getObjCInterfaceType(RefExpr->getClassReceiver());
} else if (RefExpr->isSuperReceiver()) {
- superLoc = RefExpr->getReceiverLocation();
receiverType = RefExpr->getSuperReceiverType();
} else {
assert(InstanceReceiver);
@@ -507,19 +505,14 @@ ExprResult ObjCPropertyOpBuilder::buildGet() {
ExprResult msg;
if (Getter->isInstanceMethod() || RefExpr->isObjectReceiver()) {
assert(InstanceReceiver || RefExpr->isSuperReceiver());
- msg = S.BuildInstanceMessage(InstanceReceiver, receiverType, superLoc,
- Getter->getSelector(), Getter,
- GenericLoc, GenericLoc, GenericLoc,
- MultiExprArg());
+ msg = S.BuildInstanceMessageImplicit(InstanceReceiver, receiverType,
+ GenericLoc, Getter->getSelector(),
+ Getter, MultiExprArg());
} else {
- TypeSourceInfo *receiverTypeInfo = 0;
- if (!RefExpr->isSuperReceiver())
- receiverTypeInfo = S.Context.getTrivialTypeSourceInfo(receiverType);
-
- msg = S.BuildClassMessage(receiverTypeInfo, receiverType, superLoc,
- Getter->getSelector(), Getter,
- GenericLoc, GenericLoc, GenericLoc,
- MultiExprArg());
+ msg = S.BuildClassMessageImplicit(receiverType, RefExpr->isSuperReceiver(),
+ GenericLoc,
+ Getter->getSelector(), Getter,
+ MultiExprArg());
}
return msg;
}
@@ -534,11 +527,9 @@ ExprResult ObjCPropertyOpBuilder::buildSet(Expr *op, SourceLocation opcLoc,
assert(hasSetter); (void) hasSetter;
QualType receiverType;
- SourceLocation superLoc;
if (RefExpr->isClassReceiver()) {
receiverType = S.Context.getObjCInterfaceType(RefExpr->getClassReceiver());
} else if (RefExpr->isSuperReceiver()) {
- superLoc = RefExpr->getReceiverLocation();
receiverType = RefExpr->getSuperReceiverType();
} else {
assert(InstanceReceiver);
@@ -570,19 +561,14 @@ ExprResult ObjCPropertyOpBuilder::buildSet(Expr *op, SourceLocation opcLoc,
// Build a message-send.
ExprResult msg;
if (Setter->isInstanceMethod() || RefExpr->isObjectReceiver()) {
- msg = S.BuildInstanceMessage(InstanceReceiver, receiverType, superLoc,
- SetterSelector, Setter,
- GenericLoc, GenericLoc, GenericLoc,
- MultiExprArg(args, 1));
+ msg = S.BuildInstanceMessageImplicit(InstanceReceiver, receiverType,
+ GenericLoc, SetterSelector, Setter,
+ MultiExprArg(args, 1));
} else {
- TypeSourceInfo *receiverTypeInfo = 0;
- if (!RefExpr->isSuperReceiver())
- receiverTypeInfo = S.Context.getTrivialTypeSourceInfo(receiverType);
-
- msg = S.BuildClassMessage(receiverTypeInfo, receiverType, superLoc,
- SetterSelector, Setter,
- GenericLoc, GenericLoc, GenericLoc,
- MultiExprArg(args, 1));
+ msg = S.BuildClassMessageImplicit(receiverType, RefExpr->isSuperReceiver(),
+ GenericLoc,
+ SetterSelector, Setter,
+ MultiExprArg(args, 1));
}
if (!msg.isInvalid() && captureSetValueAsResult) {