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 
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 
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