diff --git a/lib/ARCMigrate/ObjCMT.cpp b/lib/ARCMigrate/ObjCMT.cpp index d01dca45a2a1eb786a2ff4dfa25f6f1987e533af..5cb2223b8a56979eac0cf4e877433192f329e540 100644 --- a/lib/ARCMigrate/ObjCMT.cpp +++ b/lib/ARCMigrate/ObjCMT.cpp @@ -199,6 +199,10 @@ void ObjCMigrateASTConsumer::migrateObjCInterfaceDecl(ASTContext &Ctx, QualType GRT = Method->getResultType(); if (GRT->isVoidType()) continue; + // FIXME. Don't know what todo with attributes, skip for now. + if (Method->hasAttrs()) + continue; + Selector GetterSelector = Method->getSelector(); IdentifierInfo *getterName = GetterSelector.getIdentifierInfoForSlot(0); Selector SetterSelector = @@ -212,7 +216,8 @@ void ObjCMigrateASTConsumer::migrateObjCInterfaceDecl(ASTContext &Ctx, continue; const ParmVarDecl *argDecl = *SetterMethod->param_begin(); QualType ArgType = argDecl->getType(); - if (!Ctx.hasSameUnqualifiedType(ArgType, GRT)) + if (!Ctx.hasSameUnqualifiedType(ArgType, GRT) || + SetterMethod->hasAttrs()) continue; edit::Commit commit(*Editor); edit::rewriteToObjCProperty(Method, SetterMethod, *NSAPIObj, commit); diff --git a/test/ARCMT/objcmt-property.m b/test/ARCMT/objcmt-property.m index f2d5e1a421f5c01d98d641d96f1b956c5ecfb578..d13a491a89a0b3f261e76498b0ec7369ba6c5c81 100644 --- a/test/ARCMT/objcmt-property.m +++ b/test/ARCMT/objcmt-property.m @@ -14,6 +14,16 @@ - (NSString *) StrongProp; - (void) setStrongProp : (NSString *)Val; + +- (NSString *) UnavailProp __attribute__((unavailable)); +- (void) setUnavailProp : (NSString *)Val; + +- (NSString *) UnavailProp1 __attribute__((unavailable)); +- (void) setUnavailProp1 : (NSString *)Val __attribute__((unavailable)); + +- (NSString *) UnavailProp2; +- (void) setUnavailProp2 : (NSString *)Val __attribute__((unavailable)); + @end @implementation I diff --git a/test/ARCMT/objcmt-property.m.result b/test/ARCMT/objcmt-property.m.result index 87b71e1f4f1f69575c77045648a99d2ca3b13eb0..771d8634bf381ed08b07bfdab173baf4ccd997cd 100644 --- a/test/ARCMT/objcmt-property.m.result +++ b/test/ARCMT/objcmt-property.m.result @@ -14,6 +14,16 @@ @property(strong) NSString * StrongProp; + +- (NSString *) UnavailProp __attribute__((unavailable)); +- (void) setUnavailProp : (NSString *)Val; + +- (NSString *) UnavailProp1 __attribute__((unavailable)); +- (void) setUnavailProp1 : (NSString *)Val __attribute__((unavailable)); + +- (NSString *) UnavailProp2; +- (void) setUnavailProp2 : (NSString *)Val __attribute__((unavailable)); + @end @implementation I