Index: tools/clang/base_bind_rewriters/tests/test-original.cc |
diff --git a/tools/clang/base_bind_rewriters/tests/test-original.cc b/tools/clang/base_bind_rewriters/tests/test-original.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..89acfdeb87e6012bc89d40d4f11e3cd2dd46dfb0 |
--- /dev/null |
+++ b/tools/clang/base_bind_rewriters/tests/test-original.cc |
@@ -0,0 +1,37 @@ |
+// Copyright 2016 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. |
+ |
+template <typename> |
+class scoped_refptr { |
+ public: |
+ void* get() { return 0; } |
+}; |
+ |
+namespace base { |
+ |
+template <typename Functor, typename... Args> |
+void Bind(Functor&&, Args&&...) {} |
+ |
+} // namespace base |
+ |
+struct Foo { |
+ void Bar(); |
+ static void Baz(); |
+}; |
+ |
+void Test() { |
+ using base::Bind; |
+ scoped_refptr<int> foo; |
+ base::Bind(&Foo::Bar, foo.get()); |
+ Bind(&Foo::Bar, foo.get()); |
+ base::Bind(&Foo::Bar, (&foo)->get()); |
+ base::Bind(&Foo::Bar, foo.get( |
+ )); |
+ base::Bind(&Foo::Bar, foo |
+ .get()); |
+ base::Bind(&Foo::Bar, foo.get(), foo.get()); |
+ base::Bind(&Foo::Baz, foo.get()); |
+ base::Bind(&Foo::Bar, foo.scoped_refptr<int>::get()); |
+ base::Bind(&Foo::Bar, (&foo)->scoped_refptr<int>::get()); |
+} |