1 // RUN: clang-change-namespace -old_namespace "na::nb" -new_namespace "x::y" --file_pattern ".*" %s -- -std=c++11 | sed 's,// CHECK.*,,' | FileCheck %s
5 template <class R
, class... ArgTypes
>
6 class function
<R(ArgTypes
...)> {
8 template <typename Functor
>
10 R
operator()(ArgTypes
...) const {}
14 // CHECK: namespace x {
20 // CHECK: namespace x {
21 // CHECK-NEXT: namespace y {
22 void f(function
<void(int)> func
, int param
) { func(param
); }
23 void g() { f([](int x
) {}, 1); }
25 // x::X in function type parameter list will have translation unit context, so
26 // we simply replace it with fully-qualified name.
27 using TX
= function
<x::X(x::X
)>;
28 // CHECK: using TX = function<X(x::X)>;
31 using TA
= function
<A(A
)>;
32 // CHECK: using TA = function<A(A)>;
34 // CHECK: } // namespace y
35 // CHECK-NEXT: } // namespace x