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

Unified Diff: tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc

Issue 2592273002: Support rewriting |to##macroArg()| into |To##macroArg()|. (Closed)
Patch Set: Don't minimize the edit if not editing a macro. Created 4 years 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/rewrite_to_chrome_style/tests/macros-expected.cc
diff --git a/tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc b/tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc
index 2dcda6fe9855b09072a94cc92947438136ec220a..7136069ee18a09f7a55088fd5db3080bef8f5ced 100644
--- a/tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc
+++ b/tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc
@@ -2,11 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// Identifiers in macros should never be rewritten, as the risk of things
-// breaking is extremely high.
-
#define DEFINE_TYPE_CASTS(thisType, argumentType, argumentName, predicate) \
- inline thisType* to##thisType(argumentType* argumentName) { \
+ inline thisType* To##thisType(argumentType* argumentName) { \
if (!predicate) \
asm("int 3"); \
return static_cast<thisType*>(argumentName); \
@@ -26,9 +23,7 @@ DEFINE_TYPE_CASTS(Derived, Base, object, true);
void F() {
Base* base_ptr = new Derived;
- // 'toDerived' should not be renamed, since the definition lives inside
- // a macro invocation.
- Derived* derived_ptr = toDerived(base_ptr);
+ Derived* derived_ptr = ToDerived(base_ptr);
long long as_int = ToInt(base_ptr);
// 'derivedPtr' should be renamed: it's a reference to a declaration defined
// outside a macro invocation.
@@ -50,4 +45,47 @@ struct WithMacro : public WithMacroP {
CALL_METHOD_FROM_MACRO();
};
+#define DEFINE_WITH_TOKEN_CONCATENATION2(arg1, arg2) \
+ void arg1##arg2() {}
+// We definitely don't want to rewrite |arg1| on the previous line into
+// either |Arg1| or |Frg1| or |Brg1| or |Foo| or |Baz|.
+
+// We might or might not want to rewrite |foo|->|Foo| and |baz|->|Baz| below.
+// The test below just spells out the current behavior of the tool (which one
+// can argue is accidental).
+DEFINE_WITH_TOKEN_CONCATENATION2(foo, Bar1)
+DEFINE_WITH_TOKEN_CONCATENATION2(baz, Bar2)
+
+void TokenConcatenationTest2() {
+ // We might or might not want to rewrite |foo|->|Foo| and |baz|->|Baz| below.
+ // The test below just spells out the current behavior of the tool (which one
+ // can argue is accidental).
+ fooBar1();
+ bazBar2();
+}
+
+class FieldsMacro {
+ public:
+ // We shouldn't rewrite |m_fooBar| -> |foo_bar_|, because we cannot rewrite
+ // |m_##name| -> |???|.
+ FieldsMacro() : m_fooBar(123), m_barBaz(456) {}
+
+#define DECLARE_FIELD(name, Name) \
+ private: \
+ int m_##name; \
+ \
+ public: \
+ int name() { return m_##name; } \
+ void Set##Name(int value) { m_##name = value; }
+
+ DECLARE_FIELD(FooBar, FooBar)
+ DECLARE_FIELD(BarBaz, BarBaz)
+};
+
+int FieldsMacroTest() {
+ FieldsMacro fm;
+ fm.SetFooBar(789);
+ return fm.FooBar() + fm.BarBaz();
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698