blob: 99eb1f44b1fd2dd5062b15533061d1676931a09b [file] [log] [blame]
namespace ns { // CHECK4: rename [[@LINE]]:11 -> [[@LINE]]:13
struct Struct { }; // CHECK1: rename [[@LINE]]:8 -> [[@LINE]]:14
void func(); // CHECK2: rename [[@LINE]]:6 -> [[@LINE]]:10
void overload1(int x);
void overload1(double y); // CHECK3: rename [[@LINE]]:6 -> [[@LINE]]:15
}
using ns::Struct; // CHECK1: rename [[@LINE]]:11 -> [[@LINE]]:17
// RUN: clang-refactor-test rename-initiate -at=%s:13:11 -new-name=x %s | FileCheck --check-prefix=CHECK1 %s
using ns::func; // CHECK2: rename [[@LINE]]:11 -> [[@LINE]]:15
// RUN: clang-refactor-test rename-initiate -at=%s:17:11 -new-name=x %s | FileCheck --check-prefix=CHECK2 %s
using ns::overload1; // CHECK3: rename [[@LINE]]:11 -> [[@LINE]]:20
// RUN: clang-refactor-test rename-initiate -at=%s:21:11 -new-name=x %s | FileCheck --check-prefix=CHECK3 %s
using namespace ns; // CHECK4: rename [[@LINE]]:17 -> [[@LINE]]:19
// RUN: clang-refactor-test rename-initiate -at=%s:25:17 -new-name=x %s | FileCheck --check-prefix=CHECK4 %s
struct UsingConstructor {
template<class T>
UsingConstructor(T, typename T::Q);
};
struct UsingConstructorHere : UsingConstructor {
using UsingConstructor::UsingConstructor; // CHECK5: rename [[@LINE]]:7 -> [[@LINE]]:23
// CHECK5: rename [[@LINE-1]]:25 -> [[@LINE-1]]:41
};
// RUN: clang-refactor-test rename-initiate -at=%s:34:25 -new-name=x %s -std=c++14 | FileCheck --check-prefix=CHECK5 %s
template<typename T>
struct S : T {
using T::T; // CHECK6: rename local [[@LINE]]:12 -> [[@LINE]]:13
// RUN: clang-refactor-test rename-initiate -at=%s:41:12 -new-name=x %s -std=c++14 | FileCheck --check-prefix=CHECK6 %s
using typename T::Foo;
// RUN: not clang-refactor-test rename-initiate -at=%s:43:12 -new-name=x %s -std=c++14 2>&1 | FileCheck --check-prefix=CHECK-UNRESOLVED %s
// CHECK-UNRESOLVED: error: could not rename symbol at the given location
};