1*67e74705SXin Li// Note: the run lines follow their respective tests, since line/column numbers 2*67e74705SXin Li// matter in this test. 3*67e74705SXin Li// This test is for when property accessors do not have their own code 4*67e74705SXin Li// completion comments. Use those in their properties in this case. 5*67e74705SXin Li// rdar://12791315 6*67e74705SXin Li 7*67e74705SXin Li@interface AppDelegate 8*67e74705SXin Li/** 9*67e74705SXin Li \brief This is ReadonlyProperty 10*67e74705SXin Li*/ 11*67e74705SXin Li@property (readonly, getter = ReadonlyGetter) id MyProperty; 12*67e74705SXin Li 13*67e74705SXin Li/** 14*67e74705SXin Li \brief This is GeneralProperty 15*67e74705SXin Li*/ 16*67e74705SXin Li@property int GeneralProperty; 17*67e74705SXin Li 18*67e74705SXin Li/** 19*67e74705SXin Li \brief This is PropertyInPrimaryClass 20*67e74705SXin Li*/ 21*67e74705SXin Li@property (copy, nonatomic) id PropertyInPrimaryClass; 22*67e74705SXin Li 23*67e74705SXin Li- (void) setThisRecord : (id)arg; 24*67e74705SXin Li- (id) Record; 25*67e74705SXin Li@end 26*67e74705SXin Li 27*67e74705SXin Li 28*67e74705SXin Li@interface AppDelegate() 29*67e74705SXin Li- (id) GetterInClassExtension; 30*67e74705SXin Li/** 31*67e74705SXin Li \brief This is Record 32*67e74705SXin Li*/ 33*67e74705SXin Li@property (copy, setter = setThisRecord:) id Record; 34*67e74705SXin Li@end 35*67e74705SXin Li 36*67e74705SXin Li@interface AppDelegate() 37*67e74705SXin Li/** 38*67e74705SXin Li \brief This is PropertyInClassExtension 39*67e74705SXin Li*/ 40*67e74705SXin Li@property (copy, getter = GetterInClassExtension) id PropertyInClassExtension; 41*67e74705SXin Li 42*67e74705SXin Li- (id) PropertyInPrimaryClass; 43*67e74705SXin Li@end 44*67e74705SXin Li 45*67e74705SXin Li@implementation AppDelegate 46*67e74705SXin Li- (id) PropertyInPrimaryClass { 47*67e74705SXin Li id p = [self ReadonlyGetter]; 48*67e74705SXin Li p = [self GetterInClassExtension]; 49*67e74705SXin Li p = [self PropertyInPrimaryClass]; 50*67e74705SXin Li p = [self Record]; 51*67e74705SXin Li [self setThisRecord : (id)0 ]; 52*67e74705SXin Li p = self.GetterInClassExtension; 53*67e74705SXin Li return 0; 54*67e74705SXin Li} 55*67e74705SXin Li@end 56*67e74705SXin Li// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:47:16 %s | FileCheck -check-prefix=CHECK-CC1 %s 57*67e74705SXin Li// CHECK-CC1: {TypedText ReadonlyGetter}{{.*}}(brief comment: This is ReadonlyProperty) 58*67e74705SXin Li 59*67e74705SXin Li// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:48:13 %s | FileCheck -check-prefix=CHECK-CC2 %s 60*67e74705SXin Li// CHECK-CC2: {TypedText GetterInClassExtension}{{.*}}(brief comment: This is PropertyInClassExtension) 61*67e74705SXin Li 62*67e74705SXin Li// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:49:13 %s | FileCheck -check-prefix=CHECK-CC3 %s 63*67e74705SXin Li// CHECK-CC3: {TypedText PropertyInPrimaryClass}{{.*}}(brief comment: This is PropertyInPrimaryClass) 64*67e74705SXin Li 65*67e74705SXin Li// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:50:13 %s | FileCheck -check-prefix=CHECK-CC4 %s 66*67e74705SXin Li// CHECK-CC4: {TypedText Record}{{.*}}(brief comment: This is Record) 67*67e74705SXin Li 68*67e74705SXin Li// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:51:9 %s | FileCheck -check-prefix=CHECK-CC5 %s 69*67e74705SXin Li// CHECK-CC5: {TypedText setThisRecord:}{Placeholder (id)}{{.*}}(brief comment: This is Record) 70*67e74705SXin Li 71*67e74705SXin Li// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:52:12 %s | FileCheck -check-prefix=CHECK-CC6 %s 72*67e74705SXin Li// CHECK-CC6: {TypedText GetterInClassExtension}{{.*}}(brief comment: This is PropertyInClassExtension) 73*67e74705SXin Li 74*67e74705SXin Li@interface AnotherAppDelegate 75*67e74705SXin Li/** 76*67e74705SXin Li \brief This is ReadonlyProperty 77*67e74705SXin Li*/ 78*67e74705SXin Li@property (getter = ReadonlyGetter) int MyProperty; 79*67e74705SXin Li/** 80*67e74705SXin Li \brief This is getter = ReadonlyGetter 81*67e74705SXin Li*/ 82*67e74705SXin Li- (int) ReadonlyGetter; 83*67e74705SXin Li@end 84*67e74705SXin Li 85*67e74705SXin Li@implementation AnotherAppDelegate 86*67e74705SXin Li- (int) PropertyInPrimaryClass { 87*67e74705SXin Liself.ReadonlyGetter; 88*67e74705SXin Li} 89*67e74705SXin Li@end 90*67e74705SXin Li// RUN: env CINDEXTEST_COMPLETION_BRIEF_COMMENTS=1 c-index-test -code-completion-at=%s:87:6 %s | FileCheck -check-prefix=CHECK-CC7 %s 91*67e74705SXin Li// CHECK-CC7: {TypedText ReadonlyGetter}{{.*}}(brief comment: This is getter = ReadonlyGetter) 92*67e74705SXin Li 93