[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / ExtractAPI / objc_id_protocol.m
blobf2a03a9c575857012eb900d9761b9d99657c43b8
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
5 @protocol MyProtocol
6 @end
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
56 // expected-no-diagnostics