Home | History | Annotate | Download | only in Sema

Lines Matching defs:RefExpr

134     Expr *rebuildSpecific(ObjCPropertyRefExpr *refExpr) {
137 assert(refExpr->isObjectReceiver());
139 if (refExpr->isExplicitProperty()) {
141 ObjCPropertyRefExpr(refExpr->getExplicitProperty(),
142 refExpr->getType(), refExpr->getValueKind(),
143 refExpr->getObjectKind(), refExpr->getLocation(),
147 ObjCPropertyRefExpr(refExpr->getImplicitPropertyGetter(),
148 refExpr->getImplicitPropertySetter(),
149 refExpr->getType(), refExpr->getValueKind(),
150 refExpr->getObjectKind(),refExpr->getLocation(),
163 Expr *rebuildSpecific(ObjCSubscriptRefExpr *refExpr) {
164 assert(refExpr->getBaseExpr());
165 assert(refExpr->getKeyExpr());
170 refExpr->getType(), refExpr->getValueKind(),
171 refExpr->getObjectKind(),refExpr->getAtIndexMethodDecl(),
172 refExpr->setAtIndexMethodDecl(),
173 refExpr->getRBracket());
183 Expr *rebuildSpecific(MSPropertyRefExpr *refExpr) {
184 assert(refExpr->getBaseExpr());
187 MSPropertyRefExpr(NewBase, refExpr->getPropertyDecl(),
188 refExpr->isArrow(), refExpr->getType(),
189 refExpr->getValueKind(), refExpr->getQualifierLoc(),
190 refExpr->getMemberLoc());
259 ObjCPropertyRefExpr *RefExpr;
269 ObjCPropertyOpBuilder(Sema &S, ObjCPropertyRefExpr *refExpr) :
270 PseudoOpBuilder(S, refExpr->getLocation()), RefExpr(refExpr),
299 ObjCSubscriptRefExpr *RefExpr;
309 ObjCSubscriptOpBuilder(Sema &S, ObjCSubscriptRefExpr *refExpr) :
310 PseudoOpBuilder(S, refExpr->getSourceRange().getBegin()),
311 RefExpr(refExpr),
330 MSPropertyRefExpr *RefExpr;
333 MSPropertyOpBuilder(Sema &S, MSPropertyRefExpr *refExpr) :
334 PseudoOpBuilder(S, refExpr->getSourceRange().getBegin()),
335 RefExpr(refExpr) {}
546 if (RefExpr->isExplicitProperty()) {
547 const ObjCPropertyDecl *Prop = RefExpr->getExplicitProperty();
565 if (RefExpr->isImplicitProperty()) {
566 if ((Getter = RefExpr->getImplicitPropertyGetter())) {
572 ObjCMethodDecl *setter = RefExpr->getImplicitPropertySetter();
584 ObjCPropertyDecl *prop = RefExpr->getExplicitProperty();
585 Getter = LookupMethodInReceiverType(S, prop->getGetterName(), RefExpr);
595 if (RefExpr->isImplicitProperty()) {
596 if (ObjCMethodDecl *setter = RefExpr->getImplicitPropertySetter()) {
602 RefExpr->getImplicitPropertyGetter()->getSelector()
613 ObjCPropertyDecl *prop = RefExpr->getExplicitProperty();
618 LookupMethodInReceiverType(S, SetterSelector, RefExpr)) {
631 S.Diag(RefExpr->getExprLoc(), diag::error_property_setter_ambiguous_use)
653 if (ObjCPropertyDecl *prop = RefExpr->getExplicitProperty()) {
654 S.Diag(RefExpr->getLocation(),
667 if (RefExpr->isObjectReceiver()) {
668 InstanceReceiver = capture(RefExpr->getBase());
693 if (RefExpr->isClassReceiver()) {
694 receiverType = S.Context.getObjCInterfaceType(RefExpr->getClassReceiver());
695 } else if (RefExpr->isSuperReceiver()) {
696 receiverType = RefExpr->getSuperReceiverType();
705 if ((Getter->isInstanceMethod() && !RefExpr->isClassReceiver()) ||
706 RefExpr->isObjectReceiver()) {
707 assert(InstanceReceiver || RefExpr->isSuperReceiver());
712 msg = S.BuildClassMessageImplicit(receiverType, RefExpr->isSuperReceiver(),
734 if (RefExpr->isClassReceiver()) {
735 receiverType = S.Context.getObjCInterfaceType(RefExpr->getClassReceiver());
736 } else if (RefExpr->isSuperReceiver()) {
737 receiverType = RefExpr->getSuperReceiverType();
779 if ((Setter->isInstanceMethod() && !RefExpr->isClassReceiver()) ||
780 RefExpr->isObjectReceiver()) {
785 msg = S.BuildClassMessageImplicit(receiverType, RefExpr->isSuperReceiver(),
806 if (RefExpr->isImplicitProperty() && !RefExpr->getImplicitPropertyGetter()) {
807 S.Diag(RefExpr->getLocation(), diag::err_getter_not_found)
808 << RefExpr->getSourceRange();
815 if (RefExpr->isExplicitProperty() && !Getter->hasRelatedResultType())
816 S.DiagnosePropertyAccessorMismatch(RefExpr->getExplicitProperty(),
817 Getter, RefExpr->getLocation());
821 if (RefExpr->isExplicitProperty() && result.get()->isRValue()) {
822 QualType propType = RefExpr->getExplicitProperty()->getType();
833 if (!S.Diags.isIgnored(diag::warn_arc_repeated_use_of_weak, RefExpr->getLocation()))
834 S.getCurFunction()->markSafeWeakUse(RefExpr);
884 << unsigned(RefExpr->isImplicitProperty())
928 << unsigned(RefExpr->isImplicitProperty())
939 assert(RefExpr->isImplicitProperty());
1007 InstanceBase = capture(RefExpr->getBaseExpr());
1008 InstanceKey = capture(RefExpr->getKeyExpr());
1115 Expr *BaseExpr = RefExpr->getBaseExpr();
1127 S.CheckSubscriptingKind(RefExpr->getKeyExpr());
1131 RefExpr->getKeyExpr());
1194 RefExpr->getSourceRange(),
1202 S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
1211 S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
1224 Expr *BaseExpr = RefExpr->getBaseExpr();
1237 S.CheckSubscriptingKind(RefExpr->getKeyExpr());
1241 RefExpr->getKeyExpr());
1316 RefExpr->getSourceRange(),
1324 S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
1332 S.Diag(RefExpr->getBaseExpr()->getExprLoc(),
1344 S.Diag(RefExpr->getKeyExpr()->getExprLoc(),
1347 S.Diag(RefExpr->getBaseExpr()->getExprLoc(),
1422 Expr *NewBase = capture(RefExpr->getBaseExpr());
1431 if (!RefExpr->getPropertyDecl()->hasGetter()) {
1432 S.Diag(RefExpr->getMemberLoc(), diag::err_no_accessor_for_property)
1433 << 0 /* getter */ << RefExpr->getPropertyDecl();
1438 IdentifierInfo *II = RefExpr->getPropertyDecl()->getGetterId();
1439 GetterName.setIdentifier(II, RefExpr->getMemberLoc());
1441 SS.Adopt(RefExpr->getQualifierLoc());
1443 S.getCurScope(), RefExpr->getBaseExpr(), SourceLocation(),
1444 RefExpr->isArrow() ? tok::arrow : tok::period, SS, SourceLocation(),
1447 S.Diag(RefExpr->getMemberLoc(),
1449 << RefExpr->getPropertyDecl();
1455 RefExpr->getSourceRange().getBegin(), ArgExprs,
1456 RefExpr->getSourceRange().getEnd());
1461 if (!RefExpr->getPropertyDecl()->hasSetter()) {
1462 S.Diag(RefExpr->getMemberLoc(), diag::err_no_accessor_for_property)
1463 << 1 /* setter */ << RefExpr->getPropertyDecl();
1468 IdentifierInfo *II = RefExpr->getPropertyDecl()->getSetterId();
1469 SetterName.setIdentifier(II, RefExpr->getMemberLoc());
1471 SS.Adopt(RefExpr->getQualifierLoc());
1473 S.getCurScope(), RefExpr->getBaseExpr(), SourceLocation(),
1474 RefExpr->isArrow() ? tok::arrow : tok::period, SS, SourceLocation(),
1477 S.Diag(RefExpr->getMemberLoc(),
1479 << RefExpr->getPropertyDecl();
1486 RefExpr->getSourceRange().getBegin(), ArgExprs,
1496 if (ObjCPropertyRefExpr *refExpr
1498 ObjCPropertyOpBuilder builder(*this, refExpr);
1501 else if (ObjCSubscriptRefExpr *refExpr
1503 ObjCSubscriptOpBuilder builder(*this, refExpr);
1505 } else if (MSPropertyRefExpr *refExpr
1507 MSPropertyOpBuilder builder(*this, refExpr);
1524 if (ObjCPropertyRefExpr *refExpr
1526 ObjCPropertyOpBuilder builder(*this, refExpr);
1531 } else if (MSPropertyRefExpr *refExpr
1533 MSPropertyOpBuilder builder(*this, refExpr);
1556 if (ObjCPropertyRefExpr *refExpr
1558 ObjCPropertyOpBuilder builder(*this, refExpr);
1560 } else if (ObjCSubscriptRefExpr *refExpr
1562 ObjCSubscriptOpBuilder builder(*this, refExpr);
1564 } else if (MSPropertyRefExpr *refExpr
1566 MSPropertyOpBuilder builder(*this, refExpr);
1578 if (ObjCPropertyRefExpr *refExpr
1581 if (refExpr->isClassReceiver() || refExpr->isSuperReceiver())
1584 assert(refExpr->isObjectReceiver() && "Unknown receiver kind?");
1585 OpaqueValueExpr *baseOVE = cast<OpaqueValueExpr>(refExpr->getBase());
1587 } else if (ObjCSubscriptRefExpr *refExpr
1589 OpaqueValueExpr *baseOVE = cast<OpaqueValueExpr>(refExpr->getBaseExpr());
1590 OpaqueValueExpr *keyOVE = cast<OpaqueValueExpr>(refExpr->getKeyExpr());
1593 } else if (MSPropertyRefExpr *refExpr
1595 OpaqueValueExpr *baseOVE = cast<OpaqueValueExpr>(refExpr->getBaseExpr());