aboutsummaryrefslogtreecommitdiff
path: root/lib/ARCMigrate/Transforms.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ARCMigrate/Transforms.h')
-rw-r--r--lib/ARCMigrate/Transforms.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/ARCMigrate/Transforms.h b/lib/ARCMigrate/Transforms.h
index 515844656a..4ff35a5daf 100644
--- a/lib/ARCMigrate/Transforms.h
+++ b/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 {