brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.9 KiB · 55c9468 Raw
399 lines · plain
1// Note: the run lines follow their respective tests, since line/column2// matter in this test.3#define nil (void*)04@protocol FooTestProtocol5+ protocolClassMethod;6- protocolInstanceMethod : (int)value;7@end8@interface Foo <FooTestProtocol> {9  void *isa;10}11+ (int)classMethod1:a withKeyword:(int)b;12+ (void)classMethod2;13+ new;14- instanceMethod1;15@end16 17@interface Foo (FooTestCategory)18+ categoryClassMethod;19- categoryInstanceMethod;20@end21 22void func() {23  Foo *obj = [Foo new];24  [obj xx];25}26 27@interface MyClass { }28+ (int)MyClassMethod:(id)obj;29- (int)MyInstMethod:(id)x second:(id)y;30@end31 32@interface MySubClass : MyClass { }33+ (int)MySubClassMethod;34- (int)MySubInstMethod;35@end36 37@implementation MyClass 38+ (int)MyClassMethod:(id)obj {39  return 0;40}41 42+ (int)MyPrivateMethod {43  return 1;44}45 46- (int)MyInstMethod:(id)x second:(id)y {47  return 2;48}49 50- (int)MyPrivateInstMethod {51  return 3;52}53@end54MyClass *getMyClass();55@implementation MySubClass56+ (int)MySubClassMethod {57  return 2;58}59 60+ (int)MySubPrivateMethod {61  return [super MyPrivateMethod];62}63 64- (int)MySubInstMethod:(id)obj {65  return [super MyInstMethod: obj second:obj];66}67 68- (int)MyInstMethod:(id)x second:(id)y {69  return 3;70}71@end72 73void test_super_var(MySubClass *super) {74  [super MyInstMethod: super second:super];75}76 77@protocol FooTestProtocol278- (int)secondProtocolInstanceMethod;79@end80 81void test_qual_id(id<FooTestProtocol,FooTestProtocol2> ptr) {82  [ptr protocolInstanceMethod:1];83}84 85@interface Overload86- (int)Method:(int)i;87- (int)Method;88- (int)Method:(float)f Arg1:(int)i1 Arg2:(int)i2;89- (int)Method:(float)f Arg1:(int)i1 OtherArg:(id)obj;90- (int)Method:(float)f SomeArg:(int)i1 OtherArg:(id)obj;91- (int)OtherMethod:(float)f Arg1:(int)i1 Arg2:(int)i2;92@end93 94void test_overload(Overload *ovl) {95  [ovl Method:1 Arg1:1 OtherArg:ovl];96}97 98@interface Ellipsis99- (int)Method:(int)i, ...; 100- (int)SentinelMethod:(int)i, ... __attribute__((sentinel(0,1)));101@end102void f(Ellipsis *e) {103  [e Method:1, 2, 3];104}105 106@interface Overload2107+ (int)Method:(int)i;108+ (int)Method;109+ (int)Method:(float)f Arg1:(int)i1 Arg2:(int)i2;110+ (int)Method:(float)f Arg1:(int)i1 OtherArg:(id)obj;111+ (int)Method:(float)f SomeArg:(int)i1 OtherArg:(id)obj;112+ (int)OtherMethod:(float)f Arg1:(int)i1 Arg2:(int)i2;113@end114 115void test_overload2(void) {116  [Overload2 Method:1 Arg1:1 OtherArg:ovl];117}118 119void msg_id(id x) {120  [x Method:1 Arg1:1 OtherArg:ovl];121  [[x blarg] Method:1 Arg1:1 OtherArg:ovl];122  [id Method:1 Arg1:1 OtherArg:ovl];123}124 125@interface A126- (void)method1;127@end 128 129@interface B : A130- (void)method2;131@end132 133void test_ranking(B *b) {134  [b method1];135  b method1];136}137 138void test_overload3(Overload *ovl) {139  ovl Method:1 Arg1:1 OtherArg:ovl];140   Overload2 Method:1 Arg1:1 OtherArg:ovl];141  (Overload2 Method:1 Arg1:1 OtherArg:ovl]);142}143 144@interface C : B145- (void)method2;146- (void)method3;147@end148 149void test_redundancy(C *c) {150  [c method2];151};152 153@protocol P154- (Class)class;155@end156 157@interface A () <P>158@end159 160@interface A ()161+ (void)class_method3;162@end163 164@interface A (Cat)165+ (void)class_method4;166@end167 168@implementation A169- (void)method5:(A*)a {170  [[self class] class_method4];171}172@end173 174void test_missing_open_more() {175  A *a = A class_method3];176}177 178void test_block_invoke(A *(^block1)(int), 179                       int (^block2)(int), 180                       id (^block3)(int)) {181  [block1(5) init];182}183 184@interface DO185- (void)method:(in bycopy A*)ain result:(out byref A**)aout;186@end187 188void test_DO(DO *d, A* a) {189  [d method:a aout:&a];190}191 192@interface Nullability193- (nonnull A *)method:(nullable A *)param;194@end195 196void test_Nullability(Nullability *n, A* a) {197  [n method: a];198}199 200// RUN: c-index-test -code-completion-at=%s:23:19 %s | FileCheck -check-prefix=CHECK-CC1 %s201// CHECK-CC1: {TypedText categoryClassMethod} (35)202// CHECK-CC1: {TypedText classMethod1:}{Placeholder (id)}{HorizontalSpace  }{TypedText withKeyword:}{Placeholder (int)} (35)203// CHECK-CC1: {TypedText classMethod2} (35)204// CHECK-CC1: {TypedText instanceMethod1} (35)205// CHECK-CC1: {TypedText new} (35)206// CHECK-CC1: {TypedText protocolClassMethod} (37)207// CHECK-CC1: Completion contexts:208// CHECK-CC1-NEXT: Objective-C class method209// CHECK-CC1-NEXT: Container Kind: ObjCInterfaceDecl210// CHECK-CC1-NEXT: Container is complete211// CHECK-CC1-NEXT: Container USR: c:objc(cs)Foo212// RUN: c-index-test -code-completion-at=%s:24:8 %s | FileCheck -check-prefix=CHECK-CC2 %s213// CHECK-CC2: {TypedText categoryInstanceMethod}214// CHECK-CC2: {TypedText instanceMethod1}215// CHECK-CC2: {TypedText protocolInstanceMethod:}{Placeholder (int)}216// CHECK-CC2: Completion contexts:217// CHECK-CC2-NEXT: Objective-C instance method218// CHECK-CC2-NEXT: Container Kind: ObjCInterfaceDecl219// CHECK-CC2-NEXT: Container is complete220// CHECK-CC2-NEXT: Container USR: c:objc(cs)Foo221// RUN: c-index-test -code-completion-at=%s:61:17 %s | FileCheck -check-prefix=CHECK-CC3 %s222// CHECK-CC3: ObjCClassMethodDecl:{ResultType int}{TypedText MyClassMethod:}{Placeholder (id)}223// CHECK-CC3: ObjCClassMethodDecl:{ResultType int}{TypedText MyPrivateMethod}224// RUN: c-index-test -code-completion-at=%s:65:17 %s | FileCheck -check-prefix=CHECK-CC4 %s225// CHECK-CC4: ObjCInstanceMethodDecl:{ResultType int}{TypedText MyInstMethod:}{Placeholder (id)}{HorizontalSpace  }{TypedText second:}{Placeholder (id)}226// CHECK-CC4: ObjCInstanceMethodDecl:{ResultType int}{TypedText MyPrivateInstMethod}227// RUN: c-index-test -code-completion-at=%s:74:10 %s | FileCheck -check-prefix=CHECK-CC5 %s228// CHECK-CC5: ObjCInstanceMethodDecl:{ResultType int}{TypedText MyInstMethod:}{Placeholder (id)}{HorizontalSpace  }{TypedText second:}{Placeholder (id)}229// CHECK-CC5: ObjCInstanceMethodDecl:{ResultType int}{TypedText MySubInstMethod}230// RUN: c-index-test -code-completion-at=%s:82:8 %s | FileCheck -check-prefix=CHECK-CC6 %s231// CHECK-CC6: ObjCInstanceMethodDecl:{ResultType id}{TypedText protocolInstanceMethod:}{Placeholder (int)}232// CHECK-CC6: ObjCInstanceMethodDecl:{ResultType int}{TypedText secondProtocolInstanceMethod}233// RUN: c-index-test -code-completion-at=%s:95:8 %s | FileCheck -check-prefix=CHECK-CC7 %s234// CHECK-CC7: ObjCInstanceMethodDecl:{ResultType int}{TypedText Method}235// CHECK-CC7: ObjCInstanceMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (int)}236// CHECK-CC7: ObjCInstanceMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (float)}{HorizontalSpace  }{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText Arg2:}{Placeholder (int)}237// CHECK-CC7: ObjCInstanceMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (float)}{HorizontalSpace  }{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}238// CHECK-CC7: ObjCInstanceMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (float)}{HorizontalSpace  }{TypedText SomeArg:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}239// CHECK-CC7: ObjCInstanceMethodDecl:{ResultType int}{TypedText OtherMethod:}{Placeholder (float)}{HorizontalSpace  }{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText Arg2:}{Placeholder (int)}240// RUN: c-index-test -code-completion-at=%s:95:17 %s | FileCheck -check-prefix=CHECK-CC8 %s241// CHECK-CC8: ObjCInstanceMethodDecl:{ResultType int}{Informative Method:}{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText Arg2:}{Placeholder (int)}242// CHECK-CC8: ObjCInstanceMethodDecl:{ResultType int}{Informative Method:}{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}243// CHECK-CC8: ObjCInstanceMethodDecl:{ResultType int}{Informative Method:}{TypedText SomeArg:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}244// CHECK-CC8-NOT: ObjCInstanceMethodDecl:{ResultType int}{Informative Method:}{TypedText }245// RUN: c-index-test -code-completion-at=%s:95:24 %s | FileCheck -check-prefix=CHECK-CC9 %s246// CHECK-CC9: ObjCInstanceMethodDecl:{ResultType int}{Informative Method:}{Informative Arg1:}{TypedText Arg2:}{Placeholder (int)}247// CHECK-CC9: ObjCInstanceMethodDecl:{ResultType int}{Informative Method:}{Informative Arg1:}{TypedText OtherArg:}{Placeholder (id)}248// CHECK-CC9: Objective-C selector: Method:Arg1:249// RUN: c-index-test -code-completion-at=%s:61:11 %s | FileCheck -check-prefix=CHECK-CCA %s250// CHECK-CCA: TypedefDecl:{TypedText Class} (50)251// CHECK-CCA-NEXT: ObjCInterfaceDecl:{TypedText Foo} (50)252// CHECK-CCA-NOT: FunctionDecl:{ResultType void}{TypedText func}{LeftParen (}{RightParen )} (50)253// CHECK-CCA:FunctionDecl:{ResultType MyClass *}{TypedText getMyClass}{LeftParen (}{RightParen )} (50)254// CHECK-CCA: TypedefDecl:{TypedText id} (50)255// CHECK-CCA: ObjCInterfaceDecl:{TypedText MyClass} (50)256// CHECK-CCA: ObjCInterfaceDecl:{TypedText MySubClass} (50)257// CHECK-CCA: {ResultType Class}{TypedText self} (34)258// CHECK-CCA: {TypedText super} (40)259// RUN: c-index-test -code-completion-at=%s:103:6 %s | FileCheck -check-prefix=CHECK-CCB %s260// CHECK-CCB: ObjCInstanceMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (int), ...}261// CHECK-CCB: ObjCInstanceMethodDecl:{ResultType int}{TypedText SentinelMethod:}{Placeholder (int), ...}{Text , nil}262// RUN: c-index-test -code-completion-at=%s:116:14 %s | FileCheck -check-prefix=CHECK-CCC %s263// CHECK-CCC: ObjCClassMethodDecl:{ResultType int}{TypedText Method}264// CHECK-CCC: ObjCClassMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (int)}265// CHECK-CCC: ObjCClassMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (float)}{HorizontalSpace  }{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText Arg2:}{Placeholder (int)}266// CHECK-CCC: ObjCClassMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (float)}{HorizontalSpace  }{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}267// CHECK-CCC: ObjCClassMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (float)}{HorizontalSpace  }{TypedText SomeArg:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}268// CHECK-CCC: ObjCClassMethodDecl:{ResultType int}{TypedText OtherMethod:}{Placeholder (float)}{HorizontalSpace  }{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText Arg2:}{Placeholder (int)}269// RUN: c-index-test -code-completion-at=%s:116:23 %s | FileCheck -check-prefix=CHECK-CCD %s270// CHECK-CCD: ObjCClassMethodDecl:{ResultType int}{Informative Method:}{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText Arg2:}{Placeholder (int)}271// CHECK-CCD: ObjCClassMethodDecl:{ResultType int}{Informative Method:}{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}272// CHECK-CCD: ObjCClassMethodDecl:{ResultType int}{Informative Method:}{TypedText SomeArg:}{Placeholder (int)}{HorizontalSpace  }{TypedText OtherArg:}{Placeholder (id)}273// CHECK-CCD-NOT: ObjCClassMethodDecl:{ResultType int}{Informative Method:}{TypedText }274// CHECK-CCD: Objective-C selector: Method:275// RUN: c-index-test -code-completion-at=%s:116:30 %s | FileCheck -check-prefix=CHECK-CCE %s276// CHECK-CCE: ObjCClassMethodDecl:{ResultType int}{Informative Method:}{Informative Arg1:}{TypedText Arg2:}{Placeholder (int)}277// CHECK-CCE: ObjCClassMethodDecl:{ResultType int}{Informative Method:}{Informative Arg1:}{TypedText OtherArg:}{Placeholder (id)}278// RUN: c-index-test -code-completion-at=%s:61:11 %s | FileCheck -check-prefix=CHECK-CCF %s279// CHECK-CCF: TypedefDecl:{TypedText Class}280// CHECK-CCF: ObjCInterfaceDecl:{TypedText Foo}281// CHECK-CCF-NOT: FunctionDecl:{ResultType void}{TypedText func}{LeftParen (}{RightParen )}282// CHECK-CCF: TypedefDecl:{TypedText id}283// CHECK-CCF: ObjCInterfaceDecl:{TypedText MyClass}284// CHECK-CCF: ObjCInterfaceDecl:{TypedText MySubClass}285// CHECK-CCF: {ResultType Class}{TypedText self}286// CHECK-CCF: {TypedText super}287// RUN: c-index-test -code-completion-at=%s:120:6 %s | FileCheck -check-prefix=CHECK-CCG %s288// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType id}{TypedText categoryInstanceMethod}289// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType id}{TypedText instanceMethod1}290// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType int}{TypedText Method}291// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType int}{TypedText MyInstMethod:}{Placeholder (id)}{HorizontalSpace  }{TypedText second:}{Placeholder (id)}292// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType int}{TypedText MyPrivateInstMethod}293// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType int}{TypedText MySubInstMethod}294// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType id}{TypedText protocolInstanceMethod:}{Placeholder (int)}295// CHECK-CCG: ObjCInstanceMethodDecl:{ResultType int}{TypedText secondProtocolInstanceMethod}296// RUN: c-index-test -code-completion-at=%s:121:14 %s | FileCheck -check-prefix=CHECK-CCG %s297// RUN: c-index-test -code-completion-at=%s:122:7 %s | FileCheck -check-prefix=CHECK-CCH %s298// CHECK-CCH: ObjCClassMethodDecl:{ResultType id}{TypedText categoryClassMethod}299// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText classMethod1:}{Placeholder (id)}{HorizontalSpace  }{TypedText withKeyword:}{Placeholder (int)}300// CHECK-CCH: ObjCClassMethodDecl:{ResultType void}{TypedText classMethod2}301// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText Method}302// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText Method:}{Placeholder (int)}303// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText MyClassMethod:}{Placeholder (id)}304// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText MyPrivateMethod}305// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText MySubClassMethod}306// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText MySubPrivateMethod}307// CHECK-CCH: ObjCClassMethodDecl:{ResultType id}{TypedText new}308// CHECK-CCH: ObjCClassMethodDecl:{ResultType int}{TypedText OtherMethod:}{Placeholder (float)}{HorizontalSpace  }{TypedText Arg1:}{Placeholder (int)}{HorizontalSpace  }{TypedText Arg2:}{Placeholder (int)}309// CHECK-CCH: ObjCClassMethodDecl:{ResultType id}{TypedText protocolClassMethod}310// RUN: c-index-test -code-completion-at=%s:134:6 %s | FileCheck -check-prefix=CHECK-CCI %s311// CHECK-CCI: ObjCInstanceMethodDecl:{ResultType void}{TypedText method1} (37)312// CHECK-CCI: ObjCInstanceMethodDecl:{ResultType void}{TypedText method2} (35)313 314// RUN: c-index-test -code-completion-at=%s:150:6 %s | FileCheck -check-prefix=CHECK-REDUNDANT %s315// CHECK-REDUNDANT: ObjCInstanceMethodDecl:{ResultType void}{TypedText method2} (35)316// CHECK-REDUNDANT-NOT: ObjCInstanceMethodDecl:{ResultType void}{TypedText method2}317// CHECK-REDUNDANT: ObjCInstanceMethodDecl:{ResultType void}{TypedText method3} (35)318 319// RUN: c-index-test -code-completion-at=%s:170:16 %s | FileCheck -check-prefix=CHECK-CLASS-RESULT %s320// CHECK-CLASS-RESULT: ObjCClassMethodDecl:{ResultType void}{TypedText class_method3} (35)321// CHECK-CLASS-RESULT: ObjCClassMethodDecl:{ResultType void}{TypedText class_method4} (35)322 323// RUN: c-index-test -code-completion-at=%s:181:4 %s | FileCheck -check-prefix=CHECK-BLOCK-RECEIVER %s324// CHECK-BLOCK-RECEIVER: ObjCInterfaceDecl:{TypedText A} (50)325// CHECK-BLOCK-RECEIVER: ObjCInterfaceDecl:{TypedText B} (50)326// CHECK-BLOCK-RECEIVER: ParmDecl:{ResultType A *(^)(int)}{TypedText block1} (34)327// CHECK-BLOCK-RECEIVER-NEXT: ParmDecl:{ResultType id (^)(int)}{TypedText block3} (34)328 329// Test code completion with a missing opening bracket:330// RUN: c-index-test -code-completion-at=%s:135:5 %s | FileCheck -check-prefix=CHECK-CCI %s331// RUN: c-index-test -code-completion-at=%s:139:7 %s | FileCheck -check-prefix=CHECK-CC7 %s332// RUN: c-index-test -code-completion-at=%s:139:16 %s | FileCheck -check-prefix=CHECK-CC8 %s333// RUN: c-index-test -code-completion-at=%s:139:23 %s | FileCheck -check-prefix=CHECK-CC9 %s334 335// RUN: c-index-test -code-completion-at=%s:140:14 %s | FileCheck -check-prefix=CHECK-CCC %s336// RUN: c-index-test -code-completion-at=%s:140:23 %s | FileCheck -check-prefix=CHECK-CCD %s337// RUN: c-index-test -code-completion-at=%s:140:30 %s | FileCheck -check-prefix=CHECK-CCE %s338// RUN: c-index-test -code-completion-at=%s:141:14 %s | FileCheck -check-prefix=CHECK-CCC %s339// RUN: c-index-test -code-completion-at=%s:141:23 %s | FileCheck -check-prefix=CHECK-CCD %s340// RUN: c-index-test -code-completion-at=%s:141:30 %s | FileCheck -check-prefix=CHECK-CCE %s341 342// RUN: c-index-test -code-completion-at=%s:175:12 %s | FileCheck -check-prefix=CHECK-CLASS-RESULT %s343 344// RUN: c-index-test -code-completion-at=%s:189:6 %s | FileCheck -check-prefix=CHECK-DISTRIB-OBJECTS %s345// CHECK-DISTRIB-OBJECTS: ObjCInstanceMethodDecl:{ResultType void}{TypedText method:}{Placeholder (in bycopy A *)}{HorizontalSpace  }{TypedText result:}{Placeholder (out byref A **)} (35)346 347// RUN: c-index-test -code-completion-at=%s:197:6 %s | FileCheck -check-prefix=CHECK-NULLABLE %s348// CHECK-NULLABLE: ObjCInstanceMethodDecl:{ResultType A * _Nonnull}{TypedText method:}{Placeholder (nullable A *)}349 350// Code completion results should include instance methods from RootProtocol and351// RootClass when completing a method invocation for a RootClass object because352// RootClasses metaclass subclasses from RootClass (i.e. RootClass is actually353// an instance of RootClass).354 355@protocol SubRootProtocol356 357- (void)subProtocolInstanceMethod;358 359@end360 361@protocol RootProtocol <SubRootProtocol>362 363- (void)protocolInstanceMethod;364+ (void)protocolClassMethod;365 366@end367 368@interface RootClass <RootProtocol>369 370- (void)instanceMethod;371+ (void)classMethod;372 373@end374 375@protocol RootCategoryProtocol376 377- (void)categoryProtocolInstanceMethod;378 379@end380 381@interface RootClass (Cat) <RootCategoryProtocol>382 383- (void)categoryInstanceMethod;384 385@end386 387void completeAllTheRootThings() {388  [RootClass classMethod];389}390 391// RUN: c-index-test -code-completion-at=%s:388:14 %s | FileCheck -check-prefix=CHECK-ROOT %s392// CHECK-ROOT: ObjCInstanceMethodDecl:{ResultType void}{TypedText categoryInstanceMethod} (35)393// CHECK-ROOT-NEXT: ObjCInstanceMethodDecl:{ResultType void}{TypedText categoryProtocolInstanceMethod} (37)394// CHECK-ROOT-NEXT: ObjCClassMethodDecl:{ResultType void}{TypedText classMethod} (35)395// CHECK-ROOT-NEXT: ObjCInstanceMethodDecl:{ResultType void}{TypedText instanceMethod} (35)396// CHECK-ROOT-NEXT: ObjCClassMethodDecl:{ResultType void}{TypedText protocolClassMethod} (37)397// CHECK-ROOT-NEXT: ObjCInstanceMethodDecl:{ResultType void}{TypedText protocolInstanceMethod} (37)398// CHECK-ROOT-NEXT: ObjCInstanceMethodDecl:{ResultType void}{TypedText subProtocolInstanceMethod} (37)399