From aaa999660bd94735a369cd6edf185718015ee71d Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Sun, 6 Nov 2011 18:57:57 +0000 Subject: [arcmt] Refactor PropertiesRewriter to use MigrationContext. llvm-svn: 143882 --- clang/lib/ARCMigrate/Transforms.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'clang/lib/ARCMigrate/Transforms.h') diff --git a/clang/lib/ARCMigrate/Transforms.h b/clang/lib/ARCMigrate/Transforms.h index 515844656a0..4ff35a5daf0 100644 --- a/clang/lib/ARCMigrate/Transforms.h +++ b/clang/lib/ARCMigrate/Transforms.h @@ -37,7 +37,6 @@ void rewriteUnbridgedCasts(MigrationPass &pass); void makeAssignARCSafe(MigrationPass &pass); void removeRetainReleaseDeallocFinalize(MigrationPass &pass); void removeZeroOutPropsInDeallocFinalize(MigrationPass &pass); -void rewriteProperties(MigrationPass &pass); void rewriteBlockObjCVariable(MigrationPass &pass); void rewriteUnusedInitDelegate(MigrationPass &pass); void checkAPIUses(MigrationPass &pass); @@ -58,10 +57,25 @@ public: Stmt *getTopStmt() { return TopStmt; } }; +class ObjCImplementationContext { + MigrationContext &MigrateCtx; + ObjCImplementationDecl *ImpD; + +public: + ObjCImplementationContext(MigrationContext &MigrateCtx, + ObjCImplementationDecl *D) + : MigrateCtx(MigrateCtx), ImpD(D) {} + + MigrationContext &getMigrationContext() { return MigrateCtx; } + ObjCImplementationDecl *getImplementationDecl() { return ImpD; } +}; + class ASTTraverser { public: virtual ~ASTTraverser(); + virtual void traverseTU(MigrationContext &MigrateCtx) { } virtual void traverseBody(BodyContext &BodyCtx) { } + virtual void traverseObjCImplementation(ObjCImplementationContext &ImplCtx) {} }; class MigrationContext { @@ -87,6 +101,11 @@ public: void traverse(TranslationUnitDecl *TU); }; +class PropertyRewriteTraverser : public ASTTraverser { +public: + virtual void traverseObjCImplementation(ObjCImplementationContext &ImplCtx); +}; + // GC transformations class GCCollectableCallsTraverser : public ASTTraverser { -- cgit v1.2.3