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

Unified Diff: tools/clang/BindMigrate/OldCallbackTransform.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: Fix lifetime issue where BindMigrateAction is deleted before the ASTConsumer is finished. 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
« no previous file with comments | « tools/clang/BindMigrate/Makefile ('k') | tools/clang/BindMigrate/OldCallbackTransform.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/clang/BindMigrate/OldCallbackTransform.h
diff --git a/tools/clang/BindMigrate/OldCallbackTransform.h b/tools/clang/BindMigrate/OldCallbackTransform.h
new file mode 100644
index 0000000000000000000000000000000000000000..cbda2924a570aba09f2e8b67dd8c6fbed09a619d
--- /dev/null
+++ b/tools/clang/BindMigrate/OldCallbackTransform.h
@@ -0,0 +1,59 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TOOL_CLANG_BINDMIGRATE_OLD_CALLBACK_TRANSFORM_H_
+#define TOOL_CLANG_BINDMIGRATE_OLD_CALLBACK_TRANSFORM_H_
+
+#include <set>
+#include <string>
+
+#include "Transform.h"
+
+namespace clang {
+
+class ASTContext;
+class DiagnosticEmitter;
+class Rewriter;
+
+class OldCallbackTransform : public Transform {
+ public:
+ OldCallbackTransform(ASTContext* context,
+ Rewriter* rewriter,
+ DiagnosticEmitter* emitter);
+
+ // Transform Overrides.
+ virtual bool WouldTransformStmt(Stmt* statement);
+ virtual bool WouldTransformDecl(Decl* decl);
+ virtual void TransformStmt(Stmt *statement);
+ virtual void TransformDecl(Decl *decl);
+
+ private:
+ void RewriteIfOldCallbackGenerator(Stmt* statement);
+ void RewriteIfOldCallbackRun(Stmt* statement);
+ void RewriteTypedefIfOldCallback(TypedefDecl* tnd);
+ void RewriteVarIfOldCallback(VarDecl* vd);
+
+ bool CallbackFromType(QualType type, SourceLocation loc,
+ bool is_callback_with_return,
+ std::string* output);
+ bool CallbackFromVoidReturnType(QualType type, SourceLocation loc,
+ std::string* output);
+ bool CallbackFromTypeWithReturn(QualType type, SourceLocation loc,
+ std::string* output);
+ void ConvertTupleType(const TemplateArgumentList& template_args,
+ std::string* output);
+
+
+ bool IsOldCallbackType(QualType type, bool* is_callback_with_return);
+ bool IsOldCallbackGenerator(Stmt* statement);
+ bool IsOldCallbackRun(Stmt* statement);
+
+ ASTContext* context_;
+ Rewriter* rewriter_;
+ DiagnosticEmitter* error_emitter_;
+};
+
+} // namespace clang
+
+#endif // TOOL_CLANG_BINDMIGRATE_OLD_CALLBACK_TRANSFORM_H_
« no previous file with comments | « tools/clang/BindMigrate/Makefile ('k') | tools/clang/BindMigrate/OldCallbackTransform.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698