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)