19b36e126SZixu Wang// RUN: rm -rf %t
29b36e126SZixu Wang// RUN: split-file %s %t
3*e08c4354SZixu Wang// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \
4*e08c4354SZixu Wang// RUN: %t/reference.output.json.in >> %t/reference.output.json
59b36e126SZixu Wang// RUN: %clang -extract-api -x objective-c-header -target arm64-apple-macosx \
69b36e126SZixu Wang// RUN: %t/input.h -o %t/output.json | FileCheck -allow-empty %s
79b36e126SZixu Wang
89b36e126SZixu Wang// Generator version is not consistent across test runs, normalize it.
99b36e126SZixu Wang// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \
109b36e126SZixu Wang// RUN: %t/output.json >> %t/output-normalized.json
119b36e126SZixu Wang// RUN: diff %t/reference.output.json %t/output-normalized.json
129b36e126SZixu Wang
139b36e126SZixu Wang// CHECK-NOT: error:
149b36e126SZixu Wang// CHECK-NOT: warning:
159b36e126SZixu Wang
169b36e126SZixu Wang//--- input.h
179b36e126SZixu Wang@protocol Protocol;
189b36e126SZixu Wang
199b36e126SZixu Wang@interface Super <Protocol>
209b36e126SZixu Wang@property(readonly, getter=getProperty) unsigned Property;
219b36e126SZixu Wang+ (id)getWithProperty:(unsigned) Property;
2280ae3665SDaniel Grumberg- (void)setProperty:(unsigned) Property andOtherThing: (unsigned) Thing;
239b36e126SZixu Wang@end
249b36e126SZixu Wang
259b36e126SZixu Wang@interface Derived : Super {
269b36e126SZixu Wang  char Ivar;
279b36e126SZixu Wang}
289b36e126SZixu Wang- (char)getIvar;
299b36e126SZixu Wang@end
309b36e126SZixu Wang
319b36e126SZixu Wang//--- reference.output.json.in
329b36e126SZixu Wang{
339b36e126SZixu Wang  "metadata": {
349b36e126SZixu Wang    "formatVersion": {
359b36e126SZixu Wang      "major": 0,
369b36e126SZixu Wang      "minor": 5,
379b36e126SZixu Wang      "patch": 3
389b36e126SZixu Wang    },
399b36e126SZixu Wang    "generator": "?"
409b36e126SZixu Wang  },
419b36e126SZixu Wang  "module": {
429b36e126SZixu Wang    "name": "",
439b36e126SZixu Wang    "platform": {
449b36e126SZixu Wang      "architecture": "arm64",
459b36e126SZixu Wang      "operatingSystem": {
469b36e126SZixu Wang        "minimumVersion": {
479b36e126SZixu Wang          "major": 11,
489b36e126SZixu Wang          "minor": 0,
499b36e126SZixu Wang          "patch": 0
509b36e126SZixu Wang        },
519b36e126SZixu Wang        "name": "macosx"
529b36e126SZixu Wang      },
539b36e126SZixu Wang      "vendor": "apple"
549b36e126SZixu Wang    }
559b36e126SZixu Wang  },
5628d79314SDaniel Grumberg  "relationships": [
579b36e126SZixu Wang    {
589b36e126SZixu Wang      "kind": "memberOf",
599b36e126SZixu Wang      "source": "c:objc(cs)Super(cm)getWithProperty:",
609b36e126SZixu Wang      "target": "c:objc(cs)Super"
619b36e126SZixu Wang    },
629b36e126SZixu Wang    {
639b36e126SZixu Wang      "kind": "memberOf",
6480ae3665SDaniel Grumberg      "source": "c:objc(cs)Super(im)setProperty:andOtherThing:",
6580ae3665SDaniel Grumberg      "target": "c:objc(cs)Super"
6680ae3665SDaniel Grumberg    },
6780ae3665SDaniel Grumberg    {
6880ae3665SDaniel Grumberg      "kind": "memberOf",
699b36e126SZixu Wang      "source": "c:objc(cs)Super(py)Property",
709b36e126SZixu Wang      "target": "c:objc(cs)Super"
719b36e126SZixu Wang    },
729b36e126SZixu Wang    {
739b36e126SZixu Wang      "kind": "conformsTo",
749b36e126SZixu Wang      "source": "c:objc(cs)Super",
759b36e126SZixu Wang      "target": "c:objc(pl)Protocol"
769b36e126SZixu Wang    },
779b36e126SZixu Wang    {
789b36e126SZixu Wang      "kind": "memberOf",
799b36e126SZixu Wang      "source": "c:objc(cs)Derived@Ivar",
809b36e126SZixu Wang      "target": "c:objc(cs)Derived"
819b36e126SZixu Wang    },
829b36e126SZixu Wang    {
839b36e126SZixu Wang      "kind": "memberOf",
849b36e126SZixu Wang      "source": "c:objc(cs)Derived(im)getIvar",
859b36e126SZixu Wang      "target": "c:objc(cs)Derived"
869b36e126SZixu Wang    },
879b36e126SZixu Wang    {
889b36e126SZixu Wang      "kind": "inheritsFrom",
899b36e126SZixu Wang      "source": "c:objc(cs)Derived",
909b36e126SZixu Wang      "target": "c:objc(cs)Super"
919b36e126SZixu Wang    }
929b36e126SZixu Wang  ],
939b36e126SZixu Wang  "symbols": [
949b36e126SZixu Wang    {
9528d79314SDaniel Grumberg      "accessLevel": "public",
969b36e126SZixu Wang      "declarationFragments": [
979b36e126SZixu Wang        {
989b36e126SZixu Wang          "kind": "keyword",
999b36e126SZixu Wang          "spelling": "@interface"
1009b36e126SZixu Wang        },
1019b36e126SZixu Wang        {
1029b36e126SZixu Wang          "kind": "text",
1039b36e126SZixu Wang          "spelling": " "
1049b36e126SZixu Wang        },
1059b36e126SZixu Wang        {
1069b36e126SZixu Wang          "kind": "identifier",
1079b36e126SZixu Wang          "spelling": "Super"
1089b36e126SZixu Wang        }
1099b36e126SZixu Wang      ],
1109b36e126SZixu Wang      "identifier": {
1119b36e126SZixu Wang        "interfaceLanguage": "objective-c",
1129b36e126SZixu Wang        "precise": "c:objc(cs)Super"
1139b36e126SZixu Wang      },
1149b36e126SZixu Wang      "kind": {
1159b36e126SZixu Wang        "displayName": "Class",
1169b36e126SZixu Wang        "identifier": "objective-c.class"
1179b36e126SZixu Wang      },
1189b36e126SZixu Wang      "location": {
11928d79314SDaniel Grumberg        "position": {
1209b36e126SZixu Wang          "character": 12,
12128d79314SDaniel Grumberg          "line": 3
12228d79314SDaniel Grumberg        },
1239b36e126SZixu Wang        "uri": "file://INPUT_DIR/input.h"
1249b36e126SZixu Wang      },
1259b36e126SZixu Wang      "names": {
12680ae3665SDaniel Grumberg        "navigator": [
12780ae3665SDaniel Grumberg          {
12880ae3665SDaniel Grumberg            "kind": "identifier",
12980ae3665SDaniel Grumberg            "spelling": "Super"
13080ae3665SDaniel Grumberg          }
13180ae3665SDaniel Grumberg        ],
1329b36e126SZixu Wang        "subHeading": [
1339b36e126SZixu Wang          {
1349b36e126SZixu Wang            "kind": "identifier",
1359b36e126SZixu Wang            "spelling": "Super"
1369b36e126SZixu Wang          }
1379b36e126SZixu Wang        ],
1389b36e126SZixu Wang        "title": "Super"
13928d79314SDaniel Grumberg      },
14028d79314SDaniel Grumberg      "pathComponents": [
14128d79314SDaniel Grumberg        "Super"
14228d79314SDaniel Grumberg      ]
1439b36e126SZixu Wang    },
1449b36e126SZixu Wang    {
14528d79314SDaniel Grumberg      "accessLevel": "public",
1469b36e126SZixu Wang      "declarationFragments": [
1479b36e126SZixu Wang        {
1489b36e126SZixu Wang          "kind": "text",
1499b36e126SZixu Wang          "spelling": "+ ("
1509b36e126SZixu Wang        },
1519b36e126SZixu Wang        {
1529b36e126SZixu Wang          "kind": "keyword",
1539b36e126SZixu Wang          "spelling": "id"
1549b36e126SZixu Wang        },
1559b36e126SZixu Wang        {
1569b36e126SZixu Wang          "kind": "text",
1579b36e126SZixu Wang          "spelling": ") "
1589b36e126SZixu Wang        },
1599b36e126SZixu Wang        {
1609b36e126SZixu Wang          "kind": "identifier",
1614048aad8SZixu Wang          "spelling": "getWithProperty:"
1629b36e126SZixu Wang        },
1639b36e126SZixu Wang        {
1649b36e126SZixu Wang          "kind": "text",
1659b36e126SZixu Wang          "spelling": "("
1669b36e126SZixu Wang        },
1679b36e126SZixu Wang        {
1689b36e126SZixu Wang          "kind": "typeIdentifier",
1699b36e126SZixu Wang          "preciseIdentifier": "c:i",
1709b36e126SZixu Wang          "spelling": "unsigned int"
1719b36e126SZixu Wang        },
1729b36e126SZixu Wang        {
1739b36e126SZixu Wang          "kind": "text",
1749b36e126SZixu Wang          "spelling": ") "
1759b36e126SZixu Wang        },
1769b36e126SZixu Wang        {
1779b36e126SZixu Wang          "kind": "internalParam",
1789b36e126SZixu Wang          "spelling": "Property"
1794048aad8SZixu Wang        },
1804048aad8SZixu Wang        {
1814048aad8SZixu Wang          "kind": "text",
1824048aad8SZixu Wang          "spelling": ";"
1839b36e126SZixu Wang        }
1849b36e126SZixu Wang      ],
185236b6a0eSDaniel Grumberg      "functionSignature": {
186236b6a0eSDaniel Grumberg        "parameters": [
187236b6a0eSDaniel Grumberg          {
188236b6a0eSDaniel Grumberg            "declarationFragments": [
189236b6a0eSDaniel Grumberg              {
190236b6a0eSDaniel Grumberg                "kind": "text",
191236b6a0eSDaniel Grumberg                "spelling": "("
192236b6a0eSDaniel Grumberg              },
193236b6a0eSDaniel Grumberg              {
194236b6a0eSDaniel Grumberg                "kind": "typeIdentifier",
195236b6a0eSDaniel Grumberg                "preciseIdentifier": "c:i",
196236b6a0eSDaniel Grumberg                "spelling": "unsigned int"
197236b6a0eSDaniel Grumberg              },
198236b6a0eSDaniel Grumberg              {
199236b6a0eSDaniel Grumberg                "kind": "text",
200236b6a0eSDaniel Grumberg                "spelling": ") "
201236b6a0eSDaniel Grumberg              },
202236b6a0eSDaniel Grumberg              {
203236b6a0eSDaniel Grumberg                "kind": "internalParam",
204236b6a0eSDaniel Grumberg                "spelling": "Property"
205236b6a0eSDaniel Grumberg              }
206236b6a0eSDaniel Grumberg            ],
207236b6a0eSDaniel Grumberg            "name": "Property"
208236b6a0eSDaniel Grumberg          }
209236b6a0eSDaniel Grumberg        ],
210236b6a0eSDaniel Grumberg        "returns": [
211236b6a0eSDaniel Grumberg          {
212236b6a0eSDaniel Grumberg            "kind": "keyword",
213236b6a0eSDaniel Grumberg            "spelling": "id"
214236b6a0eSDaniel Grumberg          }
215236b6a0eSDaniel Grumberg        ]
216236b6a0eSDaniel Grumberg      },
2179b36e126SZixu Wang      "identifier": {
2189b36e126SZixu Wang        "interfaceLanguage": "objective-c",
2199b36e126SZixu Wang        "precise": "c:objc(cs)Super(cm)getWithProperty:"
2209b36e126SZixu Wang      },
2219b36e126SZixu Wang      "kind": {
2229b36e126SZixu Wang        "displayName": "Type Method",
2239b36e126SZixu Wang        "identifier": "objective-c.type.method"
2249b36e126SZixu Wang      },
2259b36e126SZixu Wang      "location": {
22628d79314SDaniel Grumberg        "position": {
2279b36e126SZixu Wang          "character": 1,
22828d79314SDaniel Grumberg          "line": 5
22928d79314SDaniel Grumberg        },
2309b36e126SZixu Wang        "uri": "file://INPUT_DIR/input.h"
2319b36e126SZixu Wang      },
2329b36e126SZixu Wang      "names": {
23380ae3665SDaniel Grumberg        "navigator": [
23480ae3665SDaniel Grumberg          {
23580ae3665SDaniel Grumberg            "kind": "identifier",
23680ae3665SDaniel Grumberg            "spelling": "getWithProperty:"
23780ae3665SDaniel Grumberg          }
23880ae3665SDaniel Grumberg        ],
2399b36e126SZixu Wang        "subHeading": [
2409b36e126SZixu Wang          {
2419b36e126SZixu Wang            "kind": "text",
2429b36e126SZixu Wang            "spelling": "+ "
2439b36e126SZixu Wang          },
2449b36e126SZixu Wang          {
2459b36e126SZixu Wang            "kind": "identifier",
2469b36e126SZixu Wang            "spelling": "getWithProperty:"
2479b36e126SZixu Wang          }
2489b36e126SZixu Wang        ],
2499b36e126SZixu Wang        "title": "getWithProperty:"
25028d79314SDaniel Grumberg      },
25128d79314SDaniel Grumberg      "pathComponents": [
25228d79314SDaniel Grumberg        "Super",
25328d79314SDaniel Grumberg        "getWithProperty:"
25428d79314SDaniel Grumberg      ]
2559b36e126SZixu Wang    },
2569b36e126SZixu Wang    {
25728d79314SDaniel Grumberg      "accessLevel": "public",
2589b36e126SZixu Wang      "declarationFragments": [
2599b36e126SZixu Wang        {
26080ae3665SDaniel Grumberg          "kind": "text",
26180ae3665SDaniel Grumberg          "spelling": "- ("
26280ae3665SDaniel Grumberg        },
26380ae3665SDaniel Grumberg        {
26480ae3665SDaniel Grumberg          "kind": "typeIdentifier",
26580ae3665SDaniel Grumberg          "preciseIdentifier": "c:v",
26680ae3665SDaniel Grumberg          "spelling": "void"
26780ae3665SDaniel Grumberg        },
26880ae3665SDaniel Grumberg        {
26980ae3665SDaniel Grumberg          "kind": "text",
27080ae3665SDaniel Grumberg          "spelling": ") "
27180ae3665SDaniel Grumberg        },
27280ae3665SDaniel Grumberg        {
27380ae3665SDaniel Grumberg          "kind": "identifier",
27480ae3665SDaniel Grumberg          "spelling": "setProperty:"
27580ae3665SDaniel Grumberg        },
27680ae3665SDaniel Grumberg        {
27780ae3665SDaniel Grumberg          "kind": "text",
27880ae3665SDaniel Grumberg          "spelling": "("
27980ae3665SDaniel Grumberg        },
28080ae3665SDaniel Grumberg        {
28180ae3665SDaniel Grumberg          "kind": "typeIdentifier",
28280ae3665SDaniel Grumberg          "preciseIdentifier": "c:i",
28380ae3665SDaniel Grumberg          "spelling": "unsigned int"
28480ae3665SDaniel Grumberg        },
28580ae3665SDaniel Grumberg        {
28680ae3665SDaniel Grumberg          "kind": "text",
28780ae3665SDaniel Grumberg          "spelling": ") "
28880ae3665SDaniel Grumberg        },
28980ae3665SDaniel Grumberg        {
29080ae3665SDaniel Grumberg          "kind": "internalParam",
29180ae3665SDaniel Grumberg          "spelling": "Property"
29280ae3665SDaniel Grumberg        },
29380ae3665SDaniel Grumberg        {
29480ae3665SDaniel Grumberg          "kind": "text",
29580ae3665SDaniel Grumberg          "spelling": " "
29680ae3665SDaniel Grumberg        },
29780ae3665SDaniel Grumberg        {
29880ae3665SDaniel Grumberg          "kind": "identifier",
29980ae3665SDaniel Grumberg          "spelling": "andOtherThing:"
30080ae3665SDaniel Grumberg        },
30180ae3665SDaniel Grumberg        {
30280ae3665SDaniel Grumberg          "kind": "text",
30380ae3665SDaniel Grumberg          "spelling": "("
30480ae3665SDaniel Grumberg        },
30580ae3665SDaniel Grumberg        {
30680ae3665SDaniel Grumberg          "kind": "typeIdentifier",
30780ae3665SDaniel Grumberg          "preciseIdentifier": "c:i",
30880ae3665SDaniel Grumberg          "spelling": "unsigned int"
30980ae3665SDaniel Grumberg        },
31080ae3665SDaniel Grumberg        {
31180ae3665SDaniel Grumberg          "kind": "text",
31280ae3665SDaniel Grumberg          "spelling": ") "
31380ae3665SDaniel Grumberg        },
31480ae3665SDaniel Grumberg        {
31580ae3665SDaniel Grumberg          "kind": "internalParam",
31680ae3665SDaniel Grumberg          "spelling": "Thing"
31780ae3665SDaniel Grumberg        },
31880ae3665SDaniel Grumberg        {
31980ae3665SDaniel Grumberg          "kind": "text",
32080ae3665SDaniel Grumberg          "spelling": ";"
32180ae3665SDaniel Grumberg        }
32280ae3665SDaniel Grumberg      ],
323236b6a0eSDaniel Grumberg      "functionSignature": {
324236b6a0eSDaniel Grumberg        "parameters": [
325236b6a0eSDaniel Grumberg          {
326236b6a0eSDaniel Grumberg            "declarationFragments": [
327236b6a0eSDaniel Grumberg              {
328236b6a0eSDaniel Grumberg                "kind": "text",
329236b6a0eSDaniel Grumberg                "spelling": "("
330236b6a0eSDaniel Grumberg              },
331236b6a0eSDaniel Grumberg              {
332236b6a0eSDaniel Grumberg                "kind": "typeIdentifier",
333236b6a0eSDaniel Grumberg                "preciseIdentifier": "c:i",
334236b6a0eSDaniel Grumberg                "spelling": "unsigned int"
335236b6a0eSDaniel Grumberg              },
336236b6a0eSDaniel Grumberg              {
337236b6a0eSDaniel Grumberg                "kind": "text",
338236b6a0eSDaniel Grumberg                "spelling": ") "
339236b6a0eSDaniel Grumberg              },
340236b6a0eSDaniel Grumberg              {
341236b6a0eSDaniel Grumberg                "kind": "internalParam",
342236b6a0eSDaniel Grumberg                "spelling": "Property"
343236b6a0eSDaniel Grumberg              }
344236b6a0eSDaniel Grumberg            ],
345236b6a0eSDaniel Grumberg            "name": "Property"
346236b6a0eSDaniel Grumberg          },
347236b6a0eSDaniel Grumberg          {
348236b6a0eSDaniel Grumberg            "declarationFragments": [
349236b6a0eSDaniel Grumberg              {
350236b6a0eSDaniel Grumberg                "kind": "text",
351236b6a0eSDaniel Grumberg                "spelling": "("
352236b6a0eSDaniel Grumberg              },
353236b6a0eSDaniel Grumberg              {
354236b6a0eSDaniel Grumberg                "kind": "typeIdentifier",
355236b6a0eSDaniel Grumberg                "preciseIdentifier": "c:i",
356236b6a0eSDaniel Grumberg                "spelling": "unsigned int"
357236b6a0eSDaniel Grumberg              },
358236b6a0eSDaniel Grumberg              {
359236b6a0eSDaniel Grumberg                "kind": "text",
360236b6a0eSDaniel Grumberg                "spelling": ") "
361236b6a0eSDaniel Grumberg              },
362236b6a0eSDaniel Grumberg              {
363236b6a0eSDaniel Grumberg                "kind": "internalParam",
364236b6a0eSDaniel Grumberg                "spelling": "Thing"
365236b6a0eSDaniel Grumberg              }
366236b6a0eSDaniel Grumberg            ],
367236b6a0eSDaniel Grumberg            "name": "Thing"
368236b6a0eSDaniel Grumberg          }
369236b6a0eSDaniel Grumberg        ],
370236b6a0eSDaniel Grumberg        "returns": [
371236b6a0eSDaniel Grumberg          {
372236b6a0eSDaniel Grumberg            "kind": "typeIdentifier",
373236b6a0eSDaniel Grumberg            "preciseIdentifier": "c:v",
374236b6a0eSDaniel Grumberg            "spelling": "void"
375236b6a0eSDaniel Grumberg          }
376236b6a0eSDaniel Grumberg        ]
377236b6a0eSDaniel Grumberg      },
37880ae3665SDaniel Grumberg      "identifier": {
37980ae3665SDaniel Grumberg        "interfaceLanguage": "objective-c",
38080ae3665SDaniel Grumberg        "precise": "c:objc(cs)Super(im)setProperty:andOtherThing:"
38180ae3665SDaniel Grumberg      },
38280ae3665SDaniel Grumberg      "kind": {
38380ae3665SDaniel Grumberg        "displayName": "Instance Method",
38480ae3665SDaniel Grumberg        "identifier": "objective-c.method"
38580ae3665SDaniel Grumberg      },
38680ae3665SDaniel Grumberg      "location": {
38780ae3665SDaniel Grumberg        "position": {
38880ae3665SDaniel Grumberg          "character": 1,
38980ae3665SDaniel Grumberg          "line": 6
39080ae3665SDaniel Grumberg        },
39180ae3665SDaniel Grumberg        "uri": "file://INPUT_DIR/input.h"
39280ae3665SDaniel Grumberg      },
39380ae3665SDaniel Grumberg      "names": {
39480ae3665SDaniel Grumberg        "navigator": [
39580ae3665SDaniel Grumberg          {
39680ae3665SDaniel Grumberg            "kind": "identifier",
39780ae3665SDaniel Grumberg            "spelling": "setProperty:andOtherThing:"
39880ae3665SDaniel Grumberg          }
39980ae3665SDaniel Grumberg        ],
40080ae3665SDaniel Grumberg        "subHeading": [
40180ae3665SDaniel Grumberg          {
40280ae3665SDaniel Grumberg            "kind": "text",
40380ae3665SDaniel Grumberg            "spelling": "- "
40480ae3665SDaniel Grumberg          },
40580ae3665SDaniel Grumberg          {
40680ae3665SDaniel Grumberg            "kind": "identifier",
40780ae3665SDaniel Grumberg            "spelling": "setProperty:andOtherThing:"
40880ae3665SDaniel Grumberg          }
40980ae3665SDaniel Grumberg        ],
41080ae3665SDaniel Grumberg        "title": "setProperty:andOtherThing:"
41180ae3665SDaniel Grumberg      },
41280ae3665SDaniel Grumberg      "pathComponents": [
41380ae3665SDaniel Grumberg        "Super",
41480ae3665SDaniel Grumberg        "setProperty:andOtherThing:"
41580ae3665SDaniel Grumberg      ]
41680ae3665SDaniel Grumberg    },
41780ae3665SDaniel Grumberg    {
41880ae3665SDaniel Grumberg      "accessLevel": "public",
41980ae3665SDaniel Grumberg      "declarationFragments": [
42080ae3665SDaniel Grumberg        {
4219b36e126SZixu Wang          "kind": "keyword",
4229b36e126SZixu Wang          "spelling": "@property"
4239b36e126SZixu Wang        },
4249b36e126SZixu Wang        {
4259b36e126SZixu Wang          "kind": "text",
4269b36e126SZixu Wang          "spelling": " ("
4279b36e126SZixu Wang        },
4289b36e126SZixu Wang        {
4299b36e126SZixu Wang          "kind": "keyword",
4309b36e126SZixu Wang          "spelling": "atomic"
4319b36e126SZixu Wang        },
4329b36e126SZixu Wang        {
4339b36e126SZixu Wang          "kind": "text",
4349b36e126SZixu Wang          "spelling": ", "
4359b36e126SZixu Wang        },
4369b36e126SZixu Wang        {
4379b36e126SZixu Wang          "kind": "keyword",
4389b36e126SZixu Wang          "spelling": "readonly"
4399b36e126SZixu Wang        },
4409b36e126SZixu Wang        {
4419b36e126SZixu Wang          "kind": "text",
4429b36e126SZixu Wang          "spelling": ", "
4439b36e126SZixu Wang        },
4449b36e126SZixu Wang        {
4459b36e126SZixu Wang          "kind": "keyword",
4469b36e126SZixu Wang          "spelling": "getter"
4479b36e126SZixu Wang        },
4489b36e126SZixu Wang        {
4499b36e126SZixu Wang          "kind": "text",
4509b36e126SZixu Wang          "spelling": "="
4519b36e126SZixu Wang        },
4529b36e126SZixu Wang        {
4539b36e126SZixu Wang          "kind": "identifier",
4549b36e126SZixu Wang          "spelling": "getProperty"
4559b36e126SZixu Wang        },
4569b36e126SZixu Wang        {
4579b36e126SZixu Wang          "kind": "text",
4589b36e126SZixu Wang          "spelling": ") "
4599b36e126SZixu Wang        },
4609b36e126SZixu Wang        {
4619b36e126SZixu Wang          "kind": "typeIdentifier",
4629b36e126SZixu Wang          "preciseIdentifier": "c:i",
4639b36e126SZixu Wang          "spelling": "unsigned int"
4649b36e126SZixu Wang        },
4659b36e126SZixu Wang        {
4669b36e126SZixu Wang          "kind": "identifier",
4679b36e126SZixu Wang          "spelling": "Property"
4689b36e126SZixu Wang        }
4699b36e126SZixu Wang      ],
4709b36e126SZixu Wang      "identifier": {
4719b36e126SZixu Wang        "interfaceLanguage": "objective-c",
4729b36e126SZixu Wang        "precise": "c:objc(cs)Super(py)Property"
4739b36e126SZixu Wang      },
4749b36e126SZixu Wang      "kind": {
4759b36e126SZixu Wang        "displayName": "Instance Property",
4769b36e126SZixu Wang        "identifier": "objective-c.property"
4779b36e126SZixu Wang      },
4789b36e126SZixu Wang      "location": {
47928d79314SDaniel Grumberg        "position": {
4809b36e126SZixu Wang          "character": 50,
48128d79314SDaniel Grumberg          "line": 4
48228d79314SDaniel Grumberg        },
4839b36e126SZixu Wang        "uri": "file://INPUT_DIR/input.h"
4849b36e126SZixu Wang      },
4859b36e126SZixu Wang      "names": {
48680ae3665SDaniel Grumberg        "navigator": [
48780ae3665SDaniel Grumberg          {
48880ae3665SDaniel Grumberg            "kind": "identifier",
48980ae3665SDaniel Grumberg            "spelling": "Property"
49080ae3665SDaniel Grumberg          }
49180ae3665SDaniel Grumberg        ],
4929b36e126SZixu Wang        "subHeading": [
4939b36e126SZixu Wang          {
4949b36e126SZixu Wang            "kind": "identifier",
4959b36e126SZixu Wang            "spelling": "Property"
4969b36e126SZixu Wang          }
4979b36e126SZixu Wang        ],
4989b36e126SZixu Wang        "title": "Property"
49928d79314SDaniel Grumberg      },
50028d79314SDaniel Grumberg      "pathComponents": [
50128d79314SDaniel Grumberg        "Super",
50228d79314SDaniel Grumberg        "Property"
50328d79314SDaniel Grumberg      ]
5049b36e126SZixu Wang    },
5059b36e126SZixu Wang    {
50628d79314SDaniel Grumberg      "accessLevel": "public",
5079b36e126SZixu Wang      "declarationFragments": [
5089b36e126SZixu Wang        {
5099b36e126SZixu Wang          "kind": "keyword",
5109b36e126SZixu Wang          "spelling": "@interface"
5119b36e126SZixu Wang        },
5129b36e126SZixu Wang        {
5139b36e126SZixu Wang          "kind": "text",
5149b36e126SZixu Wang          "spelling": " "
5159b36e126SZixu Wang        },
5169b36e126SZixu Wang        {
5179b36e126SZixu Wang          "kind": "identifier",
5189b36e126SZixu Wang          "spelling": "Derived"
5199b36e126SZixu Wang        },
5209b36e126SZixu Wang        {
5219b36e126SZixu Wang          "kind": "text",
5229b36e126SZixu Wang          "spelling": " : "
5239b36e126SZixu Wang        },
5249b36e126SZixu Wang        {
5259b36e126SZixu Wang          "kind": "typeIdentifier",
5269b36e126SZixu Wang          "preciseIdentifier": "c:objc(cs)Super",
5279b36e126SZixu Wang          "spelling": "Super"
5289b36e126SZixu Wang        }
5299b36e126SZixu Wang      ],
5309b36e126SZixu Wang      "identifier": {
5319b36e126SZixu Wang        "interfaceLanguage": "objective-c",
5329b36e126SZixu Wang        "precise": "c:objc(cs)Derived"
5339b36e126SZixu Wang      },
5349b36e126SZixu Wang      "kind": {
5359b36e126SZixu Wang        "displayName": "Class",
5369b36e126SZixu Wang        "identifier": "objective-c.class"
5379b36e126SZixu Wang      },
5389b36e126SZixu Wang      "location": {
53928d79314SDaniel Grumberg        "position": {
5409b36e126SZixu Wang          "character": 12,
54180ae3665SDaniel Grumberg          "line": 9
54228d79314SDaniel Grumberg        },
5439b36e126SZixu Wang        "uri": "file://INPUT_DIR/input.h"
5449b36e126SZixu Wang      },
5459b36e126SZixu Wang      "names": {
54680ae3665SDaniel Grumberg        "navigator": [
54780ae3665SDaniel Grumberg          {
54880ae3665SDaniel Grumberg            "kind": "identifier",
54980ae3665SDaniel Grumberg            "spelling": "Derived"
55080ae3665SDaniel Grumberg          }
55180ae3665SDaniel Grumberg        ],
5529b36e126SZixu Wang        "subHeading": [
5539b36e126SZixu Wang          {
5549b36e126SZixu Wang            "kind": "identifier",
5559b36e126SZixu Wang            "spelling": "Derived"
5569b36e126SZixu Wang          }
5579b36e126SZixu Wang        ],
5589b36e126SZixu Wang        "title": "Derived"
55928d79314SDaniel Grumberg      },
56028d79314SDaniel Grumberg      "pathComponents": [
56128d79314SDaniel Grumberg        "Derived"
56228d79314SDaniel Grumberg      ]
5639b36e126SZixu Wang    },
5649b36e126SZixu Wang    {
56528d79314SDaniel Grumberg      "accessLevel": "public",
5669b36e126SZixu Wang      "declarationFragments": [
5679b36e126SZixu Wang        {
5689b36e126SZixu Wang          "kind": "typeIdentifier",
5699b36e126SZixu Wang          "preciseIdentifier": "c:C",
5709b36e126SZixu Wang          "spelling": "char"
5719b36e126SZixu Wang        },
5729b36e126SZixu Wang        {
5739b36e126SZixu Wang          "kind": "text",
5749b36e126SZixu Wang          "spelling": " "
5759b36e126SZixu Wang        },
5769b36e126SZixu Wang        {
5779b36e126SZixu Wang          "kind": "identifier",
5789b36e126SZixu Wang          "spelling": "Ivar"
5799b36e126SZixu Wang        }
5809b36e126SZixu Wang      ],
5819b36e126SZixu Wang      "identifier": {
5829b36e126SZixu Wang        "interfaceLanguage": "objective-c",
5839b36e126SZixu Wang        "precise": "c:objc(cs)Derived@Ivar"
5849b36e126SZixu Wang      },
5859b36e126SZixu Wang      "kind": {
5869b36e126SZixu Wang        "displayName": "Instance Variable",
5879b36e126SZixu Wang        "identifier": "objective-c.ivar"
5889b36e126SZixu Wang      },
5899b36e126SZixu Wang      "location": {
59028d79314SDaniel Grumberg        "position": {
5919b36e126SZixu Wang          "character": 8,
59280ae3665SDaniel Grumberg          "line": 10
59328d79314SDaniel Grumberg        },
5949b36e126SZixu Wang        "uri": "file://INPUT_DIR/input.h"
5959b36e126SZixu Wang      },
5969b36e126SZixu Wang      "names": {
59780ae3665SDaniel Grumberg        "navigator": [
59880ae3665SDaniel Grumberg          {
59980ae3665SDaniel Grumberg            "kind": "identifier",
60080ae3665SDaniel Grumberg            "spelling": "Ivar"
60180ae3665SDaniel Grumberg          }
60280ae3665SDaniel Grumberg        ],
6039b36e126SZixu Wang        "subHeading": [
6049b36e126SZixu Wang          {
6059b36e126SZixu Wang            "kind": "identifier",
6069b36e126SZixu Wang            "spelling": "Ivar"
6079b36e126SZixu Wang          }
6089b36e126SZixu Wang        ],
6099b36e126SZixu Wang        "title": "Ivar"
61028d79314SDaniel Grumberg      },
61128d79314SDaniel Grumberg      "pathComponents": [
61228d79314SDaniel Grumberg        "Derived",
61328d79314SDaniel Grumberg        "Ivar"
61428d79314SDaniel Grumberg      ]
6159b36e126SZixu Wang    },
6169b36e126SZixu Wang    {
61728d79314SDaniel Grumberg      "accessLevel": "public",
6189b36e126SZixu Wang      "declarationFragments": [
6199b36e126SZixu Wang        {
6209b36e126SZixu Wang          "kind": "text",
6219b36e126SZixu Wang          "spelling": "- ("
6229b36e126SZixu Wang        },
6239b36e126SZixu Wang        {
6249b36e126SZixu Wang          "kind": "typeIdentifier",
6259b36e126SZixu Wang          "preciseIdentifier": "c:C",
6269b36e126SZixu Wang          "spelling": "char"
6279b36e126SZixu Wang        },
6289b36e126SZixu Wang        {
6299b36e126SZixu Wang          "kind": "text",
6309b36e126SZixu Wang          "spelling": ") "
6319b36e126SZixu Wang        },
6329b36e126SZixu Wang        {
6339b36e126SZixu Wang          "kind": "identifier",
6349b36e126SZixu Wang          "spelling": "getIvar"
6354048aad8SZixu Wang        },
6364048aad8SZixu Wang        {
6374048aad8SZixu Wang          "kind": "text",
6384048aad8SZixu Wang          "spelling": ";"
6399b36e126SZixu Wang        }
6409b36e126SZixu Wang      ],
641236b6a0eSDaniel Grumberg      "functionSignature": {
642236b6a0eSDaniel Grumberg        "returns": [
643236b6a0eSDaniel Grumberg          {
644236b6a0eSDaniel Grumberg            "kind": "typeIdentifier",
645236b6a0eSDaniel Grumberg            "preciseIdentifier": "c:C",
646236b6a0eSDaniel Grumberg            "spelling": "char"
647236b6a0eSDaniel Grumberg          }
648236b6a0eSDaniel Grumberg        ]
649236b6a0eSDaniel Grumberg      },
6509b36e126SZixu Wang      "identifier": {
6519b36e126SZixu Wang        "interfaceLanguage": "objective-c",
6529b36e126SZixu Wang        "precise": "c:objc(cs)Derived(im)getIvar"
6539b36e126SZixu Wang      },
6549b36e126SZixu Wang      "kind": {
6559b36e126SZixu Wang        "displayName": "Instance Method",
6569b36e126SZixu Wang        "identifier": "objective-c.method"
6579b36e126SZixu Wang      },
6589b36e126SZixu Wang      "location": {
65928d79314SDaniel Grumberg        "position": {
6609b36e126SZixu Wang          "character": 1,
66180ae3665SDaniel Grumberg          "line": 12
66228d79314SDaniel Grumberg        },
6639b36e126SZixu Wang        "uri": "file://INPUT_DIR/input.h"
6649b36e126SZixu Wang      },
6659b36e126SZixu Wang      "names": {
66680ae3665SDaniel Grumberg        "navigator": [
66780ae3665SDaniel Grumberg          {
66880ae3665SDaniel Grumberg            "kind": "identifier",
66980ae3665SDaniel Grumberg            "spelling": "getIvar"
67080ae3665SDaniel Grumberg          }
67180ae3665SDaniel Grumberg        ],
6729b36e126SZixu Wang        "subHeading": [
6739b36e126SZixu Wang          {
6749b36e126SZixu Wang            "kind": "text",
6759b36e126SZixu Wang            "spelling": "- "
6769b36e126SZixu Wang          },
6779b36e126SZixu Wang          {
6789b36e126SZixu Wang            "kind": "identifier",
6799b36e126SZixu Wang            "spelling": "getIvar"
6809b36e126SZixu Wang          }
6819b36e126SZixu Wang        ],
6829b36e126SZixu Wang        "title": "getIvar"
68328d79314SDaniel Grumberg      },
68428d79314SDaniel Grumberg      "pathComponents": [
68528d79314SDaniel Grumberg        "Derived",
68628d79314SDaniel Grumberg        "getIvar"
68728d79314SDaniel Grumberg      ]
6889b36e126SZixu Wang    }
6899b36e126SZixu Wang  ]
6909b36e126SZixu Wang}
691