aboutsummaryrefslogtreecommitdiff
path: root/lib/ARCMigrate/Transforms.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-06 18:57:57 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-06 18:57:57 +0000
commitb0d5db1b7cac1a0680877c17fe92c6d64cf1c730 (patch)
tree5c68847db10ce2c0c3018a28e04826e369c37c64 /lib/ARCMigrate/Transforms.cpp
parentfc8205e12d77bc4f1f1deb567db20f03ceed806c (diff)
[arcmt] Refactor PropertiesRewriter to use MigrationContext.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143882 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ARCMigrate/Transforms.cpp')
-rw-r--r--lib/ARCMigrate/Transforms.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/ARCMigrate/Transforms.cpp b/lib/ARCMigrate/Transforms.cpp
index d0c9bc69c8..5ea454a917 100644
--- a/lib/ARCMigrate/Transforms.cpp
+++ b/lib/ARCMigrate/Transforms.cpp
@@ -302,6 +302,16 @@ class ASTTransform : public RecursiveASTVisitor<ASTTransform> {
public:
ASTTransform(MigrationContext &MigrateCtx) : MigrateCtx(MigrateCtx) { }
+ bool TraverseObjCImplementationDecl(ObjCImplementationDecl *D) {
+ ObjCImplementationContext ImplCtx(MigrateCtx, D);
+ for (MigrationContext::traverser_iterator
+ I = MigrateCtx.traversers_begin(),
+ E = MigrateCtx.traversers_end(); I != E; ++I)
+ (*I)->traverseObjCImplementation(ImplCtx);
+
+ return true;
+ }
+
bool TraverseStmt(Stmt *rootS) {
if (!rootS)
return true;
@@ -358,13 +368,13 @@ static void traverseAST(MigrationPass &pass) {
if (pass.isGCMigration()) {
MigrateCtx.addTraverser(new GCCollectableCallsTraverser);
}
+ MigrateCtx.addTraverser(new PropertyRewriteTraverser());
MigrateCtx.traverse(pass.Ctx.getTranslationUnitDecl());
}
static void independentTransforms(MigrationPass &pass) {
rewriteAutoreleasePool(pass);
- rewriteProperties(pass);
removeRetainReleaseDeallocFinalize(pass);
rewriteUnusedInitDelegate(pass);
removeZeroOutPropsInDeallocFinalize(pass);