[clang] [clang] Reduce one of JSON dump tests (PR #195026)

Vlad Serebrennikov via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 30 00:30:16 PDT 2026


https://github.com/Endilll created https://github.com/llvm/llvm-project/pull/195026

#125791 introduced `strict-pack-match` flag for `ClassTemplateSpecializationDecl`, and covered it with AST dump tests in `ast-dump-template.cpp`, in both textual and JSON formats. However, JSON test was generated by a script, which made it overspecified. This PR extracts the relevant part of ≈9200 lines of FileCheck directives.

>From 88c2a03870a2479e51c158a6a7473aede6ab557c Mon Sep 17 00:00:00 2001
From: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
Date: Thu, 30 Apr 2026 10:19:26 +0300
Subject: [PATCH] [clang] Reduce one of JSON dump tests

---
 clang/test/AST/ast-dump-templates.cpp | 9352 +------------------------
 1 file changed, 13 insertions(+), 9339 deletions(-)

diff --git a/clang/test/AST/ast-dump-templates.cpp b/clang/test/AST/ast-dump-templates.cpp
index bd89d3a75486a..f00ec4dba7e21 100644
--- a/clang/test/AST/ast-dump-templates.cpp
+++ b/clang/test/AST/ast-dump-templates.cpp
@@ -128,15 +128,23 @@ void func() {
 }
 
 namespace test7 {
-  template <template<class> class TT> struct A {};
+  template <template<class> class TT> struct AA {};
   template <class...> class B {};
-  template struct A<B>;
+  template struct AA<B>;
 // DUMP-LABEL: NamespaceDecl {{.*}} test7{{$}}
-// DUMP:       ClassTemplateDecl 0x{{.+}} A{{$}}
+// DUMP:       ClassTemplateDecl 0x{{.+}} AA{{$}}
 // DUMP-NEXT:  |-TemplateTemplateParmDecl
 // DUMP-NEXT:  | `-TemplateTypeParmDecl
-// DUMP-NEXT:  |-CXXRecordDecl 0x[[TEST7_PAT:[^ ]+]] {{.+}} struct A definition
-// DUMP:       ClassTemplateSpecializationDecl {{.*}} struct A definition instantiated_from 0x[[TEST7_PAT]] explicit_instantiation_definition strict-pack-match{{$}}
+// DUMP-NEXT:  |-CXXRecordDecl 0x[[TEST7_PAT:[^ ]+]] {{.+}} struct AA definition
+// DUMP:       ClassTemplateSpecializationDecl {{.*}} struct AA definition instantiated_from 0x[[TEST7_PAT]] explicit_instantiation_definition strict-pack-match{{$}}
+
+// JSON:       "name": "test7",
+// JSON:        "kind": "ClassTemplateSpecializationDecl",
+// JSON:        "name": "AA",
+// JSON-NEXT:   "tagUsed": "struct",
+// JSON-NEXT:   "completeDefinition": true,
+// JSON-NEXT:   "strict-pack-match": true,
+// JSON:       "name": "test8",
 } // namespce test7
 
 namespace test8 {
@@ -276,9337 +284,3 @@ namespace TestAbbreviatedTemplateDecls {
 // DUMP: FunctionTemplateDecl {{.*}} <line:[[@LINE-4]]:3, line:[[@LINE-3]]:21> col:8 mixed
 
 } // namespace TestAbbreviatedTemplateDecls
-
-// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
-
-
-// JSON-NOT: {{^}}Dumping
-// JSON:  "kind": "TranslationUnitDecl",
-// JSON-NEXT:  "loc": {},
-// JSON-NEXT:  "range": {
-// JSON-NEXT:   "begin": {},
-// JSON-NEXT:   "end": {}
-// JSON-NEXT:  },
-// JSON-NEXT:  "inner": [
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "TypedefDecl",
-// JSON-NEXT:    "loc": {},
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {},
-// JSON-NEXT:     "end": {}
-// JSON-NEXT:    },
-// JSON-NEXT:    "isImplicit": true,
-// JSON-NEXT:    "name": "__int128_t",
-// JSON-NEXT:    "type": {
-// JSON-NEXT:     "qualType": "__int128"
-// JSON-NEXT:    },
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "BuiltinType",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "__int128"
-// JSON-NEXT:      }
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "TypedefDecl",
-// JSON-NEXT:    "loc": {},
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {},
-// JSON-NEXT:     "end": {}
-// JSON-NEXT:    },
-// JSON-NEXT:    "isImplicit": true,
-// JSON-NEXT:    "name": "__uint128_t",
-// JSON-NEXT:    "type": {
-// JSON-NEXT:     "qualType": "unsigned __int128"
-// JSON-NEXT:    },
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "BuiltinType",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "unsigned __int128"
-// JSON-NEXT:      }
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "TypedefDecl",
-// JSON-NEXT:    "loc": {},
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {},
-// JSON-NEXT:     "end": {}
-// JSON-NEXT:    },
-// JSON-NEXT:    "isImplicit": true,
-// JSON-NEXT:    "name": "__NSConstantString",
-// JSON-NEXT:    "type": {
-// JSON-NEXT:     "qualType": "__NSConstantString_tag"
-// JSON-NEXT:    },
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "RecordType",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "__NSConstantString_tag"
-// JSON-NEXT:      },
-// JSON-NEXT:      "decl": {
-// JSON-NEXT:       "id": "0x{{.*}}",
-// JSON-NEXT:       "kind": "CXXRecordDecl",
-// JSON-NEXT:       "name": "__NSConstantString_tag"
-// JSON-NEXT:      }
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "TypedefDecl",
-// JSON-NEXT:    "loc": {},
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {},
-// JSON-NEXT:     "end": {}
-// JSON-NEXT:    },
-// JSON-NEXT:    "isImplicit": true,
-// JSON-NEXT:    "name": "__builtin_ms_va_list",
-// JSON-NEXT:    "type": {
-// JSON-NEXT:     "qualType": "char *"
-// JSON-NEXT:    },
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "PointerType",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "char *"
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "BuiltinType",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "char"
-// JSON-NEXT:        }
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "TypedefDecl",
-// JSON-NEXT:    "loc": {},
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {},
-// JSON-NEXT:     "end": {}
-// JSON-NEXT:    },
-// JSON-NEXT:    "isImplicit": true,
-// JSON-NEXT:    "name": "__builtin_va_list",
-// JSON-NEXT:    "type": {
-// JSON-NEXT:     "qualType": "__va_list_tag[1]"
-// JSON-NEXT:    },
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ConstantArrayType",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "__va_list_tag[1]"
-// JSON-NEXT:      },
-// JSON-NEXT:      "size": 1,
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "RecordType",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "__va_list_tag"
-// JSON-NEXT:        },
-// JSON-NEXT:        "decl": {
-// JSON-NEXT:         "id": "0x{{.*}}",
-// JSON-NEXT:         "kind": "CXXRecordDecl",
-// JSON-NEXT:         "name": "__va_list_tag"
-// JSON-NEXT:        }
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "ClassTemplateDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 812,
-// JSON-NEXT:     "file": "{{.*}}",
-// JSON-NEXT:     "line": 15,
-// JSON-NEXT:     "col": 8,
-// JSON-NEXT:     "tokLen": 3
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 765,
-// JSON-NEXT:      "line": 14,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 8
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 879,
-// JSON-NEXT:      "line": 19,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "isReferenced": true,
-// JSON-NEXT:    "name": "foo",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 779,
-// JSON-NEXT:       "line": 14,
-// JSON-NEXT:       "col": 15,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 775,
-// JSON-NEXT:        "col": 11,
-// JSON-NEXT:        "tokLen": 3
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 779,
-// JSON-NEXT:        "col": 15,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "X",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "int"
-// JSON-NEXT:      },
-// JSON-NEXT:      "depth": 0,
-// JSON-NEXT:      "index": 0
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 791,
-// JSON-NEXT:       "col": 27,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 782,
-// JSON-NEXT:        "col": 18,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 791,
-// JSON-NEXT:        "col": 27,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "Y",
-// JSON-NEXT:      "tagUsed": "typename",
-// JSON-NEXT:      "depth": 0,
-// JSON-NEXT:      "index": 1
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 798,
-// JSON-NEXT:       "col": 34,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 794,
-// JSON-NEXT:        "col": 30,
-// JSON-NEXT:        "tokLen": 3
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 802,
-// JSON-NEXT:        "col": 38,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "Z",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "int"
-// JSON-NEXT:      },
-// JSON-NEXT:      "depth": 0,
-// JSON-NEXT:      "index": 2,
-// JSON-NEXT:      "defaultArg": {
-// JSON-NEXT:       "kind": "TemplateArgument",
-// JSON-NEXT:       "isExpr": true
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 802,
-// JSON-NEXT:          "col": 38,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 802,
-// JSON-NEXT:          "col": 38,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isExpr": true,
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "IntegerLiteral",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 802,
-// JSON-NEXT:            "col": 38,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 802,
-// JSON-NEXT:            "col": 38,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "prvalue",
-// JSON-NEXT:          "value": "5"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "CXXRecordDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 812,
-// JSON-NEXT:       "line": 15,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 3
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 805,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 6
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 879,
-// JSON-NEXT:        "line": 19,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "foo",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "nonTrivial": true,
-// JSON-NEXT:        "userProvided": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasUserDeclaredConstructor": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "line": 15,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 805,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FieldDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 824,
-// JSON-NEXT:         "line": 16,
-// JSON-NEXT:         "col": 7,
-// JSON-NEXT:         "tokLen": 8
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 820,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 824,
-// JSON-NEXT:          "col": 7,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "constant",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "int"
-// JSON-NEXT:        }
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXConstructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 836,
-// JSON-NEXT:         "line": 17,
-// JSON-NEXT:         "col": 3,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 836,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 843,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "foo<X, Y, Z>",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 842,
-// JSON-NEXT:            "col": 9,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 843,
-// JSON-NEXT:            "col": 10,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXMethodDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 849,
-// JSON-NEXT:         "line": 18,
-// JSON-NEXT:         "col": 5,
-// JSON-NEXT:         "tokLen": 6
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 847,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 877,
-// JSON-NEXT:          "col": 33,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "getSum",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "Y ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 858,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 877,
-// JSON-NEXT:            "col": 33,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ReturnStmt",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 860,
-// JSON-NEXT:              "col": 16,
-// JSON-NEXT:              "tokLen": 6
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 874,
-// JSON-NEXT:              "col": 30,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "CXXUnresolvedConstructExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 867,
-// JSON-NEXT:                "col": 23,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 874,
-// JSON-NEXT:                "col": 30,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "Y"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "BinaryOperator",
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 869,
-// JSON-NEXT:                  "col": 25,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 873,
-// JSON-NEXT:                  "col": 29,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "int"
-// JSON-NEXT:                },
-// JSON-NEXT:                "valueCategory": "prvalue",
-// JSON-NEXT:                "opcode": "+",
-// JSON-NEXT:                "inner": [
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "DeclRefExpr",
-// JSON-NEXT:                  "range": {
-// JSON-NEXT:                   "begin": {
-// JSON-NEXT:                    "offset": 869,
-// JSON-NEXT:                    "col": 25,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   },
-// JSON-NEXT:                   "end": {
-// JSON-NEXT:                    "offset": 869,
-// JSON-NEXT:                    "col": 25,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   }
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "int"
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "valueCategory": "prvalue",
-// JSON-NEXT:                  "referencedDecl": {
-// JSON-NEXT:                   "id": "0x{{.*}}",
-// JSON-NEXT:                   "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:                   "name": "X",
-// JSON-NEXT:                   "type": {
-// JSON-NEXT:                    "qualType": "int"
-// JSON-NEXT:                   }
-// JSON-NEXT:                  }
-// JSON-NEXT:                 },
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "DeclRefExpr",
-// JSON-NEXT:                  "range": {
-// JSON-NEXT:                   "begin": {
-// JSON-NEXT:                    "offset": 873,
-// JSON-NEXT:                    "col": 29,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   },
-// JSON-NEXT:                   "end": {
-// JSON-NEXT:                    "offset": 873,
-// JSON-NEXT:                    "col": 29,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   }
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "int"
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "valueCategory": "prvalue",
-// JSON-NEXT:                  "referencedDecl": {
-// JSON-NEXT:                   "id": "0x{{.*}}",
-// JSON-NEXT:                   "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:                   "name": "Z",
-// JSON-NEXT:                   "type": {
-// JSON-NEXT:                    "qualType": "int"
-// JSON-NEXT:                   }
-// JSON-NEXT:                  }
-// JSON-NEXT:                 }
-// JSON-NEXT:                ]
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 812,
-// JSON-NEXT:       "line": 15,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 3
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 765,
-// JSON-NEXT:        "line": 14,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 879,
-// JSON-NEXT:        "line": 19,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "foo",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "canPassInRegisters": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "nonTrivial": true,
-// JSON-NEXT:        "userProvided": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasUserDeclaredConstructor": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": 5
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "int"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "BuiltinType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": 5
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "line": 15,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 805,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FieldDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 824,
-// JSON-NEXT:         "line": 16,
-// JSON-NEXT:         "col": 7,
-// JSON-NEXT:         "tokLen": 8
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 820,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 824,
-// JSON-NEXT:          "col": 7,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "constant",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "int"
-// JSON-NEXT:        }
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXConstructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 836,
-// JSON-NEXT:         "line": 17,
-// JSON-NEXT:         "col": 3,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 836,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 843,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isUsed": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi5EiLi5EEC1Ev",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 842,
-// JSON-NEXT:            "col": 9,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 843,
-// JSON-NEXT:            "col": 10,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXMethodDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 849,
-// JSON-NEXT:         "line": 18,
-// JSON-NEXT:         "col": 5,
-// JSON-NEXT:         "tokLen": 6
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 847,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 877,
-// JSON-NEXT:          "col": 33,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isUsed": true,
-// JSON-NEXT:        "name": "getSum",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi5EiLi5EE6getSumEv",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "int ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 858,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 877,
-// JSON-NEXT:            "col": 33,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ReturnStmt",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 860,
-// JSON-NEXT:              "col": 16,
-// JSON-NEXT:              "tokLen": 6
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 874,
-// JSON-NEXT:              "col": 30,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "CXXFunctionalCastExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 867,
-// JSON-NEXT:                "col": 23,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 874,
-// JSON-NEXT:                "col": 30,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "castKind": "NoOp",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "BinaryOperator",
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 869,
-// JSON-NEXT:                  "col": 25,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 873,
-// JSON-NEXT:                  "col": 29,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "int"
-// JSON-NEXT:                },
-// JSON-NEXT:                "valueCategory": "prvalue",
-// JSON-NEXT:                "opcode": "+",
-// JSON-NEXT:                "inner": [
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "SubstNonTypeTemplateParmExpr",
-// JSON-NEXT:                  "range": {
-// JSON-NEXT:                   "begin": {
-// JSON-NEXT:                    "offset": 869,
-// JSON-NEXT:                    "col": 25,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   },
-// JSON-NEXT:                   "end": {
-// JSON-NEXT:                    "offset": 869,
-// JSON-NEXT:                    "col": 25,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   }
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "int"
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "valueCategory": "prvalue",
-// JSON-NEXT:                  "inner": [
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:                    "loc": {
-// JSON-NEXT:                     "offset": 779,
-// JSON-NEXT:                     "line": 14,
-// JSON-NEXT:                     "col": 15,
-// JSON-NEXT:                     "tokLen": 1
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 775,
-// JSON-NEXT:                      "col": 11,
-// JSON-NEXT:                      "tokLen": 3
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 779,
-// JSON-NEXT:                      "col": 15,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "isReferenced": true,
-// JSON-NEXT:                    "name": "X",
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "int"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "depth": 0,
-// JSON-NEXT:                    "index": 0
-// JSON-NEXT:                   },
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "IntegerLiteral",
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 869,
-// JSON-NEXT:                      "line": 18,
-// JSON-NEXT:                      "col": 25,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 869,
-// JSON-NEXT:                      "col": 25,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "int"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "valueCategory": "prvalue",
-// JSON-NEXT:                    "value": "5"
-// JSON-NEXT:                   }
-// JSON-NEXT:                  ]
-// JSON-NEXT:                 },
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "SubstNonTypeTemplateParmExpr",
-// JSON-NEXT:                  "range": {
-// JSON-NEXT:                   "begin": {
-// JSON-NEXT:                    "offset": 873,
-// JSON-NEXT:                    "col": 29,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   },
-// JSON-NEXT:                   "end": {
-// JSON-NEXT:                    "offset": 873,
-// JSON-NEXT:                    "col": 29,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   }
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "int"
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "valueCategory": "prvalue",
-// JSON-NEXT:                  "inner": [
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:                    "loc": {
-// JSON-NEXT:                     "offset": 798,
-// JSON-NEXT:                     "line": 14,
-// JSON-NEXT:                     "col": 34,
-// JSON-NEXT:                     "tokLen": 1
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 794,
-// JSON-NEXT:                      "col": 30,
-// JSON-NEXT:                      "tokLen": 3
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 802,
-// JSON-NEXT:                      "col": 38,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "isReferenced": true,
-// JSON-NEXT:                    "name": "Z",
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "int"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "depth": 0,
-// JSON-NEXT:                    "index": 2,
-// JSON-NEXT:                    "defaultArg": {
-// JSON-NEXT:                     "kind": "TemplateArgument",
-// JSON-NEXT:                     "isExpr": true
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "inner": [
-// JSON-NEXT:                     {
-// JSON-NEXT:                      "kind": "TemplateArgument",
-// JSON-NEXT:                      "range": {
-// JSON-NEXT:                       "begin": {
-// JSON-NEXT:                        "offset": 802,
-// JSON-NEXT:                        "col": 38,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       },
-// JSON-NEXT:                       "end": {
-// JSON-NEXT:                        "offset": 802,
-// JSON-NEXT:                        "col": 38,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       }
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "isExpr": true,
-// JSON-NEXT:                      "inner": [
-// JSON-NEXT:                       {
-// JSON-NEXT:                        "id": "0x{{.*}}",
-// JSON-NEXT:                        "kind": "IntegerLiteral",
-// JSON-NEXT:                        "range": {
-// JSON-NEXT:                         "begin": {
-// JSON-NEXT:                          "offset": 802,
-// JSON-NEXT:                          "col": 38,
-// JSON-NEXT:                          "tokLen": 1
-// JSON-NEXT:                         },
-// JSON-NEXT:                         "end": {
-// JSON-NEXT:                          "offset": 802,
-// JSON-NEXT:                          "col": 38,
-// JSON-NEXT:                          "tokLen": 1
-// JSON-NEXT:                         }
-// JSON-NEXT:                        },
-// JSON-NEXT:                        "type": {
-// JSON-NEXT:                         "qualType": "int"
-// JSON-NEXT:                        },
-// JSON-NEXT:                        "valueCategory": "prvalue",
-// JSON-NEXT:                        "value": "5"
-// JSON-NEXT:                       }
-// JSON-NEXT:                      ]
-// JSON-NEXT:                     }
-// JSON-NEXT:                    ]
-// JSON-NEXT:                   },
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "IntegerLiteral",
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 873,
-// JSON-NEXT:                      "line": 18,
-// JSON-NEXT:                      "col": 29,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 873,
-// JSON-NEXT:                      "col": 29,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "int"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "valueCategory": "prvalue",
-// JSON-NEXT:                    "value": "5"
-// JSON-NEXT:                   }
-// JSON-NEXT:                  ]
-// JSON-NEXT:                 }
-// JSON-NEXT:                ]
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXConstructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "line": 15,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi5EiLi5EEC1ERKS0_",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (const foo<5, int> &)"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inline": true,
-// JSON-NEXT:        "constexpr": true,
-// JSON-NEXT:        "explicitlyDefaulted": "default",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 812,
-// JSON-NEXT:           "col": 8,
-// JSON-NEXT:           "tokLen": 3
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "const foo<5, int> &"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXConstructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi5EiLi5EEC1EOS0_",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (foo<5, int> &&)"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inline": true,
-// JSON-NEXT:        "constexpr": true,
-// JSON-NEXT:        "explicitlyDefaulted": "default",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 812,
-// JSON-NEXT:           "col": 8,
-// JSON-NEXT:           "tokLen": 3
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "foo<5, int> &&"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXDestructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "~foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi5EiLi5EED1Ev",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void () noexcept"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inline": true,
-// JSON-NEXT:        "constexpr": true,
-// JSON-NEXT:        "explicitlyDefaulted": "default"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 812,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 3
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 765,
-// JSON-NEXT:        "line": 14,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 879,
-// JSON-NEXT:        "line": 19,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "foo",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "canPassInRegisters": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "nonTrivial": true,
-// JSON-NEXT:        "userProvided": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasUserDeclaredConstructor": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": 2
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "double"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "BuiltinType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "double"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": 3
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "line": 15,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 805,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FieldDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 824,
-// JSON-NEXT:         "line": 16,
-// JSON-NEXT:         "col": 7,
-// JSON-NEXT:         "tokLen": 8
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 820,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 824,
-// JSON-NEXT:          "col": 7,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "constant",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "int"
-// JSON-NEXT:        }
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXConstructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 836,
-// JSON-NEXT:         "line": 17,
-// JSON-NEXT:         "col": 3,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 836,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 843,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isUsed": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi2EdLi3EEC1Ev",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 842,
-// JSON-NEXT:            "col": 9,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 843,
-// JSON-NEXT:            "col": 10,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXMethodDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 849,
-// JSON-NEXT:         "line": 18,
-// JSON-NEXT:         "col": 5,
-// JSON-NEXT:         "tokLen": 6
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 847,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 877,
-// JSON-NEXT:          "col": 33,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isUsed": true,
-// JSON-NEXT:        "name": "getSum",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi2EdLi3EE6getSumEv",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "double ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 858,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 877,
-// JSON-NEXT:            "col": 33,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ReturnStmt",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 860,
-// JSON-NEXT:              "col": 16,
-// JSON-NEXT:              "tokLen": 6
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 874,
-// JSON-NEXT:              "col": 30,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "CXXFunctionalCastExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 867,
-// JSON-NEXT:                "col": 23,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 874,
-// JSON-NEXT:                "col": 30,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "double"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "castKind": "NoOp",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "ImplicitCastExpr",
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 869,
-// JSON-NEXT:                  "col": 25,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 873,
-// JSON-NEXT:                  "col": 29,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "double"
-// JSON-NEXT:                },
-// JSON-NEXT:                "valueCategory": "prvalue",
-// JSON-NEXT:                "castKind": "IntegralToFloating",
-// JSON-NEXT:                "isPartOfExplicitCast": true,
-// JSON-NEXT:                "inner": [
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "BinaryOperator",
-// JSON-NEXT:                  "range": {
-// JSON-NEXT:                   "begin": {
-// JSON-NEXT:                    "offset": 869,
-// JSON-NEXT:                    "col": 25,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   },
-// JSON-NEXT:                   "end": {
-// JSON-NEXT:                    "offset": 873,
-// JSON-NEXT:                    "col": 29,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   }
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "int"
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "valueCategory": "prvalue",
-// JSON-NEXT:                  "opcode": "+",
-// JSON-NEXT:                  "inner": [
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "SubstNonTypeTemplateParmExpr",
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 869,
-// JSON-NEXT:                      "col": 25,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 869,
-// JSON-NEXT:                      "col": 25,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "int"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "valueCategory": "prvalue",
-// JSON-NEXT:                    "inner": [
-// JSON-NEXT:                     {
-// JSON-NEXT:                      "id": "0x{{.*}}",
-// JSON-NEXT:                      "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:                      "loc": {
-// JSON-NEXT:                       "offset": 779,
-// JSON-NEXT:                       "line": 14,
-// JSON-NEXT:                       "col": 15,
-// JSON-NEXT:                       "tokLen": 1
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "range": {
-// JSON-NEXT:                       "begin": {
-// JSON-NEXT:                        "offset": 775,
-// JSON-NEXT:                        "col": 11,
-// JSON-NEXT:                        "tokLen": 3
-// JSON-NEXT:                       },
-// JSON-NEXT:                       "end": {
-// JSON-NEXT:                        "offset": 779,
-// JSON-NEXT:                        "col": 15,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       }
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "isReferenced": true,
-// JSON-NEXT:                      "name": "X",
-// JSON-NEXT:                      "type": {
-// JSON-NEXT:                       "qualType": "int"
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "depth": 0,
-// JSON-NEXT:                      "index": 0
-// JSON-NEXT:                     },
-// JSON-NEXT:                     {
-// JSON-NEXT:                      "id": "0x{{.*}}",
-// JSON-NEXT:                      "kind": "IntegerLiteral",
-// JSON-NEXT:                      "range": {
-// JSON-NEXT:                       "begin": {
-// JSON-NEXT:                        "offset": 869,
-// JSON-NEXT:                        "line": 18,
-// JSON-NEXT:                        "col": 25,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       },
-// JSON-NEXT:                       "end": {
-// JSON-NEXT:                        "offset": 869,
-// JSON-NEXT:                        "col": 25,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       }
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "type": {
-// JSON-NEXT:                       "qualType": "int"
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "valueCategory": "prvalue",
-// JSON-NEXT:                      "value": "2"
-// JSON-NEXT:                     }
-// JSON-NEXT:                    ]
-// JSON-NEXT:                   },
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "SubstNonTypeTemplateParmExpr",
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 873,
-// JSON-NEXT:                      "col": 29,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 873,
-// JSON-NEXT:                      "col": 29,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "int"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "valueCategory": "prvalue",
-// JSON-NEXT:                    "inner": [
-// JSON-NEXT:                     {
-// JSON-NEXT:                      "id": "0x{{.*}}",
-// JSON-NEXT:                      "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:                      "loc": {
-// JSON-NEXT:                       "offset": 798,
-// JSON-NEXT:                       "line": 14,
-// JSON-NEXT:                       "col": 34,
-// JSON-NEXT:                       "tokLen": 1
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "range": {
-// JSON-NEXT:                       "begin": {
-// JSON-NEXT:                        "offset": 794,
-// JSON-NEXT:                        "col": 30,
-// JSON-NEXT:                        "tokLen": 3
-// JSON-NEXT:                       },
-// JSON-NEXT:                       "end": {
-// JSON-NEXT:                        "offset": 802,
-// JSON-NEXT:                        "col": 38,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       }
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "isReferenced": true,
-// JSON-NEXT:                      "name": "Z",
-// JSON-NEXT:                      "type": {
-// JSON-NEXT:                       "qualType": "int"
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "depth": 0,
-// JSON-NEXT:                      "index": 2,
-// JSON-NEXT:                      "defaultArg": {
-// JSON-NEXT:                       "kind": "TemplateArgument",
-// JSON-NEXT:                       "isExpr": true
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "inner": [
-// JSON-NEXT:                       {
-// JSON-NEXT:                        "kind": "TemplateArgument",
-// JSON-NEXT:                        "range": {
-// JSON-NEXT:                         "begin": {
-// JSON-NEXT:                          "offset": 802,
-// JSON-NEXT:                          "col": 38,
-// JSON-NEXT:                          "tokLen": 1
-// JSON-NEXT:                         },
-// JSON-NEXT:                         "end": {
-// JSON-NEXT:                          "offset": 802,
-// JSON-NEXT:                          "col": 38,
-// JSON-NEXT:                          "tokLen": 1
-// JSON-NEXT:                         }
-// JSON-NEXT:                        },
-// JSON-NEXT:                        "isExpr": true,
-// JSON-NEXT:                        "inner": [
-// JSON-NEXT:                         {
-// JSON-NEXT:                          "id": "0x{{.*}}",
-// JSON-NEXT:                          "kind": "IntegerLiteral",
-// JSON-NEXT:                          "range": {
-// JSON-NEXT:                           "begin": {
-// JSON-NEXT:                            "offset": 802,
-// JSON-NEXT:                            "col": 38,
-// JSON-NEXT:                            "tokLen": 1
-// JSON-NEXT:                           },
-// JSON-NEXT:                           "end": {
-// JSON-NEXT:                            "offset": 802,
-// JSON-NEXT:                            "col": 38,
-// JSON-NEXT:                            "tokLen": 1
-// JSON-NEXT:                           }
-// JSON-NEXT:                          },
-// JSON-NEXT:                          "type": {
-// JSON-NEXT:                           "qualType": "int"
-// JSON-NEXT:                          },
-// JSON-NEXT:                          "valueCategory": "prvalue",
-// JSON-NEXT:                          "value": "5"
-// JSON-NEXT:                         }
-// JSON-NEXT:                        ]
-// JSON-NEXT:                       }
-// JSON-NEXT:                      ]
-// JSON-NEXT:                     },
-// JSON-NEXT:                     {
-// JSON-NEXT:                      "id": "0x{{.*}}",
-// JSON-NEXT:                      "kind": "IntegerLiteral",
-// JSON-NEXT:                      "range": {
-// JSON-NEXT:                       "begin": {
-// JSON-NEXT:                        "offset": 873,
-// JSON-NEXT:                        "line": 18,
-// JSON-NEXT:                        "col": 29,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       },
-// JSON-NEXT:                       "end": {
-// JSON-NEXT:                        "offset": 873,
-// JSON-NEXT:                        "col": 29,
-// JSON-NEXT:                        "tokLen": 1
-// JSON-NEXT:                       }
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "type": {
-// JSON-NEXT:                       "qualType": "int"
-// JSON-NEXT:                      },
-// JSON-NEXT:                      "valueCategory": "prvalue",
-// JSON-NEXT:                      "value": "3"
-// JSON-NEXT:                     }
-// JSON-NEXT:                    ]
-// JSON-NEXT:                   }
-// JSON-NEXT:                  ]
-// JSON-NEXT:                 }
-// JSON-NEXT:                ]
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXConstructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "line": 15,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi2EdLi3EEC1ERKS0_",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (const foo<2, double, 3> &)"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inline": true,
-// JSON-NEXT:        "constexpr": true,
-// JSON-NEXT:        "explicitlyDefaulted": "default",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 812,
-// JSON-NEXT:           "col": 8,
-// JSON-NEXT:           "tokLen": 3
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "const foo<2, double, 3> &"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXConstructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi2EdLi3EEC1EOS0_",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (foo<2, double, 3> &&)"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inline": true,
-// JSON-NEXT:        "constexpr": true,
-// JSON-NEXT:        "explicitlyDefaulted": "default",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 812,
-// JSON-NEXT:           "col": 8,
-// JSON-NEXT:           "tokLen": 3
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 812,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "foo<2, double, 3> &&"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXDestructorDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 812,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 812,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "~foo",
-// JSON-NEXT:        "mangledName": "_ZN3fooILi2EdLi3EED1Ev",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void () noexcept"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inline": true,
-// JSON-NEXT:        "constexpr": true,
-// JSON-NEXT:        "explicitlyDefaulted": "default"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "FunctionTemplateDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 914,
-// JSON-NEXT:     "line": 22,
-// JSON-NEXT:     "col": 3,
-// JSON-NEXT:     "tokLen": 3
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 883,
-// JSON-NEXT:      "line": 21,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 8
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 937,
-// JSON-NEXT:      "line": 24,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "bar",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 897,
-// JSON-NEXT:       "line": 21,
-// JSON-NEXT:       "col": 15,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 893,
-// JSON-NEXT:        "col": 11,
-// JSON-NEXT:        "tokLen": 3
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 897,
-// JSON-NEXT:        "col": 15,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "int"
-// JSON-NEXT:      },
-// JSON-NEXT:      "depth": 0,
-// JSON-NEXT:      "index": 0
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 909,
-// JSON-NEXT:       "col": 27,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 900,
-// JSON-NEXT:        "col": 18,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 909,
-// JSON-NEXT:        "col": 27,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "B",
-// JSON-NEXT:      "tagUsed": "typename",
-// JSON-NEXT:      "depth": 0,
-// JSON-NEXT:      "index": 1
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 914,
-// JSON-NEXT:       "line": 22,
-// JSON-NEXT:       "col": 3,
-// JSON-NEXT:       "tokLen": 3
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 912,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 937,
-// JSON-NEXT:        "line": 24,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "bar",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "B ()"
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CompoundStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 920,
-// JSON-NEXT:          "line": 22,
-// JSON-NEXT:          "col": 9,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 937,
-// JSON-NEXT:          "line": 24,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ReturnStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 924,
-// JSON-NEXT:            "line": 23,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 934,
-// JSON-NEXT:            "col": 13,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXUnresolvedConstructExpr",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 931,
-// JSON-NEXT:              "col": 10,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 934,
-// JSON-NEXT:              "col": 13,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "B"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "DeclRefExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 933,
-// JSON-NEXT:                "col": 12,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 933,
-// JSON-NEXT:                "col": 12,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "referencedDecl": {
-// JSON-NEXT:               "id": "0x{{.*}}",
-// JSON-NEXT:               "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:               "name": "A",
-// JSON-NEXT:               "type": {
-// JSON-NEXT:                "qualType": "int"
-// JSON-NEXT:               }
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 914,
-// JSON-NEXT:       "line": 22,
-// JSON-NEXT:       "col": 3,
-// JSON-NEXT:       "tokLen": 3
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 912,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 937,
-// JSON-NEXT:        "line": 24,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isUsed": true,
-// JSON-NEXT:      "name": "bar",
-// JSON-NEXT:      "mangledName": "_Z3barILi5EiET0_v",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "int ()"
-// JSON-NEXT:      },
-// JSON-NEXT:      "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": 5
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "int"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "BuiltinType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CompoundStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 920,
-// JSON-NEXT:          "line": 22,
-// JSON-NEXT:          "col": 9,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 937,
-// JSON-NEXT:          "line": 24,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ReturnStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 924,
-// JSON-NEXT:            "line": 23,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 934,
-// JSON-NEXT:            "col": 13,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXFunctionalCastExpr",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 931,
-// JSON-NEXT:              "col": 10,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 934,
-// JSON-NEXT:              "col": 13,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "castKind": "NoOp",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "SubstNonTypeTemplateParmExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 933,
-// JSON-NEXT:                "col": 12,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 933,
-// JSON-NEXT:                "col": 12,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:                "loc": {
-// JSON-NEXT:                 "offset": 897,
-// JSON-NEXT:                 "line": 21,
-// JSON-NEXT:                 "col": 15,
-// JSON-NEXT:                 "tokLen": 1
-// JSON-NEXT:                },
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 893,
-// JSON-NEXT:                  "col": 11,
-// JSON-NEXT:                  "tokLen": 3
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 897,
-// JSON-NEXT:                  "col": 15,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "isReferenced": true,
-// JSON-NEXT:                "name": "A",
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "int"
-// JSON-NEXT:                },
-// JSON-NEXT:                "depth": 0,
-// JSON-NEXT:                "index": 0
-// JSON-NEXT:               },
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "IntegerLiteral",
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 933,
-// JSON-NEXT:                  "line": 23,
-// JSON-NEXT:                  "col": 12,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 933,
-// JSON-NEXT:                  "col": 12,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "int"
-// JSON-NEXT:                },
-// JSON-NEXT:                "valueCategory": "prvalue",
-// JSON-NEXT:                "value": "5"
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "FunctionDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 945,
-// JSON-NEXT:     "line": 26,
-// JSON-NEXT:     "col": 6,
-// JSON-NEXT:     "tokLen": 3
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 940,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 4
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 1055,
-// JSON-NEXT:      "line": 30,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "baz",
-// JSON-NEXT:    "mangledName": "_Z3bazv",
-// JSON-NEXT:    "type": {
-// JSON-NEXT:     "qualType": "void ()"
-// JSON-NEXT:    },
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "CompoundStmt",
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 951,
-// JSON-NEXT:        "line": 26,
-// JSON-NEXT:        "col": 12,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 1055,
-// JSON-NEXT:        "line": 30,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "DeclStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 955,
-// JSON-NEXT:          "line": 27,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 976,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "VarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 959,
-// JSON-NEXT:           "col": 7,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 955,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 975,
-// JSON-NEXT:            "col": 23,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "x",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int"
-// JSON-NEXT:          },
-// JSON-NEXT:          "init": "c",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CallExpr",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 963,
-// JSON-NEXT:              "col": 11,
-// JSON-NEXT:              "tokLen": 3
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 975,
-// JSON-NEXT:              "col": 23,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "ImplicitCastExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 963,
-// JSON-NEXT:                "col": 11,
-// JSON-NEXT:                "tokLen": 3
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 973,
-// JSON-NEXT:                "col": 21,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int (*)()"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "castKind": "FunctionToPointerDecay",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "DeclRefExpr",
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 963,
-// JSON-NEXT:                  "col": 11,
-// JSON-NEXT:                  "tokLen": 3
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 973,
-// JSON-NEXT:                  "col": 21,
-// JSON-NEXT:                  "tokLen": 1
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "int ()"
-// JSON-NEXT:                },
-// JSON-NEXT:                "valueCategory": "lvalue",
-// JSON-NEXT:                "referencedDecl": {
-// JSON-NEXT:                 "id": "0x{{.*}}",
-// JSON-NEXT:                 "kind": "FunctionDecl",
-// JSON-NEXT:                 "name": "bar",
-// JSON-NEXT:                 "type": {
-// JSON-NEXT:                  "qualType": "int ()"
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "foundReferencedDecl": {
-// JSON-NEXT:                 "id": "0x{{.*}}",
-// JSON-NEXT:                 "kind": "FunctionTemplateDecl",
-// JSON-NEXT:                 "name": "bar"
-// JSON-NEXT:                }
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "DeclStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 980,
-// JSON-NEXT:          "line": 28,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 1010,
-// JSON-NEXT:          "col": 33,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "VarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 984,
-// JSON-NEXT:           "col": 7,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 980,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 1009,
-// JSON-NEXT:            "col": 32,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "y",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int"
-// JSON-NEXT:          },
-// JSON-NEXT:          "init": "c",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ExprWithCleanups",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 988,
-// JSON-NEXT:              "col": 11,
-// JSON-NEXT:              "tokLen": 3
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 1009,
-// JSON-NEXT:              "col": 32,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "CXXMemberCallExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 988,
-// JSON-NEXT:                "col": 11,
-// JSON-NEXT:                "tokLen": 3
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 1009,
-// JSON-NEXT:                "col": 32,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "MemberExpr",
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 988,
-// JSON-NEXT:                  "col": 11,
-// JSON-NEXT:                  "tokLen": 3
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 1002,
-// JSON-NEXT:                  "col": 25,
-// JSON-NEXT:                  "tokLen": 6
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "<bound member function type>"
-// JSON-NEXT:                },
-// JSON-NEXT:                "valueCategory": "prvalue",
-// JSON-NEXT:                "name": "getSum",
-// JSON-NEXT:                "isArrow": false,
-// JSON-NEXT:                "referencedMemberDecl": "0x{{.*}}",
-// JSON-NEXT:                "inner": [
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "MaterializeTemporaryExpr",
-// JSON-NEXT:                  "range": {
-// JSON-NEXT:                   "begin": {
-// JSON-NEXT:                    "offset": 988,
-// JSON-NEXT:                    "col": 11,
-// JSON-NEXT:                    "tokLen": 3
-// JSON-NEXT:                   },
-// JSON-NEXT:                   "end": {
-// JSON-NEXT:                    "offset": 1000,
-// JSON-NEXT:                    "col": 23,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   }
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "foo<5, int>"
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "valueCategory": "xvalue",
-// JSON-NEXT:                  "storageDuration": "full expression",
-// JSON-NEXT:                  "inner": [
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "CXXTemporaryObjectExpr",
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 988,
-// JSON-NEXT:                      "col": 11,
-// JSON-NEXT:                      "tokLen": 3
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 1000,
-// JSON-NEXT:                      "col": 23,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "foo<5, int>"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "valueCategory": "prvalue",
-// JSON-NEXT:                    "ctorType": {
-// JSON-NEXT:                     "qualType": "void ()"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "hadMultipleCandidates": true,
-// JSON-NEXT:                    "constructionKind": "complete"
-// JSON-NEXT:                   }
-// JSON-NEXT:                  ]
-// JSON-NEXT:                 }
-// JSON-NEXT:                ]
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "DeclStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 1014,
-// JSON-NEXT:          "line": 29,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 1053,
-// JSON-NEXT:          "col": 42,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "VarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 1021,
-// JSON-NEXT:           "col": 10,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 1014,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 1052,
-// JSON-NEXT:            "col": 41,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "z",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "double"
-// JSON-NEXT:          },
-// JSON-NEXT:          "init": "c",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ExprWithCleanups",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 1025,
-// JSON-NEXT:              "col": 14,
-// JSON-NEXT:              "tokLen": 3
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 1052,
-// JSON-NEXT:              "col": 41,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "double"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "CXXMemberCallExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 1025,
-// JSON-NEXT:                "col": 14,
-// JSON-NEXT:                "tokLen": 3
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 1052,
-// JSON-NEXT:                "col": 41,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "double"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "MemberExpr",
-// JSON-NEXT:                "range": {
-// JSON-NEXT:                 "begin": {
-// JSON-NEXT:                  "offset": 1025,
-// JSON-NEXT:                  "col": 14,
-// JSON-NEXT:                  "tokLen": 3
-// JSON-NEXT:                 },
-// JSON-NEXT:                 "end": {
-// JSON-NEXT:                  "offset": 1045,
-// JSON-NEXT:                  "col": 34,
-// JSON-NEXT:                  "tokLen": 6
-// JSON-NEXT:                 }
-// JSON-NEXT:                },
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "<bound member function type>"
-// JSON-NEXT:                },
-// JSON-NEXT:                "valueCategory": "prvalue",
-// JSON-NEXT:                "name": "getSum",
-// JSON-NEXT:                "isArrow": false,
-// JSON-NEXT:                "referencedMemberDecl": "0x{{.*}}",
-// JSON-NEXT:                "inner": [
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "MaterializeTemporaryExpr",
-// JSON-NEXT:                  "range": {
-// JSON-NEXT:                   "begin": {
-// JSON-NEXT:                    "offset": 1025,
-// JSON-NEXT:                    "col": 14,
-// JSON-NEXT:                    "tokLen": 3
-// JSON-NEXT:                   },
-// JSON-NEXT:                   "end": {
-// JSON-NEXT:                    "offset": 1043,
-// JSON-NEXT:                    "col": 32,
-// JSON-NEXT:                    "tokLen": 1
-// JSON-NEXT:                   }
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "foo<2, double, 3>"
-// JSON-NEXT:                  },
-// JSON-NEXT:                  "valueCategory": "xvalue",
-// JSON-NEXT:                  "storageDuration": "full expression",
-// JSON-NEXT:                  "inner": [
-// JSON-NEXT:                   {
-// JSON-NEXT:                    "id": "0x{{.*}}",
-// JSON-NEXT:                    "kind": "CXXTemporaryObjectExpr",
-// JSON-NEXT:                    "range": {
-// JSON-NEXT:                     "begin": {
-// JSON-NEXT:                      "offset": 1025,
-// JSON-NEXT:                      "col": 14,
-// JSON-NEXT:                      "tokLen": 3
-// JSON-NEXT:                     },
-// JSON-NEXT:                     "end": {
-// JSON-NEXT:                      "offset": 1043,
-// JSON-NEXT:                      "col": 32,
-// JSON-NEXT:                      "tokLen": 1
-// JSON-NEXT:                     }
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "type": {
-// JSON-NEXT:                     "qualType": "foo<2, double, 3>"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "valueCategory": "prvalue",
-// JSON-NEXT:                    "ctorType": {
-// JSON-NEXT:                     "qualType": "void ()"
-// JSON-NEXT:                    },
-// JSON-NEXT:                    "hadMultipleCandidates": true,
-// JSON-NEXT:                    "constructionKind": "complete"
-// JSON-NEXT:                   }
-// JSON-NEXT:                  ]
-// JSON-NEXT:                 }
-// JSON-NEXT:                ]
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "ClassTemplateDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 1856,
-// JSON-NEXT:     "line": 52,
-// JSON-NEXT:     "col": 33,
-// JSON-NEXT:     "tokLen": 1
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 1824,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 8
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 1896,
-// JSON-NEXT:      "line": 54,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "isReferenced": true,
-// JSON-NEXT:    "name": "A",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 1846,
-// JSON-NEXT:       "line": 52,
-// JSON-NEXT:       "col": 23,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 1834,
-// JSON-NEXT:        "col": 11,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 1846,
-// JSON-NEXT:        "col": 23,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "T",
-// JSON-NEXT:      "tagUsed": "typename",
-// JSON-NEXT:      "depth": 0,
-// JSON-NEXT:      "index": 0,
-// JSON-NEXT:      "isParameterPack": true
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "CXXRecordDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 1856,
-// JSON-NEXT:       "col": 33,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 1849,
-// JSON-NEXT:        "col": 26,
-// JSON-NEXT:        "tokLen": 6
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 1896,
-// JSON-NEXT:        "line": 54,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "isConstexpr": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:       "isAggregate": true,
-// JSON-NEXT:       "isEmpty": true,
-// JSON-NEXT:       "isLiteral": true,
-// JSON-NEXT:       "isPOD": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTrivial": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 1856,
-// JSON-NEXT:         "line": 52,
-// JSON-NEXT:         "col": 33,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 1849,
-// JSON-NEXT:          "col": 26,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 1856,
-// JSON-NEXT:          "col": 33,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ClassTemplateDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 1890,
-// JSON-NEXT:         "line": 53,
-// JSON-NEXT:         "col": 31,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 1862,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 1893,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "B",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 1877,
-// JSON-NEXT:           "col": 18,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 1872,
-// JSON-NEXT:            "col": 13,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 1880,
-// JSON-NEXT:            "col": 21,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "x",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "T[3]..."
-// JSON-NEXT:          },
-// JSON-NEXT:          "depth": 1,
-// JSON-NEXT:          "index": 0,
-// JSON-NEXT:          "isParameterPack": true
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 1890,
-// JSON-NEXT:           "col": 31,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 1883,
-// JSON-NEXT:            "col": 24,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 1893,
-// JSON-NEXT:            "col": 34,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "B",
-// JSON-NEXT:          "tagUsed": "struct",
-// JSON-NEXT:          "completeDefinition": true,
-// JSON-NEXT:          "definitionData": {
-// JSON-NEXT:           "canConstDefaultInit": true,
-// JSON-NEXT:           "copyAssign": {
-// JSON-NEXT:            "hasConstParam": true,
-// JSON-NEXT:            "implicitHasConstParam": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "copyCtor": {
-// JSON-NEXT:            "hasConstParam": true,
-// JSON-NEXT:            "implicitHasConstParam": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "defaultCtor": {
-// JSON-NEXT:            "defaultedIsConstexpr": true,
-// JSON-NEXT:            "exists": true,
-// JSON-NEXT:            "isConstexpr": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "dtor": {
-// JSON-NEXT:            "irrelevant": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:           "isAggregate": true,
-// JSON-NEXT:           "isEmpty": true,
-// JSON-NEXT:           "isLiteral": true,
-// JSON-NEXT:           "isPOD": true,
-// JSON-NEXT:           "isStandardLayout": true,
-// JSON-NEXT:           "isTrivial": true,
-// JSON-NEXT:           "isTriviallyCopyable": true,
-// JSON-NEXT:           "moveAssign": {
-// JSON-NEXT:            "exists": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "moveCtor": {
-// JSON-NEXT:            "exists": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXRecordDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 1890,
-// JSON-NEXT:             "col": 31,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 1883,
-// JSON-NEXT:              "col": 24,
-// JSON-NEXT:              "tokLen": 6
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 1890,
-// JSON-NEXT:              "col": 31,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "isImplicit": true,
-// JSON-NEXT:            "name": "B",
-// JSON-NEXT:            "tagUsed": "struct"
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "FunctionTemplateDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 2016,
-// JSON-NEXT:     "line": 58,
-// JSON-NEXT:     "col": 31,
-// JSON-NEXT:     "tokLen": 1
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 1986,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 8
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 2038,
-// JSON-NEXT:      "line": 60,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "f",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2008,
-// JSON-NEXT:       "line": 58,
-// JSON-NEXT:       "col": 23,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 1996,
-// JSON-NEXT:        "col": 11,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2008,
-// JSON-NEXT:        "col": 23,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "T",
-// JSON-NEXT:      "tagUsed": "typename",
-// JSON-NEXT:      "depth": 0,
-// JSON-NEXT:      "index": 0,
-// JSON-NEXT:      "isParameterPack": true
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2016,
-// JSON-NEXT:       "col": 31,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2011,
-// JSON-NEXT:        "col": 26,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2038,
-// JSON-NEXT:        "line": 60,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "f",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "void ()"
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CompoundStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2020,
-// JSON-NEXT:          "line": 58,
-// JSON-NEXT:          "col": 35,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2038,
-// JSON-NEXT:          "line": 60,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "DeclStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2024,
-// JSON-NEXT:            "line": 59,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2036,
-// JSON-NEXT:            "col": 15,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "VarDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 2035,
-// JSON-NEXT:             "col": 14,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 2024,
-// JSON-NEXT:              "col": 3,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 2035,
-// JSON-NEXT:              "col": 14,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "name": "a",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "A<T[3]...>"
-// JSON-NEXT:            }
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 2051,
-// JSON-NEXT:     "line": 62,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 5
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 2041,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 2240,
-// JSON-NEXT:      "line": 71,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "test2",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2064,
-// JSON-NEXT:       "line": 63,
-// JSON-NEXT:       "col": 6,
-// JSON-NEXT:       "tokLen": 4
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2059,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2072,
-// JSON-NEXT:        "col": 14,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "func",
-// JSON-NEXT:      "mangledName": "_ZN5test24funcEi",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "void (int)"
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ParmVarDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2072,
-// JSON-NEXT:         "col": 14,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2069,
-// JSON-NEXT:          "col": 11,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2069,
-// JSON-NEXT:          "col": 11,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "int"
-// JSON-NEXT:        }
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2080,
-// JSON-NEXT:       "line": 64,
-// JSON-NEXT:       "col": 6,
-// JSON-NEXT:       "tokLen": 4
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2075,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2090,
-// JSON-NEXT:        "col": 16,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "func",
-// JSON-NEXT:      "mangledName": "_ZN5test24funcEf",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "void (float)"
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ParmVarDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2090,
-// JSON-NEXT:         "col": 16,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2085,
-// JSON-NEXT:          "col": 11,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2085,
-// JSON-NEXT:          "col": 11,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "float"
-// JSON-NEXT:        }
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2119,
-// JSON-NEXT:       "line": 66,
-// JSON-NEXT:       "col": 6,
-// JSON-NEXT:       "tokLen": 4
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2093,
-// JSON-NEXT:        "line": 65,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2141,
-// JSON-NEXT:        "line": 68,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "tmpl",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2111,
-// JSON-NEXT:         "line": 65,
-// JSON-NEXT:         "col": 19,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2102,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2111,
-// JSON-NEXT:          "col": 19,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "T",
-// JSON-NEXT:        "tagUsed": "typename",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2119,
-// JSON-NEXT:         "line": 66,
-// JSON-NEXT:         "col": 6,
-// JSON-NEXT:         "tokLen": 4
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2114,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2141,
-// JSON-NEXT:          "line": 68,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "tmpl",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2126,
-// JSON-NEXT:            "line": 66,
-// JSON-NEXT:            "col": 13,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2141,
-// JSON-NEXT:            "line": 68,
-// JSON-NEXT:            "col": 1,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CallExpr",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 2130,
-// JSON-NEXT:              "line": 67,
-// JSON-NEXT:              "col": 3,
-// JSON-NEXT:              "tokLen": 4
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 2138,
-// JSON-NEXT:              "col": 11,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "<dependent type>"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "UnresolvedLookupExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 2130,
-// JSON-NEXT:                "col": 3,
-// JSON-NEXT:                "tokLen": 4
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 2130,
-// JSON-NEXT:                "col": 3,
-// JSON-NEXT:                "tokLen": 4
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "<overloaded function type>"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "lvalue",
-// JSON-NEXT:              "usesADL": true,
-// JSON-NEXT:              "name": "func",
-// JSON-NEXT:              "lookups": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "FunctionDecl",
-// JSON-NEXT:                "name": "func",
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "void (float)"
-// JSON-NEXT:                }
-// JSON-NEXT:               },
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "FunctionDecl",
-// JSON-NEXT:                "name": "func",
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "void (int)"
-// JSON-NEXT:                }
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             },
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "CXXUnresolvedConstructExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 2135,
-// JSON-NEXT:                "col": 8,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 2137,
-// JSON-NEXT:                "col": 10,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "T"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue"
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 2253,
-// JSON-NEXT:     "line": 73,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 5
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 2243,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 2387,
-// JSON-NEXT:      "line": 77,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "test3",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2291,
-// JSON-NEXT:       "line": 74,
-// JSON-NEXT:       "col": 31,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2263,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2294,
-// JSON-NEXT:        "col": 34,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2281,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2272,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2281,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "T",
-// JSON-NEXT:        "tagUsed": "typename",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2291,
-// JSON-NEXT:         "col": 31,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2284,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2294,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 2291,
-// JSON-NEXT:           "col": 31,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2284,
-// JSON-NEXT:            "col": 24,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2291,
-// JSON-NEXT:            "col": 31,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "A",
-// JSON-NEXT:          "tagUsed": "struct"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2291,
-// JSON-NEXT:         "col": 31,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2263,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2294,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "kind": "TemplateArgument",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int"
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "BuiltinType",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            }
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2291,
-// JSON-NEXT:       "col": 31,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2263,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2291,
-// JSON-NEXT:        "col": 31,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isImplicit": true,
-// JSON-NEXT:      "name": "<deduction guide for A>",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2281,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2272,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2281,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "T",
-// JSON-NEXT:        "tagUsed": "typename",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXDeductionGuideDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2291,
-// JSON-NEXT:         "col": 31,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2291,
-// JSON-NEXT:          "col": 31,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2291,
-// JSON-NEXT:          "col": 31,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "<deduction guide for A>",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "auto () -> test3::A<T>"
-// JSON-NEXT:        }
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2291,
-// JSON-NEXT:       "col": 31,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2263,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2291,
-// JSON-NEXT:        "col": 31,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isImplicit": true,
-// JSON-NEXT:      "name": "<deduction guide for A>",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2281,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2272,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2281,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "T",
-// JSON-NEXT:        "tagUsed": "typename",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXDeductionGuideDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2291,
-// JSON-NEXT:         "col": 31,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2291,
-// JSON-NEXT:          "col": 31,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2291,
-// JSON-NEXT:          "col": 31,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "<deduction guide for A>",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "auto (test3::A<T>) -> test3::A<T>"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 2291,
-// JSON-NEXT:           "col": 31,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2291,
-// JSON-NEXT:            "col": 31,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2291,
-// JSON-NEXT:            "col": 31,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "test3::A<T>"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2320,
-// JSON-NEXT:       "line": 75,
-// JSON-NEXT:       "col": 24,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2299,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2333,
-// JSON-NEXT:        "col": 37,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "<deduction guide for A>",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2317,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2308,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2317,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "T",
-// JSON-NEXT:        "tagUsed": "typename",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXDeductionGuideDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2320,
-// JSON-NEXT:         "col": 24,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2320,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2333,
-// JSON-NEXT:          "col": 37,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "<deduction guide for A>",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "auto (T) -> A<int>"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 2323,
-// JSON-NEXT:           "col": 27,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2322,
-// JSON-NEXT:            "col": 26,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2322,
-// JSON-NEXT:            "col": 26,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "T"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 2400,
-// JSON-NEXT:     "line": 79,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 5
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 2390,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 3297,
-// JSON-NEXT:      "line": 103,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "test4",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2445,
-// JSON-NEXT:       "line": 81,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 3
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2408,
-// JSON-NEXT:        "line": 80,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2471,
-// JSON-NEXT:        "line": 83,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "foo",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2427,
-// JSON-NEXT:         "line": 80,
-// JSON-NEXT:         "col": 20,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2418,
-// JSON-NEXT:          "col": 11,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2427,
-// JSON-NEXT:          "col": 20,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "X",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "unsigned int"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2435,
-// JSON-NEXT:         "col": 28,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2430,
-// JSON-NEXT:          "col": 23,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2435,
-// JSON-NEXT:          "col": 28,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "auto"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2445,
-// JSON-NEXT:         "line": 81,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2438,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2471,
-// JSON-NEXT:          "line": 83,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 2445,
-// JSON-NEXT:           "line": 81,
-// JSON-NEXT:           "col": 8,
-// JSON-NEXT:           "tokLen": 3
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2438,
-// JSON-NEXT:            "col": 1,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2445,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "foo",
-// JSON-NEXT:          "tagUsed": "struct"
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXMethodDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 2465,
-// JSON-NEXT:           "line": 82,
-// JSON-NEXT:           "col": 15,
-// JSON-NEXT:           "tokLen": 2
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2453,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2468,
-// JSON-NEXT:            "col": 18,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "fn",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "void ()"
-// JSON-NEXT:          },
-// JSON-NEXT:          "storageClass": "static"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2445,
-// JSON-NEXT:         "line": 81,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2408,
-// JSON-NEXT:          "line": 80,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2471,
-// JSON-NEXT:          "line": 83,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "canPassInRegisters": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "kind": "TemplateArgument",
-// JSON-NEXT:          "value": 0
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "kind": "TemplateArgument",
-// JSON-NEXT:          "value": 0
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 2445,
-// JSON-NEXT:           "line": 81,
-// JSON-NEXT:           "col": 8,
-// JSON-NEXT:           "tokLen": 3
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2438,
-// JSON-NEXT:            "col": 1,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2445,
-// JSON-NEXT:            "col": 8,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "foo",
-// JSON-NEXT:          "tagUsed": "struct"
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXMethodDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 2465,
-// JSON-NEXT:           "line": 82,
-// JSON-NEXT:           "col": 15,
-// JSON-NEXT:           "tokLen": 2
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2453,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2468,
-// JSON-NEXT:            "col": 18,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isUsed": true,
-// JSON-NEXT:          "name": "fn",
-// JSON-NEXT:          "mangledName": "_ZN5test43fooILj0ELl0EE2fnEv",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "void ()"
-// JSON-NEXT:          },
-// JSON-NEXT:          "storageClass": "static",
-// JSON-NEXT:          "TemplateInstantiationPattern": "0x{{.*}}"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:        "name": "foo"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 2846,
-// JSON-NEXT:       "line": 92,
-// JSON-NEXT:       "col": 6,
-// JSON-NEXT:       "tokLen": 4
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 2841,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 2879,
-// JSON-NEXT:        "line": 94,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "test",
-// JSON-NEXT:      "mangledName": "_ZN5test44testEv",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "void ()"
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CompoundStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2853,
-// JSON-NEXT:          "line": 92,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2879,
-// JSON-NEXT:          "line": 94,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CallExpr",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 2857,
-// JSON-NEXT:            "line": 93,
-// JSON-NEXT:            "col": 3,
-// JSON-NEXT:            "tokLen": 3
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 2876,
-// JSON-NEXT:            "col": 22,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "void"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "prvalue",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ImplicitCastExpr",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 2857,
-// JSON-NEXT:              "col": 3,
-// JSON-NEXT:              "tokLen": 3
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 2873,
-// JSON-NEXT:              "col": 19,
-// JSON-NEXT:              "tokLen": 2
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "void (*)()"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "castKind": "FunctionToPointerDecay",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "DeclRefExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 2857,
-// JSON-NEXT:                "col": 3,
-// JSON-NEXT:                "tokLen": 3
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 2873,
-// JSON-NEXT:                "col": 19,
-// JSON-NEXT:                "tokLen": 2
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "void ()"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "lvalue",
-// JSON-NEXT:              "referencedDecl": {
-// JSON-NEXT:               "id": "0x{{.*}}",
-// JSON-NEXT:               "kind": "CXXMethodDecl",
-// JSON-NEXT:               "name": "fn",
-// JSON-NEXT:               "type": {
-// JSON-NEXT:                "qualType": "void ()"
-// JSON-NEXT:               }
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 3281,
-// JSON-NEXT:       "line": 102,
-// JSON-NEXT:       "col": 17,
-// JSON-NEXT:       "tokLen": 3
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 3265,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 3294,
-// JSON-NEXT:        "col": 30,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "foo",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "canPassInRegisters": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "isConstexpr": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:       "isAggregate": true,
-// JSON-NEXT:       "isEmpty": true,
-// JSON-NEXT:       "isLiteral": true,
-// JSON-NEXT:       "isPOD": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTrivial": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2445,
-// JSON-NEXT:         "line": 81,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2438,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2445,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "foo",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXMethodDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 2465,
-// JSON-NEXT:         "line": 82,
-// JSON-NEXT:         "col": 15,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 2453,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 2468,
-// JSON-NEXT:          "col": 18,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "fn",
-// JSON-NEXT:        "mangledName": "_ZN5test43fooILj1ELl0EE2fnEv",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "storageClass": "static",
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ExplicitInstantiationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": {{[0-9]+}},
-// JSON-NEXT:       "line": 102,
-// JSON-NEXT:       "col": 1,
-// JSON-NEXT:       "tokLen": 8
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": {{[0-9]+}},
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": {{[0-9]+}},
-// JSON-NEXT:        "col": 30,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "specializationDeclId": "0x{{.*}}",
-// JSON-NEXT:      "templateSpecializationKind": "explicit_instantiation_definition",
-// JSON:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 3310,
-// JSON-NEXT:     "line": 105,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 5
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 3300,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 3632,
-// JSON-NEXT:      "line": 114,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "test5",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 3338,
-// JSON-NEXT:       "line": 106,
-// JSON-NEXT:       "col": 21,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 3318,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 3343,
-// JSON-NEXT:        "col": 26,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "f",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3331,
-// JSON-NEXT:         "col": 14,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3327,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3327,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "long"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3338,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3333,
-// JSON-NEXT:          "col": 16,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3343,
-// JSON-NEXT:          "col": 26,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "f",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3342,
-// JSON-NEXT:            "col": 25,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3343,
-// JSON-NEXT:            "col": 26,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3338,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3333,
-// JSON-NEXT:          "col": 16,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3343,
-// JSON-NEXT:          "col": 26,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isUsed": true,
-// JSON-NEXT:        "name": "f",
-// JSON-NEXT:        "mangledName": "_ZN5test51fILl0EEEvv",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "kind": "TemplateArgument",
-// JSON-NEXT:          "value": 0
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3342,
-// JSON-NEXT:            "col": 25,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3343,
-// JSON-NEXT:            "col": 26,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "VarDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 3352,
-// JSON-NEXT:       "line": 107,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 3345,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 3362,
-// JSON-NEXT:        "col": 18,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "p",
-// JSON-NEXT:      "mangledName": "_ZN5test51pE",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "void (*)()"
-// JSON-NEXT:      },
-// JSON-NEXT:      "init": "c",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ImplicitCastExpr",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3359,
-// JSON-NEXT:          "col": 15,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3362,
-// JSON-NEXT:          "col": 18,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (*)()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "valueCategory": "prvalue",
-// JSON-NEXT:        "castKind": "FunctionToPointerDecay",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "DeclRefExpr",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3359,
-// JSON-NEXT:            "col": 15,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3362,
-// JSON-NEXT:            "col": 18,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "void ()"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "lvalue",
-// JSON-NEXT:          "referencedDecl": {
-// JSON-NEXT:           "id": "0x{{.*}}",
-// JSON-NEXT:           "kind": "FunctionDecl",
-// JSON-NEXT:           "name": "f",
-// JSON-NEXT:           "type": {
-// JSON-NEXT:            "qualType": "void ()"
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "foundReferencedDecl": {
-// JSON-NEXT:           "id": "0x{{.*}}",
-// JSON-NEXT:           "kind": "FunctionTemplateDecl",
-// JSON-NEXT:           "name": "f"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 3393,
-// JSON-NEXT:       "line": 108,
-// JSON-NEXT:       "col": 29,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 3365,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 3398,
-// JSON-NEXT:        "col": 34,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "f",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3383,
-// JSON-NEXT:         "col": 19,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3374,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3385,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "unsigned int"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0,
-// JSON-NEXT:        "defaultArg": {
-// JSON-NEXT:         "kind": "TemplateArgument",
-// JSON-NEXT:         "isExpr": true
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "kind": "TemplateArgument",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3385,
-// JSON-NEXT:            "col": 21,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3385,
-// JSON-NEXT:            "col": 21,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isExpr": true,
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "IntegerLiteral",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 3385,
-// JSON-NEXT:              "col": 21,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 3385,
-// JSON-NEXT:              "col": 21,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "value": "0"
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3393,
-// JSON-NEXT:         "col": 29,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3388,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3398,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "f",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3397,
-// JSON-NEXT:            "col": 33,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3398,
-// JSON-NEXT:            "col": 34,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3393,
-// JSON-NEXT:         "col": 29,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3388,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3398,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isUsed": true,
-// JSON-NEXT:        "name": "f",
-// JSON-NEXT:        "mangledName": "_ZN5test51fILj0EEEvv",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "kind": "TemplateArgument",
-// JSON-NEXT:          "value": 0
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3397,
-// JSON-NEXT:            "col": 33,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3398,
-// JSON-NEXT:            "col": 34,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "VarDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 3407,
-// JSON-NEXT:       "line": 109,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 3400,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 3416,
-// JSON-NEXT:        "col": 17,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "q",
-// JSON-NEXT:      "mangledName": "_ZN5test51qE",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "void (*)()"
-// JSON-NEXT:      },
-// JSON-NEXT:      "init": "c",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ImplicitCastExpr",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3414,
-// JSON-NEXT:          "col": 15,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3416,
-// JSON-NEXT:          "col": 17,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (*)()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "valueCategory": "prvalue",
-// JSON-NEXT:        "castKind": "FunctionToPointerDecay",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "DeclRefExpr",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3414,
-// JSON-NEXT:            "col": 15,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3416,
-// JSON-NEXT:            "col": 17,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "void ()"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "lvalue",
-// JSON-NEXT:          "referencedDecl": {
-// JSON-NEXT:           "id": "0x{{.*}}",
-// JSON-NEXT:           "kind": "FunctionDecl",
-// JSON-NEXT:           "name": "f",
-// JSON-NEXT:           "type": {
-// JSON-NEXT:            "qualType": "void ()"
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "foundReferencedDecl": {
-// JSON-NEXT:           "id": "0x{{.*}}",
-// JSON-NEXT:           "kind": "FunctionTemplateDecl",
-// JSON-NEXT:           "name": "f"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 3645,
-// JSON-NEXT:     "line": 116,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 5
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 3635,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 4000,
-// JSON-NEXT:      "line": 128,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "test6",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "VarTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 3687,
-// JSON-NEXT:       "line": 118,
-// JSON-NEXT:       "col": 16,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 3653,
-// JSON-NEXT:        "line": 117,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 3691,
-// JSON-NEXT:        "line": 118,
-// JSON-NEXT:        "col": 20,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "C",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3669,
-// JSON-NEXT:         "line": 117,
-// JSON-NEXT:         "col": 17,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3663,
-// JSON-NEXT:          "col": 11,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3669,
-// JSON-NEXT:          "col": 17,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "D",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "VarDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3687,
-// JSON-NEXT:         "line": 118,
-// JSON-NEXT:         "col": 16,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3672,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 9
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3691,
-// JSON-NEXT:          "col": 20,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "C",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "const bool"
-// JSON-NEXT:        },
-// JSON-NEXT:        "constexpr": true,
-// JSON-NEXT:        "init": "c",
-// JSON-NEXT:        "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXBoolLiteralExpr",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3691,
-// JSON-NEXT:            "col": 20,
-// JSON-NEXT:            "tokLen": 4
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3691,
-// JSON-NEXT:            "col": 20,
-// JSON-NEXT:            "tokLen": 4
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "bool"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "prvalue",
-// JSON-NEXT:          "value": true
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 3724,
-// JSON-NEXT:       "line": 121,
-// JSON-NEXT:       "col": 6,
-// JSON-NEXT:       "tokLen": 4
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 3698,
-// JSON-NEXT:        "line": 120,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 3998,
-// JSON-NEXT:        "line": 127,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "func",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3714,
-// JSON-NEXT:         "line": 120,
-// JSON-NEXT:         "col": 17,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3708,
-// JSON-NEXT:          "col": 11,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3714,
-// JSON-NEXT:          "col": 17,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "Key",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 3724,
-// JSON-NEXT:         "line": 121,
-// JSON-NEXT:         "col": 6,
-// JSON-NEXT:         "tokLen": 4
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 3719,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 3998,
-// JSON-NEXT:          "line": 127,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "func",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void ()"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CompoundStmt",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 3731,
-// JSON-NEXT:            "line": 121,
-// JSON-NEXT:            "col": 13,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 3998,
-// JSON-NEXT:            "line": 127,
-// JSON-NEXT:            "col": 1,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "UnresolvedLookupExpr",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 3735,
-// JSON-NEXT:              "line": 122,
-// JSON-NEXT:              "col": 3,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 3740,
-// JSON-NEXT:              "col": 8,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "<dependent type>"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "lvalue",
-// JSON-NEXT:            "usesADL": false,
-// JSON-NEXT:            "name": "C",
-// JSON-NEXT:            "lookups": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "VarTemplateDecl",
-// JSON-NEXT:              "name": "C"
-// JSON-NEXT:             }
-// JSON-NEXT:            ],
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "kind": "TemplateArgument",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "Key"
-// JSON-NEXT:              },
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "TemplateTypeParmType",
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "Key"
-// JSON-NEXT:                },
-// JSON-NEXT:                "isDependent": true,
-// JSON-NEXT:                "isInstantiationDependent": true,
-// JSON-NEXT:                "depth": 0,
-// JSON-NEXT:                "index": 0,
-// JSON-NEXT:                "decl": {
-// JSON-NEXT:                 "id": "0x{{.*}}",
-// JSON-NEXT:                 "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:                 "name": "Key"
-// JSON-NEXT:                }
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 4013,
-// JSON-NEXT:     "line": 130,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 5
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 4003,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 4553,
-// JSON-NEXT:      "line": 140,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "test7",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 4066,
-// JSON-NEXT:       "line": 131,
-// JSON-NEXT:       "col": 46,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 4023,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 4069,
-// JSON-NEXT:        "col": 49,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4055,
-// JSON-NEXT:         "col": 35,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4033,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4055,
-// JSON-NEXT:          "col": 35,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "TT",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0,
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 4047,
-// JSON-NEXT:           "col": 27,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 4042,
-// JSON-NEXT:            "col": 22,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 4042,
-// JSON-NEXT:            "col": 22,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "tagUsed": "class",
-// JSON-NEXT:          "depth": 1,
-// JSON-NEXT:          "index": 0
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4066,
-// JSON-NEXT:         "col": 46,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4059,
-// JSON-NEXT:          "col": 39,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4069,
-// JSON-NEXT:          "col": 49,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 4066,
-// JSON-NEXT:           "col": 46,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 4059,
-// JSON-NEXT:            "col": 39,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 4066,
-// JSON-NEXT:            "col": 46,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "A",
-// JSON-NEXT:          "tagUsed": "struct"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:        "name": "A"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 4100,
-// JSON-NEXT:       "line": 132,
-// JSON-NEXT:       "col": 29,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 4074,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 4103,
-// JSON-NEXT:        "col": 32,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "B",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4092,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4084,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4084,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0,
-// JSON-NEXT:        "isParameterPack": true
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4100,
-// JSON-NEXT:         "col": 29,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4094,
-// JSON-NEXT:          "col": 23,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4103,
-// JSON-NEXT:          "col": 32,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "B",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 4100,
-// JSON-NEXT:           "col": 29,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 4094,
-// JSON-NEXT:            "col": 23,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 4100,
-// JSON-NEXT:            "col": 29,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "B",
-// JSON-NEXT:          "tagUsed": "class"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 4124,
-// JSON-NEXT:       "line": 133,
-// JSON-NEXT:       "col": 19,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 4108,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 4127,
-// JSON-NEXT:        "col": 22,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "strict-pack-match": true,
-// JSON-NEXT:      "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "canPassInRegisters": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "isConstexpr": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:       "isAggregate": true,
-// JSON-NEXT:       "isEmpty": true,
-// JSON-NEXT:       "isLiteral": true,
-// JSON-NEXT:       "isPOD": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTrivial": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument"
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4066,
-// JSON-NEXT:         "line": 131,
-// JSON-NEXT:         "col": 46,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4059,
-// JSON-NEXT:          "col": 39,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4066,
-// JSON-NEXT:          "col": 46,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ExplicitInstantiationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": {{[0-9]+}},
-// JSON-NEXT:       "line": 133,
-// JSON-NEXT:       "col": 3,
-// JSON-NEXT:       "tokLen": 8
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": {{[0-9]+}},
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": {{[0-9]+}},
-// JSON-NEXT:        "col": 22,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "specializationDeclId": "0x{{.*}}",
-// JSON-NEXT:      "templateSpecializationKind": "explicit_instantiation_definition",
-// JSON:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 4584,
-// JSON-NEXT:     "line": 142,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 5
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 4574,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 4893,
-// JSON-NEXT:      "line": 151,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "test8",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 4624,
-// JSON-NEXT:       "line": 144,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 8
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 4592,
-// JSON-NEXT:        "line": 143,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 4624,
-// JSON-NEXT:        "line": 144,
-// JSON-NEXT:        "col": 8,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "pr126341",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4614,
-// JSON-NEXT:         "line": 143,
-// JSON-NEXT:         "col": 23,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4601,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4614,
-// JSON-NEXT:          "col": 23,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "x",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "_Complex int"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4624,
-// JSON-NEXT:         "line": 144,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 8
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4617,
-// JSON-NEXT:          "col": 1,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4624,
-// JSON-NEXT:          "col": 8,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "pr126341",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:        "name": "pr126341"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 4652,
-// JSON-NEXT:       "line": 146,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 8
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 4634,
-// JSON-NEXT:        "line": 145,
-// JSON-NEXT:        "col": 1,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 4667,
-// JSON-NEXT:        "line": 146,
-// JSON-NEXT:        "col": 23,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "pr126341",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "value": "1+2i"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 4925,
-// JSON-NEXT:     "line": 153,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 28
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 4915,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 5548,
-// JSON-NEXT:      "line": 162,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "TestMemberPointerPartialSpec",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 4982,
-// JSON-NEXT:       "line": 154,
-// JSON-NEXT:       "col": 27,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 4958,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 4982,
-// JSON-NEXT:        "col": 27,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4973,
-// JSON-NEXT:         "col": 18,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4968,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4968,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 4982,
-// JSON-NEXT:         "col": 27,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4975,
-// JSON-NEXT:          "col": 20,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 4982,
-// JSON-NEXT:          "col": 27,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplatePartialSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 5024,
-// JSON-NEXT:       "line": 155,
-// JSON-NEXT:       "col": 40,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 4987,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 5034,
-// JSON-NEXT:        "col": 50,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "type-parameter-0-0 type-parameter-0-1::*"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "MemberPointerType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "type-parameter-0-0 type-parameter-0-1::*"
-// JSON-NEXT:          },
-// JSON-NEXT:          "isDependent": true,
-// JSON-NEXT:          "isInstantiationDependent": true,
-// JSON-NEXT:          "isData": true,
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "TemplateTypeParmType",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "type-parameter-0-1"
-// JSON-NEXT:            },
-// JSON-NEXT:            "isDependent": true,
-// JSON-NEXT:            "isInstantiationDependent": true,
-// JSON-NEXT:            "depth": 0,
-// JSON-NEXT:            "index": 1,
-// JSON-NEXT:            "decl": {
-// JSON-NEXT:             "id": "0x0"
-// JSON-NEXT:            }
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "TemplateTypeParmType",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "type-parameter-0-0"
-// JSON-NEXT:            },
-// JSON-NEXT:            "isDependent": true,
-// JSON-NEXT:            "isInstantiationDependent": true,
-// JSON-NEXT:            "depth": 0,
-// JSON-NEXT:            "index": 0,
-// JSON-NEXT:            "decl": {
-// JSON-NEXT:             "id": "0x0"
-// JSON-NEXT:            }
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 5003,
-// JSON-NEXT:         "col": 19,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 4997,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 5003,
-// JSON-NEXT:          "col": 19,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "T1",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 5013,
-// JSON-NEXT:         "col": 29,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 5007,
-// JSON-NEXT:          "col": 23,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 5013,
-// JSON-NEXT:          "col": 29,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "T2",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 5603,
-// JSON-NEXT:     "line": 164,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 26
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 5593,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 6858,
-// JSON-NEXT:      "line": 187,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "TestDependentMemberPointer",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 5660,
-// JSON-NEXT:       "line": 165,
-// JSON-NEXT:       "col": 29,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 5634,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 5761,
-// JSON-NEXT:        "line": 169,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "A",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 5650,
-// JSON-NEXT:         "line": 165,
-// JSON-NEXT:         "col": 19,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 5644,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 5650,
-// JSON-NEXT:          "col": 19,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "U",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 5660,
-// JSON-NEXT:         "col": 29,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 5653,
-// JSON-NEXT:          "col": 22,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 5761,
-// JSON-NEXT:          "line": 169,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "A",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 5660,
-// JSON-NEXT:           "line": 165,
-// JSON-NEXT:           "col": 29,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 5653,
-// JSON-NEXT:            "col": 22,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 5660,
-// JSON-NEXT:            "col": 29,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "A",
-// JSON-NEXT:          "tagUsed": "struct"
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TypeAliasDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 5674,
-// JSON-NEXT:           "line": 166,
-// JSON-NEXT:           "col": 11,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 5668,
-// JSON-NEXT:            "col": 5,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 5685,
-// JSON-NEXT:            "col": 22,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "X",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int U::*"
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "MemberPointerType",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int U::*"
-// JSON-NEXT:            },
-// JSON-NEXT:            "isDependent": true,
-// JSON-NEXT:            "isInstantiationDependent": true,
-// JSON-NEXT:            "isData": true,
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "TemplateTypeParmType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "U"
-// JSON-NEXT:              },
-// JSON-NEXT:              "isDependent": true,
-// JSON-NEXT:              "isInstantiationDependent": true,
-// JSON-NEXT:              "depth": 0,
-// JSON-NEXT:              "index": 0,
-// JSON-NEXT:              "decl": {
-// JSON-NEXT:               "id": "0x{{.*}}",
-// JSON-NEXT:               "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:               "name": "U"
-// JSON-NEXT:              }
-// JSON-NEXT:             },
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "BuiltinType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TypeAliasDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 5698,
-// JSON-NEXT:           "line": 167,
-// JSON-NEXT:           "col": 11,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 5692,
-// JSON-NEXT:            "col": 5,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 5715,
-// JSON-NEXT:            "col": 28,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "Y",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int U::test::*"
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "MemberPointerType",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int U::test::*"
-// JSON-NEXT:            },
-// JSON-NEXT:            "isDependent": true,
-// JSON-NEXT:            "isInstantiationDependent": true,
-// JSON-NEXT:            "isData": true,
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "DependentNameType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "U::test"
-// JSON-NEXT:              },
-// JSON-NEXT:              "isDependent": true,
-// JSON-NEXT:              "isInstantiationDependent": true
-// JSON-NEXT:             },
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "BuiltinType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TypeAliasDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 5728,
-// JSON-NEXT:           "line": 168,
-// JSON-NEXT:           "col": 11,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 5722,
-// JSON-NEXT:            "col": 5,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 5756,
-// JSON-NEXT:            "col": 39,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "Z",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "int U::template V<int>::*"
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "MemberPointerType",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int U::template V<int>::*"
-// JSON-NEXT:            },
-// JSON-NEXT:            "isDependent": true,
-// JSON-NEXT:            "isInstantiationDependent": true,
-// JSON-NEXT:            "isData": true,
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "TemplateSpecializationType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "U::template V<int>"
-// JSON-NEXT:              },
-// JSON-NEXT:              "isDependent": true,
-// JSON-NEXT:              "isInstantiationDependent": true,
-// JSON-NEXT:              "templateName": "U::template V",
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "kind": "TemplateArgument",
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "int"
-// JSON-NEXT:                },
-// JSON-NEXT:                "inner": [
-// JSON-NEXT:                 {
-// JSON-NEXT:                  "id": "0x{{.*}}",
-// JSON-NEXT:                  "kind": "BuiltinType",
-// JSON-NEXT:                  "type": {
-// JSON-NEXT:                   "qualType": "int"
-// JSON-NEXT:                  }
-// JSON-NEXT:                 }
-// JSON-NEXT:                ]
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             },
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "BuiltinType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 6911,
-// JSON-NEXT:     "line": 189,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 19
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 6901,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 9769,
-// JSON-NEXT:      "line": 229,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "TestPartialSpecNTTP",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 7034,
-// JSON-NEXT:       "line": 191,
-// JSON-NEXT:       "col": 41,
-// JSON-NEXT:       "tokLen": 9
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 6996,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 7045,
-// JSON-NEXT:        "col": 52,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "Template1",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7012,
-// JSON-NEXT:         "col": 19,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7006,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7012,
-// JSON-NEXT:          "col": 19,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "TA1",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7022,
-// JSON-NEXT:         "col": 29,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7017,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7022,
-// JSON-NEXT:          "col": 29,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "TA2",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "bool"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7034,
-// JSON-NEXT:         "col": 41,
-// JSON-NEXT:         "tokLen": 9
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7027,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7045,
-// JSON-NEXT:          "col": 52,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "Template1",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 7034,
-// JSON-NEXT:           "col": 41,
-// JSON-NEXT:           "tokLen": 9
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 7027,
-// JSON-NEXT:            "col": 34,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 7034,
-// JSON-NEXT:            "col": 41,
-// JSON-NEXT:            "tokLen": 9
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "Template1",
-// JSON-NEXT:          "tagUsed": "struct"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 7088,
-// JSON-NEXT:       "line": 192,
-// JSON-NEXT:       "col": 41,
-// JSON-NEXT:       "tokLen": 9
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 7050,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 7099,
-// JSON-NEXT:        "col": 52,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "Template2",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7066,
-// JSON-NEXT:         "col": 19,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7060,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7066,
-// JSON-NEXT:          "col": 19,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "TB1",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7076,
-// JSON-NEXT:         "col": 29,
-// JSON-NEXT:         "tokLen": 3
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7071,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7076,
-// JSON-NEXT:          "col": 29,
-// JSON-NEXT:          "tokLen": 3
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "TB2",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "bool"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7088,
-// JSON-NEXT:         "col": 41,
-// JSON-NEXT:         "tokLen": 9
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7081,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7099,
-// JSON-NEXT:          "col": 52,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "Template2",
-// JSON-NEXT:        "tagUsed": "struct",
-// JSON-NEXT:        "completeDefinition": true,
-// JSON-NEXT:        "definitionData": {
-// JSON-NEXT:         "canConstDefaultInit": true,
-// JSON-NEXT:         "copyAssign": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "copyCtor": {
-// JSON-NEXT:          "hasConstParam": true,
-// JSON-NEXT:          "implicitHasConstParam": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "defaultCtor": {
-// JSON-NEXT:          "defaultedIsConstexpr": true,
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "isConstexpr": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "dtor": {
-// JSON-NEXT:          "irrelevant": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:         "isAggregate": true,
-// JSON-NEXT:         "isEmpty": true,
-// JSON-NEXT:         "isLiteral": true,
-// JSON-NEXT:         "isPOD": true,
-// JSON-NEXT:         "isStandardLayout": true,
-// JSON-NEXT:         "isTrivial": true,
-// JSON-NEXT:         "isTriviallyCopyable": true,
-// JSON-NEXT:         "moveAssign": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         },
-// JSON-NEXT:         "moveCtor": {
-// JSON-NEXT:          "exists": true,
-// JSON-NEXT:          "needsImplicit": true,
-// JSON-NEXT:          "simple": true,
-// JSON-NEXT:          "trivial": true
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 7088,
-// JSON-NEXT:           "col": 41,
-// JSON-NEXT:           "tokLen": 9
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 7081,
-// JSON-NEXT:            "col": 34,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 7088,
-// JSON-NEXT:            "col": 41,
-// JSON-NEXT:            "tokLen": 9
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "Template2",
-// JSON-NEXT:          "tagUsed": "struct"
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplatePartialSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 7152,
-// JSON-NEXT:       "line": 195,
-// JSON-NEXT:       "col": 10,
-// JSON-NEXT:       "tokLen": 9
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 7105,
-// JSON-NEXT:        "line": 194,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 7186,
-// JSON-NEXT:        "line": 195,
-// JSON-NEXT:        "col": 44,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "Template2",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "isConstexpr": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:       "isAggregate": true,
-// JSON-NEXT:       "isEmpty": true,
-// JSON-NEXT:       "isLiteral": true,
-// JSON-NEXT:       "isPOD": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTrivial": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "TestPartialSpecNTTP::Template1<type-parameter-0-0, value-parameter-0-1>"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateSpecializationType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "TestPartialSpecNTTP::Template1<type-parameter-0-0, value-parameter-0-1>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "isDependent": true,
-// JSON-NEXT:          "isInstantiationDependent": true,
-// JSON-NEXT:          "templateName": "TestPartialSpecNTTP::Template1",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "type-parameter-0-0"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "TemplateTypeParmType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "type-parameter-0-0"
-// JSON-NEXT:              },
-// JSON-NEXT:              "isDependent": true,
-// JSON-NEXT:              "isInstantiationDependent": true,
-// JSON-NEXT:              "depth": 0,
-// JSON-NEXT:              "index": 0,
-// JSON-NEXT:              "decl": {
-// JSON-NEXT:               "id": "0x0"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument",
-// JSON-NEXT:            "isExpr": true,
-// JSON-NEXT:            "isCanonical": true,
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "DeclRefExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 7176,
-// JSON-NEXT:                "col": 34,
-// JSON-NEXT:                "tokLen": 2
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 7176,
-// JSON-NEXT:                "col": 34,
-// JSON-NEXT:                "tokLen": 2
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "bool"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "referencedDecl": {
-// JSON-NEXT:               "id": "0x{{.*}}",
-// JSON-NEXT:               "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:               "name": "U2",
-// JSON-NEXT:               "type": {
-// JSON-NEXT:                "qualType": "bool"
-// JSON-NEXT:               }
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "isExpr": true,
-// JSON-NEXT:        "isCanonical": true,
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "DeclRefExpr",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 7181,
-// JSON-NEXT:            "col": 39,
-// JSON-NEXT:            "tokLen": 2
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 7181,
-// JSON-NEXT:            "col": 39,
-// JSON-NEXT:            "tokLen": 2
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "bool"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "prvalue",
-// JSON-NEXT:          "referencedDecl": {
-// JSON-NEXT:           "id": "0x{{.*}}",
-// JSON-NEXT:           "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:           "name": "U3",
-// JSON-NEXT:           "type": {
-// JSON-NEXT:            "qualType": "bool"
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7121,
-// JSON-NEXT:         "line": 194,
-// JSON-NEXT:         "col": 19,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7115,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7121,
-// JSON-NEXT:          "col": 19,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "U1",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7130,
-// JSON-NEXT:         "col": 28,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7125,
-// JSON-NEXT:          "col": 23,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7130,
-// JSON-NEXT:          "col": 28,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "U2",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "bool"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7139,
-// JSON-NEXT:         "col": 37,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7134,
-// JSON-NEXT:          "col": 32,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7139,
-// JSON-NEXT:          "col": 37,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "U3",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "bool"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 2
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 7152,
-// JSON-NEXT:         "line": 195,
-// JSON-NEXT:         "col": 10,
-// JSON-NEXT:         "tokLen": 9
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 7145,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 7152,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 9
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "Template2",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "ClassTemplatePartialSpecializationDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 8468,
-// JSON-NEXT:       "line": 213,
-// JSON-NEXT:       "col": 10,
-// JSON-NEXT:       "tokLen": 9
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 8418,
-// JSON-NEXT:        "line": 212,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 8502,
-// JSON-NEXT:        "line": 213,
-// JSON-NEXT:        "col": 44,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "Template2",
-// JSON-NEXT:      "tagUsed": "struct",
-// JSON-NEXT:      "completeDefinition": true,
-// JSON-NEXT:      "definitionData": {
-// JSON-NEXT:       "canConstDefaultInit": true,
-// JSON-NEXT:       "copyAssign": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "copyCtor": {
-// JSON-NEXT:        "hasConstParam": true,
-// JSON-NEXT:        "implicitHasConstParam": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "defaultCtor": {
-// JSON-NEXT:        "defaultedIsConstexpr": true,
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "isConstexpr": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "dtor": {
-// JSON-NEXT:        "irrelevant": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "hasConstexprNonCopyMoveConstructor": true,
-// JSON-NEXT:       "isAggregate": true,
-// JSON-NEXT:       "isEmpty": true,
-// JSON-NEXT:       "isLiteral": true,
-// JSON-NEXT:       "isPOD": true,
-// JSON-NEXT:       "isStandardLayout": true,
-// JSON-NEXT:       "isTrivial": true,
-// JSON-NEXT:       "isTriviallyCopyable": true,
-// JSON-NEXT:       "moveAssign": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       },
-// JSON-NEXT:       "moveCtor": {
-// JSON-NEXT:        "exists": true,
-// JSON-NEXT:        "needsImplicit": true,
-// JSON-NEXT:        "simple": true,
-// JSON-NEXT:        "trivial": true
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "TestPartialSpecNTTP::Template1<type-parameter-0-0, value-parameter-0-2>"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateSpecializationType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "TestPartialSpecNTTP::Template1<type-parameter-0-0, value-parameter-0-2>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "isDependent": true,
-// JSON-NEXT:          "isInstantiationDependent": true,
-// JSON-NEXT:          "templateName": "TestPartialSpecNTTP::Template1",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "type-parameter-0-0"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "TemplateTypeParmType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "type-parameter-0-0"
-// JSON-NEXT:              },
-// JSON-NEXT:              "isDependent": true,
-// JSON-NEXT:              "isInstantiationDependent": true,
-// JSON-NEXT:              "depth": 0,
-// JSON-NEXT:              "index": 0,
-// JSON-NEXT:              "decl": {
-// JSON-NEXT:               "id": "0x0"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument",
-// JSON-NEXT:            "isExpr": true,
-// JSON-NEXT:            "isCanonical": true,
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "DeclRefExpr",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 8492,
-// JSON-NEXT:                "col": 34,
-// JSON-NEXT:                "tokLen": 2
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 8492,
-// JSON-NEXT:                "col": 34,
-// JSON-NEXT:                "tokLen": 2
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "bool"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "referencedDecl": {
-// JSON-NEXT:               "id": "0x{{.*}}",
-// JSON-NEXT:               "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:               "name": "U2",
-// JSON-NEXT:               "type": {
-// JSON-NEXT:                "qualType": "bool"
-// JSON-NEXT:               }
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "kind": "TemplateArgument",
-// JSON-NEXT:        "isExpr": true,
-// JSON-NEXT:        "isCanonical": true,
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "DeclRefExpr",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 8497,
-// JSON-NEXT:            "col": 39,
-// JSON-NEXT:            "tokLen": 2
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 8497,
-// JSON-NEXT:            "col": 39,
-// JSON-NEXT:            "tokLen": 2
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "bool"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "prvalue",
-// JSON-NEXT:          "referencedDecl": {
-// JSON-NEXT:           "id": "0x{{.*}}",
-// JSON-NEXT:           "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:           "name": "U3",
-// JSON-NEXT:           "type": {
-// JSON-NEXT:            "qualType": "bool"
-// JSON-NEXT:           }
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 8437,
-// JSON-NEXT:         "line": 212,
-// JSON-NEXT:         "col": 22,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 8428,
-// JSON-NEXT:          "col": 13,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 8437,
-// JSON-NEXT:          "col": 22,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "U1",
-// JSON-NEXT:        "tagUsed": "typename",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 8446,
-// JSON-NEXT:         "col": 31,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 8441,
-// JSON-NEXT:          "col": 26,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 8446,
-// JSON-NEXT:          "col": 31,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "U3",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "bool"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "NonTypeTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 8455,
-// JSON-NEXT:         "col": 40,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 8450,
-// JSON-NEXT:          "col": 35,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 8455,
-// JSON-NEXT:          "col": 40,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "U2",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "bool"
-// JSON-NEXT:        },
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 2
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CXXRecordDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 8468,
-// JSON-NEXT:         "line": 213,
-// JSON-NEXT:         "col": 10,
-// JSON-NEXT:         "tokLen": 9
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 8461,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 6
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 8468,
-// JSON-NEXT:          "col": 10,
-// JSON-NEXT:          "tokLen": 9
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "Template2",
-// JSON-NEXT:        "tagUsed": "struct"
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 9815,
-// JSON-NEXT:     "line": 231,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 8
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 9805,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 10224,
-// JSON-NEXT:      "line": 245,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "GH153540",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "NamespaceDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 9889,
-// JSON-NEXT:       "line": 234,
-// JSON-NEXT:       "col": 13,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 9879,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 9
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 9940,
-// JSON-NEXT:        "line": 236,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "N",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "ClassTemplateDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 9925,
-// JSON-NEXT:         "line": 235,
-// JSON-NEXT:         "col": 33,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 9897,
-// JSON-NEXT:          "col": 5,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 9935,
-// JSON-NEXT:          "col": 43,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "S",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9915,
-// JSON-NEXT:           "col": 23,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9906,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 8
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9915,
-// JSON-NEXT:            "col": 23,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isReferenced": true,
-// JSON-NEXT:          "name": "T",
-// JSON-NEXT:          "tagUsed": "typename",
-// JSON-NEXT:          "depth": 0,
-// JSON-NEXT:          "index": 0
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXRecordDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9925,
-// JSON-NEXT:           "col": 33,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9918,
-// JSON-NEXT:            "col": 26,
-// JSON-NEXT:            "tokLen": 6
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9935,
-// JSON-NEXT:            "col": 43,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "name": "S",
-// JSON-NEXT:          "tagUsed": "struct",
-// JSON-NEXT:          "completeDefinition": true,
-// JSON-NEXT:          "definitionData": {
-// JSON-NEXT:           "canConstDefaultInit": true,
-// JSON-NEXT:           "copyAssign": {
-// JSON-NEXT:            "hasConstParam": true,
-// JSON-NEXT:            "implicitHasConstParam": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "copyCtor": {
-// JSON-NEXT:            "hasConstParam": true,
-// JSON-NEXT:            "implicitHasConstParam": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "defaultCtor": {
-// JSON-NEXT:            "defaultedIsConstexpr": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "dtor": {
-// JSON-NEXT:            "irrelevant": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "hasUserDeclaredConstructor": true,
-// JSON-NEXT:           "isEmpty": true,
-// JSON-NEXT:           "isStandardLayout": true,
-// JSON-NEXT:           "isTriviallyCopyable": true,
-// JSON-NEXT:           "moveAssign": {
-// JSON-NEXT:            "exists": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "moveCtor": {
-// JSON-NEXT:            "exists": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXRecordDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9925,
-// JSON-NEXT:             "col": 33,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9918,
-// JSON-NEXT:              "col": 26,
-// JSON-NEXT:              "tokLen": 6
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "isImplicit": true,
-// JSON-NEXT:            "name": "S",
-// JSON-NEXT:            "tagUsed": "struct"
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXConstructorDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9929,
-// JSON-NEXT:             "col": 37,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9929,
-// JSON-NEXT:              "col": 37,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9932,
-// JSON-NEXT:              "col": 40,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "name": "S<T>",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "void (T)"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "ParmVarDecl",
-// JSON-NEXT:              "loc": {
-// JSON-NEXT:               "offset": 9932,
-// JSON-NEXT:               "col": 40,
-// JSON-NEXT:               "tokLen": 1
-// JSON-NEXT:              },
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 9931,
-// JSON-NEXT:                "col": 39,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 9931,
-// JSON-NEXT:                "col": 39,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "T"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ClassTemplateSpecializationDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9925,
-// JSON-NEXT:           "col": 33,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9897,
-// JSON-NEXT:            "col": 5,
-// JSON-NEXT:            "tokLen": 8
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9935,
-// JSON-NEXT:            "col": 43,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isReferenced": true,
-// JSON-NEXT:          "name": "S",
-// JSON-NEXT:          "tagUsed": "struct",
-// JSON-NEXT:          "completeDefinition": true,
-// JSON-NEXT:          "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:          "definitionData": {
-// JSON-NEXT:           "canConstDefaultInit": true,
-// JSON-NEXT:           "canPassInRegisters": true,
-// JSON-NEXT:           "copyAssign": {
-// JSON-NEXT:            "hasConstParam": true,
-// JSON-NEXT:            "implicitHasConstParam": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "copyCtor": {
-// JSON-NEXT:            "hasConstParam": true,
-// JSON-NEXT:            "implicitHasConstParam": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "defaultCtor": {
-// JSON-NEXT:            "defaultedIsConstexpr": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "dtor": {
-// JSON-NEXT:            "irrelevant": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "hasUserDeclaredConstructor": true,
-// JSON-NEXT:           "isEmpty": true,
-// JSON-NEXT:           "isStandardLayout": true,
-// JSON-NEXT:           "isTriviallyCopyable": true,
-// JSON-NEXT:           "moveAssign": {
-// JSON-NEXT:            "exists": true,
-// JSON-NEXT:            "needsImplicit": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           },
-// JSON-NEXT:           "moveCtor": {
-// JSON-NEXT:            "exists": true,
-// JSON-NEXT:            "simple": true,
-// JSON-NEXT:            "trivial": true
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "BuiltinType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXRecordDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9925,
-// JSON-NEXT:             "col": 33,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9918,
-// JSON-NEXT:              "col": 26,
-// JSON-NEXT:              "tokLen": 6
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "isImplicit": true,
-// JSON-NEXT:            "name": "S",
-// JSON-NEXT:            "tagUsed": "struct"
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXConstructorDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9929,
-// JSON-NEXT:             "col": 37,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9929,
-// JSON-NEXT:              "col": 37,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9932,
-// JSON-NEXT:              "col": 40,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "isUsed": true,
-// JSON-NEXT:            "name": "S",
-// JSON-NEXT:            "mangledName": "_ZN8GH1535401N1SIiEC1Ei",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "void (int)"
-// JSON-NEXT:            },
-// JSON-NEXT:            "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "ParmVarDecl",
-// JSON-NEXT:              "loc": {
-// JSON-NEXT:               "offset": 9932,
-// JSON-NEXT:               "col": 40,
-// JSON-NEXT:               "tokLen": 1
-// JSON-NEXT:              },
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 9931,
-// JSON-NEXT:                "col": 39,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 9931,
-// JSON-NEXT:                "col": 39,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXConstructorDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9925,
-// JSON-NEXT:             "col": 33,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "isImplicit": true,
-// JSON-NEXT:            "name": "S",
-// JSON-NEXT:            "mangledName": "_ZN8GH1535401N1SIiEC1ERKS2_",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "void (const S<int> &)"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inline": true,
-// JSON-NEXT:            "constexpr": true,
-// JSON-NEXT:            "explicitlyDefaulted": "default",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "ParmVarDecl",
-// JSON-NEXT:              "loc": {
-// JSON-NEXT:               "offset": 9925,
-// JSON-NEXT:               "col": 33,
-// JSON-NEXT:               "tokLen": 1
-// JSON-NEXT:              },
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 9925,
-// JSON-NEXT:                "col": 33,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 9925,
-// JSON-NEXT:                "col": 33,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "const S<int> &"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXConstructorDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9925,
-// JSON-NEXT:             "col": 33,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "isImplicit": true,
-// JSON-NEXT:            "name": "S",
-// JSON-NEXT:            "mangledName": "_ZN8GH1535401N1SIiEC1EOS2_",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "void (S<int> &&)"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inline": true,
-// JSON-NEXT:            "constexpr": true,
-// JSON-NEXT:            "explicitlyDefaulted": "default",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "ParmVarDecl",
-// JSON-NEXT:              "loc": {
-// JSON-NEXT:               "offset": 9925,
-// JSON-NEXT:               "col": 33,
-// JSON-NEXT:               "tokLen": 1
-// JSON-NEXT:              },
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 9925,
-// JSON-NEXT:                "col": 33,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 9925,
-// JSON-NEXT:                "col": 33,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "S<int> &&"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXDestructorDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9925,
-// JSON-NEXT:             "col": 33,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "isImplicit": true,
-// JSON-NEXT:            "isReferenced": true,
-// JSON-NEXT:            "name": "~S",
-// JSON-NEXT:            "mangledName": "_ZN8GH1535401N1SIiED1Ev",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "void () noexcept"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inline": true,
-// JSON-NEXT:            "constexpr": true,
-// JSON-NEXT:            "explicitlyDefaulted": "default"
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionTemplateDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 9929,
-// JSON-NEXT:         "col": 37,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 9897,
-// JSON-NEXT:          "col": 5,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 9932,
-// JSON-NEXT:          "col": 40,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "<deduction guide for S>",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9915,
-// JSON-NEXT:           "col": 23,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9906,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 8
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9915,
-// JSON-NEXT:            "col": 23,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isReferenced": true,
-// JSON-NEXT:          "name": "T",
-// JSON-NEXT:          "tagUsed": "typename",
-// JSON-NEXT:          "depth": 0,
-// JSON-NEXT:          "index": 0
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXDeductionGuideDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9929,
-// JSON-NEXT:           "col": 37,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9929,
-// JSON-NEXT:            "col": 37,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9932,
-// JSON-NEXT:            "col": 40,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "<deduction guide for S>",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "auto (T) -> GH153540::N::S<T>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ParmVarDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9932,
-// JSON-NEXT:             "col": 40,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9931,
-// JSON-NEXT:              "col": 39,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9931,
-// JSON-NEXT:              "col": 39,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "T"
-// JSON-NEXT:            }
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXDeductionGuideDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9929,
-// JSON-NEXT:           "col": 37,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9929,
-// JSON-NEXT:            "col": 37,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9932,
-// JSON-NEXT:            "col": 40,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "isUsed": true,
-// JSON-NEXT:          "name": "<deduction guide for S>",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "auto (int) -> GH153540::N::S<int>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "TemplateInstantiationPattern": "0x{{.*}}",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "BuiltinType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ParmVarDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9932,
-// JSON-NEXT:             "col": 40,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9931,
-// JSON-NEXT:              "col": 39,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9931,
-// JSON-NEXT:              "col": 39,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            }
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionTemplateDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 9925,
-// JSON-NEXT:         "col": 33,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 9897,
-// JSON-NEXT:          "col": 5,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 9925,
-// JSON-NEXT:          "col": 33,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "<deduction guide for S>",
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9915,
-// JSON-NEXT:           "col": 23,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9906,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 8
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9915,
-// JSON-NEXT:            "col": 23,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isReferenced": true,
-// JSON-NEXT:          "name": "T",
-// JSON-NEXT:          "tagUsed": "typename",
-// JSON-NEXT:          "depth": 0,
-// JSON-NEXT:          "index": 0
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXDeductionGuideDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 9925,
-// JSON-NEXT:           "col": 33,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9925,
-// JSON-NEXT:            "col": 33,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9925,
-// JSON-NEXT:            "col": 33,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "isImplicit": true,
-// JSON-NEXT:          "name": "<deduction guide for S>",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "auto (GH153540::N::S<T>) -> GH153540::N::S<T>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "ParmVarDecl",
-// JSON-NEXT:            "loc": {
-// JSON-NEXT:             "offset": 9925,
-// JSON-NEXT:             "col": 33,
-// JSON-NEXT:             "tokLen": 1
-// JSON-NEXT:            },
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9925,
-// JSON-NEXT:              "col": 33,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "GH153540::N::S<T>"
-// JSON-NEXT:            }
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 9949,
-// JSON-NEXT:       "line": 237,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 1
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 9944,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 9970,
-// JSON-NEXT:        "line": 239,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "f",
-// JSON-NEXT:      "mangledName": "_ZN8GH1535401fEv",
-// JSON-NEXT:      "type": {
-// JSON-NEXT:       "qualType": "void ()"
-// JSON-NEXT:      },
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "CompoundStmt",
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 9953,
-// JSON-NEXT:          "line": 237,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 9970,
-// JSON-NEXT:          "line": 239,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "CXXFunctionalCastExpr",
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 9959,
-// JSON-NEXT:            "line": 238,
-// JSON-NEXT:            "col": 5,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 9965,
-// JSON-NEXT:            "col": 11,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "desugaredQualType": "GH153540::N::S<int>",
-// JSON-NEXT:           "qualType": "N::S<int>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "valueCategory": "prvalue",
-// JSON-NEXT:          "castKind": "ConstructorConversion",
-// JSON-NEXT:          "conversionFunc": {
-// JSON-NEXT:           "id": "0x{{.*}}",
-// JSON-NEXT:           "kind": "CXXConstructorDecl",
-// JSON-NEXT:           "name": "S",
-// JSON-NEXT:           "type": {
-// JSON-NEXT:            "qualType": "void (int)"
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "CXXConstructExpr",
-// JSON-NEXT:            "range": {
-// JSON-NEXT:             "begin": {
-// JSON-NEXT:              "offset": 9959,
-// JSON-NEXT:              "col": 5,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             },
-// JSON-NEXT:             "end": {
-// JSON-NEXT:              "offset": 9965,
-// JSON-NEXT:              "col": 11,
-// JSON-NEXT:              "tokLen": 1
-// JSON-NEXT:             }
-// JSON-NEXT:            },
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "desugaredQualType": "GH153540::N::S<int>",
-// JSON-NEXT:             "qualType": "N::S<int>"
-// JSON-NEXT:            },
-// JSON-NEXT:            "valueCategory": "prvalue",
-// JSON-NEXT:            "ctorType": {
-// JSON-NEXT:             "qualType": "void (int)"
-// JSON-NEXT:            },
-// JSON-NEXT:            "hadMultipleCandidates": true,
-// JSON-NEXT:            "constructionKind": "complete",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "IntegerLiteral",
-// JSON-NEXT:              "range": {
-// JSON-NEXT:               "begin": {
-// JSON-NEXT:                "offset": 9964,
-// JSON-NEXT:                "col": 10,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               },
-// JSON-NEXT:               "end": {
-// JSON-NEXT:                "offset": 9964,
-// JSON-NEXT:                "col": 10,
-// JSON-NEXT:                "tokLen": 1
-// JSON-NEXT:               }
-// JSON-NEXT:              },
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              },
-// JSON-NEXT:              "valueCategory": "prvalue",
-// JSON-NEXT:              "value": "0"
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 10259,
-// JSON-NEXT:     "line": 247,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 40
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 10249,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 11531,
-// JSON-NEXT:      "line": 267,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "AliasDependentTemplateSpecializationType",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "TypeAliasTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 10424,
-// JSON-NEXT:       "line": 250,
-// JSON-NEXT:       "col": 38,
-// JSON-NEXT:       "tokLen": 5
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 10389,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 10441,
-// JSON-NEXT:        "col": 55,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "isReferenced": true,
-// JSON-NEXT:      "name": "T1",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTemplateParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 10420,
-// JSON-NEXT:         "col": 34,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 10398,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 8
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 10420,
-// JSON-NEXT:          "col": 34,
-// JSON-NEXT:          "tokLen": 2
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "TT",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0,
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 10412,
-// JSON-NEXT:           "col": 26,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 10407,
-// JSON-NEXT:            "col": 21,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 10407,
-// JSON-NEXT:            "col": 21,
-// JSON-NEXT:            "tokLen": 5
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "tagUsed": "class",
-// JSON-NEXT:          "depth": 1,
-// JSON-NEXT:          "index": 0
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TypeAliasDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 10430,
-// JSON-NEXT:         "col": 44,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 10424,
-// JSON-NEXT:          "col": 38,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 10441,
-// JSON-NEXT:          "col": 55,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "T1",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "TT<int>"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateSpecializationType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "TT<int>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "isDependent": true,
-// JSON-NEXT:          "isInstantiationDependent": true,
-// JSON-NEXT:          "templateName": "TT",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "int"
-// JSON-NEXT:            },
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "id": "0x{{.*}}",
-// JSON-NEXT:              "kind": "BuiltinType",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              }
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "TypeAliasTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 10464,
-// JSON-NEXT:       "line": 251,
-// JSON-NEXT:       "col": 21,
-// JSON-NEXT:       "tokLen": 5
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 10446,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 10491,
-// JSON-NEXT:        "col": 48,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "T2",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 10461,
-// JSON-NEXT:         "col": 18,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 10455,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 10461,
-// JSON-NEXT:          "col": 18,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "T",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TypeAliasDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 10470,
-// JSON-NEXT:         "col": 27,
-// JSON-NEXT:         "tokLen": 2
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 10464,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 10491,
-// JSON-NEXT:          "col": 48,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "T2",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "desugaredQualType": "T::template X<int>",
-// JSON-NEXT:         "qualType": "T1<T::template X>"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "TemplateSpecializationType",
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "T1<T::template X>"
-// JSON-NEXT:          },
-// JSON-NEXT:          "isDependent": true,
-// JSON-NEXT:          "isInstantiationDependent": true,
-// JSON-NEXT:          "isAlias": true,
-// JSON-NEXT:          "templateName": "T1",
-// JSON-NEXT:          "inner": [
-// JSON-NEXT:           {
-// JSON-NEXT:            "kind": "TemplateArgument"
-// JSON-NEXT:           },
-// JSON-NEXT:           {
-// JSON-NEXT:            "id": "0x{{.*}}",
-// JSON-NEXT:            "kind": "TemplateSpecializationType",
-// JSON-NEXT:            "type": {
-// JSON-NEXT:             "qualType": "T::template X<int>"
-// JSON-NEXT:            },
-// JSON-NEXT:            "isDependent": true,
-// JSON-NEXT:            "isInstantiationDependent": true,
-// JSON-NEXT:            "templateName": "T::template X",
-// JSON-NEXT:            "inner": [
-// JSON-NEXT:             {
-// JSON-NEXT:              "kind": "TemplateArgument",
-// JSON-NEXT:              "type": {
-// JSON-NEXT:               "qualType": "int"
-// JSON-NEXT:              },
-// JSON-NEXT:              "inner": [
-// JSON-NEXT:               {
-// JSON-NEXT:                "id": "0x{{.*}}",
-// JSON-NEXT:                "kind": "BuiltinType",
-// JSON-NEXT:                "type": {
-// JSON-NEXT:                 "qualType": "int"
-// JSON-NEXT:                }
-// JSON-NEXT:               }
-// JSON-NEXT:              ]
-// JSON-NEXT:             }
-// JSON-NEXT:            ]
-// JSON-NEXT:           }
-// JSON-NEXT:          ]
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   },
-// JSON-NEXT:   {
-// JSON-NEXT:    "id": "0x{{.*}}",
-// JSON-NEXT:    "kind": "NamespaceDecl",
-// JSON-NEXT:    "loc": {
-// JSON-NEXT:     "offset": 11557,
-// JSON-NEXT:     "line": 269,
-// JSON-NEXT:     "col": 11,
-// JSON-NEXT:     "tokLen": 28
-// JSON-NEXT:    },
-// JSON-NEXT:    "range": {
-// JSON-NEXT:     "begin": {
-// JSON-NEXT:      "offset": 11547,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 9
-// JSON-NEXT:     },
-// JSON-NEXT:     "end": {
-// JSON-NEXT:      "offset": 11906,
-// JSON-NEXT:      "line": 278,
-// JSON-NEXT:      "col": 1,
-// JSON-NEXT:      "tokLen": 1
-// JSON-NEXT:     }
-// JSON-NEXT:    },
-// JSON-NEXT:    "name": "TestAbbreviatedTemplateDecls",
-// JSON-NEXT:    "inner": [
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 11667,
-// JSON-NEXT:       "line": 271,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 11
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 11662,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 4
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 11683,
-// JSON-NEXT:        "col": 24,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "abbreviated",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 11683,
-// JSON-NEXT:         "col": 24,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 11679,
-// JSON-NEXT:          "col": 20,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 11683,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "auto:1",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 11667,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 11
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 11662,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 11683,
-// JSON-NEXT:          "col": 24,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "abbreviated",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (auto)"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 11683,
-// JSON-NEXT:           "col": 24,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 11679,
-// JSON-NEXT:            "col": 20,
-// JSON-NEXT:            "tokLen": 4
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 11679,
-// JSON-NEXT:            "col": 20,
-// JSON-NEXT:            "tokLen": 4
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "auto"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     },
-// JSON-NEXT:     {
-// JSON-NEXT:      "id": "0x{{.*}}",
-// JSON-NEXT:      "kind": "FunctionTemplateDecl",
-// JSON-NEXT:      "loc": {
-// JSON-NEXT:       "offset": 11713,
-// JSON-NEXT:       "line": 273,
-// JSON-NEXT:       "col": 8,
-// JSON-NEXT:       "tokLen": 5
-// JSON-NEXT:      },
-// JSON-NEXT:      "range": {
-// JSON-NEXT:       "begin": {
-// JSON-NEXT:        "offset": 11688,
-// JSON-NEXT:        "line": 272,
-// JSON-NEXT:        "col": 3,
-// JSON-NEXT:        "tokLen": 8
-// JSON-NEXT:       },
-// JSON-NEXT:       "end": {
-// JSON-NEXT:        "offset": 11726,
-// JSON-NEXT:        "line": 273,
-// JSON-NEXT:        "col": 21,
-// JSON-NEXT:        "tokLen": 1
-// JSON-NEXT:       }
-// JSON-NEXT:      },
-// JSON-NEXT:      "name": "mixed",
-// JSON-NEXT:      "inner": [
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 11703,
-// JSON-NEXT:         "line": 272,
-// JSON-NEXT:         "col": 18,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 11697,
-// JSON-NEXT:          "col": 12,
-// JSON-NEXT:          "tokLen": 5
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 11703,
-// JSON-NEXT:          "col": 18,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isReferenced": true,
-// JSON-NEXT:        "name": "T",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 0
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "TemplateTypeParmDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 11726,
-// JSON-NEXT:         "line": 273,
-// JSON-NEXT:         "col": 21,
-// JSON-NEXT:         "tokLen": 1
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 11722,
-// JSON-NEXT:          "col": 17,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 11726,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "isImplicit": true,
-// JSON-NEXT:        "name": "auto:2",
-// JSON-NEXT:        "tagUsed": "class",
-// JSON-NEXT:        "depth": 0,
-// JSON-NEXT:        "index": 1
-// JSON-NEXT:       },
-// JSON-NEXT:       {
-// JSON-NEXT:        "id": "0x{{.*}}",
-// JSON-NEXT:        "kind": "FunctionDecl",
-// JSON-NEXT:        "loc": {
-// JSON-NEXT:         "offset": 11713,
-// JSON-NEXT:         "col": 8,
-// JSON-NEXT:         "tokLen": 5
-// JSON-NEXT:        },
-// JSON-NEXT:        "range": {
-// JSON-NEXT:         "begin": {
-// JSON-NEXT:          "offset": 11708,
-// JSON-NEXT:          "col": 3,
-// JSON-NEXT:          "tokLen": 4
-// JSON-NEXT:         },
-// JSON-NEXT:         "end": {
-// JSON-NEXT:          "offset": 11726,
-// JSON-NEXT:          "col": 21,
-// JSON-NEXT:          "tokLen": 1
-// JSON-NEXT:         }
-// JSON-NEXT:        },
-// JSON-NEXT:        "name": "mixed",
-// JSON-NEXT:        "type": {
-// JSON-NEXT:         "qualType": "void (T, auto)"
-// JSON-NEXT:        },
-// JSON-NEXT:        "inner": [
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 11720,
-// JSON-NEXT:           "col": 15,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 11719,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 11719,
-// JSON-NEXT:            "col": 14,
-// JSON-NEXT:            "tokLen": 1
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "T"
-// JSON-NEXT:          }
-// JSON-NEXT:         },
-// JSON-NEXT:         {
-// JSON-NEXT:          "id": "0x{{.*}}",
-// JSON-NEXT:          "kind": "ParmVarDecl",
-// JSON-NEXT:          "loc": {
-// JSON-NEXT:           "offset": 11726,
-// JSON-NEXT:           "col": 21,
-// JSON-NEXT:           "tokLen": 1
-// JSON-NEXT:          },
-// JSON-NEXT:          "range": {
-// JSON-NEXT:           "begin": {
-// JSON-NEXT:            "offset": 11722,
-// JSON-NEXT:            "col": 17,
-// JSON-NEXT:            "tokLen": 4
-// JSON-NEXT:           },
-// JSON-NEXT:           "end": {
-// JSON-NEXT:            "offset": 11722,
-// JSON-NEXT:            "col": 17,
-// JSON-NEXT:            "tokLen": 4
-// JSON-NEXT:           }
-// JSON-NEXT:          },
-// JSON-NEXT:          "type": {
-// JSON-NEXT:           "qualType": "auto"
-// JSON-NEXT:          }
-// JSON-NEXT:         }
-// JSON-NEXT:        ]
-// JSON-NEXT:       }
-// JSON-NEXT:      ]
-// JSON-NEXT:     }
-// JSON-NEXT:    ]
-// JSON-NEXT:   }
-// JSON-NEXT:  ]
-// JSON-NEXT: }



More information about the cfe-commits mailing list