blob: 4f8375a194d07cf3c94ec3b79c4c78270fea299f [file] [log] [blame]
@interface AClass {
int ivar1;
}
@property int prop;
- (int)instanceMethod;
+ (int)classMethod;
@end
@implementation AClass {
int ivar2;
}
- (int)instanceMethod {
ivar2 = 0;
ivar1 = 0;
self->ivar2 = 0;
self.prop = 0;
int x = self->ivar1;
int y = self.prop;
[self instanceMethod];
[AClass classMethod];
return 0;
}
// CHECK1: (AClass *object) {\nobject->ivar2 = 0;\n}
// CHECK1: (AClass *object) {\nobject->ivar2 = 0;\n}
// CHECK1: (AClass *object) {\nobject.prop = 0;\n}\n\n"
// CHECK1: (AClass *object) {\nint y = object.prop;\n}
// CHECK1: (AClass *object) {\nreturn [object instanceMethod];\n}
// CHECK1: (AClass *object) {\nobject->ivar2 = 0;\n object->ivar1 = 0;\n object->ivar2 = 0;\n object.prop = 0;\n int x = object->ivar1;\n int y = object.prop;\n [object instanceMethod];\n [AClass classMethod];\n}\n\n"
// CHECK1: () {\nreturn [AClass classMethod];\n}\n\n"
// RUN: clang-refactor-test perform -action extract -selected=%s:18:3-18:12 -selected=%s:20:3-20:18 -selected=%s:21:3-21:16 -selected=%s:23:3-23:20 -selected=%s:24:3-24:24 -selected=%s:18:3-25:23 -selected=%s:25:3-25:23 %s | FileCheck --check-prefix=CHECK1 %s
+ (int)classMethod {
int x = self.classMethod;
[self classMethod];
}
// CHECK2: () {\nint x = AClass.classMethod;\n}
// CHECK2: () {\nreturn [AClass classMethod];\n}
// RUN: clang-refactor-test perform -action extract -selected=%s:39:3-39:27 -selected=%s:40:3-40:21 %s | FileCheck --check-prefix=CHECK2 %s
- (void)rhsSelfCaptureAndRewrite:(AClass *)i { // CHECK3: "static void extracted(AClass *object, AClass *i) {\ni.prop= object.prop;\n}\n\n"
// rhs-prop-begin: +1:3
i.prop= self.prop;
// rhs-prop-end: -1:21
}
// RUN: clang-refactor-test perform -action extract -selected=rhs-prop %s | FileCheck --check-prefix=CHECK3 %s
@end