Add typedef declaration information to the JSON AST dump.
authorAaron Ballman <aaron@aaronballman.com>
Tue, 30 Jul 2019 13:42:19 +0000 (13:42 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Tue, 30 Jul 2019 13:42:19 +0000 (13:42 +0000)
When dumping a desugared QualType and the type is a type alias, also print out the id for the type alias declaration.

llvm-svn: 367312

clang/lib/AST/JSONNodeDumper.cpp
clang/test/AST/ast-dump-decl-json.m
clang/test/AST/ast-dump-expr-json.m
clang/test/AST/multistep-explicit-cast-json.cpp

index 04b933b..b0253c1 100644 (file)
@@ -238,6 +238,8 @@ llvm::json::Object JSONNodeDumper::createQualType(QualType QT, bool Desugar) {
     SplitQualType DSQT = QT.getSplitDesugaredType();
     if (DSQT != SQT)
       Ret["desugaredQualType"] = QualType::getAsString(DSQT, PrintPolicy);
+    if (const auto *TT = QT->getAs<TypedefType>())
+      Ret["typeAliasDeclId"] = createPointerRepresentation(TT->getDecl());
   }
   return Ret;
 }
index 5184106..095bb8c 100644 (file)
@@ -371,7 +371,8 @@ void f() {
 // CHECK-NEXT:    "name": "_cmd", 
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "desugaredQualType": "SEL *", 
-// CHECK-NEXT:     "qualType": "SEL"
+// CHECK-NEXT:     "qualType": "SEL", 
+// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   }, 
 // CHECK-NEXT:   {
@@ -672,7 +673,8 @@ void f() {
 // CHECK-NEXT:      "name": "_cmd", 
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "SEL *", 
-// CHECK-NEXT:       "qualType": "SEL"
+// CHECK-NEXT:       "qualType": "SEL", 
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }, 
 // CHECK-NEXT:     {
@@ -818,7 +820,8 @@ void f() {
 // CHECK-NEXT:    "name": "T", 
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "desugaredQualType": "id", 
-// CHECK-NEXT:     "qualType": "id"
+// CHECK-NEXT:     "qualType": "id", 
+// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   }
 // CHECK-NEXT:  ]
@@ -906,7 +909,8 @@ void f() {
 // CHECK-NEXT:      "name": "_cmd", 
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "SEL *", 
-// CHECK-NEXT:       "qualType": "SEL"
+// CHECK-NEXT:       "qualType": "SEL", 
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }
 // CHECK-NEXT:     }, 
 // CHECK-NEXT:     {
index 91a98f5..9fc412a 100644 (file)
@@ -612,7 +612,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "name": "s", 
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "SEL *", 
-// CHECK-NEXT:         "qualType": "SEL"
+// CHECK-NEXT:         "qualType": "SEL", 
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "init": "c", 
 // CHECK-NEXT:        "inner": [
@@ -631,7 +632,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "SEL *", 
-// CHECK-NEXT:           "qualType": "SEL"
+// CHECK-NEXT:           "qualType": "SEL", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "selector": "dealloc"
@@ -691,7 +693,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:    "name": "Obj", 
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "desugaredQualType": "id", 
-// CHECK-NEXT:     "qualType": "id"
+// CHECK-NEXT:     "qualType": "id", 
+// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    }
 // CHECK-NEXT:   }, 
 // CHECK-NEXT:   {
@@ -745,7 +748,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id"
+// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "valueCategory": "rvalue", 
 // CHECK-NEXT:        "castKind": "LValueToRValue", 
@@ -765,7 +769,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "lvalue", 
 // CHECK-NEXT:          "referencedDecl": {
@@ -774,7 +779,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:           "name": "Obj", 
 // CHECK-NEXT:           "type": {
 // CHECK-NEXT:            "desugaredQualType": "id", 
-// CHECK-NEXT:            "qualType": "id"
+// CHECK-NEXT:            "qualType": "id", 
+// CHECK-NEXT:            "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:           }
 // CHECK-NEXT:          }
 // CHECK-NEXT:         }
@@ -1843,7 +1849,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "id", 
-// CHECK-NEXT:       "qualType": "id"
+// CHECK-NEXT:       "qualType": "id", 
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "valueCategory": "rvalue", 
 // CHECK-NEXT:      "inner": [
@@ -2236,7 +2243,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id"
+// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "valueCategory": "rvalue", 
 // CHECK-NEXT:        "inner": [
@@ -2255,7 +2263,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "castKind": "NullToPointer", 
@@ -2426,7 +2435,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "inner": [
@@ -2445,7 +2455,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id"
+// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "valueCategory": "rvalue", 
 // CHECK-NEXT:            "castKind": "NullToPointer", 
@@ -2593,7 +2604,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        "name": "i", 
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id"
+// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "init": "c", 
 // CHECK-NEXT:        "inner": [
@@ -2612,7 +2624,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "inner": [
@@ -2864,7 +2877,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id"
+// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "valueCategory": "rvalue", 
 // CHECK-NEXT:            "selector": "objectAtIndexedSubscript:", 
@@ -3000,7 +3014,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "id", 
-// CHECK-NEXT:       "qualType": "id"
+// CHECK-NEXT:       "qualType": "id", 
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "valueCategory": "rvalue", 
 // CHECK-NEXT:      "inner": [
@@ -3433,7 +3448,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id"
+// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "valueCategory": "rvalue", 
 // CHECK-NEXT:        "inner": [
@@ -3452,7 +3468,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "castKind": "NullToPointer", 
@@ -3623,7 +3640,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "inner": [
@@ -3642,7 +3660,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id"
+// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "valueCategory": "rvalue", 
 // CHECK-NEXT:            "castKind": "NullToPointer", 
@@ -3726,7 +3745,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "castKind": "BitCast", 
@@ -3812,7 +3832,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "id", 
-// CHECK-NEXT:       "qualType": "id"
+// CHECK-NEXT:       "qualType": "id", 
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "valueCategory": "rvalue", 
 // CHECK-NEXT:      "opcode": "=", 
@@ -3832,7 +3853,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id"
+// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "valueCategory": "lvalue", 
 // CHECK-NEXT:        "referencedDecl": {
@@ -3841,7 +3863,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:         "name": "i", 
 // CHECK-NEXT:         "type": {
 // CHECK-NEXT:          "desugaredQualType": "id", 
-// CHECK-NEXT:          "qualType": "id"
+// CHECK-NEXT:          "qualType": "id", 
+// CHECK-NEXT:          "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }, 
@@ -3860,7 +3883,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "id", 
-// CHECK-NEXT:         "qualType": "id"
+// CHECK-NEXT:         "qualType": "id", 
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        }, 
 // CHECK-NEXT:        "valueCategory": "rvalue", 
 // CHECK-NEXT:        "inner": [
@@ -4152,7 +4176,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "type": {
 // CHECK-NEXT:           "desugaredQualType": "id", 
-// CHECK-NEXT:           "qualType": "id"
+// CHECK-NEXT:           "qualType": "id", 
+// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:          }, 
 // CHECK-NEXT:          "valueCategory": "rvalue", 
 // CHECK-NEXT:          "selector": "objectForKeyedSubscript:", 
@@ -4240,7 +4265,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "type": {
 // CHECK-NEXT:             "desugaredQualType": "id", 
-// CHECK-NEXT:             "qualType": "id"
+// CHECK-NEXT:             "qualType": "id", 
+// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:            }, 
 // CHECK-NEXT:            "valueCategory": "rvalue", 
 // CHECK-NEXT:            "castKind": "BitCast", 
@@ -4558,7 +4584,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "signed char", 
-// CHECK-NEXT:       "qualType": "BOOL"
+// CHECK-NEXT:       "qualType": "BOOL", 
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "valueCategory": "rvalue", 
 // CHECK-NEXT:      "value": "__objc_yes"
@@ -4579,7 +4606,8 @@ void TestObjCBoolLiteral() {
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "signed char", 
-// CHECK-NEXT:       "qualType": "BOOL"
+// CHECK-NEXT:       "qualType": "BOOL", 
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      }, 
 // CHECK-NEXT:      "valueCategory": "rvalue", 
 // CHECK-NEXT:      "value": "__objc_no"
index 76123c2..70c1385 100644 (file)
@@ -1092,7 +1092,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "desugaredQualType": "unsigned char",
-// CHECK-NEXT:   "qualType": "UnsignedChar"
+// CHECK-NEXT:   "qualType": "UnsignedChar",
+// CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "valueCategory": "rvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
@@ -1112,7 +1113,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "desugaredQualType": "unsigned char",
-// CHECK-NEXT:     "qualType": "UnsignedChar"
+// CHECK-NEXT:     "qualType": "UnsignedChar",
+// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "valueCategory": "rvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
@@ -1133,7 +1135,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "unsigned int",
-// CHECK-NEXT:       "qualType": "UnsignedInt"
+// CHECK-NEXT:       "qualType": "UnsignedInt",
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
@@ -1154,7 +1157,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "unsigned int",
-// CHECK-NEXT:         "qualType": "UnsignedInt"
+// CHECK-NEXT:         "qualType": "UnsignedInt",
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "referencedDecl": {
@@ -1163,7 +1167,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:         "name": "x",
 // CHECK-NEXT:         "type": {
 // CHECK-NEXT:          "desugaredQualType": "unsigned int",
-// CHECK-NEXT:          "qualType": "UnsignedInt"
+// CHECK-NEXT:          "qualType": "UnsignedInt",
+// CHECK-NEXT:          "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -1188,7 +1193,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "desugaredQualType": "signed char",
-// CHECK-NEXT:   "qualType": "SignedChar"
+// CHECK-NEXT:   "qualType": "SignedChar",
+// CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "valueCategory": "rvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
@@ -1208,7 +1214,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "desugaredQualType": "signed char",
-// CHECK-NEXT:     "qualType": "SignedChar"
+// CHECK-NEXT:     "qualType": "SignedChar",
+// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "valueCategory": "rvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
@@ -1229,7 +1236,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "unsigned int",
-// CHECK-NEXT:       "qualType": "UnsignedInt"
+// CHECK-NEXT:       "qualType": "UnsignedInt",
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
@@ -1250,7 +1258,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "unsigned int",
-// CHECK-NEXT:         "qualType": "UnsignedInt"
+// CHECK-NEXT:         "qualType": "UnsignedInt",
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "referencedDecl": {
@@ -1259,7 +1268,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:         "name": "x",
 // CHECK-NEXT:         "type": {
 // CHECK-NEXT:          "desugaredQualType": "unsigned int",
-// CHECK-NEXT:          "qualType": "UnsignedInt"
+// CHECK-NEXT:          "qualType": "UnsignedInt",
+// CHECK-NEXT:          "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -1284,7 +1294,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "desugaredQualType": "unsigned char",
-// CHECK-NEXT:   "qualType": "UnsignedChar"
+// CHECK-NEXT:   "qualType": "UnsignedChar",
+// CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "valueCategory": "rvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
@@ -1304,7 +1315,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "desugaredQualType": "unsigned char",
-// CHECK-NEXT:     "qualType": "UnsignedChar"
+// CHECK-NEXT:     "qualType": "UnsignedChar",
+// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "valueCategory": "rvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
@@ -1325,7 +1337,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "int",
-// CHECK-NEXT:       "qualType": "SignedInt"
+// CHECK-NEXT:       "qualType": "SignedInt",
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
@@ -1346,7 +1359,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "int",
-// CHECK-NEXT:         "qualType": "SignedInt"
+// CHECK-NEXT:         "qualType": "SignedInt",
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "referencedDecl": {
@@ -1355,7 +1369,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:         "name": "x",
 // CHECK-NEXT:         "type": {
 // CHECK-NEXT:          "desugaredQualType": "int",
-// CHECK-NEXT:          "qualType": "SignedInt"
+// CHECK-NEXT:          "qualType": "SignedInt",
+// CHECK-NEXT:          "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -1380,7 +1395,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "type": {
 // CHECK-NEXT:   "desugaredQualType": "signed char",
-// CHECK-NEXT:   "qualType": "SignedChar"
+// CHECK-NEXT:   "qualType": "SignedChar",
+// CHECK-NEXT:   "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "valueCategory": "rvalue",
 // CHECK-NEXT:  "castKind": "NoOp",
@@ -1400,7 +1416,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "type": {
 // CHECK-NEXT:     "desugaredQualType": "signed char",
-// CHECK-NEXT:     "qualType": "SignedChar"
+// CHECK-NEXT:     "qualType": "SignedChar",
+// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "valueCategory": "rvalue",
 // CHECK-NEXT:    "castKind": "IntegralCast",
@@ -1421,7 +1438,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "type": {
 // CHECK-NEXT:       "desugaredQualType": "int",
-// CHECK-NEXT:       "qualType": "SignedInt"
+// CHECK-NEXT:       "qualType": "SignedInt",
+// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "valueCategory": "rvalue",
 // CHECK-NEXT:      "castKind": "LValueToRValue",
@@ -1442,7 +1460,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
 // CHECK-NEXT:         "desugaredQualType": "int",
-// CHECK-NEXT:         "qualType": "SignedInt"
+// CHECK-NEXT:         "qualType": "SignedInt",
+// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "valueCategory": "lvalue",
 // CHECK-NEXT:        "referencedDecl": {
@@ -1451,7 +1470,8 @@ SignedChar cxxfunctionalcast_3(SignedInt x) {
 // CHECK-NEXT:         "name": "x",
 // CHECK-NEXT:         "type": {
 // CHECK-NEXT:          "desugaredQualType": "int",
-// CHECK-NEXT:          "qualType": "SignedInt"
+// CHECK-NEXT:          "qualType": "SignedInt",
+// CHECK-NEXT:          "typeAliasDeclId": "0x{{.*}}"
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }