xref: /llvm-project/clang/test/Refactor/Extract/FromMethodToFunction.cpp (revision 61f2c3f58c56b235dd0f04a72a7c05adeeb837d2)
1 // RUN: clang-refactor extract -selection=test:%s %s -- -std=c++11 2>&1 | grep -v CHECK | FileCheck --check-prefixes=CHECK,CHECK-INNER %s
2 // RUN: clang-refactor extract -selection=test:%s %s -- -std=c++11 -DMULTIPLE 2>&1 | grep -v CHECK | FileCheck --check-prefixes=CHECK,CHECK-OUTER %s
3 
4 #ifdef MULTIPLE
5 class OuterClass {
6 #define PREFIX OuterClass ::
7 #else
8 #define PREFIX
9 #endif
10 
11 class AClass {
12 
method(int x)13   int method(int x) {
14     return /*range inner=->+0:38*/1 + 2 * 2;
15   }
16 // CHECK-INNER: 1 'inner' results:
17 // CHECK-INNER:      static int extracted() {
18 // CHECK-INNER-NEXT: return 1 + 2 * 2;{{$}}
19 // CHECK-INNER-NEXT: }{{[[:space:]].*}}
20 // CHECK-INNER-NEXT: class AClass {
21 
22 // CHECK-OUTER: 1 'inner' results:
23 // CHECK-OUTER:      static int extracted() {
24 // CHECK-OUTER-NEXT: return 1 + 2 * 2;{{$}}
25 // CHECK-OUTER-NEXT: }{{[[:space:]].*}}
26 // CHECK-OUTER-NEXT: class OuterClass {
27 
28   int otherMethod(int x);
29 };
30 
31 #ifdef MULTIPLE
32 };
33 #endif
34 
otherMethod(int x)35 int PREFIX AClass::otherMethod(int x) {
36   return /*range outofline=->+0:46*/2 * 2 - 1;
37 }
38 // CHECK: 1 'outofline' results:
39 // CHECK:      static int extracted() {
40 // CHECK-NEXT: return 2 * 2 - 1;{{$}}
41 // CHECK-NEXT: }{{[[:space:]].*}}
42 // CHECK-NEXT: int PREFIX AClass::otherMethod
43