aboutsummaryrefslogtreecommitdiff
path: root/tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc')
-rw-r--r--tools/clang/rewrite_to_chrome_style/tests/macros-expected.cc52
1 files changed, 45 insertions, 7 deletions
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 2dcda6fe..7136069e 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