// RUN: %clang_cc1 -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": 144, // 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": 133, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 166, // 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": 187, // 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": 171, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 336, // 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": 212, // CHECK-NEXT: "line": 13, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 208, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 212, // 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": 239, // CHECK-NEXT: "line": 14, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 235, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 239, // 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": 268, // CHECK-NEXT: "line": 15, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 12 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 264, // CHECK-NEXT: "col": 14, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 268, // 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": 296, // CHECK-NEXT: "line": 16, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 9 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 292, // CHECK-NEXT: "col": 11, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 296, // 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": 322, // CHECK-NEXT: "line": 17, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 318, // CHECK-NEXT: "col": 12, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 322, // 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": 380, // 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": 380, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 419, // 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": 413, // CHECK-NEXT: "col": 34, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 409, // CHECK-NEXT: "col": 30, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 413, // 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": 462, // 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": 462, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 516, // 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": 495, // CHECK-NEXT: "line": 27, // CHECK-NEXT: "col": 34, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 491, // CHECK-NEXT: "col": 30, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 495, // 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": 502, // CHECK-NEXT: "col": 41, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 516, // 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": 506, // CHECK-NEXT: "line": 28, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 513, // 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": 513, // CHECK-NEXT: "col": 10, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 513, // 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": 534, // 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": 524, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 570, // 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": 555, // CHECK-NEXT: "line": 33, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 555, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 567, // 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": 586, // 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": 575, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 623, // 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": 608, // CHECK-NEXT: "line": 37, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 608, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 620, // 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": 644, // 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": 628, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 692, // 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": 670, // CHECK-NEXT: "line": 41, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 666, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 670, // 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": 675, // CHECK-NEXT: "line": 43, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 675, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 690, // 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": 688, // CHECK-NEXT: "line": 43, // CHECK-NEXT: "col": 14, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 690, // 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": 709, // 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": 698, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 765, // 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": 750, // CHECK-NEXT: "line": 48, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 750, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 762, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } // CHECK-NEXT: }, // CHECK-NEXT: "name": "bar", // CHECK-NEXT: "mangledName": "-[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": 781, // 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": 770, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 817, // 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": 802, // CHECK-NEXT: "line": 51, // CHECK-NEXT: "col": 33, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 802, // CHECK-NEXT: "col": 33, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 802, // 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": 838, // 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": 822, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 892, // 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": 875, // CHECK-NEXT: "line": 56, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 875, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 890, // 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": 888, // CHECK-NEXT: "line": 56, // CHECK-NEXT: "col": 14, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 890, // 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": 898, // 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": 898, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 898, // 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": 962, // 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": 951, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1058, // 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": 1033, // CHECK-NEXT: "line": 63, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 982, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1033, // 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": 1052, // CHECK-NEXT: "line": 64, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1038, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1052, // 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": 1033, // CHECK-NEXT: "line": 63, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1033, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1033, // 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": 1033, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1033, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1033, // 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": 1033, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1033, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1033, // 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": 1052, // CHECK-NEXT: "line": 64, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1052, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1052, // 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": 1052, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1052, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1052, // 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": 1052, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1052, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1052, // 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": 1079, // 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": 1063, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1145, // 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": 1104, // CHECK-NEXT: "line": 68, // CHECK-NEXT: "col": 7, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1100, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1104, // 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": 1121, // CHECK-NEXT: "line": 70, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1109, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1125, // 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": 1140, // CHECK-NEXT: "line": 71, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1140, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1140, // 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": 1140, // CHECK-NEXT: "col": 13, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1128, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1140, // 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": 1109, // CHECK-NEXT: "line": 70, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1109, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1121, // 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": 1109, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1109, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1121, // 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": 1033, // CHECK-NEXT: "line": 63, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1033, // CHECK-NEXT: "col": 52, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1033, // 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": 1128, // CHECK-NEXT: "line": 71, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1128, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1140, // 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": 1128, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1128, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1140, // 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": 1052, // CHECK-NEXT: "line": 64, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1052, // CHECK-NEXT: "col": 15, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1052, // 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": 1156, // 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": 1151, // CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 4 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1202, // 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": 1174, // CHECK-NEXT: "line": 74, // CHECK-NEXT: "col": 24, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1170, // CHECK-NEXT: "col": 20, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1174, // 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": 1177, // CHECK-NEXT: "col": 27, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1202, // 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": 1181, // CHECK-NEXT: "line": 75, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1199, // 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": 1181, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1199, // 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": 1181, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1181, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1199, // 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": 1187, // CHECK-NEXT: "col": 9, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1183, // CHECK-NEXT: "col": 5, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1187, // 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": 1194, // CHECK-NEXT: "col": 16, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1199, // 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": 1196, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1196, // 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": 1196, // CHECK-NEXT: "col": 18, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1196, // 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": 1187, // CHECK-NEXT: "col": 9, // CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { // CHECK-NEXT: "offset": 1183, // CHECK-NEXT: "col": 5, // CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1187, // 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": 1268, // 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": 1250, // CHECK-NEXT: "col": 3, // CHECK-NEXT: "tokLen": 10 // CHECK-NEXT: }, // CHECK-NEXT: "end": { // CHECK-NEXT: "offset": 1268, // 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: }