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