// RUN: %clang_cc1 -triple x86_64-apple-darwin -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s @protocol P @end @interface A @end @interface TestObjCIvarDecl : A @end @implementation TestObjCIvarDecl { int varDefault; @private int varPrivate; @protected int varProtected; @public int varPublic; @package int varPackage; } @end @interface testObjCMethodDecl : A { } - (int) TestObjCMethodDecl: (int)i, ...; @end @implementation testObjCMethodDecl - (int) TestObjCMethodDecl: (int)i, ... { return 0; } @end @protocol TestObjCProtocolDecl - (void) foo; @end @interface TestObjCClass : A

- (void) foo; @end @implementation TestObjCClass : A { int i; } - (void) foo { } @end @interface TestObjCClass (TestObjCCategoryDecl)

- (void) bar; @end @interface TestGenericInterface : A

{ } @end @implementation TestObjCClass (TestObjCCategoryDecl) - (void) bar { } @end @compatibility_alias TestObjCCompatibleAliasDecl A; @interface TestObjCProperty: A @property(getter=getterFoo, setter=setterFoo:) int foo; @property int bar; @end @implementation TestObjCProperty { int i; } @synthesize foo=i; @synthesize bar; @end void TestBlockDecl(int x) { ^(int y, ...){ x; }; } @interface B + (int) foo; @end void f() { __typeof__(B.foo) Test; } // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py // CHECK: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 172, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 9, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 16 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 161, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 194, // CHECK-NEXT: "line": 10, // CHECK-NEXT: "col": 2, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCIvarDecl", // CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCIvarDecl", // CHECK-NEXT: "super": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "A" // CHECK-NEXT: }, // CHECK-NEXT: "implementation": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCImplementationDecl", // CHECK-NEXT: "name": "TestObjCIvarDecl" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK: "kind": "ObjCImplementationDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 215, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 12, // CHECK-NEXT: "col": 17, // CHECK-NEXT: "tokLen": 16 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 199, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 364, // CHECK-NEXT: "line": 19, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCIvarDecl", // CHECK-NEXT: "super": { // CHECK-NEXT: "id": "0x0" // CHECK-NEXT: }, // CHECK-NEXT: "interface": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "TestObjCIvarDecl" // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 240, // CHECK-NEXT: "line": 13, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 236, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 240, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "varDefault", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "access": "private" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 267, // CHECK-NEXT: "line": 14, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 263, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 267, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "varPrivate", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "access": "private" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 296, // CHECK-NEXT: "line": 15, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 12 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 292, // CHECK-NEXT: "col": 14, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 296, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 12 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "varProtected", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "access": "protected" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 324, // CHECK-NEXT: "line": 16, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 9 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 320, // CHECK-NEXT: "col": 11, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 324, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 9 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "varPublic", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "access": "public" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 350, // CHECK-NEXT: "line": 17, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 346, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 350, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "varPackage", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "access": "package" // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 408, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 23, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 408, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 447, // CHECK-NEXT: "col": 40, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCMethodDecl:", // CHECK-NEXT: "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "variadic": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 441, // CHECK-NEXT: "col": 34, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 437, // CHECK-NEXT: "col": 30, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 441, // CHECK-NEXT: "col": 34, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "i", // CHECK-NEXT: "mangledName": "_i", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 490, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 27, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 490, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 544, // CHECK-NEXT: "line": 29, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCMethodDecl:", // CHECK-NEXT: "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "variadic": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ImplicitParamDecl", // CHECK-NEXT: "loc": {}, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": {}, // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "self", // CHECK-NEXT: "mangledName": "_self", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "testObjCMethodDecl *" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ImplicitParamDecl", // CHECK-NEXT: "loc": {}, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": {}, // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "_cmd", // CHECK-NEXT: "mangledName": "__cmd", // CHECK-NEXT: "type": { // CHECK-NEXT: "desugaredQualType": "SEL *", // CHECK-NEXT: "qualType": "SEL", // CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 523, // CHECK-NEXT: "line": 27, // CHECK-NEXT: "col": 34, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 519, // CHECK-NEXT: "col": 30, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 523, // CHECK-NEXT: "col": 34, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "i", // CHECK-NEXT: "mangledName": "_i", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "CompoundStmt", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 530, // CHECK-NEXT: "col": 41, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 544, // CHECK-NEXT: "line": 29, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ReturnStmt", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 534, // CHECK-NEXT: "line": 28, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 541, // CHECK-NEXT: "col": 10, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "IntegerLiteral", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 541, // CHECK-NEXT: "col": 10, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 541, // CHECK-NEXT: "col": 10, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "valueCategory": "rvalue", // CHECK-NEXT: "value": "0" // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCProtocolDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 562, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 32, // CHECK-NEXT: "col": 11, // CHECK-NEXT: "tokLen": 20 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 552, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 598, // CHECK-NEXT: "line": 34, // CHECK-NEXT: "col": 2, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCProtocolDecl", // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 583, // CHECK-NEXT: "line": 33, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 583, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 595, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "foo", // CHECK-NEXT: "mangledName": "-[TestObjCProtocolDecl foo]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 614, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 36, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 13 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 603, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 651, // CHECK-NEXT: "line": 38, // CHECK-NEXT: "col": 2, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCClass", // CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCClass", // CHECK-NEXT: "super": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "A" // CHECK-NEXT: }, // CHECK-NEXT: "implementation": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCImplementationDecl", // CHECK-NEXT: "name": "TestObjCClass" // CHECK-NEXT: }, // CHECK-NEXT: "protocols": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCProtocolDecl", // CHECK-NEXT: "name": "P" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 636, // CHECK-NEXT: "line": 37, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 636, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 648, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "foo", // CHECK-NEXT: "mangledName": "-[TestObjCClass foo]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCImplementationDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 672, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 40, // CHECK-NEXT: "col": 17, // CHECK-NEXT: "tokLen": 13 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 656, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 720, // CHECK-NEXT: "line": 45, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCClass", // CHECK-NEXT: "super": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "A" // CHECK-NEXT: }, // CHECK-NEXT: "interface": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "TestObjCClass" // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 698, // CHECK-NEXT: "line": 41, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 694, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 698, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "i", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "access": "private" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 703, // CHECK-NEXT: "line": 43, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 703, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 718, // CHECK-NEXT: "line": 44, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "foo", // CHECK-NEXT: "mangledName": "-[TestObjCClass foo]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ImplicitParamDecl", // CHECK-NEXT: "loc": {}, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": {}, // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "self", // CHECK-NEXT: "mangledName": "_self", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "TestObjCClass *" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ImplicitParamDecl", // CHECK-NEXT: "loc": {}, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": {}, // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "_cmd", // CHECK-NEXT: "mangledName": "__cmd", // CHECK-NEXT: "type": { // CHECK-NEXT: "desugaredQualType": "SEL *", // CHECK-NEXT: "qualType": "SEL", // CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "CompoundStmt", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 716, // CHECK-NEXT: "line": 43, // CHECK-NEXT: "col": 14, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 718, // CHECK-NEXT: "line": 44, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCCategoryDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 737, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 47, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 13 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 726, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 793, // CHECK-NEXT: "line": 49, // CHECK-NEXT: "col": 2, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCCategoryDecl", // CHECK-NEXT: "interface": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "TestObjCClass" // CHECK-NEXT: }, // CHECK-NEXT: "implementation": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCCategoryImplDecl", // CHECK-NEXT: "name": "TestObjCCategoryDecl" // CHECK-NEXT: }, // CHECK-NEXT: "protocols": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCProtocolDecl", // CHECK-NEXT: "name": "P" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 778, // CHECK-NEXT: "line": 48, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 778, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 790, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 809, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 51, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 20 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 798, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 845, // CHECK-NEXT: "line": 53, // CHECK-NEXT: "col": 2, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestGenericInterface", // CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestGenericInterface", // CHECK-NEXT: "super": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "A" // CHECK-NEXT: }, // CHECK-NEXT: "implementation": { // CHECK-NEXT: "id": "0x0" // CHECK-NEXT: }, // CHECK-NEXT: "protocols": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCProtocolDecl", // CHECK-NEXT: "name": "P" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCTypeParamDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 830, // CHECK-NEXT: "line": 51, // CHECK-NEXT: "col": 33, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 830, // CHECK-NEXT: "col": 33, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 830, // CHECK-NEXT: "col": 33, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "T", // CHECK-NEXT: "type": { // CHECK-NEXT: "desugaredQualType": "id", // CHECK-NEXT: "qualType": "id", // CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCCategoryImplDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 866, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 55, // CHECK-NEXT: "col": 17, // CHECK-NEXT: "tokLen": 13 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 850, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 920, // CHECK-NEXT: "line": 58, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCCategoryDecl", // CHECK-NEXT: "interface": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "TestObjCClass" // CHECK-NEXT: }, // CHECK-NEXT: "categoryDecl": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCCategoryDecl", // CHECK-NEXT: "name": "TestObjCCategoryDecl" // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 903, // CHECK-NEXT: "line": 56, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 903, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 918, // CHECK-NEXT: "line": 57, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ImplicitParamDecl", // CHECK-NEXT: "loc": {}, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": {}, // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "self", // CHECK-NEXT: "mangledName": "_self", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "TestObjCClass *" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ImplicitParamDecl", // CHECK-NEXT: "loc": {}, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": {}, // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "_cmd", // CHECK-NEXT: "mangledName": "__cmd", // CHECK-NEXT: "type": { // CHECK-NEXT: "desugaredQualType": "SEL *", // CHECK-NEXT: "qualType": "SEL", // CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "CompoundStmt", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 916, // CHECK-NEXT: "line": 56, // CHECK-NEXT: "col": 14, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 918, // CHECK-NEXT: "line": 57, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCCompatibleAliasDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 926, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 60, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 926, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 926, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCCompatibleAliasDecl", // CHECK-NEXT: "interface": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "A" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 990, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 62, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 16 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 979, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1086, // CHECK-NEXT: "line": 65, // CHECK-NEXT: "col": 2, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCProperty", // CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCProperty", // CHECK-NEXT: "super": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "A" // CHECK-NEXT: }, // CHECK-NEXT: "implementation": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCImplementationDecl", // CHECK-NEXT: "name": "TestObjCProperty" // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCPropertyDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "line": 63, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1010, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "foo", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "getter": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "name": "getterFoo" // CHECK-NEXT: }, // CHECK-NEXT: "setter": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "name": "setterFoo:" // CHECK-NEXT: }, // CHECK-NEXT: "assign": true, // CHECK-NEXT: "readwrite": true, // CHECK-NEXT: "atomic": true, // CHECK-NEXT: "unsafe_unretained": true // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCPropertyDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "line": 64, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1066, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "assign": true, // CHECK-NEXT: "readwrite": true, // CHECK-NEXT: "atomic": true, // CHECK-NEXT: "unsafe_unretained": true // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "line": 63, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "getterFoo", // CHECK-NEXT: "mangledName": "-[TestObjCProperty getterFoo]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "setterFoo:", // CHECK-NEXT: "mangledName": "-[TestObjCProperty setterFoo:]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "foo", // CHECK-NEXT: "mangledName": "_foo", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "line": 64, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "mangledName": "-[TestObjCProperty bar]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "setBar:", // CHECK-NEXT: "mangledName": "-[TestObjCProperty setBar:]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "mangledName": "_bar", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "ObjCImplementationDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1107, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 67, // CHECK-NEXT: "col": 17, // CHECK-NEXT: "tokLen": 16 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1091, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1173, // CHECK-NEXT: "line": 72, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestObjCProperty", // CHECK-NEXT: "super": { // CHECK-NEXT: "id": "0x0" // CHECK-NEXT: }, // CHECK-NEXT: "interface": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCInterfaceDecl", // CHECK-NEXT: "name": "TestObjCProperty" // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1132, // CHECK-NEXT: "line": 68, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1128, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1132, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "i", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "access": "private" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCPropertyImplDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1149, // CHECK-NEXT: "line": 70, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1137, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1153, // CHECK-NEXT: "col": 17, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "foo", // CHECK-NEXT: "implKind": "synthesize", // CHECK-NEXT: "propertyDecl": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCPropertyDecl", // CHECK-NEXT: "name": "foo" // CHECK-NEXT: }, // CHECK-NEXT: "ivarDecl": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "name": "i", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1168, // CHECK-NEXT: "line": 71, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1168, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1168, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "synthesized": true, // CHECK-NEXT: "access": "private" // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCPropertyImplDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1168, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1156, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1168, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "implKind": "synthesize", // CHECK-NEXT: "propertyDecl": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCPropertyDecl", // CHECK-NEXT: "name": "bar" // CHECK-NEXT: }, // CHECK-NEXT: "ivarDecl": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCIvarDecl", // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1137, // CHECK-NEXT: "line": 70, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1137, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1149, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "getterFoo", // CHECK-NEXT: "mangledName": "-[TestObjCProperty getterFoo]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1137, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1137, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1149, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "setterFoo:", // CHECK-NEXT: "mangledName": "-[TestObjCProperty setterFoo:]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "line": 63, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1061, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "foo", // CHECK-NEXT: "mangledName": "_foo", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1156, // CHECK-NEXT: "line": 71, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1156, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1168, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "mangledName": "-[TestObjCProperty bar]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ObjCMethodDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1156, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1156, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1168, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "setBar:", // CHECK-NEXT: "mangledName": "-[TestObjCProperty setBar:]", // CHECK-NEXT: "returnType": { // CHECK-NEXT: "qualType": "void" // CHECK-NEXT: }, // CHECK-NEXT: "instance": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "line": 64, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1080, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "mangledName": "_bar", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "FunctionDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1184, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 74, // CHECK-NEXT: "col": 6, // CHECK-NEXT: "tokLen": 13 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1179, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 4 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1230, // CHECK-NEXT: "line": 76, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "TestBlockDecl", // CHECK-NEXT: "mangledName": "_TestBlockDecl", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "void (int)" // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1202, // CHECK-NEXT: "line": 74, // CHECK-NEXT: "col": 24, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1198, // CHECK-NEXT: "col": 20, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1202, // CHECK-NEXT: "col": 24, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "isUsed": true, // CHECK-NEXT: "name": "x", // CHECK-NEXT: "mangledName": "_x", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "CompoundStmt", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1205, // CHECK-NEXT: "col": 27, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1230, // CHECK-NEXT: "line": 76, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ExprWithCleanups", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1209, // CHECK-NEXT: "line": 75, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1227, // CHECK-NEXT: "col": 21, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "void (^)(int, ...)" // CHECK-NEXT: }, // CHECK-NEXT: "valueCategory": "rvalue", // CHECK-NEXT: "cleanupsHaveSideEffects": true, // CHECK-NEXT: "cleanups": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "BlockDecl" // CHECK-NEXT: } // CHECK-NEXT: ], // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "BlockExpr", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1209, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1227, // CHECK-NEXT: "col": 21, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "void (^)(int, ...)" // CHECK-NEXT: }, // CHECK-NEXT: "valueCategory": "rvalue", // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "BlockDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1209, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1209, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1227, // CHECK-NEXT: "col": 21, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "variadic": true, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1215, // CHECK-NEXT: "col": 9, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1211, // CHECK-NEXT: "col": 5, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1215, // CHECK-NEXT: "col": 9, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "y", // CHECK-NEXT: "mangledName": "_y", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "kind": "Capture", // CHECK-NEXT: "var": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "name": "x", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "CompoundStmt", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1222, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1227, // CHECK-NEXT: "col": 21, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ImplicitCastExpr", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1224, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1224, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, // CHECK-NEXT: "valueCategory": "rvalue", // CHECK-NEXT: "castKind": "LValueToRValue", // CHECK-NEXT: "inner": [ // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "DeclRefExpr", // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1224, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1224, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "const int" // CHECK-NEXT: }, // CHECK-NEXT: "valueCategory": "lvalue", // CHECK-NEXT: "referencedDecl": { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "name": "x", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: }, // CHECK-NEXT: { // CHECK-NEXT: "id": "0x{{.*}}", // CHECK-NEXT: "kind": "ParmVarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1215, // CHECK-NEXT: "col": 9, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1211, // CHECK-NEXT: "col": 5, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1215, // CHECK-NEXT: "col": 9, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "y", // CHECK-NEXT: "mangledName": "_y", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } // CHECK: "kind": "VarDecl", // CHECK-NEXT: "loc": { // CHECK-NEXT: "offset": 1296, // CHECK-NEXT: "file": "{{.*}}", // CHECK-NEXT: "line": 83, // CHECK-NEXT: "col": 21, // CHECK-NEXT: "tokLen": 4 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1278, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1296, // CHECK-NEXT: "col": 21, // CHECK-NEXT: "tokLen": 4 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "Test", // CHECK-NEXT: "mangledName": "_Test", // CHECK-NEXT: "type": { // CHECK-NEXT: "desugaredQualType": "int", // CHECK-NEXT: "qualType": "typeof (B.foo)" // CHECK-NEXT: } // CHECK-NEXT: }