complete-objc-message-id.m revision 7d100872341f233c81e1d7b72b40457e62c36862
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Note: the run lines follow their respective tests, since line/column
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// matter in this test.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@interface A
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (id)alloc;
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (id)init;
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (id)new;
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (Class)class;
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (Class)superclass;
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (id)retain;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (id)autorelease;
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (id)superclass;
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@interface B : A
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (int)B_method;
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@interface Unrelated
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (id)icky;
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void message_id(B *b) {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [[A alloc] init];
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [[b retain] B_method];
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [[b superclass] B_method];
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@implementation Unrelated
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (id)alloc {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return [A alloc];
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@protocol P1
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (int)P1_method1;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (int)P1_method2;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@protocol P2 <P1>
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)- (int)P2_method1;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)+ (int)P2_method2;
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@end
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void message_qualified_id(id<P2> ip2) {
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  [ip2 P1_method];
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   ip2 P1_method];
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: c-index-test -code-completion-at=%s:24:14 %s | FileCheck -check-prefix=CHECK-CC1 %s
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC1: ObjCInstanceMethodDecl:{ResultType id}{TypedText autorelease}
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC1-NOT: B_method
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC1: ObjCInstanceMethodDecl:{ResultType id}{TypedText retain}
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: c-index-test -code-completion-at=%s:25:15 %s | FileCheck -check-prefix=CHECK-CC2 %s
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC2: ObjCInstanceMethodDecl:{ResultType id}{TypedText autorelease}
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC2: ObjCInstanceMethodDecl:{ResultType int}{TypedText B_method}
575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// CHECK-CC2: ObjCInstanceMethodDecl:{ResultType id}{TypedText retain}
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: c-index-test -code-completion-at=%s:26:19 %s | FileCheck -check-prefix=CHECK-CC3 %s
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC3: ObjCInstanceMethodDecl:{ResultType id}{TypedText autorelease}
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC3-NOT: B_method
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-CC3: ObjCInstanceMethodDecl:{ResultType id}{TypedText retain}
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: c-index-test -code-completion-at=%s:31:13 %s | FileCheck -check-prefix=CHECK-SELECTOR-PREF %s
655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// CHECK-SELECTOR-PREF: ObjCClassMethodDecl:{ResultType id}{TypedText alloc} (32)
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-SELECTOR-PREF: ObjCClassMethodDecl:{ResultType Class}{TypedText class} (35)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-SELECTOR-PREF: ObjCClassMethodDecl:{ResultType id}{TypedText init} (35)
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-SELECTOR-PREF: ObjCClassMethodDecl:{ResultType id}{TypedText new} (35)
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-SELECTOR-PREF: ObjCClassMethodDecl:{ResultType Class}{TypedText superclass} (35)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: c-index-test -code-completion-at=%s:46:7 %s | FileCheck -check-prefix=CHECK-INSTANCE-QUAL-ID %s
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: c-index-test -code-completion-at=%s:47:7 %s | FileCheck -check-prefix=CHECK-INSTANCE-QUAL-ID %s
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-INSTANCE-QUAL-ID: ObjCInstanceMethodDecl:{ResultType int}{TypedText P1_method1} (37)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CHECK-INSTANCE-QUAL-ID: ObjCInstanceMethodDecl:{ResultType int}{TypedText P2_method1} (35)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)