xref: /aosp_15_r20/external/clang/test/Index/complete-documentation-properties.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
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