xref: /aosp_15_r20/external/clang/test/Index/complete-at-exprstmt.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
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