blob: 453db5dd3950e46781ee0988360c541467c1b515 [file] [log] [blame]
Kirill Bobyrevd6ab7d42016-08-03 23:00:32 +00001template <typename T>
2class Foo { // CHECK: class Bar {
3public:
4 T foo(T arg, T& ref, T* ptr) {
5 T value;
6 int number = 42;
7 value = (T)number;
8 value = static_cast<T>(number);
9 return value;
10 }
11 static void foo(T value) {}
12 T member;
13};
14
15template <typename T>
16void func() {
17 Foo<T> obj; // CHECK: Bar<T> obj;
18 obj.member = T();
19 Foo<T>::foo(); // CHECK: Bar<T>::foo();
20}
21
22int main() {
23 Foo<int> i; // CHECK: Bar<int> i;
24 i.member = 0;
25 Foo<int>::foo(0); // CHECK: Bar<int>::foo(0);
26
27 Foo<bool> b; // CHECK: Bar<bool> b;
28 b.member = false;
29 Foo<bool>::foo(false); // CHECK: Bar<bool>::foo(false);
30
31 return 0;
32}
33
34// RUN: cat %s > %t-0.cpp
35// RUN: clang-rename -offset=29 -new-name=Bar %t-0.cpp -i -- -fno-delayed-template-parsing
36// RUN: sed 's,//.*,,' %t-0.cpp | FileCheck %s
37
38// RUN: cat %s > %t-1.cpp
39// RUN: clang-rename -offset=311 -new-name=Bar %t-1.cpp -i -- -fno-delayed-template-parsing
40// RUN: sed 's,//.*,,' %t-1.cpp | FileCheck %s
41
42// RUN: cat %s > %t-2.cpp
43// RUN: clang-rename -offset=445 -new-name=Bar %t-2.cpp -i -- -fno-delayed-template-parsing
44// RUN: sed 's,//.*,,' %t-2.cpp | FileCheck %s