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