brintos

brintos / llvm-project-archived public Read only

0
0
Text · 58.4 KiB · f7067ac Raw
1966 lines · plain
1// RUN: %clang_cc1 -triple x86_64-apple-darwin -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s2 3@protocol P4@end5 6@interface A7@end8 9@interface TestObjCIvarDecl : A10@end11 12@implementation TestObjCIvarDecl {13  int varDefault;14  @private int varPrivate;15  @protected int varProtected;16  @public int varPublic;17  @package int varPackage;18}19@end20 21@interface testObjCMethodDecl : A {22}23- (int) TestObjCMethodDecl: (int)i, ...;24@end25 26@implementation testObjCMethodDecl27- (int) TestObjCMethodDecl: (int)i, ... {28  return 0;29}30@end31 32@protocol TestObjCProtocolDecl33- (void) foo;34@end35 36@interface TestObjCClass : A <P>37- (void) foo;38@end39 40@implementation TestObjCClass : A {41  int i;42}43- (void) foo {44}45@end46 47@interface TestObjCClass (TestObjCCategoryDecl) <P>48- (void) bar;49@end50 51@interface TestGenericInterface<T> : A<P> {52}53@end54 55@implementation TestObjCClass (TestObjCCategoryDecl)56- (void) bar {57}58@end59 60@compatibility_alias TestObjCCompatibleAliasDecl A;61 62@interface TestObjCProperty: A63@property(getter=getterFoo, setter=setterFoo:) int foo;64@property int bar;65@end66 67@implementation TestObjCProperty {68  int i;69}70@synthesize foo=i;71@synthesize bar;72@end73 74void TestBlockDecl(int x) {75  ^(int y, ...){ x; };76}77 78@interface B79+ (int) foo;80@end81 82void f(void) {83  __typeof__(B.foo) Test;84}85 86// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py87 88 89// CHECK-NOT: {{^}}Dumping90// CHECK:  "kind": "ObjCInterfaceDecl",91// CHECK-NEXT:  "loc": {92// CHECK-NEXT:   "offset": {{[0-9]+}},93// CHECK-NEXT:   "file": "{{.*}}",94// CHECK-NEXT:   "line": 9,95// CHECK-NEXT:   "col": 12,96// CHECK-NEXT:   "tokLen": 1697// CHECK-NEXT:  },98// CHECK-NEXT:  "range": {99// CHECK-NEXT:   "begin": {100// CHECK-NEXT:    "offset": {{[0-9]+}},101// CHECK-NEXT:    "col": 1,102// CHECK-NEXT:    "tokLen": 1103// CHECK-NEXT:   },104// CHECK-NEXT:   "end": {105// CHECK-NEXT:    "offset": {{[0-9]+}},106// CHECK-NEXT:    "line": 10,107// CHECK-NEXT:    "col": 2,108// CHECK-NEXT:    "tokLen": 3109// CHECK-NEXT:   }110// CHECK-NEXT:  },111// CHECK-NEXT:  "name": "TestObjCIvarDecl",112// CHECK-NEXT:  "mangledName": "_OBJC_CLASS_$_TestObjCIvarDecl",113// CHECK-NEXT:  "super": {114// CHECK-NEXT:   "id": "0x{{.*}}",115// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",116// CHECK-NEXT:   "name": "A"117// CHECK-NEXT:  },118// CHECK-NEXT:  "implementation": {119// CHECK-NEXT:   "id": "0x{{.*}}",120// CHECK-NEXT:   "kind": "ObjCImplementationDecl",121// CHECK-NEXT:   "name": "TestObjCIvarDecl"122// CHECK-NEXT:  }123// CHECK-NEXT: }124 125 126// CHECK-NOT: {{^}}Dumping127// CHECK:  "kind": "ObjCImplementationDecl",128// CHECK-NEXT:  "loc": {129// CHECK-NEXT:   "offset": {{[0-9]+}},130// CHECK-NEXT:   "file": "{{.*}}",131// CHECK-NEXT:   "line": 12,132// CHECK-NEXT:   "col": 17,133// CHECK-NEXT:   "tokLen": 16134// CHECK-NEXT:  },135// CHECK-NEXT:  "range": {136// CHECK-NEXT:   "begin": {137// CHECK-NEXT:    "offset": {{[0-9]+}},138// CHECK-NEXT:    "col": 1,139// CHECK-NEXT:    "tokLen": 1140// CHECK-NEXT:   },141// CHECK-NEXT:   "end": {142// CHECK-NEXT:    "offset": {{[0-9]+}},143// CHECK-NEXT:    "line": 19,144// CHECK-NEXT:    "col": 1,145// CHECK-NEXT:    "tokLen": 1146// CHECK-NEXT:   }147// CHECK-NEXT:  },148// CHECK-NEXT:  "name": "TestObjCIvarDecl",149// CHECK-NEXT:  "super": {150// CHECK-NEXT:   "id": "0x0"151// CHECK-NEXT:  },152// CHECK-NEXT:  "interface": {153// CHECK-NEXT:   "id": "0x{{.*}}",154// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",155// CHECK-NEXT:   "name": "TestObjCIvarDecl"156// CHECK-NEXT:  },157// CHECK-NEXT:  "inner": [158// CHECK-NEXT:   {159// CHECK-NEXT:    "id": "0x{{.*}}",160// CHECK-NEXT:    "kind": "ObjCIvarDecl",161// CHECK-NEXT:    "loc": {162// CHECK-NEXT:     "offset": {{[0-9]+}},163// CHECK-NEXT:     "line": 13,164// CHECK-NEXT:     "col": 7,165// CHECK-NEXT:     "tokLen": 10166// CHECK-NEXT:    },167// CHECK-NEXT:    "range": {168// CHECK-NEXT:     "begin": {169// CHECK-NEXT:      "offset": {{[0-9]+}},170// CHECK-NEXT:      "col": 3,171// CHECK-NEXT:      "tokLen": 3172// CHECK-NEXT:     },173// CHECK-NEXT:     "end": {174// CHECK-NEXT:      "offset": {{[0-9]+}},175// CHECK-NEXT:      "col": 7,176// CHECK-NEXT:      "tokLen": 10177// CHECK-NEXT:     }178// CHECK-NEXT:    },179// CHECK-NEXT:    "name": "varDefault",180// CHECK-NEXT:    "type": {181// CHECK-NEXT:     "qualType": "int"182// CHECK-NEXT:    },183// CHECK-NEXT:    "access": "private"184// CHECK-NEXT:   },185// CHECK-NEXT:   {186// CHECK-NEXT:    "id": "0x{{.*}}",187// CHECK-NEXT:    "kind": "ObjCIvarDecl",188// CHECK-NEXT:    "loc": {189// CHECK-NEXT:     "offset": {{[0-9]+}},190// CHECK-NEXT:     "line": 14,191// CHECK-NEXT:     "col": 16,192// CHECK-NEXT:     "tokLen": 10193// CHECK-NEXT:    },194// CHECK-NEXT:    "range": {195// CHECK-NEXT:     "begin": {196// CHECK-NEXT:      "offset": {{[0-9]+}},197// CHECK-NEXT:      "col": 12,198// CHECK-NEXT:      "tokLen": 3199// CHECK-NEXT:     },200// CHECK-NEXT:     "end": {201// CHECK-NEXT:      "offset": {{[0-9]+}},202// CHECK-NEXT:      "col": 16,203// CHECK-NEXT:      "tokLen": 10204// CHECK-NEXT:     }205// CHECK-NEXT:    },206// CHECK-NEXT:    "name": "varPrivate",207// CHECK-NEXT:    "type": {208// CHECK-NEXT:     "qualType": "int"209// CHECK-NEXT:    },210// CHECK-NEXT:    "access": "private"211// CHECK-NEXT:   },212// CHECK-NEXT:   {213// CHECK-NEXT:    "id": "0x{{.*}}",214// CHECK-NEXT:    "kind": "ObjCIvarDecl",215// CHECK-NEXT:    "loc": {216// CHECK-NEXT:     "offset": {{[0-9]+}},217// CHECK-NEXT:     "line": 15,218// CHECK-NEXT:     "col": 18,219// CHECK-NEXT:     "tokLen": 12220// CHECK-NEXT:    },221// CHECK-NEXT:    "range": {222// CHECK-NEXT:     "begin": {223// CHECK-NEXT:      "offset": {{[0-9]+}},224// CHECK-NEXT:      "col": 14,225// CHECK-NEXT:      "tokLen": 3226// CHECK-NEXT:     },227// CHECK-NEXT:     "end": {228// CHECK-NEXT:      "offset": {{[0-9]+}},229// CHECK-NEXT:      "col": 18,230// CHECK-NEXT:      "tokLen": 12231// CHECK-NEXT:     }232// CHECK-NEXT:    },233// CHECK-NEXT:    "name": "varProtected",234// CHECK-NEXT:    "type": {235// CHECK-NEXT:     "qualType": "int"236// CHECK-NEXT:    },237// CHECK-NEXT:    "access": "protected"238// CHECK-NEXT:   },239// CHECK-NEXT:   {240// CHECK-NEXT:    "id": "0x{{.*}}",241// CHECK-NEXT:    "kind": "ObjCIvarDecl",242// CHECK-NEXT:    "loc": {243// CHECK-NEXT:     "offset": {{[0-9]+}},244// CHECK-NEXT:     "line": 16,245// CHECK-NEXT:     "col": 15,246// CHECK-NEXT:     "tokLen": 9247// CHECK-NEXT:    },248// CHECK-NEXT:    "range": {249// CHECK-NEXT:     "begin": {250// CHECK-NEXT:      "offset": {{[0-9]+}},251// CHECK-NEXT:      "col": 11,252// CHECK-NEXT:      "tokLen": 3253// CHECK-NEXT:     },254// CHECK-NEXT:     "end": {255// CHECK-NEXT:      "offset": {{[0-9]+}},256// CHECK-NEXT:      "col": 15,257// CHECK-NEXT:      "tokLen": 9258// CHECK-NEXT:     }259// CHECK-NEXT:    },260// CHECK-NEXT:    "name": "varPublic",261// CHECK-NEXT:    "type": {262// CHECK-NEXT:     "qualType": "int"263// CHECK-NEXT:    },264// CHECK-NEXT:    "access": "public"265// CHECK-NEXT:   },266// CHECK-NEXT:   {267// CHECK-NEXT:    "id": "0x{{.*}}",268// CHECK-NEXT:    "kind": "ObjCIvarDecl",269// CHECK-NEXT:    "loc": {270// CHECK-NEXT:     "offset": {{[0-9]+}},271// CHECK-NEXT:     "line": 17,272// CHECK-NEXT:     "col": 16,273// CHECK-NEXT:     "tokLen": 10274// CHECK-NEXT:    },275// CHECK-NEXT:    "range": {276// CHECK-NEXT:     "begin": {277// CHECK-NEXT:      "offset": {{[0-9]+}},278// CHECK-NEXT:      "col": 12,279// CHECK-NEXT:      "tokLen": 3280// CHECK-NEXT:     },281// CHECK-NEXT:     "end": {282// CHECK-NEXT:      "offset": {{[0-9]+}},283// CHECK-NEXT:      "col": 16,284// CHECK-NEXT:      "tokLen": 10285// CHECK-NEXT:     }286// CHECK-NEXT:    },287// CHECK-NEXT:    "name": "varPackage",288// CHECK-NEXT:    "type": {289// CHECK-NEXT:     "qualType": "int"290// CHECK-NEXT:    },291// CHECK-NEXT:    "access": "package"292// CHECK-NEXT:   }293// CHECK-NEXT:  ]294// CHECK-NEXT: }295 296 297// CHECK-NOT: {{^}}Dumping298// CHECK:  "kind": "ObjCMethodDecl",299// CHECK-NEXT:  "loc": {300// CHECK-NEXT:   "offset": {{[0-9]+}},301// CHECK-NEXT:   "file": "{{.*}}",302// CHECK-NEXT:   "line": 23,303// CHECK-NEXT:   "col": 1,304// CHECK-NEXT:   "tokLen": 1305// CHECK-NEXT:  },306// CHECK-NEXT:  "range": {307// CHECK-NEXT:   "begin": {308// CHECK-NEXT:    "offset": {{[0-9]+}},309// CHECK-NEXT:    "col": 1,310// CHECK-NEXT:    "tokLen": 1311// CHECK-NEXT:   },312// CHECK-NEXT:   "end": {313// CHECK-NEXT:    "offset": {{[0-9]+}},314// CHECK-NEXT:    "col": 40,315// CHECK-NEXT:    "tokLen": 1316// CHECK-NEXT:   }317// CHECK-NEXT:  },318// CHECK-NEXT:  "name": "TestObjCMethodDecl:",319// CHECK-NEXT:  "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]",320// CHECK-NEXT:  "returnType": {321// CHECK-NEXT:   "qualType": "int"322// CHECK-NEXT:  },323// CHECK-NEXT:  "instance": true,324// CHECK-NEXT:  "variadic": true,325// CHECK-NEXT:  "inner": [326// CHECK-NEXT:   {327// CHECK-NEXT:    "id": "0x{{.*}}",328// CHECK-NEXT:    "kind": "ParmVarDecl",329// CHECK-NEXT:    "loc": {330// CHECK-NEXT:     "offset": {{[0-9]+}},331// CHECK-NEXT:     "col": 34,332// CHECK-NEXT:     "tokLen": 1333// CHECK-NEXT:    },334// CHECK-NEXT:    "range": {335// CHECK-NEXT:     "begin": {336// CHECK-NEXT:      "offset": {{[0-9]+}},337// CHECK-NEXT:      "col": 30,338// CHECK-NEXT:      "tokLen": 3339// CHECK-NEXT:     },340// CHECK-NEXT:     "end": {341// CHECK-NEXT:      "offset": {{[0-9]+}},342// CHECK-NEXT:      "col": 34,343// CHECK-NEXT:      "tokLen": 1344// CHECK-NEXT:     }345// CHECK-NEXT:    },346// CHECK-NEXT:    "name": "i",347// CHECK-NEXT:    "type": {348// CHECK-NEXT:     "qualType": "int"349// CHECK-NEXT:    }350// CHECK-NEXT:   }351// CHECK-NEXT:  ]352// CHECK-NEXT: }353 354 355// CHECK-NOT: {{^}}Dumping356// CHECK:  "kind": "ObjCMethodDecl",357// CHECK-NEXT:  "loc": {358// CHECK-NEXT:   "offset": {{[0-9]+}},359// CHECK-NEXT:   "file": "{{.*}}",360// CHECK-NEXT:   "line": 27,361// CHECK-NEXT:   "col": 1,362// CHECK-NEXT:   "tokLen": 1363// CHECK-NEXT:  },364// CHECK-NEXT:  "range": {365// CHECK-NEXT:   "begin": {366// CHECK-NEXT:    "offset": {{[0-9]+}},367// CHECK-NEXT:    "col": 1,368// CHECK-NEXT:    "tokLen": 1369// CHECK-NEXT:   },370// CHECK-NEXT:   "end": {371// CHECK-NEXT:    "offset": {{[0-9]+}},372// CHECK-NEXT:    "line": 29,373// CHECK-NEXT:    "col": 1,374// CHECK-NEXT:    "tokLen": 1375// CHECK-NEXT:   }376// CHECK-NEXT:  },377// CHECK-NEXT:  "name": "TestObjCMethodDecl:",378// CHECK-NEXT:  "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]",379// CHECK-NEXT:  "returnType": {380// CHECK-NEXT:   "qualType": "int"381// CHECK-NEXT:  },382// CHECK-NEXT:  "instance": true,383// CHECK-NEXT:  "variadic": true,384// CHECK-NEXT:  "inner": [385// CHECK-NEXT:   {386// CHECK-NEXT:    "id": "0x{{.*}}",387// CHECK-NEXT:    "kind": "ImplicitParamDecl",388// CHECK-NEXT:    "loc": {},389// CHECK-NEXT:    "range": {390// CHECK-NEXT:     "begin": {},391// CHECK-NEXT:     "end": {}392// CHECK-NEXT:    },393// CHECK-NEXT:    "isImplicit": true,394// CHECK-NEXT:    "name": "self",395// CHECK-NEXT:    "type": {396// CHECK-NEXT:     "qualType": "testObjCMethodDecl *"397// CHECK-NEXT:    }398// CHECK-NEXT:   },399// CHECK-NEXT:   {400// CHECK-NEXT:    "id": "0x{{.*}}",401// CHECK-NEXT:    "kind": "ImplicitParamDecl",402// CHECK-NEXT:    "loc": {},403// CHECK-NEXT:    "range": {404// CHECK-NEXT:     "begin": {},405// CHECK-NEXT:     "end": {}406// CHECK-NEXT:    },407// CHECK-NEXT:    "isImplicit": true,408// CHECK-NEXT:    "name": "_cmd",409// CHECK-NEXT:    "type": {410// CHECK-NEXT:     "desugaredQualType": "SEL *",411// CHECK-NEXT:     "qualType": "SEL",412// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"413// CHECK-NEXT:    }414// CHECK-NEXT:   },415// CHECK-NEXT:   {416// CHECK-NEXT:    "id": "0x{{.*}}",417// CHECK-NEXT:    "kind": "ParmVarDecl",418// CHECK-NEXT:    "loc": {419// CHECK-NEXT:     "offset": {{[0-9]+}},420// CHECK-NEXT:     "line": 27,421// CHECK-NEXT:     "col": 34,422// CHECK-NEXT:     "tokLen": 1423// CHECK-NEXT:    },424// CHECK-NEXT:    "range": {425// CHECK-NEXT:     "begin": {426// CHECK-NEXT:      "offset": {{[0-9]+}},427// CHECK-NEXT:      "col": 30,428// CHECK-NEXT:      "tokLen": 3429// CHECK-NEXT:     },430// CHECK-NEXT:     "end": {431// CHECK-NEXT:      "offset": {{[0-9]+}},432// CHECK-NEXT:      "col": 34,433// CHECK-NEXT:      "tokLen": 1434// CHECK-NEXT:     }435// CHECK-NEXT:    },436// CHECK-NEXT:    "name": "i",437// CHECK-NEXT:    "type": {438// CHECK-NEXT:     "qualType": "int"439// CHECK-NEXT:    }440// CHECK-NEXT:   },441// CHECK-NEXT:   {442// CHECK-NEXT:    "id": "0x{{.*}}",443// CHECK-NEXT:    "kind": "CompoundStmt",444// CHECK-NEXT:    "range": {445// CHECK-NEXT:     "begin": {446// CHECK-NEXT:      "offset": {{[0-9]+}},447// CHECK-NEXT:      "col": 41,448// CHECK-NEXT:      "tokLen": 1449// CHECK-NEXT:     },450// CHECK-NEXT:     "end": {451// CHECK-NEXT:      "offset": {{[0-9]+}},452// CHECK-NEXT:      "line": 29,453// CHECK-NEXT:      "col": 1,454// CHECK-NEXT:      "tokLen": 1455// CHECK-NEXT:     }456// CHECK-NEXT:    },457// CHECK-NEXT:    "inner": [458// CHECK-NEXT:     {459// CHECK-NEXT:      "id": "0x{{.*}}",460// CHECK-NEXT:      "kind": "ReturnStmt",461// CHECK-NEXT:      "range": {462// CHECK-NEXT:       "begin": {463// CHECK-NEXT:        "offset": {{[0-9]+}},464// CHECK-NEXT:        "line": 28,465// CHECK-NEXT:        "col": 3,466// CHECK-NEXT:        "tokLen": 6467// CHECK-NEXT:       },468// CHECK-NEXT:       "end": {469// CHECK-NEXT:        "offset": {{[0-9]+}},470// CHECK-NEXT:        "col": 10,471// CHECK-NEXT:        "tokLen": 1472// CHECK-NEXT:       }473// CHECK-NEXT:      },474// CHECK-NEXT:      "inner": [475// CHECK-NEXT:       {476// CHECK-NEXT:        "id": "0x{{.*}}",477// CHECK-NEXT:        "kind": "IntegerLiteral",478// CHECK-NEXT:        "range": {479// CHECK-NEXT:         "begin": {480// CHECK-NEXT:          "offset": {{[0-9]+}},481// CHECK-NEXT:          "col": 10,482// CHECK-NEXT:          "tokLen": 1483// CHECK-NEXT:         },484// CHECK-NEXT:         "end": {485// CHECK-NEXT:          "offset": {{[0-9]+}},486// CHECK-NEXT:          "col": 10,487// CHECK-NEXT:          "tokLen": 1488// CHECK-NEXT:         }489// CHECK-NEXT:        },490// CHECK-NEXT:        "type": {491// CHECK-NEXT:         "qualType": "int"492// CHECK-NEXT:        },493// CHECK-NEXT:        "valueCategory": "prvalue",494// CHECK-NEXT:        "value": "0"495// CHECK-NEXT:       }496// CHECK-NEXT:      ]497// CHECK-NEXT:     }498// CHECK-NEXT:    ]499// CHECK-NEXT:   }500// CHECK-NEXT:  ]501// CHECK-NEXT: }502 503 504// CHECK-NOT: {{^}}Dumping505// CHECK:  "kind": "ObjCProtocolDecl",506// CHECK-NEXT:  "loc": {507// CHECK-NEXT:   "offset": {{[0-9]+}},508// CHECK-NEXT:   "file": "{{.*}}",509// CHECK-NEXT:   "line": 32,510// CHECK-NEXT:   "col": 11,511// CHECK-NEXT:   "tokLen": 20512// CHECK-NEXT:  },513// CHECK-NEXT:  "range": {514// CHECK-NEXT:   "begin": {515// CHECK-NEXT:    "offset": {{[0-9]+}},516// CHECK-NEXT:    "col": 1,517// CHECK-NEXT:    "tokLen": 1518// CHECK-NEXT:   },519// CHECK-NEXT:   "end": {520// CHECK-NEXT:    "offset": {{[0-9]+}},521// CHECK-NEXT:    "line": 34,522// CHECK-NEXT:    "col": 2,523// CHECK-NEXT:    "tokLen": 3524// CHECK-NEXT:   }525// CHECK-NEXT:  },526// CHECK-NEXT:  "name": "TestObjCProtocolDecl",527// CHECK-NEXT:  "inner": [528// CHECK-NEXT:   {529// CHECK-NEXT:    "id": "0x{{.*}}",530// CHECK-NEXT:    "kind": "ObjCMethodDecl",531// CHECK-NEXT:    "loc": {532// CHECK-NEXT:     "offset": {{[0-9]+}},533// CHECK-NEXT:     "line": 33,534// CHECK-NEXT:     "col": 1,535// CHECK-NEXT:     "tokLen": 1536// CHECK-NEXT:    },537// CHECK-NEXT:    "range": {538// CHECK-NEXT:     "begin": {539// CHECK-NEXT:      "offset": {{[0-9]+}},540// CHECK-NEXT:      "col": 1,541// CHECK-NEXT:      "tokLen": 1542// CHECK-NEXT:     },543// CHECK-NEXT:     "end": {544// CHECK-NEXT:      "offset": {{[0-9]+}},545// CHECK-NEXT:      "col": 13,546// CHECK-NEXT:      "tokLen": 1547// CHECK-NEXT:     }548// CHECK-NEXT:    },549// CHECK-NEXT:    "name": "foo",550// CHECK-NEXT:    "mangledName": "-[TestObjCProtocolDecl foo]",551// CHECK-NEXT:    "returnType": {552// CHECK-NEXT:     "qualType": "void"553// CHECK-NEXT:    },554// CHECK-NEXT:    "instance": true555// CHECK-NEXT:   }556// CHECK-NEXT:  ]557// CHECK-NEXT: }558 559 560// CHECK-NOT: {{^}}Dumping561// CHECK:  "kind": "ObjCInterfaceDecl",562// CHECK-NEXT:  "loc": {563// CHECK-NEXT:   "offset": {{[0-9]+}},564// CHECK-NEXT:   "file": "{{.*}}",565// CHECK-NEXT:   "line": 36,566// CHECK-NEXT:   "col": 12,567// CHECK-NEXT:   "tokLen": 13568// CHECK-NEXT:  },569// CHECK-NEXT:  "range": {570// CHECK-NEXT:   "begin": {571// CHECK-NEXT:    "offset": {{[0-9]+}},572// CHECK-NEXT:    "col": 1,573// CHECK-NEXT:    "tokLen": 1574// CHECK-NEXT:   },575// CHECK-NEXT:   "end": {576// CHECK-NEXT:    "offset": {{[0-9]+}},577// CHECK-NEXT:    "line": 38,578// CHECK-NEXT:    "col": 2,579// CHECK-NEXT:    "tokLen": 3580// CHECK-NEXT:   }581// CHECK-NEXT:  },582// CHECK-NEXT:  "name": "TestObjCClass",583// CHECK-NEXT:  "mangledName": "_OBJC_CLASS_$_TestObjCClass",584// CHECK-NEXT:  "super": {585// CHECK-NEXT:   "id": "0x{{.*}}",586// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",587// CHECK-NEXT:   "name": "A"588// CHECK-NEXT:  },589// CHECK-NEXT:  "implementation": {590// CHECK-NEXT:   "id": "0x{{.*}}",591// CHECK-NEXT:   "kind": "ObjCImplementationDecl",592// CHECK-NEXT:   "name": "TestObjCClass"593// CHECK-NEXT:  },594// CHECK-NEXT:  "protocols": [595// CHECK-NEXT:   {596// CHECK-NEXT:    "id": "0x{{.*}}",597// CHECK-NEXT:    "kind": "ObjCProtocolDecl",598// CHECK-NEXT:    "name": "P"599// CHECK-NEXT:   }600// CHECK-NEXT:  ],601// CHECK-NEXT:  "inner": [602// CHECK-NEXT:   {603// CHECK-NEXT:    "id": "0x{{.*}}",604// CHECK-NEXT:    "kind": "ObjCMethodDecl",605// CHECK-NEXT:    "loc": {606// CHECK-NEXT:     "offset": {{[0-9]+}},607// CHECK-NEXT:     "line": 37,608// CHECK-NEXT:     "col": 1,609// CHECK-NEXT:     "tokLen": 1610// CHECK-NEXT:    },611// CHECK-NEXT:    "range": {612// CHECK-NEXT:     "begin": {613// CHECK-NEXT:      "offset": {{[0-9]+}},614// CHECK-NEXT:      "col": 1,615// CHECK-NEXT:      "tokLen": 1616// CHECK-NEXT:     },617// CHECK-NEXT:     "end": {618// CHECK-NEXT:      "offset": {{[0-9]+}},619// CHECK-NEXT:      "col": 13,620// CHECK-NEXT:      "tokLen": 1621// CHECK-NEXT:     }622// CHECK-NEXT:    },623// CHECK-NEXT:    "name": "foo",624// CHECK-NEXT:    "mangledName": "-[TestObjCClass foo]",625// CHECK-NEXT:    "returnType": {626// CHECK-NEXT:     "qualType": "void"627// CHECK-NEXT:    },628// CHECK-NEXT:    "instance": true629// CHECK-NEXT:   }630// CHECK-NEXT:  ]631// CHECK-NEXT: }632 633 634// CHECK-NOT: {{^}}Dumping635// CHECK:  "kind": "ObjCImplementationDecl",636// CHECK-NEXT:  "loc": {637// CHECK-NEXT:   "offset": {{[0-9]+}},638// CHECK-NEXT:   "file": "{{.*}}",639// CHECK-NEXT:   "line": 40,640// CHECK-NEXT:   "col": 17,641// CHECK-NEXT:   "tokLen": 13642// CHECK-NEXT:  },643// CHECK-NEXT:  "range": {644// CHECK-NEXT:   "begin": {645// CHECK-NEXT:    "offset": {{[0-9]+}},646// CHECK-NEXT:    "col": 1,647// CHECK-NEXT:    "tokLen": 1648// CHECK-NEXT:   },649// CHECK-NEXT:   "end": {650// CHECK-NEXT:    "offset": {{[0-9]+}},651// CHECK-NEXT:    "line": 45,652// CHECK-NEXT:    "col": 1,653// CHECK-NEXT:    "tokLen": 1654// CHECK-NEXT:   }655// CHECK-NEXT:  },656// CHECK-NEXT:  "name": "TestObjCClass",657// CHECK-NEXT:  "super": {658// CHECK-NEXT:   "id": "0x{{.*}}",659// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",660// CHECK-NEXT:   "name": "A"661// CHECK-NEXT:  },662// CHECK-NEXT:  "interface": {663// CHECK-NEXT:   "id": "0x{{.*}}",664// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",665// CHECK-NEXT:   "name": "TestObjCClass"666// CHECK-NEXT:  },667// CHECK-NEXT:  "inner": [668// CHECK-NEXT:   {669// CHECK-NEXT:    "id": "0x{{.*}}",670// CHECK-NEXT:    "kind": "ObjCIvarDecl",671// CHECK-NEXT:    "loc": {672// CHECK-NEXT:     "offset": {{[0-9]+}},673// CHECK-NEXT:     "line": 41,674// CHECK-NEXT:     "col": 7,675// CHECK-NEXT:     "tokLen": 1676// CHECK-NEXT:    },677// CHECK-NEXT:    "range": {678// CHECK-NEXT:     "begin": {679// CHECK-NEXT:      "offset": {{[0-9]+}},680// CHECK-NEXT:      "col": 3,681// CHECK-NEXT:      "tokLen": 3682// CHECK-NEXT:     },683// CHECK-NEXT:     "end": {684// CHECK-NEXT:      "offset": {{[0-9]+}},685// CHECK-NEXT:      "col": 7,686// CHECK-NEXT:      "tokLen": 1687// CHECK-NEXT:     }688// CHECK-NEXT:    },689// CHECK-NEXT:    "name": "i",690// CHECK-NEXT:    "type": {691// CHECK-NEXT:     "qualType": "int"692// CHECK-NEXT:    },693// CHECK-NEXT:    "access": "private"694// CHECK-NEXT:   },695// CHECK-NEXT:   {696// CHECK-NEXT:    "id": "0x{{.*}}",697// CHECK-NEXT:    "kind": "ObjCMethodDecl",698// CHECK-NEXT:    "loc": {699// CHECK-NEXT:     "offset": {{[0-9]+}},700// CHECK-NEXT:     "line": 43,701// CHECK-NEXT:     "col": 1,702// CHECK-NEXT:     "tokLen": 1703// CHECK-NEXT:    },704// CHECK-NEXT:    "range": {705// CHECK-NEXT:     "begin": {706// CHECK-NEXT:      "offset": {{[0-9]+}},707// CHECK-NEXT:      "col": 1,708// CHECK-NEXT:      "tokLen": 1709// CHECK-NEXT:     },710// CHECK-NEXT:     "end": {711// CHECK-NEXT:      "offset": {{[0-9]+}},712// CHECK-NEXT:      "line": 44,713// CHECK-NEXT:      "col": 1,714// CHECK-NEXT:      "tokLen": 1715// CHECK-NEXT:     }716// CHECK-NEXT:    },717// CHECK-NEXT:    "name": "foo",718// CHECK-NEXT:    "mangledName": "-[TestObjCClass foo]",719// CHECK-NEXT:    "returnType": {720// CHECK-NEXT:     "qualType": "void"721// CHECK-NEXT:    },722// CHECK-NEXT:    "instance": true,723// CHECK-NEXT:    "inner": [724// CHECK-NEXT:     {725// CHECK-NEXT:      "id": "0x{{.*}}",726// CHECK-NEXT:      "kind": "ImplicitParamDecl",727// CHECK-NEXT:      "loc": {},728// CHECK-NEXT:      "range": {729// CHECK-NEXT:       "begin": {},730// CHECK-NEXT:       "end": {}731// CHECK-NEXT:      },732// CHECK-NEXT:      "isImplicit": true,733// CHECK-NEXT:      "name": "self",734// CHECK-NEXT:      "type": {735// CHECK-NEXT:       "qualType": "TestObjCClass *"736// CHECK-NEXT:      }737// CHECK-NEXT:     },738// CHECK-NEXT:     {739// CHECK-NEXT:      "id": "0x{{.*}}",740// CHECK-NEXT:      "kind": "ImplicitParamDecl",741// CHECK-NEXT:      "loc": {},742// CHECK-NEXT:      "range": {743// CHECK-NEXT:       "begin": {},744// CHECK-NEXT:       "end": {}745// CHECK-NEXT:      },746// CHECK-NEXT:      "isImplicit": true,747// CHECK-NEXT:      "name": "_cmd",748// CHECK-NEXT:      "type": {749// CHECK-NEXT:       "desugaredQualType": "SEL *",750// CHECK-NEXT:       "qualType": "SEL",751// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"752// CHECK-NEXT:      }753// CHECK-NEXT:     },754// CHECK-NEXT:     {755// CHECK-NEXT:      "id": "0x{{.*}}",756// CHECK-NEXT:      "kind": "CompoundStmt",757// CHECK-NEXT:      "range": {758// CHECK-NEXT:       "begin": {759// CHECK-NEXT:        "offset": {{[0-9]+}},760// CHECK-NEXT:        "line": 43,761// CHECK-NEXT:        "col": 14,762// CHECK-NEXT:        "tokLen": 1763// CHECK-NEXT:       },764// CHECK-NEXT:       "end": {765// CHECK-NEXT:        "offset": {{[0-9]+}},766// CHECK-NEXT:        "line": 44,767// CHECK-NEXT:        "col": 1,768// CHECK-NEXT:        "tokLen": 1769// CHECK-NEXT:       }770// CHECK-NEXT:      }771// CHECK-NEXT:     }772// CHECK-NEXT:    ]773// CHECK-NEXT:   }774// CHECK-NEXT:  ]775// CHECK-NEXT: }776 777 778// CHECK-NOT: {{^}}Dumping779// CHECK:  "kind": "ObjCCategoryDecl",780// CHECK-NEXT:  "loc": {781// CHECK-NEXT:   "offset": {{[0-9]+}},782// CHECK-NEXT:   "file": "{{.*}}",783// CHECK-NEXT:   "line": 47,784// CHECK-NEXT:   "col": 12,785// CHECK-NEXT:   "tokLen": 13786// CHECK-NEXT:  },787// CHECK-NEXT:  "range": {788// CHECK-NEXT:   "begin": {789// CHECK-NEXT:    "offset": {{[0-9]+}},790// CHECK-NEXT:    "col": 1,791// CHECK-NEXT:    "tokLen": 1792// CHECK-NEXT:   },793// CHECK-NEXT:   "end": {794// CHECK-NEXT:    "offset": {{[0-9]+}},795// CHECK-NEXT:    "line": 49,796// CHECK-NEXT:    "col": 2,797// CHECK-NEXT:    "tokLen": 3798// CHECK-NEXT:   }799// CHECK-NEXT:  },800// CHECK-NEXT:  "name": "TestObjCCategoryDecl",801// CHECK-NEXT:  "interface": {802// CHECK-NEXT:   "id": "0x{{.*}}",803// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",804// CHECK-NEXT:   "name": "TestObjCClass"805// CHECK-NEXT:  },806// CHECK-NEXT:  "implementation": {807// CHECK-NEXT:   "id": "0x{{.*}}",808// CHECK-NEXT:   "kind": "ObjCCategoryImplDecl",809// CHECK-NEXT:   "name": "TestObjCCategoryDecl"810// CHECK-NEXT:  },811// CHECK-NEXT:  "protocols": [812// CHECK-NEXT:   {813// CHECK-NEXT:    "id": "0x{{.*}}",814// CHECK-NEXT:    "kind": "ObjCProtocolDecl",815// CHECK-NEXT:    "name": "P"816// CHECK-NEXT:   }817// CHECK-NEXT:  ],818// CHECK-NEXT:  "inner": [819// CHECK-NEXT:   {820// CHECK-NEXT:    "id": "0x{{.*}}",821// CHECK-NEXT:    "kind": "ObjCMethodDecl",822// CHECK-NEXT:    "loc": {823// CHECK-NEXT:     "offset": {{[0-9]+}},824// CHECK-NEXT:     "line": 48,825// CHECK-NEXT:     "col": 1,826// CHECK-NEXT:     "tokLen": 1827// CHECK-NEXT:    },828// CHECK-NEXT:    "range": {829// CHECK-NEXT:     "begin": {830// CHECK-NEXT:      "offset": {{[0-9]+}},831// CHECK-NEXT:      "col": 1,832// CHECK-NEXT:      "tokLen": 1833// CHECK-NEXT:     },834// CHECK-NEXT:     "end": {835// CHECK-NEXT:      "offset": {{[0-9]+}},836// CHECK-NEXT:      "col": 13,837// CHECK-NEXT:      "tokLen": 1838// CHECK-NEXT:     }839// CHECK-NEXT:    },840// CHECK-NEXT:    "name": "bar",841// CHECK-NEXT:    "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]",842// CHECK-NEXT:    "returnType": {843// CHECK-NEXT:     "qualType": "void"844// CHECK-NEXT:    },845// CHECK-NEXT:    "instance": true846// CHECK-NEXT:   }847// CHECK-NEXT:  ]848// CHECK-NEXT: }849 850 851// CHECK-NOT: {{^}}Dumping852// CHECK:  "kind": "ObjCInterfaceDecl",853// CHECK-NEXT:  "loc": {854// CHECK-NEXT:   "offset": {{[0-9]+}},855// CHECK-NEXT:   "file": "{{.*}}",856// CHECK-NEXT:   "line": 51,857// CHECK-NEXT:   "col": 12,858// CHECK-NEXT:   "tokLen": 20859// CHECK-NEXT:  },860// CHECK-NEXT:  "range": {861// CHECK-NEXT:   "begin": {862// CHECK-NEXT:    "offset": {{[0-9]+}},863// CHECK-NEXT:    "col": 1,864// CHECK-NEXT:    "tokLen": 1865// CHECK-NEXT:   },866// CHECK-NEXT:   "end": {867// CHECK-NEXT:    "offset": {{[0-9]+}},868// CHECK-NEXT:    "line": 53,869// CHECK-NEXT:    "col": 2,870// CHECK-NEXT:    "tokLen": 3871// CHECK-NEXT:   }872// CHECK-NEXT:  },873// CHECK-NEXT:  "name": "TestGenericInterface",874// CHECK-NEXT:  "mangledName": "_OBJC_CLASS_$_TestGenericInterface",875// CHECK-NEXT:  "super": {876// CHECK-NEXT:   "id": "0x{{.*}}",877// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",878// CHECK-NEXT:   "name": "A"879// CHECK-NEXT:  },880// CHECK-NEXT:  "implementation": {881// CHECK-NEXT:   "id": "0x0"882// CHECK-NEXT:  },883// CHECK-NEXT:  "protocols": [884// CHECK-NEXT:   {885// CHECK-NEXT:    "id": "0x{{.*}}",886// CHECK-NEXT:    "kind": "ObjCProtocolDecl",887// CHECK-NEXT:    "name": "P"888// CHECK-NEXT:   }889// CHECK-NEXT:  ],890// CHECK-NEXT:  "inner": [891// CHECK-NEXT:   {892// CHECK-NEXT:    "id": "0x{{.*}}",893// CHECK-NEXT:    "kind": "ObjCTypeParamDecl",894// CHECK-NEXT:    "loc": {895// CHECK-NEXT:     "offset": {{[0-9]+}},896// CHECK-NEXT:     "line": 51,897// CHECK-NEXT:     "col": 33,898// CHECK-NEXT:     "tokLen": 1899// CHECK-NEXT:    },900// CHECK-NEXT:    "range": {901// CHECK-NEXT:     "begin": {902// CHECK-NEXT:      "offset": {{[0-9]+}},903// CHECK-NEXT:      "col": 33,904// CHECK-NEXT:      "tokLen": 1905// CHECK-NEXT:     },906// CHECK-NEXT:     "end": {907// CHECK-NEXT:      "offset": {{[0-9]+}},908// CHECK-NEXT:      "col": 33,909// CHECK-NEXT:      "tokLen": 1910// CHECK-NEXT:     }911// CHECK-NEXT:    },912// CHECK-NEXT:    "name": "T",913// CHECK-NEXT:    "type": {914// CHECK-NEXT:     "qualType": "id",915// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"916// CHECK-NEXT:    }917// CHECK-NEXT:   }918// CHECK-NEXT:  ]919// CHECK-NEXT: }920 921 922// CHECK-NOT: {{^}}Dumping923// CHECK:  "kind": "ObjCCategoryImplDecl",924// CHECK-NEXT:  "loc": {925// CHECK-NEXT:   "offset": {{[0-9]+}},926// CHECK-NEXT:   "file": "{{.*}}",927// CHECK-NEXT:   "line": 55,928// CHECK-NEXT:   "col": 17,929// CHECK-NEXT:   "tokLen": 13930// CHECK-NEXT:  },931// CHECK-NEXT:  "range": {932// CHECK-NEXT:   "begin": {933// CHECK-NEXT:    "offset": {{[0-9]+}},934// CHECK-NEXT:    "col": 1,935// CHECK-NEXT:    "tokLen": 1936// CHECK-NEXT:   },937// CHECK-NEXT:   "end": {938// CHECK-NEXT:    "offset": {{[0-9]+}},939// CHECK-NEXT:    "line": 58,940// CHECK-NEXT:    "col": 1,941// CHECK-NEXT:    "tokLen": 1942// CHECK-NEXT:   }943// CHECK-NEXT:  },944// CHECK-NEXT:  "name": "TestObjCCategoryDecl",945// CHECK-NEXT:  "interface": {946// CHECK-NEXT:   "id": "0x{{.*}}",947// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",948// CHECK-NEXT:   "name": "TestObjCClass"949// CHECK-NEXT:  },950// CHECK-NEXT:  "categoryDecl": {951// CHECK-NEXT:   "id": "0x{{.*}}",952// CHECK-NEXT:   "kind": "ObjCCategoryDecl",953// CHECK-NEXT:   "name": "TestObjCCategoryDecl"954// CHECK-NEXT:  },955// CHECK-NEXT:  "inner": [956// CHECK-NEXT:   {957// CHECK-NEXT:    "id": "0x{{.*}}",958// CHECK-NEXT:    "kind": "ObjCMethodDecl",959// CHECK-NEXT:    "loc": {960// CHECK-NEXT:     "offset": {{[0-9]+}},961// CHECK-NEXT:     "line": 56,962// CHECK-NEXT:     "col": 1,963// CHECK-NEXT:     "tokLen": 1964// CHECK-NEXT:    },965// CHECK-NEXT:    "range": {966// CHECK-NEXT:     "begin": {967// CHECK-NEXT:      "offset": {{[0-9]+}},968// CHECK-NEXT:      "col": 1,969// CHECK-NEXT:      "tokLen": 1970// CHECK-NEXT:     },971// CHECK-NEXT:     "end": {972// CHECK-NEXT:      "offset": {{[0-9]+}},973// CHECK-NEXT:      "line": 57,974// CHECK-NEXT:      "col": 1,975// CHECK-NEXT:      "tokLen": 1976// CHECK-NEXT:     }977// CHECK-NEXT:    },978// CHECK-NEXT:    "name": "bar",979// CHECK-NEXT:    "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]",980// CHECK-NEXT:    "returnType": {981// CHECK-NEXT:     "qualType": "void"982// CHECK-NEXT:    },983// CHECK-NEXT:    "instance": true,984// CHECK-NEXT:    "inner": [985// CHECK-NEXT:     {986// CHECK-NEXT:      "id": "0x{{.*}}",987// CHECK-NEXT:      "kind": "ImplicitParamDecl",988// CHECK-NEXT:      "loc": {},989// CHECK-NEXT:      "range": {990// CHECK-NEXT:       "begin": {},991// CHECK-NEXT:       "end": {}992// CHECK-NEXT:      },993// CHECK-NEXT:      "isImplicit": true,994// CHECK-NEXT:      "name": "self",995// CHECK-NEXT:      "type": {996// CHECK-NEXT:       "qualType": "TestObjCClass *"997// CHECK-NEXT:      }998// CHECK-NEXT:     },999// CHECK-NEXT:     {1000// CHECK-NEXT:      "id": "0x{{.*}}",1001// CHECK-NEXT:      "kind": "ImplicitParamDecl",1002// CHECK-NEXT:      "loc": {},1003// CHECK-NEXT:      "range": {1004// CHECK-NEXT:       "begin": {},1005// CHECK-NEXT:       "end": {}1006// CHECK-NEXT:      },1007// CHECK-NEXT:      "isImplicit": true,1008// CHECK-NEXT:      "name": "_cmd",1009// CHECK-NEXT:      "type": {1010// CHECK-NEXT:       "desugaredQualType": "SEL *",1011// CHECK-NEXT:       "qualType": "SEL",1012// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"1013// CHECK-NEXT:      }1014// CHECK-NEXT:     },1015// CHECK-NEXT:     {1016// CHECK-NEXT:      "id": "0x{{.*}}",1017// CHECK-NEXT:      "kind": "CompoundStmt",1018// CHECK-NEXT:      "range": {1019// CHECK-NEXT:       "begin": {1020// CHECK-NEXT:        "offset": {{[0-9]+}},1021// CHECK-NEXT:        "line": 56,1022// CHECK-NEXT:        "col": 14,1023// CHECK-NEXT:        "tokLen": 11024// CHECK-NEXT:       },1025// CHECK-NEXT:       "end": {1026// CHECK-NEXT:        "offset": {{[0-9]+}},1027// CHECK-NEXT:        "line": 57,1028// CHECK-NEXT:        "col": 1,1029// CHECK-NEXT:        "tokLen": 11030// CHECK-NEXT:       }1031// CHECK-NEXT:      }1032// CHECK-NEXT:     }1033// CHECK-NEXT:    ]1034// CHECK-NEXT:   }1035// CHECK-NEXT:  ]1036// CHECK-NEXT: }1037 1038 1039// CHECK-NOT: {{^}}Dumping1040// CHECK:  "kind": "ObjCCompatibleAliasDecl",1041// CHECK-NEXT:  "loc": {1042// CHECK-NEXT:   "offset": {{[0-9]+}},1043// CHECK-NEXT:   "file": "{{.*}}",1044// CHECK-NEXT:   "line": 60,1045// CHECK-NEXT:   "col": 1,1046// CHECK-NEXT:   "tokLen": 11047// CHECK-NEXT:  },1048// CHECK-NEXT:  "range": {1049// CHECK-NEXT:   "begin": {1050// CHECK-NEXT:    "offset": {{[0-9]+}},1051// CHECK-NEXT:    "col": 1,1052// CHECK-NEXT:    "tokLen": 11053// CHECK-NEXT:   },1054// CHECK-NEXT:   "end": {1055// CHECK-NEXT:    "offset": {{[0-9]+}},1056// CHECK-NEXT:    "col": 1,1057// CHECK-NEXT:    "tokLen": 11058// CHECK-NEXT:   }1059// CHECK-NEXT:  },1060// CHECK-NEXT:  "name": "TestObjCCompatibleAliasDecl",1061// CHECK-NEXT:  "interface": {1062// CHECK-NEXT:   "id": "0x{{.*}}",1063// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",1064// CHECK-NEXT:   "name": "A"1065// CHECK-NEXT:  }1066// CHECK-NEXT: }1067 1068 1069// CHECK-NOT: {{^}}Dumping1070// CHECK:  "kind": "ObjCInterfaceDecl",1071// CHECK-NEXT:  "loc": {1072// CHECK-NEXT:   "offset": {{[0-9]+}},1073// CHECK-NEXT:   "file": "{{.*}}",1074// CHECK-NEXT:   "line": 62,1075// CHECK-NEXT:   "col": 12,1076// CHECK-NEXT:   "tokLen": 161077// CHECK-NEXT:  },1078// CHECK-NEXT:  "range": {1079// CHECK-NEXT:   "begin": {1080// CHECK-NEXT:    "offset": {{[0-9]+}},1081// CHECK-NEXT:    "col": 1,1082// CHECK-NEXT:    "tokLen": 11083// CHECK-NEXT:   },1084// CHECK-NEXT:   "end": {1085// CHECK-NEXT:    "offset": {{[0-9]+}},1086// CHECK-NEXT:    "line": 65,1087// CHECK-NEXT:    "col": 2,1088// CHECK-NEXT:    "tokLen": 31089// CHECK-NEXT:   }1090// CHECK-NEXT:  },1091// CHECK-NEXT:  "name": "TestObjCProperty",1092// CHECK-NEXT:  "mangledName": "_OBJC_CLASS_$_TestObjCProperty",1093// CHECK-NEXT:  "super": {1094// CHECK-NEXT:   "id": "0x{{.*}}",1095// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",1096// CHECK-NEXT:   "name": "A"1097// CHECK-NEXT:  },1098// CHECK-NEXT:  "implementation": {1099// CHECK-NEXT:   "id": "0x{{.*}}",1100// CHECK-NEXT:   "kind": "ObjCImplementationDecl",1101// CHECK-NEXT:   "name": "TestObjCProperty"1102// CHECK-NEXT:  },1103// CHECK-NEXT:  "inner": [1104// CHECK-NEXT:   {1105// CHECK-NEXT:    "id": "0x{{.*}}",1106// CHECK-NEXT:    "kind": "ObjCPropertyDecl",1107// CHECK-NEXT:    "loc": {1108// CHECK-NEXT:     "offset": {{[0-9]+}},1109// CHECK-NEXT:     "line": 63,1110// CHECK-NEXT:     "col": 52,1111// CHECK-NEXT:     "tokLen": 31112// CHECK-NEXT:    },1113// CHECK-NEXT:    "range": {1114// CHECK-NEXT:     "begin": {1115// CHECK-NEXT:      "offset": {{[0-9]+}},1116// CHECK-NEXT:      "col": 1,1117// CHECK-NEXT:      "tokLen": 11118// CHECK-NEXT:     },1119// CHECK-NEXT:     "end": {1120// CHECK-NEXT:      "offset": {{[0-9]+}},1121// CHECK-NEXT:      "col": 52,1122// CHECK-NEXT:      "tokLen": 31123// CHECK-NEXT:     }1124// CHECK-NEXT:    },1125// CHECK-NEXT:    "name": "foo",1126// CHECK-NEXT:    "type": {1127// CHECK-NEXT:     "qualType": "int"1128// CHECK-NEXT:    },1129// CHECK-NEXT:    "getter": {1130// CHECK-NEXT:     "id": "0x{{.*}}",1131// CHECK-NEXT:     "kind": "ObjCMethodDecl",1132// CHECK-NEXT:     "name": "getterFoo"1133// CHECK-NEXT:    },1134// CHECK-NEXT:    "setter": {1135// CHECK-NEXT:     "id": "0x{{.*}}",1136// CHECK-NEXT:     "kind": "ObjCMethodDecl",1137// CHECK-NEXT:     "name": "setterFoo:"1138// CHECK-NEXT:    },1139// CHECK-NEXT:    "assign": true,1140// CHECK-NEXT:    "readwrite": true,1141// CHECK-NEXT:    "atomic": true,1142// CHECK-NEXT:    "unsafe_unretained": true1143// CHECK-NEXT:   },1144// CHECK-NEXT:   {1145// CHECK-NEXT:    "id": "0x{{.*}}",1146// CHECK-NEXT:    "kind": "ObjCPropertyDecl",1147// CHECK-NEXT:    "loc": {1148// CHECK-NEXT:     "offset": {{[0-9]+}},1149// CHECK-NEXT:     "line": 64,1150// CHECK-NEXT:     "col": 15,1151// CHECK-NEXT:     "tokLen": 31152// CHECK-NEXT:    },1153// CHECK-NEXT:    "range": {1154// CHECK-NEXT:     "begin": {1155// CHECK-NEXT:      "offset": {{[0-9]+}},1156// CHECK-NEXT:      "col": 1,1157// CHECK-NEXT:      "tokLen": 11158// CHECK-NEXT:     },1159// CHECK-NEXT:     "end": {1160// CHECK-NEXT:      "offset": {{[0-9]+}},1161// CHECK-NEXT:      "col": 15,1162// CHECK-NEXT:      "tokLen": 31163// CHECK-NEXT:     }1164// CHECK-NEXT:    },1165// CHECK-NEXT:    "name": "bar",1166// CHECK-NEXT:    "type": {1167// CHECK-NEXT:     "qualType": "int"1168// CHECK-NEXT:    },1169// CHECK-NEXT:    "assign": true,1170// CHECK-NEXT:    "readwrite": true,1171// CHECK-NEXT:    "atomic": true,1172// CHECK-NEXT:    "unsafe_unretained": true1173// CHECK-NEXT:   },1174// CHECK-NEXT:   {1175// CHECK-NEXT:    "id": "0x{{.*}}",1176// CHECK-NEXT:    "kind": "ObjCMethodDecl",1177// CHECK-NEXT:    "loc": {1178// CHECK-NEXT:     "offset": {{[0-9]+}},1179// CHECK-NEXT:     "line": 63,1180// CHECK-NEXT:     "col": 52,1181// CHECK-NEXT:     "tokLen": 31182// CHECK-NEXT:    },1183// CHECK-NEXT:    "range": {1184// CHECK-NEXT:     "begin": {1185// CHECK-NEXT:      "offset": {{[0-9]+}},1186// CHECK-NEXT:      "col": 52,1187// CHECK-NEXT:      "tokLen": 31188// CHECK-NEXT:     },1189// CHECK-NEXT:     "end": {1190// CHECK-NEXT:      "offset": {{[0-9]+}},1191// CHECK-NEXT:      "col": 52,1192// CHECK-NEXT:      "tokLen": 31193// CHECK-NEXT:     }1194// CHECK-NEXT:    },1195// CHECK-NEXT:    "isImplicit": true,1196// CHECK-NEXT:    "name": "getterFoo",1197// CHECK-NEXT:    "mangledName": "-[TestObjCProperty getterFoo]",1198// CHECK-NEXT:    "returnType": {1199// CHECK-NEXT:     "qualType": "int"1200// CHECK-NEXT:    },1201// CHECK-NEXT:    "instance": true1202// CHECK-NEXT:   },1203// CHECK-NEXT:   {1204// CHECK-NEXT:    "id": "0x{{.*}}",1205// CHECK-NEXT:    "kind": "ObjCMethodDecl",1206// CHECK-NEXT:    "loc": {1207// CHECK-NEXT:     "offset": {{[0-9]+}},1208// CHECK-NEXT:     "col": 52,1209// CHECK-NEXT:     "tokLen": 31210// CHECK-NEXT:    },1211// CHECK-NEXT:    "range": {1212// CHECK-NEXT:     "begin": {1213// CHECK-NEXT:      "offset": {{[0-9]+}},1214// CHECK-NEXT:      "col": 52,1215// CHECK-NEXT:      "tokLen": 31216// CHECK-NEXT:     },1217// CHECK-NEXT:     "end": {1218// CHECK-NEXT:      "offset": {{[0-9]+}},1219// CHECK-NEXT:      "col": 52,1220// CHECK-NEXT:      "tokLen": 31221// CHECK-NEXT:     }1222// CHECK-NEXT:    },1223// CHECK-NEXT:    "isImplicit": true,1224// CHECK-NEXT:    "name": "setterFoo:",1225// CHECK-NEXT:    "mangledName": "-[TestObjCProperty setterFoo:]",1226// CHECK-NEXT:    "returnType": {1227// CHECK-NEXT:     "qualType": "void"1228// CHECK-NEXT:    },1229// CHECK-NEXT:    "instance": true,1230// CHECK-NEXT:    "inner": [1231// CHECK-NEXT:     {1232// CHECK-NEXT:      "id": "0x{{.*}}",1233// CHECK-NEXT:      "kind": "ParmVarDecl",1234// CHECK-NEXT:      "loc": {1235// CHECK-NEXT:       "offset": {{[0-9]+}},1236// CHECK-NEXT:       "col": 52,1237// CHECK-NEXT:       "tokLen": 31238// CHECK-NEXT:      },1239// CHECK-NEXT:      "range": {1240// CHECK-NEXT:       "begin": {1241// CHECK-NEXT:        "offset": {{[0-9]+}},1242// CHECK-NEXT:        "col": 52,1243// CHECK-NEXT:        "tokLen": 31244// CHECK-NEXT:       },1245// CHECK-NEXT:       "end": {1246// CHECK-NEXT:        "offset": {{[0-9]+}},1247// CHECK-NEXT:        "col": 52,1248// CHECK-NEXT:        "tokLen": 31249// CHECK-NEXT:       }1250// CHECK-NEXT:      },1251// CHECK-NEXT:      "name": "foo",1252// CHECK-NEXT:      "type": {1253// CHECK-NEXT:       "qualType": "int"1254// CHECK-NEXT:      }1255// CHECK-NEXT:     }1256// CHECK-NEXT:    ]1257// CHECK-NEXT:   },1258// CHECK-NEXT:   {1259// CHECK-NEXT:    "id": "0x{{.*}}",1260// CHECK-NEXT:    "kind": "ObjCMethodDecl",1261// CHECK-NEXT:    "loc": {1262// CHECK-NEXT:     "offset": {{[0-9]+}},1263// CHECK-NEXT:     "line": 64,1264// CHECK-NEXT:     "col": 15,1265// CHECK-NEXT:     "tokLen": 31266// CHECK-NEXT:    },1267// CHECK-NEXT:    "range": {1268// CHECK-NEXT:     "begin": {1269// CHECK-NEXT:      "offset": {{[0-9]+}},1270// CHECK-NEXT:      "col": 15,1271// CHECK-NEXT:      "tokLen": 31272// CHECK-NEXT:     },1273// CHECK-NEXT:     "end": {1274// CHECK-NEXT:      "offset": {{[0-9]+}},1275// CHECK-NEXT:      "col": 15,1276// CHECK-NEXT:      "tokLen": 31277// CHECK-NEXT:     }1278// CHECK-NEXT:    },1279// CHECK-NEXT:    "isImplicit": true,1280// CHECK-NEXT:    "name": "bar",1281// CHECK-NEXT:    "mangledName": "-[TestObjCProperty bar]",1282// CHECK-NEXT:    "returnType": {1283// CHECK-NEXT:     "qualType": "int"1284// CHECK-NEXT:    },1285// CHECK-NEXT:    "instance": true1286// CHECK-NEXT:   },1287// CHECK-NEXT:   {1288// CHECK-NEXT:    "id": "0x{{.*}}",1289// CHECK-NEXT:    "kind": "ObjCMethodDecl",1290// CHECK-NEXT:    "loc": {1291// CHECK-NEXT:     "offset": {{[0-9]+}},1292// CHECK-NEXT:     "col": 15,1293// CHECK-NEXT:     "tokLen": 31294// CHECK-NEXT:    },1295// CHECK-NEXT:    "range": {1296// CHECK-NEXT:     "begin": {1297// CHECK-NEXT:      "offset": {{[0-9]+}},1298// CHECK-NEXT:      "col": 15,1299// CHECK-NEXT:      "tokLen": 31300// CHECK-NEXT:     },1301// CHECK-NEXT:     "end": {1302// CHECK-NEXT:      "offset": {{[0-9]+}},1303// CHECK-NEXT:      "col": 15,1304// CHECK-NEXT:      "tokLen": 31305// CHECK-NEXT:     }1306// CHECK-NEXT:    },1307// CHECK-NEXT:    "isImplicit": true,1308// CHECK-NEXT:    "name": "setBar:",1309// CHECK-NEXT:    "mangledName": "-[TestObjCProperty setBar:]",1310// CHECK-NEXT:    "returnType": {1311// CHECK-NEXT:     "qualType": "void"1312// CHECK-NEXT:    },1313// CHECK-NEXT:    "instance": true,1314// CHECK-NEXT:    "inner": [1315// CHECK-NEXT:     {1316// CHECK-NEXT:      "id": "0x{{.*}}",1317// CHECK-NEXT:      "kind": "ParmVarDecl",1318// CHECK-NEXT:      "loc": {1319// CHECK-NEXT:       "offset": {{[0-9]+}},1320// CHECK-NEXT:       "col": 15,1321// CHECK-NEXT:       "tokLen": 31322// CHECK-NEXT:      },1323// CHECK-NEXT:      "range": {1324// CHECK-NEXT:       "begin": {1325// CHECK-NEXT:        "offset": {{[0-9]+}},1326// CHECK-NEXT:        "col": 15,1327// CHECK-NEXT:        "tokLen": 31328// CHECK-NEXT:       },1329// CHECK-NEXT:       "end": {1330// CHECK-NEXT:        "offset": {{[0-9]+}},1331// CHECK-NEXT:        "col": 15,1332// CHECK-NEXT:        "tokLen": 31333// CHECK-NEXT:       }1334// CHECK-NEXT:      },1335// CHECK-NEXT:      "name": "bar",1336// CHECK-NEXT:      "type": {1337// CHECK-NEXT:       "qualType": "int"1338// CHECK-NEXT:      }1339// CHECK-NEXT:     }1340// CHECK-NEXT:    ]1341// CHECK-NEXT:   }1342// CHECK-NEXT:  ]1343// CHECK-NEXT: }1344 1345 1346// CHECK-NOT: {{^}}Dumping1347// CHECK:  "kind": "ObjCImplementationDecl",1348// CHECK-NEXT:  "loc": {1349// CHECK-NEXT:   "offset": {{[0-9]+}},1350// CHECK-NEXT:   "file": "{{.*}}",1351// CHECK-NEXT:   "line": 67,1352// CHECK-NEXT:   "col": 17,1353// CHECK-NEXT:   "tokLen": 161354// CHECK-NEXT:  },1355// CHECK-NEXT:  "range": {1356// CHECK-NEXT:   "begin": {1357// CHECK-NEXT:    "offset": {{[0-9]+}},1358// CHECK-NEXT:    "col": 1,1359// CHECK-NEXT:    "tokLen": 11360// CHECK-NEXT:   },1361// CHECK-NEXT:   "end": {1362// CHECK-NEXT:    "offset": {{[0-9]+}},1363// CHECK-NEXT:    "line": 72,1364// CHECK-NEXT:    "col": 1,1365// CHECK-NEXT:    "tokLen": 11366// CHECK-NEXT:   }1367// CHECK-NEXT:  },1368// CHECK-NEXT:  "name": "TestObjCProperty",1369// CHECK-NEXT:  "super": {1370// CHECK-NEXT:   "id": "0x0"1371// CHECK-NEXT:  },1372// CHECK-NEXT:  "interface": {1373// CHECK-NEXT:   "id": "0x{{.*}}",1374// CHECK-NEXT:   "kind": "ObjCInterfaceDecl",1375// CHECK-NEXT:   "name": "TestObjCProperty"1376// CHECK-NEXT:  },1377// CHECK-NEXT:  "inner": [1378// CHECK-NEXT:   {1379// CHECK-NEXT:    "id": "0x{{.*}}",1380// CHECK-NEXT:    "kind": "ObjCIvarDecl",1381// CHECK-NEXT:    "loc": {1382// CHECK-NEXT:     "offset": {{[0-9]+}},1383// CHECK-NEXT:     "line": 68,1384// CHECK-NEXT:     "col": 7,1385// CHECK-NEXT:     "tokLen": 11386// CHECK-NEXT:    },1387// CHECK-NEXT:    "range": {1388// CHECK-NEXT:     "begin": {1389// CHECK-NEXT:      "offset": {{[0-9]+}},1390// CHECK-NEXT:      "col": 3,1391// CHECK-NEXT:      "tokLen": 31392// CHECK-NEXT:     },1393// CHECK-NEXT:     "end": {1394// CHECK-NEXT:      "offset": {{[0-9]+}},1395// CHECK-NEXT:      "col": 7,1396// CHECK-NEXT:      "tokLen": 11397// CHECK-NEXT:     }1398// CHECK-NEXT:    },1399// CHECK-NEXT:    "name": "i",1400// CHECK-NEXT:    "type": {1401// CHECK-NEXT:     "qualType": "int"1402// CHECK-NEXT:    },1403// CHECK-NEXT:    "access": "private"1404// CHECK-NEXT:   },1405// CHECK-NEXT:   {1406// CHECK-NEXT:    "id": "0x{{.*}}",1407// CHECK-NEXT:    "kind": "ObjCPropertyImplDecl",1408// CHECK-NEXT:    "loc": {1409// CHECK-NEXT:     "offset": {{[0-9]+}},1410// CHECK-NEXT:     "line": 70,1411// CHECK-NEXT:     "col": 13,1412// CHECK-NEXT:     "tokLen": 31413// CHECK-NEXT:    },1414// CHECK-NEXT:    "range": {1415// CHECK-NEXT:     "begin": {1416// CHECK-NEXT:      "offset": {{[0-9]+}},1417// CHECK-NEXT:      "col": 1,1418// CHECK-NEXT:      "tokLen": 11419// CHECK-NEXT:     },1420// CHECK-NEXT:     "end": {1421// CHECK-NEXT:      "offset": {{[0-9]+}},1422// CHECK-NEXT:      "col": 17,1423// CHECK-NEXT:      "tokLen": 11424// CHECK-NEXT:     }1425// CHECK-NEXT:    },1426// CHECK-NEXT:    "name": "foo",1427// CHECK-NEXT:    "implKind": "synthesize",1428// CHECK-NEXT:    "propertyDecl": {1429// CHECK-NEXT:     "id": "0x{{.*}}",1430// CHECK-NEXT:     "kind": "ObjCPropertyDecl",1431// CHECK-NEXT:     "name": "foo"1432// CHECK-NEXT:    },1433// CHECK-NEXT:    "ivarDecl": {1434// CHECK-NEXT:     "id": "0x{{.*}}",1435// CHECK-NEXT:     "kind": "ObjCIvarDecl",1436// CHECK-NEXT:     "name": "i",1437// CHECK-NEXT:     "type": {1438// CHECK-NEXT:      "qualType": "int"1439// CHECK-NEXT:     }1440// CHECK-NEXT:    }1441// CHECK-NEXT:   },1442// CHECK-NEXT:   {1443// CHECK-NEXT:    "id": "0x{{.*}}",1444// CHECK-NEXT:    "kind": "ObjCIvarDecl",1445// CHECK-NEXT:    "loc": {1446// CHECK-NEXT:     "offset": {{[0-9]+}},1447// CHECK-NEXT:     "line": 71,1448// CHECK-NEXT:     "col": 13,1449// CHECK-NEXT:     "tokLen": 31450// CHECK-NEXT:    },1451// CHECK-NEXT:    "range": {1452// CHECK-NEXT:     "begin": {1453// CHECK-NEXT:      "offset": {{[0-9]+}},1454// CHECK-NEXT:      "col": 13,1455// CHECK-NEXT:      "tokLen": 31456// CHECK-NEXT:     },1457// CHECK-NEXT:     "end": {1458// CHECK-NEXT:      "offset": {{[0-9]+}},1459// CHECK-NEXT:      "col": 13,1460// CHECK-NEXT:      "tokLen": 31461// CHECK-NEXT:     }1462// CHECK-NEXT:    },1463// CHECK-NEXT:    "name": "bar",1464// CHECK-NEXT:    "type": {1465// CHECK-NEXT:     "qualType": "int"1466// CHECK-NEXT:    },1467// CHECK-NEXT:    "synthesized": true,1468// CHECK-NEXT:    "access": "private"1469// CHECK-NEXT:   },1470// CHECK-NEXT:   {1471// CHECK-NEXT:    "id": "0x{{.*}}",1472// CHECK-NEXT:    "kind": "ObjCPropertyImplDecl",1473// CHECK-NEXT:    "loc": {1474// CHECK-NEXT:     "offset": {{[0-9]+}},1475// CHECK-NEXT:     "col": 13,1476// CHECK-NEXT:     "tokLen": 31477// CHECK-NEXT:    },1478// CHECK-NEXT:    "range": {1479// CHECK-NEXT:     "begin": {1480// CHECK-NEXT:      "offset": {{[0-9]+}},1481// CHECK-NEXT:      "col": 1,1482// CHECK-NEXT:      "tokLen": 11483// CHECK-NEXT:     },1484// CHECK-NEXT:     "end": {1485// CHECK-NEXT:      "offset": {{[0-9]+}},1486// CHECK-NEXT:      "col": 13,1487// CHECK-NEXT:      "tokLen": 31488// CHECK-NEXT:     }1489// CHECK-NEXT:    },1490// CHECK-NEXT:    "name": "bar",1491// CHECK-NEXT:    "implKind": "synthesize",1492// CHECK-NEXT:    "propertyDecl": {1493// CHECK-NEXT:     "id": "0x{{.*}}",1494// CHECK-NEXT:     "kind": "ObjCPropertyDecl",1495// CHECK-NEXT:     "name": "bar"1496// CHECK-NEXT:    },1497// CHECK-NEXT:    "ivarDecl": {1498// CHECK-NEXT:     "id": "0x{{.*}}",1499// CHECK-NEXT:     "kind": "ObjCIvarDecl",1500// CHECK-NEXT:     "name": "bar",1501// CHECK-NEXT:     "type": {1502// CHECK-NEXT:      "qualType": "int"1503// CHECK-NEXT:     }1504// CHECK-NEXT:    }1505// CHECK-NEXT:   },1506// CHECK-NEXT:   {1507// CHECK-NEXT:    "id": "0x{{.*}}",1508// CHECK-NEXT:    "kind": "ObjCMethodDecl",1509// CHECK-NEXT:    "loc": {1510// CHECK-NEXT:     "offset": {{[0-9]+}},1511// CHECK-NEXT:     "line": 70,1512// CHECK-NEXT:     "col": 1,1513// CHECK-NEXT:     "tokLen": 11514// CHECK-NEXT:    },1515// CHECK-NEXT:    "range": {1516// CHECK-NEXT:     "begin": {1517// CHECK-NEXT:      "offset": {{[0-9]+}},1518// CHECK-NEXT:      "col": 1,1519// CHECK-NEXT:      "tokLen": 11520// CHECK-NEXT:     },1521// CHECK-NEXT:     "end": {1522// CHECK-NEXT:      "offset": {{[0-9]+}},1523// CHECK-NEXT:      "col": 13,1524// CHECK-NEXT:      "tokLen": 31525// CHECK-NEXT:     }1526// CHECK-NEXT:    },1527// CHECK-NEXT:    "isImplicit": true,1528// CHECK-NEXT:    "name": "getterFoo",1529// CHECK-NEXT:    "mangledName": "-[TestObjCProperty getterFoo]",1530// CHECK-NEXT:    "returnType": {1531// CHECK-NEXT:     "qualType": "int"1532// CHECK-NEXT:    },1533// CHECK-NEXT:    "instance": true1534// CHECK-NEXT:   },1535// CHECK-NEXT:   {1536// CHECK-NEXT:    "id": "0x{{.*}}",1537// CHECK-NEXT:    "kind": "ObjCMethodDecl",1538// CHECK-NEXT:    "loc": {1539// CHECK-NEXT:     "offset": {{[0-9]+}},1540// CHECK-NEXT:     "col": 1,1541// CHECK-NEXT:     "tokLen": 11542// CHECK-NEXT:    },1543// CHECK-NEXT:    "range": {1544// CHECK-NEXT:     "begin": {1545// CHECK-NEXT:      "offset": {{[0-9]+}},1546// CHECK-NEXT:      "col": 1,1547// CHECK-NEXT:      "tokLen": 11548// CHECK-NEXT:     },1549// CHECK-NEXT:     "end": {1550// CHECK-NEXT:      "offset": {{[0-9]+}},1551// CHECK-NEXT:      "col": 13,1552// CHECK-NEXT:      "tokLen": 31553// CHECK-NEXT:     }1554// CHECK-NEXT:    },1555// CHECK-NEXT:    "isImplicit": true,1556// CHECK-NEXT:    "name": "setterFoo:",1557// CHECK-NEXT:    "mangledName": "-[TestObjCProperty setterFoo:]",1558// CHECK-NEXT:    "returnType": {1559// CHECK-NEXT:     "qualType": "void"1560// CHECK-NEXT:    },1561// CHECK-NEXT:    "instance": true,1562// CHECK-NEXT:    "inner": [1563// CHECK-NEXT:     {1564// CHECK-NEXT:      "id": "0x{{.*}}",1565// CHECK-NEXT:      "kind": "ParmVarDecl",1566// CHECK-NEXT:      "loc": {1567// CHECK-NEXT:       "offset": {{[0-9]+}},1568// CHECK-NEXT:       "line": 63,1569// CHECK-NEXT:       "col": 52,1570// CHECK-NEXT:       "tokLen": 31571// CHECK-NEXT:      },1572// CHECK-NEXT:      "range": {1573// CHECK-NEXT:       "begin": {1574// CHECK-NEXT:        "offset": {{[0-9]+}},1575// CHECK-NEXT:        "col": 52,1576// CHECK-NEXT:        "tokLen": 31577// CHECK-NEXT:       },1578// CHECK-NEXT:       "end": {1579// CHECK-NEXT:        "offset": {{[0-9]+}},1580// CHECK-NEXT:        "col": 52,1581// CHECK-NEXT:        "tokLen": 31582// CHECK-NEXT:       }1583// CHECK-NEXT:      },1584// CHECK-NEXT:      "name": "foo",1585// CHECK-NEXT:      "type": {1586// CHECK-NEXT:       "qualType": "int"1587// CHECK-NEXT:      }1588// CHECK-NEXT:     }1589// CHECK-NEXT:    ]1590// CHECK-NEXT:   },1591// CHECK-NEXT:   {1592// CHECK-NEXT:    "id": "0x{{.*}}",1593// CHECK-NEXT:    "kind": "ObjCMethodDecl",1594// CHECK-NEXT:    "loc": {1595// CHECK-NEXT:     "offset": {{[0-9]+}},1596// CHECK-NEXT:     "line": 71,1597// CHECK-NEXT:     "col": 1,1598// CHECK-NEXT:     "tokLen": 11599// CHECK-NEXT:    },1600// CHECK-NEXT:    "range": {1601// CHECK-NEXT:     "begin": {1602// CHECK-NEXT:      "offset": {{[0-9]+}},1603// CHECK-NEXT:      "col": 1,1604// CHECK-NEXT:      "tokLen": 11605// CHECK-NEXT:     },1606// CHECK-NEXT:     "end": {1607// CHECK-NEXT:      "offset": {{[0-9]+}},1608// CHECK-NEXT:      "col": 13,1609// CHECK-NEXT:      "tokLen": 31610// CHECK-NEXT:     }1611// CHECK-NEXT:    },1612// CHECK-NEXT:    "isImplicit": true,1613// CHECK-NEXT:    "name": "bar",1614// CHECK-NEXT:    "mangledName": "-[TestObjCProperty bar]",1615// CHECK-NEXT:    "returnType": {1616// CHECK-NEXT:     "qualType": "int"1617// CHECK-NEXT:    },1618// CHECK-NEXT:    "instance": true1619// CHECK-NEXT:   },1620// CHECK-NEXT:   {1621// CHECK-NEXT:    "id": "0x{{.*}}",1622// CHECK-NEXT:    "kind": "ObjCMethodDecl",1623// CHECK-NEXT:    "loc": {1624// CHECK-NEXT:     "offset": {{[0-9]+}},1625// CHECK-NEXT:     "col": 1,1626// CHECK-NEXT:     "tokLen": 11627// CHECK-NEXT:    },1628// CHECK-NEXT:    "range": {1629// CHECK-NEXT:     "begin": {1630// CHECK-NEXT:      "offset": {{[0-9]+}},1631// CHECK-NEXT:      "col": 1,1632// CHECK-NEXT:      "tokLen": 11633// CHECK-NEXT:     },1634// CHECK-NEXT:     "end": {1635// CHECK-NEXT:      "offset": {{[0-9]+}},1636// CHECK-NEXT:      "col": 13,1637// CHECK-NEXT:      "tokLen": 31638// CHECK-NEXT:     }1639// CHECK-NEXT:    },1640// CHECK-NEXT:    "isImplicit": true,1641// CHECK-NEXT:    "name": "setBar:",1642// CHECK-NEXT:    "mangledName": "-[TestObjCProperty setBar:]",1643// CHECK-NEXT:    "returnType": {1644// CHECK-NEXT:     "qualType": "void"1645// CHECK-NEXT:    },1646// CHECK-NEXT:    "instance": true,1647// CHECK-NEXT:    "inner": [1648// CHECK-NEXT:     {1649// CHECK-NEXT:      "id": "0x{{.*}}",1650// CHECK-NEXT:      "kind": "ParmVarDecl",1651// CHECK-NEXT:      "loc": {1652// CHECK-NEXT:       "offset": {{[0-9]+}},1653// CHECK-NEXT:       "line": 64,1654// CHECK-NEXT:       "col": 15,1655// CHECK-NEXT:       "tokLen": 31656// CHECK-NEXT:      },1657// CHECK-NEXT:      "range": {1658// CHECK-NEXT:       "begin": {1659// CHECK-NEXT:        "offset": {{[0-9]+}},1660// CHECK-NEXT:        "col": 15,1661// CHECK-NEXT:        "tokLen": 31662// CHECK-NEXT:       },1663// CHECK-NEXT:       "end": {1664// CHECK-NEXT:        "offset": {{[0-9]+}},1665// CHECK-NEXT:        "col": 15,1666// CHECK-NEXT:        "tokLen": 31667// CHECK-NEXT:       }1668// CHECK-NEXT:      },1669// CHECK-NEXT:      "name": "bar",1670// CHECK-NEXT:      "type": {1671// CHECK-NEXT:       "qualType": "int"1672// CHECK-NEXT:      }1673// CHECK-NEXT:     }1674// CHECK-NEXT:    ]1675// CHECK-NEXT:   }1676// CHECK-NEXT:  ]1677// CHECK-NEXT: }1678 1679 1680// CHECK-NOT: {{^}}Dumping1681// CHECK:  "kind": "FunctionDecl",1682// CHECK-NEXT:  "loc": {1683// CHECK-NEXT:   "offset": {{[0-9]+}},1684// CHECK-NEXT:   "file": "{{.*}}",1685// CHECK-NEXT:   "line": 74,1686// CHECK-NEXT:   "col": 6,1687// CHECK-NEXT:   "tokLen": 131688// CHECK-NEXT:  },1689// CHECK-NEXT:  "range": {1690// CHECK-NEXT:   "begin": {1691// CHECK-NEXT:    "offset": {{[0-9]+}},1692// CHECK-NEXT:    "col": 1,1693// CHECK-NEXT:    "tokLen": 41694// CHECK-NEXT:   },1695// CHECK-NEXT:   "end": {1696// CHECK-NEXT:    "offset": {{[0-9]+}},1697// CHECK-NEXT:    "line": 76,1698// CHECK-NEXT:    "col": 1,1699// CHECK-NEXT:    "tokLen": 11700// CHECK-NEXT:   }1701// CHECK-NEXT:  },1702// CHECK-NEXT:  "name": "TestBlockDecl",1703// CHECK-NEXT:  "mangledName": "_TestBlockDecl",1704// CHECK-NEXT:  "type": {1705// CHECK-NEXT:   "qualType": "void (int)"1706// CHECK-NEXT:  },1707// CHECK-NEXT:  "inner": [1708// CHECK-NEXT:   {1709// CHECK-NEXT:    "id": "0x{{.*}}",1710// CHECK-NEXT:    "kind": "ParmVarDecl",1711// CHECK-NEXT:    "loc": {1712// CHECK-NEXT:     "offset": {{[0-9]+}},1713// CHECK-NEXT:     "line": 74,1714// CHECK-NEXT:     "col": 24,1715// CHECK-NEXT:     "tokLen": 11716// CHECK-NEXT:    },1717// CHECK-NEXT:    "range": {1718// CHECK-NEXT:     "begin": {1719// CHECK-NEXT:      "offset": {{[0-9]+}},1720// CHECK-NEXT:      "col": 20,1721// CHECK-NEXT:      "tokLen": 31722// CHECK-NEXT:     },1723// CHECK-NEXT:     "end": {1724// CHECK-NEXT:      "offset": {{[0-9]+}},1725// CHECK-NEXT:      "col": 24,1726// CHECK-NEXT:      "tokLen": 11727// CHECK-NEXT:     }1728// CHECK-NEXT:    },1729// CHECK-NEXT:    "isUsed": true,1730// CHECK-NEXT:    "name": "x",1731// CHECK-NEXT:    "type": {1732// CHECK-NEXT:     "qualType": "int"1733// CHECK-NEXT:    }1734// CHECK-NEXT:   },1735// CHECK-NEXT:   {1736// CHECK-NEXT:    "id": "0x{{.*}}",1737// CHECK-NEXT:    "kind": "CompoundStmt",1738// CHECK-NEXT:    "range": {1739// CHECK-NEXT:     "begin": {1740// CHECK-NEXT:      "offset": {{[0-9]+}},1741// CHECK-NEXT:      "col": 27,1742// CHECK-NEXT:      "tokLen": 11743// CHECK-NEXT:     },1744// CHECK-NEXT:     "end": {1745// CHECK-NEXT:      "offset": {{[0-9]+}},1746// CHECK-NEXT:      "line": 76,1747// CHECK-NEXT:      "col": 1,1748// CHECK-NEXT:      "tokLen": 11749// CHECK-NEXT:     }1750// CHECK-NEXT:    },1751// CHECK-NEXT:    "inner": [1752// CHECK-NEXT:     {1753// CHECK-NEXT:      "id": "0x{{.*}}",1754// CHECK-NEXT:      "kind": "ExprWithCleanups",1755// CHECK-NEXT:      "range": {1756// CHECK-NEXT:       "begin": {1757// CHECK-NEXT:        "offset": {{[0-9]+}},1758// CHECK-NEXT:        "line": 75,1759// CHECK-NEXT:        "col": 3,1760// CHECK-NEXT:        "tokLen": 11761// CHECK-NEXT:       },1762// CHECK-NEXT:       "end": {1763// CHECK-NEXT:        "offset": {{[0-9]+}},1764// CHECK-NEXT:        "col": 21,1765// CHECK-NEXT:        "tokLen": 11766// CHECK-NEXT:       }1767// CHECK-NEXT:      },1768// CHECK-NEXT:      "type": {1769// CHECK-NEXT:       "qualType": "void (^)(int, ...)"1770// CHECK-NEXT:      },1771// CHECK-NEXT:      "valueCategory": "prvalue",1772// CHECK-NEXT:      "cleanupsHaveSideEffects": true,1773// CHECK-NEXT:      "cleanups": [1774// CHECK-NEXT:       {1775// CHECK-NEXT:        "id": "0x{{.*}}",1776// CHECK-NEXT:        "kind": "BlockDecl"1777// CHECK-NEXT:       }1778// CHECK-NEXT:      ],1779// CHECK-NEXT:      "inner": [1780// CHECK-NEXT:       {1781// CHECK-NEXT:        "id": "0x{{.*}}",1782// CHECK-NEXT:        "kind": "BlockExpr",1783// CHECK-NEXT:        "range": {1784// CHECK-NEXT:         "begin": {1785// CHECK-NEXT:          "offset": {{[0-9]+}},1786// CHECK-NEXT:          "col": 3,1787// CHECK-NEXT:          "tokLen": 11788// CHECK-NEXT:         },1789// CHECK-NEXT:         "end": {1790// CHECK-NEXT:          "offset": {{[0-9]+}},1791// CHECK-NEXT:          "col": 21,1792// CHECK-NEXT:          "tokLen": 11793// CHECK-NEXT:         }1794// CHECK-NEXT:        },1795// CHECK-NEXT:        "type": {1796// CHECK-NEXT:         "qualType": "void (^)(int, ...)"1797// CHECK-NEXT:        },1798// CHECK-NEXT:        "valueCategory": "prvalue",1799// CHECK-NEXT:        "inner": [1800// CHECK-NEXT:         {1801// CHECK-NEXT:          "id": "0x{{.*}}",1802// CHECK-NEXT:          "kind": "BlockDecl",1803// CHECK-NEXT:          "loc": {1804// CHECK-NEXT:           "offset": {{[0-9]+}},1805// CHECK-NEXT:           "col": 3,1806// CHECK-NEXT:           "tokLen": 11807// CHECK-NEXT:          },1808// CHECK-NEXT:          "range": {1809// CHECK-NEXT:           "begin": {1810// CHECK-NEXT:            "offset": {{[0-9]+}},1811// CHECK-NEXT:            "col": 3,1812// CHECK-NEXT:            "tokLen": 11813// CHECK-NEXT:           },1814// CHECK-NEXT:           "end": {1815// CHECK-NEXT:            "offset": {{[0-9]+}},1816// CHECK-NEXT:            "col": 21,1817// CHECK-NEXT:            "tokLen": 11818// CHECK-NEXT:           }1819// CHECK-NEXT:          },1820// CHECK-NEXT:          "variadic": true,1821// CHECK-NEXT:          "inner": [1822// CHECK-NEXT:           {1823// CHECK-NEXT:            "id": "0x{{.*}}",1824// CHECK-NEXT:            "kind": "ParmVarDecl",1825// CHECK-NEXT:            "loc": {1826// CHECK-NEXT:             "offset": {{[0-9]+}},1827// CHECK-NEXT:             "col": 9,1828// CHECK-NEXT:             "tokLen": 11829// CHECK-NEXT:            },1830// CHECK-NEXT:            "range": {1831// CHECK-NEXT:             "begin": {1832// CHECK-NEXT:              "offset": {{[0-9]+}},1833// CHECK-NEXT:              "col": 5,1834// CHECK-NEXT:              "tokLen": 31835// CHECK-NEXT:             },1836// CHECK-NEXT:             "end": {1837// CHECK-NEXT:              "offset": {{[0-9]+}},1838// CHECK-NEXT:              "col": 9,1839// CHECK-NEXT:              "tokLen": 11840// CHECK-NEXT:             }1841// CHECK-NEXT:            },1842// CHECK-NEXT:            "name": "y",1843// CHECK-NEXT:            "type": {1844// CHECK-NEXT:             "qualType": "int"1845// CHECK-NEXT:            }1846// CHECK-NEXT:           },1847// CHECK-NEXT:           {1848// CHECK-NEXT:            "kind": "Capture",1849// CHECK-NEXT:            "var": {1850// CHECK-NEXT:             "id": "0x{{.*}}",1851// CHECK-NEXT:             "kind": "ParmVarDecl",1852// CHECK-NEXT:             "name": "x",1853// CHECK-NEXT:             "type": {1854// CHECK-NEXT:              "qualType": "int"1855// CHECK-NEXT:             }1856// CHECK-NEXT:            }1857// CHECK-NEXT:           },1858// CHECK-NEXT:           {1859// CHECK-NEXT:            "id": "0x{{.*}}",1860// CHECK-NEXT:            "kind": "CompoundStmt",1861// CHECK-NEXT:            "range": {1862// CHECK-NEXT:             "begin": {1863// CHECK-NEXT:              "offset": {{[0-9]+}},1864// CHECK-NEXT:              "col": 16,1865// CHECK-NEXT:              "tokLen": 11866// CHECK-NEXT:             },1867// CHECK-NEXT:             "end": {1868// CHECK-NEXT:              "offset": {{[0-9]+}},1869// CHECK-NEXT:              "col": 21,1870// CHECK-NEXT:              "tokLen": 11871// CHECK-NEXT:             }1872// CHECK-NEXT:            },1873// CHECK-NEXT:            "inner": [1874// CHECK-NEXT:             {1875// CHECK-NEXT:              "id": "0x{{.*}}",1876// CHECK-NEXT:              "kind": "ImplicitCastExpr",1877// CHECK-NEXT:              "range": {1878// CHECK-NEXT:               "begin": {1879// CHECK-NEXT:                "offset": {{[0-9]+}},1880// CHECK-NEXT:                "col": 18,1881// CHECK-NEXT:                "tokLen": 11882// CHECK-NEXT:               },1883// CHECK-NEXT:               "end": {1884// CHECK-NEXT:                "offset": {{[0-9]+}},1885// CHECK-NEXT:                "col": 18,1886// CHECK-NEXT:                "tokLen": 11887// CHECK-NEXT:               }1888// CHECK-NEXT:              },1889// CHECK-NEXT:              "type": {1890// CHECK-NEXT:               "qualType": "int"1891// CHECK-NEXT:              },1892// CHECK-NEXT:              "valueCategory": "prvalue",1893// CHECK-NEXT:              "castKind": "LValueToRValue",1894// CHECK-NEXT:              "inner": [1895// CHECK-NEXT:               {1896// CHECK-NEXT:                "id": "0x{{.*}}",1897// CHECK-NEXT:                "kind": "DeclRefExpr",1898// CHECK-NEXT:                "range": {1899// CHECK-NEXT:                 "begin": {1900// CHECK-NEXT:                  "offset": {{[0-9]+}},1901// CHECK-NEXT:                  "col": 18,1902// CHECK-NEXT:                  "tokLen": 11903// CHECK-NEXT:                 },1904// CHECK-NEXT:                 "end": {1905// CHECK-NEXT:                  "offset": {{[0-9]+}},1906// CHECK-NEXT:                  "col": 18,1907// CHECK-NEXT:                  "tokLen": 11908// CHECK-NEXT:                 }1909// CHECK-NEXT:                },1910// CHECK-NEXT:                "type": {1911// CHECK-NEXT:                 "qualType": "const int"1912// CHECK-NEXT:                },1913// CHECK-NEXT:                "valueCategory": "lvalue",1914// CHECK-NEXT:                "referencedDecl": {1915// CHECK-NEXT:                 "id": "0x{{.*}}",1916// CHECK-NEXT:                 "kind": "ParmVarDecl",1917// CHECK-NEXT:                 "name": "x",1918// CHECK-NEXT:                 "type": {1919// CHECK-NEXT:                  "qualType": "int"1920// CHECK-NEXT:                 }1921// CHECK-NEXT:                }1922// CHECK-NEXT:               }1923// CHECK-NEXT:              ]1924// CHECK-NEXT:             }1925// CHECK-NEXT:            ]1926// CHECK-NEXT:           }1927// CHECK-NEXT:          ]1928// CHECK-NEXT:         }1929// CHECK-NEXT:        ]1930// CHECK-NEXT:       }1931// CHECK-NEXT:      ]1932// CHECK-NEXT:     }1933// CHECK-NEXT:    ]1934// CHECK-NEXT:   }1935// CHECK-NEXT:  ]1936// CHECK-NEXT: }1937 1938 1939// CHECK-NOT: {{^}}Dumping1940// CHECK:  "kind": "VarDecl",1941// CHECK-NEXT:  "loc": {1942// CHECK-NEXT:   "offset": {{[0-9]+}},1943// CHECK-NEXT:   "file": "{{.*}}",1944// CHECK-NEXT:   "line": 83,1945// CHECK-NEXT:   "col": 21,1946// CHECK-NEXT:   "tokLen": 41947// CHECK-NEXT:  },1948// CHECK-NEXT:  "range": {1949// CHECK-NEXT:   "begin": {1950// CHECK-NEXT:    "offset": {{[0-9]+}},1951// CHECK-NEXT:    "col": 3,1952// CHECK-NEXT:    "tokLen": 101953// CHECK-NEXT:   },1954// CHECK-NEXT:   "end": {1955// CHECK-NEXT:    "offset": {{[0-9]+}},1956// CHECK-NEXT:    "col": 21,1957// CHECK-NEXT:    "tokLen": 41958// CHECK-NEXT:   }1959// CHECK-NEXT:  },1960// CHECK-NEXT:  "name": "Test",1961// CHECK-NEXT:  "type": {1962// CHECK-NEXT:   "desugaredQualType": "int",1963// CHECK-NEXT:   "qualType": "typeof (B.foo)"1964// CHECK-NEXT:  }1965// CHECK-NEXT: }1966