1ebbbb812SAlex Lorenz// RUN: clang-refactor extract -selection=test:%s %s -- 2>&1 | grep -v CHECK | FileCheck %s 2ebbbb812SAlex Lorenz 3ebbbb812SAlex Lorenz@interface NSArray 4ebbbb812SAlex Lorenz+ (id)arrayWithObjects:(const id [])objects count:(unsigned long)cnt; 5ebbbb812SAlex Lorenz@end 6ebbbb812SAlex Lorenz 7ebbbb812SAlex Lorenzvoid extractStatementNoSemiObjCFor(NSArray *array) { 8ebbbb812SAlex Lorenz /*range astmt=->+2:4*/for (id i in array) { 9ebbbb812SAlex Lorenz int x = 0; 10ebbbb812SAlex Lorenz } 11ebbbb812SAlex Lorenz} 12ebbbb812SAlex Lorenz// CHECK: 1 'astmt' results: 13ebbbb812SAlex Lorenz// CHECK: static void extracted() { 14ebbbb812SAlex Lorenz// CHECK-NEXT: for (id i in array) { 15ebbbb812SAlex Lorenz// CHECK-NEXT: int x = 0; 16ebbbb812SAlex Lorenz// CHECK-NEXT: }{{$}} 17ebbbb812SAlex Lorenz// CHECK-NEXT: }{{[[:space:]].*}} 18ebbbb812SAlex Lorenz 19*0dd49a56SAaron Ballmanvoid extractStatementNoSemiSync(void) { 20ebbbb812SAlex Lorenz id lock; 21ebbbb812SAlex Lorenz /*range bstmt=->+2:4*/@synchronized(lock) { 22ebbbb812SAlex Lorenz int x = 0; 23ebbbb812SAlex Lorenz } 24ebbbb812SAlex Lorenz} 25ebbbb812SAlex Lorenz// CHECK: 1 'bstmt' results: 26ebbbb812SAlex Lorenz// CHECK: static void extracted() { 27ebbbb812SAlex Lorenz// CHECK-NEXT: @synchronized(lock) { 28ebbbb812SAlex Lorenz// CHECK-NEXT: int x = 0; 29ebbbb812SAlex Lorenz// CHECK-NEXT: }{{$}} 30ebbbb812SAlex Lorenz// CHECK-NEXT: }{{[[:space:]].*}} 31ebbbb812SAlex Lorenz 32*0dd49a56SAaron Ballmanvoid extractStatementNoSemiAutorel(void) { 33ebbbb812SAlex Lorenz /*range cstmt=->+2:4*/@autoreleasepool { 34ebbbb812SAlex Lorenz int x = 0; 35ebbbb812SAlex Lorenz } 36ebbbb812SAlex Lorenz} 37ebbbb812SAlex Lorenz// CHECK: 1 'cstmt' results: 38ebbbb812SAlex Lorenz// CHECK: static void extracted() { 39ebbbb812SAlex Lorenz// CHECK-NEXT: @autoreleasepool { 40ebbbb812SAlex Lorenz// CHECK-NEXT: int x = 0; 41ebbbb812SAlex Lorenz// CHECK-NEXT: }{{$}} 42ebbbb812SAlex Lorenz// CHECK-NEXT: }{{[[:space:]].*}} 43ebbbb812SAlex Lorenz 44*0dd49a56SAaron Ballmanvoid extractStatementNoSemiTryFinalllllly(void) { 45ebbbb812SAlex Lorenz /*range dstmt=->+3:4*/@try { 46ebbbb812SAlex Lorenz int x = 0; 47ebbbb812SAlex Lorenz } @finally { 48ebbbb812SAlex Lorenz } 49ebbbb812SAlex Lorenz} 50ebbbb812SAlex Lorenz// CHECK: 1 'dstmt' results: 51ebbbb812SAlex Lorenz// CHECK: static void extracted() { 52ebbbb812SAlex Lorenz// CHECK-NEXT: @try { 53ebbbb812SAlex Lorenz// CHECK-NEXT: int x = 0; 54ebbbb812SAlex Lorenz// CHECK-NEXT: } @finally { 55ebbbb812SAlex Lorenz// CHECK-NEXT: }{{$}} 56ebbbb812SAlex Lorenz// CHECK-NEXT: }{{[[:space:]].*}} 57