rokups created this revision.
rokups requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
For some reason return type was not included. Even though it is present
in full type dump, it is not good enough as C++ types can get quite
complex. Besides there is no way to get a desugared version of the type
from function type string. Patch uses "returnType" json key, just like
ObjCMethodDecl dumper. I also updated tests. If anything is missing -
please let me know.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D96347
Files:
clang/lib/AST/JSONNodeDumper.cpp
clang/test/AST/ast-dump-decl-context-json.cpp
clang/test/AST/ast-dump-decl-json.c
clang/test/AST/ast-dump-decl-json.m
clang/test/AST/ast-dump-expr-json.c
clang/test/AST/ast-dump-expr-json.cpp
clang/test/AST/ast-dump-expr-json.m
clang/test/AST/ast-dump-funcs-json.cpp
clang/test/AST/ast-dump-macro-json.c
clang/test/AST/ast-dump-record-definition-data-json.cpp
clang/test/AST/ast-dump-records-json.cpp
clang/test/AST/ast-dump-stmt-json.cpp
clang/test/AST/ast-dump-stmt-json.m
clang/test/AST/ast-dump-template-decls-json.cpp
Index: clang/test/AST/ast-dump-template-decls-json.cpp
===
--- clang/test/AST/ast-dump-template-decls-json.cpp
+++ clang/test/AST/ast-dump-template-decls-json.cpp
@@ -287,6 +287,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void (Ty)"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
@@ -394,6 +397,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void (Ty...)"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
@@ -526,6 +532,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void (Ty)"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
@@ -592,6 +601,9 @@
// CHECK-NEXT:"type": {
// CHECK-NEXT: "qualType": "void (float)"
// CHECK-NEXT:},
+// CHECK-NEXT:"returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT:},
// CHECK-NEXT:"inner": [
// CHECK-NEXT: {
// CHECK-NEXT: "kind": "TemplateArgument",
@@ -776,6 +788,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void (Ty, Uy)"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
@@ -906,6 +921,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void (Ty)"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
@@ -1014,6 +1032,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void (int)"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
@@ -1176,6 +1197,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void (Ty)"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
@@ -1302,6 +1326,9 @@
// CHECK-NEXT: "name": "h",
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void ()"
+// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
// CHECK-NEXT: }
// CHECK-NEXT: }
// CHECK-NEXT:]
@@ -2468,6 +2495,9 @@
// CHECK-NEXT: "name": "f",
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void ()"
+// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
// CHECK-NEXT: }
// CHECK-NEXT: }
// CHECK-NEXT:]
@@ -2558,6 +2588,9 @@
// CHECK-NEXT: "type": {
// CHECK-NEXT: "qualType": "void ()"
// CHECK-NEXT: },
+// CHECK-NEXT: "returnType": {
+// CHECK-NEXT: "qualType": "void"
+// CHECK-NEXT: },
// CHECK-NEXT: "inner": [
// CHECK-NEXT: {
// CHECK-NEXT:"id": "0x{{.*}}",
Index: clang/test/AST/ast-dump-stmt-json.m
=