xref: /llvm-project/clang/test/Refactor/Extract/ExtractionSemicolonPolicy.m (revision 0dd49a5628bbe01cecf6516017da59ae44863ab3)
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