Clang Project

clang_source_code/test/Refactor/Extract/ObjCProperty.m
1// RUN: clang-refactor extract -selection=test:%s %s -- 2>&1 | grep -v CHECK | FileCheck %s
2
3@interface HasProperty
4
5@property (strong) HasProperty *item;
6
7- (HasProperty *)implicitProp;
8
9- (void)setImplicitSetter:(HasProperty *)value;
10
11@end
12
13@implementation HasProperty
14
15- (void)allowGetterExtraction {
16  /*range allow_getter=->+0:42*/self.item;
17  /*range allow_imp_getter=->+0:54*/self.implicitProp;
18}
19// CHECK: 1 'allow_getter' results:
20// CHECK:      extracted() {
21// CHECK-NEXT: return self.item;{{$}}
22// CHECK-NEXT: }{{[[:space:]].*}}
23// CHECK-NEXT: - (void)allowGetterExtraction {
24// CHECK-NEXT: extracted();
25
26// CHECK: 1 'allow_imp_getter' results:
27// CHECK:      extracted() {
28// CHECK-NEXT: return self.implicitProp;{{$}}
29// CHECK-NEXT: }{{[[:space:]].*}}
30// CHECK-NEXT: - (void)allowGetterExtraction {
31// CHECK-NEXT: self.item;
32// CHECK-NEXT: extracted();
33
34- (void)prohibitSetterExtraction {
35  /*range prohibit_setter=->+0:45*/self.item = 0;
36  /*range prohibit_setter=->+0:55*/self.implicitSetter = 0;
37}
38// CHECK: 2 'prohibit_setter' results:
39// CHECK: the selected expression can't be extracted
40
41@end
42