summaryrefslogtreecommitdiffstats
path: root/clang/test/Refactor/Extract/FromMethodToFunction.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2017-11-01 01:12:56 +0000
committerAlex Lorenz <arphaman@gmail.com>2017-11-01 01:12:56 +0000
commit61f2c3f58c56b235dd0f04a72a7c05adeeb837d2 (patch)
treefaca5d8788acc989075b65c31b61ee1e684bfdbe /clang/test/Refactor/Extract/FromMethodToFunction.cpp
parentdf00e89cdc39f0275f5b62396dea8f42ed233a13 (diff)
downloadbcm5719-llvm-61f2c3f58c56b235dd0f04a72a7c05adeeb837d2.tar.gz
bcm5719-llvm-61f2c3f58c56b235dd0f04a72a7c05adeeb837d2.zip
[refactor][extract] code extracted from inline method should be placed
in a function defined before the outer class llvm-svn: 317062
Diffstat (limited to 'clang/test/Refactor/Extract/FromMethodToFunction.cpp')
-rw-r--r--clang/test/Refactor/Extract/FromMethodToFunction.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/clang/test/Refactor/Extract/FromMethodToFunction.cpp b/clang/test/Refactor/Extract/FromMethodToFunction.cpp
new file mode 100644
index 00000000000..86bec16edfd
--- /dev/null
+++ b/clang/test/Refactor/Extract/FromMethodToFunction.cpp
@@ -0,0 +1,42 @@
+// RUN: clang-refactor extract -selection=test:%s %s -- -std=c++11 2>&1 | grep -v CHECK | FileCheck --check-prefixes=CHECK,CHECK-INNER %s
+// RUN: clang-refactor extract -selection=test:%s %s -- -std=c++11 -DMULTIPLE 2>&1 | grep -v CHECK | FileCheck --check-prefixes=CHECK,CHECK-OUTER %s
+
+#ifdef MULTIPLE
+class OuterClass {
+#define PREFIX OuterClass ::
+#else
+#define PREFIX
+#endif
+
+class AClass {
+
+ int method(int x) {
+ return /*range inner=->+0:38*/1 + 2 * 2;
+ }
+// CHECK-INNER: 1 'inner' results:
+// CHECK-INNER: static int extracted() {
+// CHECK-INNER-NEXT: return 1 + 2 * 2;{{$}}
+// CHECK-INNER-NEXT: }{{[[:space:]].*}}
+// CHECK-INNER-NEXT: class AClass {
+
+// CHECK-OUTER: 1 'inner' results:
+// CHECK-OUTER: static int extracted() {
+// CHECK-OUTER-NEXT: return 1 + 2 * 2;{{$}}
+// CHECK-OUTER-NEXT: }{{[[:space:]].*}}
+// CHECK-OUTER-NEXT: class OuterClass {
+
+ int otherMethod(int x);
+};
+
+#ifdef MULTIPLE
+};
+#endif
+
+int PREFIX AClass::otherMethod(int x) {
+ return /*range outofline=->+0:46*/2 * 2 - 1;
+}
+// CHECK: 1 'outofline' results:
+// CHECK: static int extracted() {
+// CHECK-NEXT: return 2 * 2 - 1;{{$}}
+// CHECK-NEXT: }{{[[:space:]].*}}
+// CHECK-NEXT: int PREFIX AClass::otherMethod
OpenPOWER on IntegriCloud