Eradicate IsSuper field from ObjCImplicitSetterGetterRefExprClass

AST node. (finishing off radar 8525788).

llvm-svn: 116603
This commit is contained in:
Fariborz Jahanian
2010-10-15 18:40:05 +00:00
parent 2d00b1b2e5
commit 4f99b59df6
3 changed files with 7 additions and 16 deletions

View File

@@ -336,10 +336,6 @@ class ObjCImplicitSetterGetterRefExpr : public Expr {
/// the type associated with 'super' keyword.
QualType SuperTy;
/// \brief When the receiver in dot-syntax expression is 'super', this is
/// set to true.
bool IsSuper:1;
public:
ObjCImplicitSetterGetterRefExpr(ObjCMethodDecl *getter,
QualType t,
@@ -348,9 +344,7 @@ public:
: Expr(ObjCImplicitSetterGetterRefExprClass, t, /*TypeDependent=*/false,
base->isValueDependent()),
Setter(setter), Getter(getter), MemberLoc(l), Base(base),
InterfaceDecl(0), ClassLoc(SourceLocation()) {
IsSuper = false;
}
InterfaceDecl(0), ClassLoc(SourceLocation()) {}
ObjCImplicitSetterGetterRefExpr(ObjCMethodDecl *getter,
QualType t,
@@ -361,8 +355,8 @@ public:
: Expr(ObjCImplicitSetterGetterRefExprClass, t, /*TypeDependent=*/false,
false),
Setter(setter), Getter(getter), MemberLoc(l),
InterfaceDecl(0), ClassLoc(SourceLocation()),
SuperLoc(sl), SuperTy(st), IsSuper(true) {
Base(0), InterfaceDecl(0), ClassLoc(SourceLocation()),
SuperLoc(sl), SuperTy(st) {
}
ObjCImplicitSetterGetterRefExpr(ObjCMethodDecl *getter,
@@ -371,9 +365,7 @@ public:
SourceLocation l, ObjCInterfaceDecl *C, SourceLocation CL)
: Expr(ObjCImplicitSetterGetterRefExprClass, t, false, false),
Setter(setter), Getter(getter), MemberLoc(l), Base(0), InterfaceDecl(C),
ClassLoc(CL) {
IsSuper = false;
}
ClassLoc(CL) {}
explicit ObjCImplicitSetterGetterRefExpr(EmptyShell Empty)
: Expr(ObjCImplicitSetterGetterRefExprClass, Empty){}
@@ -402,7 +394,9 @@ public:
SourceLocation getSuperLocation() const { return SuperLoc; }
QualType getSuperType() const { return SuperTy; }
bool isSuperReceiver() const { return IsSuper; }
/// \brief When the receiver in dot-syntax expression is 'super', this
/// method returns true if both Base expression and Interface are null.
bool isSuperReceiver() const { return InterfaceDecl == 0 && Base == 0; }
static bool classof(const Stmt *T) {
return T->getStmtClass() == ObjCImplicitSetterGetterRefExprClass;
@@ -417,7 +411,6 @@ private:
friend class ASTStmtReader;
void setSuperLocation(SourceLocation Loc) { SuperLoc = Loc; }
void setSuperType(QualType T) { SuperTy = T; }
void setSuperReceiver(bool bv) { IsSuper = bv; }
};
/// \brief An expression that sends a message to the given Objective-C

View File

@@ -873,7 +873,6 @@ void ASTStmtReader::VisitObjCImplicitSetterGetterRefExpr(
E->setClassLoc(ReadSourceLocation(Record, Idx));
E->SuperLoc = ReadSourceLocation(Record, Idx);
E->SuperTy = Reader.GetType(Record[Idx++]);
E->IsSuper = Record[Idx++];
}
void ASTStmtReader::VisitObjCMessageExpr(ObjCMessageExpr *E) {

View File

@@ -846,7 +846,6 @@ void ASTStmtWriter::VisitObjCImplicitSetterGetterRefExpr(
Writer.AddSourceLocation(E->getClassLoc(), Record);
Writer.AddSourceLocation(E->getSuperLocation(), Record);
Writer.AddTypeRef(E->getSuperType(), Record);
Record.push_back(E->isSuperReceiver());
Code = serialization::EXPR_OBJC_KVC_REF_EXPR;
}