| 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
|
|
|