diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-06 18:57:57 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-06 18:57:57 +0000 |
commit | b0d5db1b7cac1a0680877c17fe92c6d64cf1c730 (patch) | |
tree | 5c68847db10ce2c0c3018a28e04826e369c37c64 /lib/ARCMigrate/Transforms.cpp | |
parent | fc8205e12d77bc4f1f1deb567db20f03ceed806c (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.cpp | 12 |
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); |