1// Note: the run lines follow their respective tests, since line/column
2// matter in this test.
3
4@protocol FooTestProtocol
5+ protocolClassMethod;
6- protocolInstanceMethod;
7@end
8@interface Foo <FooTestProtocol> {
9  void *isa;
10}
11+ (int)classMethod1:a withKeyword:b;
12+ (void)classMethod2;
13+ new;
14- instanceMethod1;
15@end
16
17@interface Foo (FooTestCategory)
18+ categoryClassMethod;
19- categoryInstanceMethod;
20@end
21
22void func() {
23  Foo *obj = [Foo new];
24  [obj xx];
25}
26// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:23:19 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
27// CHECK-CC1: categoryClassMethod
28// CHECK-CC1: classMethod1:withKeyword:
29// CHECK-CC1: classMethod2
30// CHECK-CC1: new
31// CHECK-CC1: protocolClassMethod
32// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:24:8 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s
33// CHECK-CC2: categoryInstanceMethod
34// CHECK-CC2: instanceMethod1
35// CHECK-CC2: protocolInstanceMethod
36