diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-09-15 20:40:18 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-09-15 20:40:18 +0000 |
commit | 412a49641c9365662b34331d36bf072bc3a228ea (patch) | |
tree | 55f26b3af2ddc60bbe345f6bfd30dae4b1173d5b /lib/Sema/SemaExpr.cpp | |
parent | 4ebd45f4279d84416568ada6adf56044bdf391b7 (diff) |
reverse patch in r139818 to focus on 'self'
instead of 'Class'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139834 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaExpr.cpp')
-rw-r--r-- | lib/Sema/SemaExpr.cpp | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 35b38b101a..16b55f1aee 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -5227,35 +5227,6 @@ checkBlockPointerTypesForAssignment(Sema &S, QualType LHSType, return ConvTy; } -static Sema::AssignConvertType -checkObjCPointerTypesForAssignment(Sema &S, QualType LHSType, - QualType RHSType); -/// checkClassTypes - Routine checks for conversion of "Class" type. -// Conversion from type Class to any root class type in a class method -// is allowed. -static Sema::AssignConvertType -checkClassTypes(Sema &S, QualType LHSType) { - // Conversion from type Class to any root class type is allowed. - DeclContext *DC = S.CurContext; - while (isa<BlockDecl>(DC)) - DC = DC->getParent(); - ObjCMethodDecl *MD = dyn_cast_or_null<ObjCMethodDecl>(DC); - if (MD && MD->isClassMethod()) { - ObjCInterfaceDecl *Root = 0; - if (ObjCInterfaceDecl * IDecl = MD->getClassInterface()) - do - Root = IDecl; - while ((IDecl = IDecl->getSuperClass())); - if (Root){ - QualType RHSType = - S.Context.getObjCObjectPointerType( - S.Context.getObjCInterfaceType(Root)); - return checkObjCPointerTypesForAssignment(S, LHSType, RHSType); - } - } - return Sema::IncompatiblePointer; -} - /// checkObjCPointerTypesForAssignment - Compares two objective-c pointer types /// for assignment compatibility. static Sema::AssignConvertType @@ -5274,7 +5245,7 @@ checkObjCPointerTypesForAssignment(Sema &S, QualType LHSType, if (RHSType->isObjCBuiltinType()) { if (RHSType->isObjCClassType() && !LHSType->isObjCBuiltinType() && !LHSType->isObjCQualifiedClassType()) - return checkClassTypes(S, LHSType); + return Sema::IncompatiblePointer; return Sema::Compatible; } QualType lhptee = LHSType->getAs<ObjCObjectPointerType>()->getPointeeType(); |