From 372877ef93f7bdfa5f4e48a82922450610c7052f Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Tue, 8 Oct 2013 21:32:16 +0000 Subject: [PATCH] ObjectiveC migrator: Add support for inferring properties of function pointer type. // rdar://15082812 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192237 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ARCMigrate/ObjCMT.cpp | 7 +++++-- test/ARCMT/objcmt-property.m | 3 +++ test/ARCMT/objcmt-property.m.result | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/ARCMigrate/ObjCMT.cpp b/lib/ARCMigrate/ObjCMT.cpp index dfe123fd30..8d5395ae3c 100644 --- a/lib/ARCMigrate/ObjCMT.cpp +++ b/lib/ARCMigrate/ObjCMT.cpp @@ -247,9 +247,12 @@ void MigrateBlockOrFunctionPointerTypeVariable(std::string & PropertyString, paren--; break; case '^': - PropertyString += '^'; - if (paren == 1) + case '*': + PropertyString += (*argPtr); + if (paren == 1) { PropertyString += name; + name = ""; + } break; default: PropertyString += *argPtr; diff --git a/test/ARCMT/objcmt-property.m b/test/ARCMT/objcmt-property.m index 080e87e1b5..c02d987ba8 100644 --- a/test/ARCMT/objcmt-property.m +++ b/test/ARCMT/objcmt-property.m @@ -223,4 +223,7 @@ DEPRECATED - (id (^)(id, NSArray *, NSMutableDictionary *)) expressionBlock; - (id (^)(id, NSArray *, NSMutableDictionary *)) MyBlock; - (void) setMyBlock : (id (^)(id, NSArray *, NSMutableDictionary *)) bl; +- (id (*)(id, NSArray *, NSMutableDictionary *)) expressionFuncptr; +- (id (*)(id, NSArray *, NSMutableDictionary *)) MyFuncptr; +- (void) setMyFuncptr : (id (*)(id, NSArray *, NSMutableDictionary *)) bl; @end diff --git a/test/ARCMT/objcmt-property.m.result b/test/ARCMT/objcmt-property.m.result index 27f7c1c05a..29559bfb35 100644 --- a/test/ARCMT/objcmt-property.m.result +++ b/test/ARCMT/objcmt-property.m.result @@ -223,4 +223,7 @@ DEPRECATED @property (nonatomic, readonly) id (^expressionBlock)(id, NSArray *, NSMutableDictionary *); @property (nonatomic, copy) id (^MyBlock)(id, NSArray *, NSMutableDictionary *); +@property (nonatomic, readonly) id (*expressionFuncptr)(__strong id, NSArray *__strong, NSMutableDictionary *__strong); +@property (nonatomic) id (*MyFuncptr)(__strong id, NSArray *__strong, NSMutableDictionary *__strong); + @end -- 2.40.0