1*67e74705SXin Li/* The run lines are below, because this test is line- and 2*67e74705SXin Li column-number sensitive. */ 3*67e74705SXin Li@interface MyClass { int ivar; } 4*67e74705SXin Li- (int)myMethod:(int)arg; 5*67e74705SXin Li@end 6*67e74705SXin Li 7*67e74705SXin Li@implementation MyClass 8*67e74705SXin Li- (int)myMethod:(int)arg { 9*67e74705SXin Li @synchronized (@encode(MyClass)) { } 10*67e74705SXin Li} 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Li@interface A 14*67e74705SXin Li+ (int)add:(int)x to:(int)y; 15*67e74705SXin Li+ (int)add:(int)x to:(int)y plus:(int)z; 16*67e74705SXin Li@end 17*67e74705SXin Li 18*67e74705SXin Livoid f() { 19*67e74705SXin Li @selector(add:to:); 20*67e74705SXin Li} 21*67e74705SXin Li 22*67e74705SXin Li// RUN: env CINDEXTEST_CODE_COMPLETE_PATTERNS=1 c-index-test -code-completion-at=%s:9:4 %s | FileCheck -check-prefix=CHECK-CC1 %s 23*67e74705SXin Li// CHECK-CC1: {TypedText encode}{LeftParen (}{Placeholder type-name}{RightParen )} 24*67e74705SXin Li// CHECK-CC1: {TypedText protocol}{LeftParen (}{Placeholder protocol-name}{RightParen )} 25*67e74705SXin Li// CHECK-CC1: {TypedText selector}{LeftParen (}{Placeholder selector}{RightParen )} 26*67e74705SXin Li// CHECK-CC1: {TypedText synchronized}{HorizontalSpace }{LeftParen (}{Placeholder expression}{RightParen )}{LeftBrace {}{Placeholder statements}{RightBrace }} 27*67e74705SXin Li// CHECK-CC1: {TypedText throw}{HorizontalSpace }{Placeholder expression} 28*67e74705SXin Li// CHECK-CC1: {TypedText try}{LeftBrace {}{Placeholder statements}{RightBrace }}{Text @catch}{LeftParen (}{Placeholder parameter}{RightParen )}{LeftBrace {}{Placeholder statements}{RightBrace }}{Text @finally}{LeftBrace {}{Placeholder statements}{RightBrace }} 29*67e74705SXin Li// RUN: env CINDEXTEST_CODE_COMPLETE_PATTERNS=1 c-index-test -code-completion-at=%s:9:19 %s | FileCheck -check-prefix=CHECK-CC2 %s 30*67e74705SXin Li// CHECK-CC2: {TypedText encode}{LeftParen (}{Placeholder type-name}{RightParen )} 31*67e74705SXin Li// CHECK-CC2: {TypedText protocol}{LeftParen (}{Placeholder protocol-name}{RightParen )} 32*67e74705SXin Li// CHECK-CC2: {TypedText selector}{LeftParen (}{Placeholder selector}{RightParen )} 33*67e74705SXin Li// RUN: env CINDEXTEST_CODE_COMPLETE_PATTERNS=1 c-index-test -code-completion-at=%s:9:3 %s | FileCheck -check-prefix=CHECK-CC3 %s 34*67e74705SXin Li// CHECK-CC3: NotImplemented:{ResultType char[]}{TypedText @encode}{LeftParen (}{Placeholder type-name}{RightParen )} 35*67e74705SXin Li// CHECK-CC3: NotImplemented:{ResultType Protocol *}{TypedText @protocol}{LeftParen (}{Placeholder protocol-name}{RightParen )} 36*67e74705SXin Li// CHECK-CC3: NotImplemented:{ResultType SEL}{TypedText @selector}{LeftParen (}{Placeholder selector}{RightParen )} 37*67e74705SXin Li// CHECK-CC3: NotImplemented:{TypedText @synchronized}{HorizontalSpace }{LeftParen (}{Placeholder expression}{RightParen )}{LeftBrace {}{Placeholder statements}{RightBrace }} 38*67e74705SXin Li// CHECK-CC3: NotImplemented:{TypedText @throw}{HorizontalSpace }{Placeholder expression} 39*67e74705SXin Li// CHECK-CC3: NotImplemented:{TypedText @try}{LeftBrace {}{Placeholder statements}{RightBrace }}{Text @catch}{LeftParen (}{Placeholder parameter}{RightParen )}{LeftBrace {}{Placeholder statements}{RightBrace }}{Text @finally}{LeftBrace {}{Placeholder statements}{RightBrace }} 40*67e74705SXin Li// CHECK-CC3: NotImplemented:{ResultType SEL}{TypedText _cmd} 41*67e74705SXin Li// CHECK-CC3: ParmDecl:{ResultType int}{TypedText arg} 42*67e74705SXin Li// CHECK-CC3: TypedefDecl:{TypedText Class} 43*67e74705SXin Li// CHECK-CC3: TypedefDecl:{TypedText id} 44*67e74705SXin Li// CHECK-CC3: ObjCIvarDecl:{ResultType int}{TypedText ivar} 45*67e74705SXin Li// CHECK-CC3: ObjCInterfaceDecl:{TypedText MyClass} 46*67e74705SXin Li// CHECK-CC3: TypedefDecl:{TypedText SEL} 47*67e74705SXin Li// CHECK-CC3: NotImplemented:{ResultType MyClass *}{TypedText self} 48*67e74705SXin Li// RUN: c-index-test -code-completion-at=%s:19:13 %s | FileCheck -check-prefix=CHECK-CC4 %s 49*67e74705SXin Li// CHECK-CC4: NotImplemented:{TypedText add:to:} (40) 50*67e74705SXin Li// CHECK-CC4: NotImplemented:{TypedText add:to:plus:} (40) 51*67e74705SXin Li// CHECK-CC4: NotImplemented:{TypedText myMethod:} (40) 52*67e74705SXin Li// RUN: c-index-test -code-completion-at=%s:19:17 %s | FileCheck -check-prefix=CHECK-CC5 %s 53*67e74705SXin Li// CHECK-CC5: NotImplemented:{Informative add:}{TypedText to:} (40) 54*67e74705SXin Li// CHECK-CC5: NotImplemented:{Informative add:}{TypedText to:plus:} (40) 55*67e74705SXin Li 56