Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: tools/clang/BindMigrate/TransformPostTask.h

Issue 7886056: Clang plugin that rewrites PostTask(_, NewRunnableMethod(...)) to PostTask(_, base::Bind(...)); (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: break into files and make saner Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/clang/BindMigrate/TransformPostTask.h
diff --git a/tools/clang/BindMigrate/TransformPostTask.h b/tools/clang/BindMigrate/TransformPostTask.h
new file mode 100644
index 0000000000000000000000000000000000000000..1e57694762b47ac08b30405b8fb09f9c4f147045
--- /dev/null
+++ b/tools/clang/BindMigrate/TransformPostTask.h
@@ -0,0 +1,44 @@
+// Copyright 2011 Google Inc. All Rights Reserved.
+// Author: ajwong@google.com (Albert Wong)
+
+#ifndef TRANSFORM_POST_TASK_H_
+#define TRANSFORM_POST_TASK_H_
+
+#include <set>
+#include <string>
+
+#include "clang/AST/RecursiveASTVisitor.h"
+
+namespace clang {
+
+class ASTContext;
+class CXXMemberCallExpr;
+class DiagnosticEmitter;
+class Exprt;
+class Rewriter;
+
+class TransformPostTask : public RecursiveASTVisitor<TransformPostTask> {
+ public:
+ TransformPostTask(ASTContext* context,
+ Rewriter* rewriter,
+ DiagnosticEmitter* emitter);
+
+ bool TraverseStmt(Stmt *statement);
+
+ private:
+ bool IsPostTaskExpr(CXXMemberCallExpr* call);
+ bool MaybeRewriteNewRunnableMethod(Expr* post_task_arg);
+
+ ASTContext* context_;
+ Rewriter* rewriter_;
+ DiagnosticEmitter* error_emitter_;
+
+ // Names for matching.
+ std::set<std::string> interesting_classes_;
+ static const char kPostTaskName[];
+ static const char kNewRunnableMethodName[];
+};
+
+} // namespace clang
+
+#endif // TRANSFORM_POST_TASK_H_

Powered by Google App Engine
This is Rietveld 408576698