xref: /llvm-project/clang/test/ExtractAPI/objc_id_protocol.m (revision e05c1b46d0d3739cc48ad912dbe6e9affce05927)
1// RUN: rm -rf %t
2// RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \
3// RUN:   -x objective-c-header -triple arm64-apple-macosx %s -o - -verify | FileCheck %s
4
5@protocol MyProtocol
6@end
7
8@interface MyInterface
9@property(copy, readwrite) id<MyProtocol> obj1;
10// CHECK-LABEL: "!testLabel": "c:objc(cs)MyInterface(py)obj1"
11// CHECK:      "declarationFragments": [
12// CHECK-NEXT:   {
13// CHECK-NEXT:     "kind": "keyword",
14// CHECK-NEXT:     "spelling": "@property"
15// CHECK-NEXT:   },
16// CHECK-NEXT:   {
17// CHECK-NEXT:     "kind": "text",
18// CHECK-NEXT:     "spelling": " ("
19// CHECK-NEXT:   },
20// CHECK-NEXT:   {
21// CHECK-NEXT:     "kind": "keyword",
22// CHECK-NEXT:     "spelling": "copy"
23// CHECK-NEXT:   },
24// CHECK-NEXT:   {
25// CHECK-NEXT:     "kind": "text",
26// CHECK-NEXT:     "spelling": ", "
27// CHECK-NEXT:   },
28// CHECK-NEXT:   {
29// CHECK-NEXT:     "kind": "keyword",
30// CHECK-NEXT:     "spelling": "readwrite"
31// CHECK-NEXT:   },
32// CHECK-NEXT:   {
33// CHECK-NEXT:     "kind": "text",
34// CHECK-NEXT:     "spelling": ") "
35// CHECK-NEXT:   },
36// CHECK-NEXT:   {
37// CHECK-NEXT:     "kind": "typeIdentifier",
38// CHECK-NEXT:     "preciseIdentifier": "c:Qoobjc(pl)MyProtocol",
39// CHECK-NEXT:     "spelling": "id<MyProtocol>"
40// CHECK-NEXT:   },
41// CHECK-NEXT:   {
42// CHECK-NEXT:     "kind": "text",
43// CHECK-NEXT:     "spelling": " "
44// CHECK-NEXT:   },
45// CHECK-NEXT:   {
46// CHECK-NEXT:     "kind": "identifier",
47// CHECK-NEXT:     "spelling": "obj1"
48// CHECK-NEXT:   },
49// CHECK-NEXT:   {
50// CHECK-NEXT:     "kind": "text",
51// CHECK-NEXT:     "spelling": ";"
52// CHECK-NEXT:   }
53// CHECK-NEXT: ],
54@end
55
56// expected-no-diagnostics
57