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