<div dir="ltr">It's only been a few days, and this new test already seems to be creating a significant maintenance burden.<div><br></div><div>Do you think you could provide a script to regenerate the test expectations, to reduce the burden here?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 27 May 2019 at 07:09, Aaron Ballman via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: aaronballman<br>
Date: Mon May 27 07:12:48 2019<br>
New Revision: 361764<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=361764&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=361764&view=rev</a><br>
Log:<br>
Add test cases for dumping AST expression nodes to JSON; NFC.<br>
<br>
Added:<br>
cfe/trunk/test/AST/ast-dump-expr-json.cpp<br>
<br>
Added: cfe/trunk/test/AST/ast-dump-expr-json.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-expr-json.cpp?rev=361764&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-expr-json.cpp?rev=361764&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/AST/ast-dump-expr-json.cpp (added)<br>
+++ cfe/trunk/test/AST/ast-dump-expr-json.cpp Mon May 27 07:12:48 2019<br>
@@ -0,0 +1,8992 @@<br>
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -fcxx-exceptions -std=gnu++17 -ast-dump=json -ast-dump-filter Test %s | FileCheck %s<br>
+<br>
+namespace std {<br>
+using size_t = decltype(sizeof(0));<br>
+<br>
+class type_info {<br>
+public:<br>
+ virtual ~type_info();<br>
+ bool operator==(const type_info& rhs) const noexcept;<br>
+ bool operator!=(const type_info& rhs) const noexcept;<br>
+ type_info(const type_info& rhs) = delete; // cannot be copied<br>
+ type_info& operator=(const type_info& rhs) = delete; // cannot be copied<br>
+};<br>
+<br>
+class bad_typeid {<br>
+public:<br>
+ bad_typeid() noexcept;<br>
+ bad_typeid(const bad_typeid&) noexcept;<br>
+ virtual ~bad_typeid();<br>
+ bad_typeid& operator=(const bad_typeid&) noexcept;<br>
+ const char* what() const noexcept;<br>
+};<br>
+} // namespace std<br>
+void *operator new(std::size_t, void *ptr);<br>
+<br>
+struct S {<br>
+ virtual ~S() = default;<br>
+<br>
+ void func(int);<br>
+ template <typename Ty><br>
+ Ty foo();<br>
+<br>
+ int i;<br>
+};<br>
+<br>
+struct T : S {};<br>
+<br>
+template <typename><br>
+struct U {};<br>
+<br>
+void TestThrow() {<br>
+ throw 12;<br>
+ throw;<br>
+}<br>
+<br>
+void TestPointerToMember(S obj1, S *obj2, int S::* data, void (S::*call)(int)) {<br>
+ obj1.*data;<br>
+ obj2->*data;<br>
+ (obj1.*call)(12);<br>
+ (obj2->*call)(12);<br>
+}<br>
+<br>
+void TestCasting(const S *s) {<br>
+ const_cast<S *>(s);<br>
+ static_cast<const T *>(s);<br>
+ dynamic_cast<const T *>(s);<br>
+ reinterpret_cast<const int *>(s);<br>
+}<br>
+<br>
+template <typename... Ts><br>
+void TestUnaryExpressions(int *p) {<br>
+ sizeof...(Ts);<br>
+ noexcept(p - p);<br>
+<br>
+ ::new int;<br>
+ new (int);<br>
+ new int{12};<br>
+ new int[2];<br>
+ new int[2]{1, 2};<br>
+ new (p) int;<br>
+ new (p) int{12};<br>
+<br>
+ ::delete p;<br>
+ delete [] p;<br>
+}<br>
+<br>
+void TestPostfixExpressions(S a, S *p, U<int> *r) {<br>
+ a.func(0);<br>
+ p->func(0);<br>
+ p->template foo<int>();<br>
+ a.template foo<float>();<br>
+ p->~S();<br>
+ a.~S();<br>
+ a.~decltype(a)();<br>
+ p->::S::~S();<br>
+ r->template U<int>::~U();<br>
+ typeid(a);<br>
+ typeid(S);<br>
+ typeid(const volatile S);<br>
+}<br>
+<br>
+template <typename... Ts><br>
+void TestPrimaryExpressions(Ts... a) {<br>
+ struct V {<br>
+ void f() {<br>
+ this;<br>
+<br>
+ [this]{};<br>
+ [*this]{};<br>
+ }<br>
+ };<br>
+<br>
+ int b, c;<br>
+<br>
+ [](){};<br>
+ [](int a, ...){};<br>
+ [a...]{};<br>
+ [=]{};<br>
+ [=] { return b; };<br>
+ [&]{};<br>
+ [&] { return c; };<br>
+ [b, &c]{ return b + c; };<br>
+ [a..., x = 12]{};<br>
+ []() constexpr {};<br>
+ []() mutable {};<br>
+ []() noexcept {};<br>
+ []() -> int { return 0; };<br>
+<br>
+ (a + ...);<br>
+ (... + a);<br>
+ (a + ... + b);<br>
+}<br>
+<br>
+namespace NS {<br>
+struct X {};<br>
+void f(X);<br>
+void y(...);<br>
+} // namespace NS<br>
+<br>
+void TestADLCall() {<br>
+ NS::X x;<br>
+ f(x);<br>
+ y(x);<br>
+}<br>
+<br>
+void TestNonADLCall() {<br>
+ NS::X x;<br>
+ NS::f(x);<br>
+}<br>
+<br>
+void TestNonADLCall2() {<br>
+ NS::X x;<br>
+ using NS::f;<br>
+ f(x);<br>
+ y(x);<br>
+}<br>
+<br>
+namespace test_adl_call_three {<br>
+using namespace NS;<br>
+void TestNonADLCall3() {<br>
+ X x;<br>
+ f(x);<br>
+}<br>
+} // namespace test_adl_call_three<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 41<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 41<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 44<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestThrow",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 41<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 44<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXThrowExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 42<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 42<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 42<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 42<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "12"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXThrowExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 43<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 43<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 51<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestPointerToMember",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S, S *, int S::*, void (S::*)(int))"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 28,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 28,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "obj1",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 37,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 34,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 37,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "obj2",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 52,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 43,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 52,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "data",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int S::*"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 68,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 58,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 77,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "call",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S::*)(int)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 80,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 46<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 51<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "BinaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "opcode": ".*",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "obj1",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int S::*"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 47<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int S::*"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "data",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int S::*"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "BinaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "opcode": "->*",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "obj2",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int S::*"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 48<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int S::*"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "data",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int S::*"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParenExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "BinaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "opcode": ".*",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "obj1",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S::*)(int)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S::*)(int)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "call",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S::*)(int)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 49<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "12"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParenExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "BinaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "opcode": "->*",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "obj2",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S::*)(int)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S::*)(int)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "call",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S::*)(int)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 50<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "12"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 53<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 53<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 58<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestCasting",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (const S *)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 53<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 53<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 53<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "s",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 30,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 53<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 58<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 54<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 20,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 54<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "NoOp",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 54<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 54<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "isPartOfExplicitCast": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 54<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 54<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "s",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXStaticCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 55<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 55<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const T *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "BaseToDerived",<br>
+// CHECK-NEXT: "path": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "name": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ],<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 55<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 55<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "isPartOfExplicitCast": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 55<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 55<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "s",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXDynamicCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 56<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 28,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 56<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const T *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "Dynamic",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 56<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 56<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "isPartOfExplicitCast": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 56<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 56<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "s",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXReinterpretCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 57<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 34,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 57<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "BitCast",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 33,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 57<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 33,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 57<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "isPartOfExplicitCast": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 33,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 57<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 33,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 57<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "s",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionTemplateDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 61<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 60<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 75<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestUnaryExpressions",<br>
+// CHECK-NEXT: "templateParams": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "TemplateTypeParmDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 60<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 60<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 60<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isReferenced": true,<br>
+// CHECK-NEXT: "name": "Ts",<br>
+// CHECK-NEXT: "tagUsed": "typename",<br>
+// CHECK-NEXT: "depth": 0,<br>
+// CHECK-NEXT: "index": 0,<br>
+// CHECK-NEXT: "isParameterPack": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ],<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 61<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 61<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 75<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestUnaryExpressions",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (int *)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 32,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 61<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 61<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 32,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 61<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isReferenced": true,<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 35,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 61<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 75<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "SizeOfPackExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 62<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 62<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "unsigned long"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNoexceptExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "bool"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "BinaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "long"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "opcode": "-",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 63<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNewExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 65<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 65<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isGlobal": true,<br>
+// CHECK-NEXT: "operatorNewDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator new",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *(unsigned long)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNewExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 66<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 66<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "operatorNewDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator new",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *(unsigned long)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNewExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 67<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 67<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "initStyle": "list",<br>
+// CHECK-NEXT: "operatorNewDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator new",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *(unsigned long)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "InitListExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 67<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 67<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 67<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 67<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "12"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNewExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 68<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 68<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArray": true,<br>
+// CHECK-NEXT: "operatorNewDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator new[]",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *(unsigned long)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 68<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 68<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "unsigned long"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "IntegralCast",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 68<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 68<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "2"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNewExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArray": true,<br>
+// CHECK-NEXT: "initStyle": "list",<br>
+// CHECK-NEXT: "operatorNewDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator new[]",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *(unsigned long)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "unsigned long"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "IntegralCast",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "2"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "InitListExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int [2]"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "1"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 69<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "2"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNewExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isPlacement": true,<br>
+// CHECK-NEXT: "operatorNewDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator new",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *(std::size_t, void *)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "BitCast",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 70<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXNewExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isPlacement": true,<br>
+// CHECK-NEXT: "initStyle": "list",<br>
+// CHECK-NEXT: "operatorNewDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator new",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *(std::size_t, void *)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "InitListExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "12"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "BitCast",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 71<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXDeleteExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 73<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 73<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isGlobal": true,<br>
+// CHECK-NEXT: "operatorDeleteDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator delete",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (void *) noexcept"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 73<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 73<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 73<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 73<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXDeleteExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 74<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 74<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArray": true,<br>
+// CHECK-NEXT: "isArrayAsWritten": true,<br>
+// CHECK-NEXT: "operatorDeleteDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "operator delete[]",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (void *) noexcept"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 74<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 74<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 74<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 74<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 90<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestPostfixExpressions",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (S, S *, U<int> *)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 31,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 29,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 31,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 37,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 34,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 37,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 48,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 40,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 48,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "r",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "U<int> *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 51,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 77<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 90<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": false,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 78<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "0"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": true,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 79<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "0"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "int",<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 22,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": true,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 80<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 81<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 25,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 81<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "float",<br>
+// CHECK-NEXT: "qualType": "float"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 81<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 81<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": false,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 81<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 81<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": true,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 82<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 83<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 83<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 83<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 83<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": false,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 83<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 83<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 84<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 84<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 84<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 84<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": false,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 84<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 84<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": true,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 85<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "p",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMemberCallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "MemberExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<bound member function type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isArrow": true,<br>
+// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "U<int> *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 86<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "U<int> *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "r",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "U<int> *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXTypeidExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 87<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 87<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const std::type_info"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 87<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 87<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "S"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXTypeidExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 88<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 88<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const std::type_info"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXTypeidExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 89<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 89<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const std::type_info"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionTemplateDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 93<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 92<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 122<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestPrimaryExpressions",<br>
+// CHECK-NEXT: "templateParams": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "TemplateTypeParmDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 92<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 92<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 92<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isReferenced": true,<br>
+// CHECK-NEXT: "name": "Ts",<br>
+// CHECK-NEXT: "tagUsed": "typename",<br>
+// CHECK-NEXT: "depth": 0,<br>
+// CHECK-NEXT: "index": 0,<br>
+// CHECK-NEXT: "isParameterPack": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ],<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 93<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 93<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 122<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestPrimaryExpressions",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (Ts...)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 35,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 93<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 29,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 93<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 35,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 93<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isReferenced": true,<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isParameterPack": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 38,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 93<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 122<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 94<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 101<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 94<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 94<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 101<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "V",<br>
+// CHECK-NEXT: "tagUsed": "struct",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true,<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "isConstexpr": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,<br>
+// CHECK-NEXT: "isAggregate": true,<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isPOD": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTrivial": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 94<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 94<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 94<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "V",<br>
+// CHECK-NEXT: "tagUsed": "struct"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 95<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 95<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 100<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "f",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 95<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 100<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXThisExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 96<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 96<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "V *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:98:7)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {},<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FieldDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "V *"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXThisExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "V *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "implicit": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 98<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:99:7)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FieldDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "V"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParenListExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NULL TYPE"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "UnaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<dependent type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "isPostfix": false,<br>
+// CHECK-NEXT: "opcode": "*",<br>
+// CHECK-NEXT: "canOverflow": false,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXThisExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "V *"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "implicit": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 99<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isReferenced": true,<br>
+// CHECK-NEXT: "name": "b",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 103<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isReferenced": true,<br>
+// CHECK-NEXT: "name": "c",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:105:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConversionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "operator auto (*)()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (*() const noexcept)()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "constexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "__invoke",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "storageClass": "static",<br>
+// CHECK-NEXT: "inline": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 105<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:106:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (int, ...) const"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConversionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "operator auto (*)(int, ...)",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (*() const noexcept)(int, ...)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "constexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "__invoke",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (int, ...)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "storageClass": "static",<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 106<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:107:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {},<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FieldDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParenListExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NULL TYPE"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 107<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:108:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 108<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:109:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "b",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 109<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "b",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:110:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 110<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:111:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "c",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 111<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "c",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:112:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {},<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FieldDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FieldDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int &"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "BinaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "opcode": "+",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "b",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "c",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "b",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "c",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 26,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 12,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "BinaryOperator",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "opcode": "+",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "b",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "LValueToRValue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 112<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "c",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:113:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {},<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FieldDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FieldDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "int",<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> auto"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParenListExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NULL TYPE"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "12"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 113<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:114:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "constexpr": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConversionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "operator auto (*)()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (*() const noexcept)()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "constexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "__invoke",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "storageClass": "static",<br>
+// CHECK-NEXT: "inline": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 19,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 114<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:115:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConversionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "operator auto (*)()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (*() const noexcept)()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "constexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "__invoke",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "storageClass": "static",<br>
+// CHECK-NEXT: "inline": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 16,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 115<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:116:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 8,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const noexcept"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConversionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "operator auto (*)() noexcept",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (*() const noexcept)() noexcept"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "constexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "__invoke",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () noexcept"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "storageClass": "static",<br>
+// CHECK-NEXT: "inline": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 18,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 116<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "LambdaExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "(lambda at {{.*}}:117:3)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXRecordDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "tagUsed": "class",<br>
+// CHECK-NEXT: "completeDefinition": true,<br>
+// CHECK-NEXT: "definitionData": {<br>
+// CHECK-NEXT: "canConstDefaultInit": true,<br>
+// CHECK-NEXT: "copyAssign": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "copyCtor": {<br>
+// CHECK-NEXT: "hasConstParam": true,<br>
+// CHECK-NEXT: "implicitHasConstParam": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "defaultCtor": {<br>
+// CHECK-NEXT: "defaultedIsConstexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "dtor": {<br>
+// CHECK-NEXT: "irrelevant": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isEmpty": true,<br>
+// CHECK-NEXT: "isLambda": true,<br>
+// CHECK-NEXT: "isLiteral": true,<br>
+// CHECK-NEXT: "isStandardLayout": true,<br>
+// CHECK-NEXT: "isTriviallyCopyable": true,<br>
+// CHECK-NEXT: "moveAssign": {},<br>
+// CHECK-NEXT: "moveCtor": {<br>
+// CHECK-NEXT: "exists": true,<br>
+// CHECK-NEXT: "needsImplicit": true,<br>
+// CHECK-NEXT: "simple": true,<br>
+// CHECK-NEXT: "trivial": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "operator()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () const -> int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "0"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConversionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "operator int (*)()",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto (*() const noexcept)() -> int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inline": true,<br>
+// CHECK-NEXT: "constexpr": true<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXMethodDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isImplicit": true,<br>
+// CHECK-NEXT: "name": "__invoke",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "auto () -> int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "storageClass": "static",<br>
+// CHECK-NEXT: "inline": true<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 27,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ReturnStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 17,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "IntegerLiteral",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 117<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "value": "0"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXFoldExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 119<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 119<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<dependent type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 119<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 119<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {}<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXFoldExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 120<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 11,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 120<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<dependent type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {},<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 120<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 120<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXFoldExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 121<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 15,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 121<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "<dependent type>"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 121<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 4,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 121<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ParmVarDecl",<br>
+// CHECK-NEXT: "name": "a",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "Ts..."<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 121<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 121<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "b",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "int"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 130<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 130<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 134<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestADLCall",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 20,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 130<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 134<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 131<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 131<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 131<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 131<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 131<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "init": "call",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 131<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 131<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "adl": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (*)(NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "FunctionToPointerDecay",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "f",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "const NS::X",<br>
+// CHECK-NEXT: "qualType": "const NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "castKind": "NoOp",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 132<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "adl": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (*)(...)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "FunctionToPointerDecay",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (...)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "y",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (...)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "const NS::X",<br>
+// CHECK-NEXT: "qualType": "const NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "castKind": "NoOp",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 133<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 136<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 136<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 139<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestNonADLCall",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 23,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 136<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 139<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 137<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 137<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 137<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 137<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 137<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "init": "call",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 137<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 137<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (*)(NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "FunctionToPointerDecay",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 7,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "f",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "const NS::X",<br>
+// CHECK-NEXT: "qualType": "const NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "castKind": "NoOp",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 138<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 141<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 141<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 146<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestNonADLCall2",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 141<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 146<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 142<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 10,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 142<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 142<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 142<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 142<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "init": "call",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 142<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 9,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 142<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 143<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 14,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 143<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "UsingDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 143<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 143<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 13,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 143<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "NS::f"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (*)(NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "FunctionToPointerDecay",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "f",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "foundReferencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "UsingShadowDecl",<br>
+// CHECK-NEXT: "name": "f"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "const NS::X",<br>
+// CHECK-NEXT: "qualType": "const NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "castKind": "NoOp",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 144<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "adl": true,<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (*)(...)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "FunctionToPointerDecay",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (...)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "y",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (...)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "const NS::X",<br>
+// CHECK-NEXT: "qualType": "const NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "castKind": "NoOp",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 145<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "desugaredQualType": "NS::X",<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+<br>
+<br>
+// CHECK: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 150<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 150<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 153<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "name": "TestNonADLCall3",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void ()"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CompoundStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 24,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 150<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 1,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 153<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclStmt",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 151<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 151<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "loc": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 151<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 151<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 151<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "isUsed": true,<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "init": "call",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 151<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 151<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CallExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 6,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (*)(NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "castKind": "FunctionToPointerDecay",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 3,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "FunctionDecl",<br>
+// CHECK-NEXT: "name": "f",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "void (NS::X)"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "CXXConstructExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "rvalue",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "ImplicitCastExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "const NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "castKind": "NoOp",<br>
+// CHECK-NEXT: "inner": [<br>
+// CHECK-NEXT: {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "DeclRefExpr",<br>
+// CHECK-NEXT: "range": {<br>
+// CHECK-NEXT: "begin": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "end": {<br>
+// CHECK-NEXT: "col": 5,<br>
+// CHECK-NEXT: "file": "{{.*}}",<br>
+// CHECK-NEXT: "line": 152<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: },<br>
+// CHECK-NEXT: "valueCategory": "lvalue",<br>
+// CHECK-NEXT: "referencedDecl": {<br>
+// CHECK-NEXT: "id": "0x{{.*}}",<br>
+// CHECK-NEXT: "kind": "VarDecl",<br>
+// CHECK-NEXT: "name": "x",<br>
+// CHECK-NEXT: "type": {<br>
+// CHECK-NEXT: "qualType": "NS::X"<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
+// CHECK-NEXT: ]<br>
+// CHECK-NEXT: }<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>