Author: aaronballman Date: Fri Jun 21 10:14:25 2019 New Revision: 364078 URL: http://llvm.org/viewvc/llvm-project?rev=364078&view=rev Log: Ensure that top-level QualType objects also have a "kind" field when dumping the AST to JSON.
Modified: cfe/trunk/lib/AST/JSONNodeDumper.cpp cfe/trunk/test/AST/ast-dump-types-json.cpp Modified: cfe/trunk/lib/AST/JSONNodeDumper.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/JSONNodeDumper.cpp?rev=364078&r1=364077&r2=364078&view=diff ============================================================================== --- cfe/trunk/lib/AST/JSONNodeDumper.cpp (original) +++ cfe/trunk/lib/AST/JSONNodeDumper.cpp Fri Jun 21 10:14:25 2019 @@ -78,6 +78,7 @@ void JSONNodeDumper::Visit(const Type *T void JSONNodeDumper::Visit(QualType T) { JOS.attribute("id", createPointerRepresentation(T.getAsOpaquePtr())); + JOS.attribute("kind", "QualType"); JOS.attribute("type", createQualType(T)); JOS.attribute("qualifiers", T.split().Quals.getAsString()); } Modified: cfe/trunk/test/AST/ast-dump-types-json.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-types-json.cpp?rev=364078&r1=364077&r2=364078&view=diff ============================================================================== --- cfe/trunk/test/AST/ast-dump-types-json.cpp (original) +++ cfe/trunk/test/AST/ast-dump-types-json.cpp Fri Jun 21 10:14:25 2019 @@ -18,6 +18,8 @@ typedef void (CDECL *TestMacroQualifiedT typedef void (T::* TestMemberFunctionPointerType)(); typedef int T::*TestMemberDataPointerType; +typedef int TestQualTypePrinting(const char* c); + // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py @@ -354,5 +356,75 @@ typedef int T::*TestMemberDataPointerTyp // CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 21 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 21 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "col": 47, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 21 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestQualTypePrinting", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (const char *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionProtoType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (const char *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "cc": "cdecl", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const char" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } // CHECK-NEXT: ] // CHECK-NEXT: } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits