1// RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
2
3typedef long NSInteger;
4typedef unsigned long NSUInteger;
5typedef signed char BOOL;
6
7@interface NSNumber
8@end
9@interface NSNumber (NSNumberCreation)
10+ (NSNumber *)numberWithChar:(char)value;
11+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;
12+ (NSNumber *)numberWithShort:(short)value;
13+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;
14+ (NSNumber *)numberWithInt:(int)value;
15+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;
16+ (NSNumber *)numberWithLong:(long)value;
17+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;
18+ (NSNumber *)numberWithLongLong:(long long)value;
19+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value;
20+ (NSNumber *)numberWithFloat:(float)value;
21+ (NSNumber *)numberWithDouble:(double)value;
22+ (NSNumber *)numberWithBool:(BOOL)value;
23+ (NSNumber *)numberWithInteger:(NSInteger)value;
24+ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value;
25@end
26
27@interface I
28{
29@public
30  int public;
31}
32- (int) conformsToProtocol : (Protocol *)protocl;
33- (void)method1;
34+ (void)method2;
35@end
36
37@interface J
38@property unsigned prop;
39@end
40
41@protocol Proto
42@end
43
44@interface NSMutableDictionary
45- (id)objectForKeyedSubscript:(id)key;
46- (void)setObject:(id)object forKeyedSubscript:(id)key;
47@end
48
49@interface NSMutableArray
50- (id)objectAtIndexedSubscript:(int)index;
51- (void)setObject:(id)object atIndexedSubscript:(int)index;
52@end
53
54void TestObjCEncode() {
55  @encode(int);
56  @encode(typeof(^{;}));
57}
58
59void TestObjCMessage(I *Obj) {
60  [Obj method1];
61  [I method2];
62}
63
64void TestObjCBoxed() {
65  @(1 + 1);
66}
67
68void TestObjCSelector() {
69  SEL s = @selector(dealloc);
70}
71
72void TestObjCProtocol(id Obj) {
73  [Obj conformsToProtocol:@protocol(Proto)];
74}
75
76void TestObjCPropertyRef(J *Obj) {
77  Obj.prop = 12;
78  int i = Obj.prop;
79}
80
81void TestObjCSubscriptRef(NSMutableArray *Array, NSMutableDictionary *Dict) {
82 Array[0] = (void*)0;
83 id i = Array[0];
84
85 Dict[@"key"] = (void*)0;
86 i = Dict[@"key"];
87}
88
89void TestObjCIVarRef(I *Ptr) {
90  Ptr->public = 0;
91}
92
93void TestObjCBoolLiteral() {
94  __objc_yes;
95  __objc_no;
96}
97
98// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
99
100// CHECK-NOT: {{^}}Dumping
101// CHECK:  "kind": "FunctionDecl",
102// CHECK-NEXT:  "loc": {
103// CHECK-NEXT:   "offset": 1506,
104// CHECK-NEXT:   "file": "{{.*}}",
105// CHECK-NEXT:   "line": 54,
106// CHECK-NEXT:   "col": 6,
107// CHECK-NEXT:   "tokLen": 14
108// CHECK-NEXT:  },
109// CHECK-NEXT:  "range": {
110// CHECK-NEXT:   "begin": {
111// CHECK-NEXT:    "offset": 1501,
112// CHECK-NEXT:    "col": 1,
113// CHECK-NEXT:    "tokLen": 4
114// CHECK-NEXT:   },
115// CHECK-NEXT:   "end": {
116// CHECK-NEXT:    "offset": 1566,
117// CHECK-NEXT:    "line": 57,
118// CHECK-NEXT:    "col": 1,
119// CHECK-NEXT:    "tokLen": 1
120// CHECK-NEXT:   }
121// CHECK-NEXT:  },
122// CHECK-NEXT:  "name": "TestObjCEncode",
123// CHECK-NEXT:  "mangledName": "TestObjCEncode",
124// CHECK-NEXT:  "type": {
125// CHECK-NEXT:   "qualType": "void ()"
126// CHECK-NEXT:  },
127// CHECK-NEXT:  "inner": [
128// CHECK-NEXT:   {
129// CHECK-NEXT:    "id": "0x{{.*}}",
130// CHECK-NEXT:    "kind": "CompoundStmt",
131// CHECK-NEXT:    "range": {
132// CHECK-NEXT:     "begin": {
133// CHECK-NEXT:      "offset": 1523,
134// CHECK-NEXT:      "line": 54,
135// CHECK-NEXT:      "col": 23,
136// CHECK-NEXT:      "tokLen": 1
137// CHECK-NEXT:     },
138// CHECK-NEXT:     "end": {
139// CHECK-NEXT:      "offset": 1566,
140// CHECK-NEXT:      "line": 57,
141// CHECK-NEXT:      "col": 1,
142// CHECK-NEXT:      "tokLen": 1
143// CHECK-NEXT:     }
144// CHECK-NEXT:    },
145// CHECK-NEXT:    "inner": [
146// CHECK-NEXT:     {
147// CHECK-NEXT:      "id": "0x{{.*}}",
148// CHECK-NEXT:      "kind": "ImplicitCastExpr",
149// CHECK-NEXT:      "range": {
150// CHECK-NEXT:       "begin": {
151// CHECK-NEXT:        "offset": 1527,
152// CHECK-NEXT:        "line": 55,
153// CHECK-NEXT:        "col": 3,
154// CHECK-NEXT:        "tokLen": 1
155// CHECK-NEXT:       },
156// CHECK-NEXT:       "end": {
157// CHECK-NEXT:        "offset": 1538,
158// CHECK-NEXT:        "col": 14,
159// CHECK-NEXT:        "tokLen": 1
160// CHECK-NEXT:       }
161// CHECK-NEXT:      },
162// CHECK-NEXT:      "type": {
163// CHECK-NEXT:       "qualType": "char *"
164// CHECK-NEXT:      },
165// CHECK-NEXT:      "valueCategory": "prvalue",
166// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
167// CHECK-NEXT:      "inner": [
168// CHECK-NEXT:       {
169// CHECK-NEXT:        "id": "0x{{.*}}",
170// CHECK-NEXT:        "kind": "ObjCEncodeExpr",
171// CHECK-NEXT:        "range": {
172// CHECK-NEXT:         "begin": {
173// CHECK-NEXT:          "offset": 1527,
174// CHECK-NEXT:          "col": 3,
175// CHECK-NEXT:          "tokLen": 1
176// CHECK-NEXT:         },
177// CHECK-NEXT:         "end": {
178// CHECK-NEXT:          "offset": 1538,
179// CHECK-NEXT:          "col": 14,
180// CHECK-NEXT:          "tokLen": 1
181// CHECK-NEXT:         }
182// CHECK-NEXT:        },
183// CHECK-NEXT:        "type": {
184// CHECK-NEXT:         "qualType": "char[2]"
185// CHECK-NEXT:        },
186// CHECK-NEXT:        "valueCategory": "lvalue",
187// CHECK-NEXT:        "encodedType": {
188// CHECK-NEXT:         "qualType": "int"
189// CHECK-NEXT:        }
190// CHECK-NEXT:       }
191// CHECK-NEXT:      ]
192// CHECK-NEXT:     },
193// CHECK-NEXT:     {
194// CHECK-NEXT:      "id": "0x{{.*}}",
195// CHECK-NEXT:      "kind": "ImplicitCastExpr",
196// CHECK-NEXT:      "range": {
197// CHECK-NEXT:       "begin": {
198// CHECK-NEXT:        "offset": 1543,
199// CHECK-NEXT:        "line": 56,
200// CHECK-NEXT:        "col": 3,
201// CHECK-NEXT:        "tokLen": 1
202// CHECK-NEXT:       },
203// CHECK-NEXT:       "end": {
204// CHECK-NEXT:        "offset": 1563,
205// CHECK-NEXT:        "col": 23,
206// CHECK-NEXT:        "tokLen": 1
207// CHECK-NEXT:       }
208// CHECK-NEXT:      },
209// CHECK-NEXT:      "type": {
210// CHECK-NEXT:       "qualType": "char *"
211// CHECK-NEXT:      },
212// CHECK-NEXT:      "valueCategory": "prvalue",
213// CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
214// CHECK-NEXT:      "inner": [
215// CHECK-NEXT:       {
216// CHECK-NEXT:        "id": "0x{{.*}}",
217// CHECK-NEXT:        "kind": "ObjCEncodeExpr",
218// CHECK-NEXT:        "range": {
219// CHECK-NEXT:         "begin": {
220// CHECK-NEXT:          "offset": 1543,
221// CHECK-NEXT:          "col": 3,
222// CHECK-NEXT:          "tokLen": 1
223// CHECK-NEXT:         },
224// CHECK-NEXT:         "end": {
225// CHECK-NEXT:          "offset": 1563,
226// CHECK-NEXT:          "col": 23,
227// CHECK-NEXT:          "tokLen": 1
228// CHECK-NEXT:         }
229// CHECK-NEXT:        },
230// CHECK-NEXT:        "type": {
231// CHECK-NEXT:         "qualType": "char[3]"
232// CHECK-NEXT:        },
233// CHECK-NEXT:        "valueCategory": "lvalue",
234// CHECK-NEXT:        "encodedType": {
235// CHECK-NEXT:         "desugaredQualType": "void (^)(void)",
236// CHECK-NEXT:         "qualType": "typeof (^{ })"
237// CHECK-NEXT:        }
238// CHECK-NEXT:       }
239// CHECK-NEXT:      ]
240// CHECK-NEXT:     }
241// CHECK-NEXT:    ]
242// CHECK-NEXT:   }
243// CHECK-NEXT:  ]
244// CHECK-NEXT: }
245
246// CHECK-NOT: {{^}}Dumping
247// CHECK:  "kind": "FunctionDecl",
248// CHECK-NEXT:  "loc": {
249// CHECK-NEXT:   "offset": 1574,
250// CHECK-NEXT:   "file": "{{.*}}",
251// CHECK-NEXT:   "line": 59,
252// CHECK-NEXT:   "col": 6,
253// CHECK-NEXT:   "tokLen": 15
254// CHECK-NEXT:  },
255// CHECK-NEXT:  "range": {
256// CHECK-NEXT:   "begin": {
257// CHECK-NEXT:    "offset": 1569,
258// CHECK-NEXT:    "col": 1,
259// CHECK-NEXT:    "tokLen": 4
260// CHECK-NEXT:   },
261// CHECK-NEXT:   "end": {
262// CHECK-NEXT:    "offset": 1632,
263// CHECK-NEXT:    "line": 62,
264// CHECK-NEXT:    "col": 1,
265// CHECK-NEXT:    "tokLen": 1
266// CHECK-NEXT:   }
267// CHECK-NEXT:  },
268// CHECK-NEXT:  "name": "TestObjCMessage",
269// CHECK-NEXT:  "mangledName": "TestObjCMessage",
270// CHECK-NEXT:  "type": {
271// CHECK-NEXT:   "qualType": "void (I *)"
272// CHECK-NEXT:  },
273// CHECK-NEXT:  "inner": [
274// CHECK-NEXT:   {
275// CHECK-NEXT:    "id": "0x{{.*}}",
276// CHECK-NEXT:    "kind": "ParmVarDecl",
277// CHECK-NEXT:    "loc": {
278// CHECK-NEXT:     "offset": 1593,
279// CHECK-NEXT:     "line": 59,
280// CHECK-NEXT:     "col": 25,
281// CHECK-NEXT:     "tokLen": 3
282// CHECK-NEXT:    },
283// CHECK-NEXT:    "range": {
284// CHECK-NEXT:     "begin": {
285// CHECK-NEXT:      "offset": 1590,
286// CHECK-NEXT:      "col": 22,
287// CHECK-NEXT:      "tokLen": 1
288// CHECK-NEXT:     },
289// CHECK-NEXT:     "end": {
290// CHECK-NEXT:      "offset": 1593,
291// CHECK-NEXT:      "col": 25,
292// CHECK-NEXT:      "tokLen": 3
293// CHECK-NEXT:     }
294// CHECK-NEXT:    },
295// CHECK-NEXT:    "isUsed": true,
296// CHECK-NEXT:    "name": "Obj",
297// CHECK-NEXT:    "mangledName": "Obj",
298// CHECK-NEXT:    "type": {
299// CHECK-NEXT:     "qualType": "I *"
300// CHECK-NEXT:    }
301// CHECK-NEXT:   },
302// CHECK-NEXT:   {
303// CHECK-NEXT:    "id": "0x{{.*}}",
304// CHECK-NEXT:    "kind": "CompoundStmt",
305// CHECK-NEXT:    "range": {
306// CHECK-NEXT:     "begin": {
307// CHECK-NEXT:      "offset": 1598,
308// CHECK-NEXT:      "col": 30,
309// CHECK-NEXT:      "tokLen": 1
310// CHECK-NEXT:     },
311// CHECK-NEXT:     "end": {
312// CHECK-NEXT:      "offset": 1632,
313// CHECK-NEXT:      "line": 62,
314// CHECK-NEXT:      "col": 1,
315// CHECK-NEXT:      "tokLen": 1
316// CHECK-NEXT:     }
317// CHECK-NEXT:    },
318// CHECK-NEXT:    "inner": [
319// CHECK-NEXT:     {
320// CHECK-NEXT:      "id": "0x{{.*}}",
321// CHECK-NEXT:      "kind": "ObjCMessageExpr",
322// CHECK-NEXT:      "range": {
323// CHECK-NEXT:       "begin": {
324// CHECK-NEXT:        "offset": 1602,
325// CHECK-NEXT:        "line": 60,
326// CHECK-NEXT:        "col": 3,
327// CHECK-NEXT:        "tokLen": 1
328// CHECK-NEXT:       },
329// CHECK-NEXT:       "end": {
330// CHECK-NEXT:        "offset": 1614,
331// CHECK-NEXT:        "col": 15,
332// CHECK-NEXT:        "tokLen": 1
333// CHECK-NEXT:       }
334// CHECK-NEXT:      },
335// CHECK-NEXT:      "type": {
336// CHECK-NEXT:       "qualType": "void"
337// CHECK-NEXT:      },
338// CHECK-NEXT:      "valueCategory": "prvalue",
339// CHECK-NEXT:      "selector": "method1",
340// CHECK-NEXT:      "receiverKind": "instance",
341// CHECK-NEXT:      "inner": [
342// CHECK-NEXT:       {
343// CHECK-NEXT:        "id": "0x{{.*}}",
344// CHECK-NEXT:        "kind": "ImplicitCastExpr",
345// CHECK-NEXT:        "range": {
346// CHECK-NEXT:         "begin": {
347// CHECK-NEXT:          "offset": 1603,
348// CHECK-NEXT:          "col": 4,
349// CHECK-NEXT:          "tokLen": 3
350// CHECK-NEXT:         },
351// CHECK-NEXT:         "end": {
352// CHECK-NEXT:          "offset": 1603,
353// CHECK-NEXT:          "col": 4,
354// CHECK-NEXT:          "tokLen": 3
355// CHECK-NEXT:         }
356// CHECK-NEXT:        },
357// CHECK-NEXT:        "type": {
358// CHECK-NEXT:         "qualType": "I *"
359// CHECK-NEXT:        },
360// CHECK-NEXT:        "valueCategory": "prvalue",
361// CHECK-NEXT:        "castKind": "LValueToRValue",
362// CHECK-NEXT:        "inner": [
363// CHECK-NEXT:         {
364// CHECK-NEXT:          "id": "0x{{.*}}",
365// CHECK-NEXT:          "kind": "DeclRefExpr",
366// CHECK-NEXT:          "range": {
367// CHECK-NEXT:           "begin": {
368// CHECK-NEXT:            "offset": 1603,
369// CHECK-NEXT:            "col": 4,
370// CHECK-NEXT:            "tokLen": 3
371// CHECK-NEXT:           },
372// CHECK-NEXT:           "end": {
373// CHECK-NEXT:            "offset": 1603,
374// CHECK-NEXT:            "col": 4,
375// CHECK-NEXT:            "tokLen": 3
376// CHECK-NEXT:           }
377// CHECK-NEXT:          },
378// CHECK-NEXT:          "type": {
379// CHECK-NEXT:           "qualType": "I *"
380// CHECK-NEXT:          },
381// CHECK-NEXT:          "valueCategory": "lvalue",
382// CHECK-NEXT:          "referencedDecl": {
383// CHECK-NEXT:           "id": "0x{{.*}}",
384// CHECK-NEXT:           "kind": "ParmVarDecl",
385// CHECK-NEXT:           "name": "Obj",
386// CHECK-NEXT:           "type": {
387// CHECK-NEXT:            "qualType": "I *"
388// CHECK-NEXT:           }
389// CHECK-NEXT:          }
390// CHECK-NEXT:         }
391// CHECK-NEXT:        ]
392// CHECK-NEXT:       }
393// CHECK-NEXT:      ]
394// CHECK-NEXT:     },
395// CHECK-NEXT:     {
396// CHECK-NEXT:      "id": "0x{{.*}}",
397// CHECK-NEXT:      "kind": "ObjCMessageExpr",
398// CHECK-NEXT:      "range": {
399// CHECK-NEXT:       "begin": {
400// CHECK-NEXT:        "offset": 1619,
401// CHECK-NEXT:        "line": 61,
402// CHECK-NEXT:        "col": 3,
403// CHECK-NEXT:        "tokLen": 1
404// CHECK-NEXT:       },
405// CHECK-NEXT:       "end": {
406// CHECK-NEXT:        "offset": 1629,
407// CHECK-NEXT:        "col": 13,
408// CHECK-NEXT:        "tokLen": 1
409// CHECK-NEXT:       }
410// CHECK-NEXT:      },
411// CHECK-NEXT:      "type": {
412// CHECK-NEXT:       "qualType": "void"
413// CHECK-NEXT:      },
414// CHECK-NEXT:      "valueCategory": "prvalue",
415// CHECK-NEXT:      "selector": "method2",
416// CHECK-NEXT:      "receiverKind": "class",
417// CHECK-NEXT:      "classType": {
418// CHECK-NEXT:       "qualType": "I"
419// CHECK-NEXT:      }
420// CHECK-NEXT:     }
421// CHECK-NEXT:    ]
422// CHECK-NEXT:   }
423// CHECK-NEXT:  ]
424// CHECK-NEXT: }
425
426// CHECK-NOT: {{^}}Dumping
427// CHECK:  "kind": "FunctionDecl",
428// CHECK-NEXT:  "loc": {
429// CHECK-NEXT:   "offset": 1640,
430// CHECK-NEXT:   "file": "{{.*}}",
431// CHECK-NEXT:   "line": 64,
432// CHECK-NEXT:   "col": 6,
433// CHECK-NEXT:   "tokLen": 13
434// CHECK-NEXT:  },
435// CHECK-NEXT:  "range": {
436// CHECK-NEXT:   "begin": {
437// CHECK-NEXT:    "offset": 1635,
438// CHECK-NEXT:    "col": 1,
439// CHECK-NEXT:    "tokLen": 4
440// CHECK-NEXT:   },
441// CHECK-NEXT:   "end": {
442// CHECK-NEXT:    "offset": 1670,
443// CHECK-NEXT:    "line": 66,
444// CHECK-NEXT:    "col": 1,
445// CHECK-NEXT:    "tokLen": 1
446// CHECK-NEXT:   }
447// CHECK-NEXT:  },
448// CHECK-NEXT:  "name": "TestObjCBoxed",
449// CHECK-NEXT:  "mangledName": "TestObjCBoxed",
450// CHECK-NEXT:  "type": {
451// CHECK-NEXT:   "qualType": "void ()"
452// CHECK-NEXT:  },
453// CHECK-NEXT:  "inner": [
454// CHECK-NEXT:   {
455// CHECK-NEXT:    "id": "0x{{.*}}",
456// CHECK-NEXT:    "kind": "CompoundStmt",
457// CHECK-NEXT:    "range": {
458// CHECK-NEXT:     "begin": {
459// CHECK-NEXT:      "offset": 1656,
460// CHECK-NEXT:      "line": 64,
461// CHECK-NEXT:      "col": 22,
462// CHECK-NEXT:      "tokLen": 1
463// CHECK-NEXT:     },
464// CHECK-NEXT:     "end": {
465// CHECK-NEXT:      "offset": 1670,
466// CHECK-NEXT:      "line": 66,
467// CHECK-NEXT:      "col": 1,
468// CHECK-NEXT:      "tokLen": 1
469// CHECK-NEXT:     }
470// CHECK-NEXT:    },
471// CHECK-NEXT:    "inner": [
472// CHECK-NEXT:     {
473// CHECK-NEXT:      "id": "0x{{.*}}",
474// CHECK-NEXT:      "kind": "ObjCBoxedExpr",
475// CHECK-NEXT:      "range": {
476// CHECK-NEXT:       "begin": {
477// CHECK-NEXT:        "offset": 1660,
478// CHECK-NEXT:        "line": 65,
479// CHECK-NEXT:        "col": 3,
480// CHECK-NEXT:        "tokLen": 1
481// CHECK-NEXT:       },
482// CHECK-NEXT:       "end": {
483// CHECK-NEXT:        "offset": 1667,
484// CHECK-NEXT:        "col": 10,
485// CHECK-NEXT:        "tokLen": 1
486// CHECK-NEXT:       }
487// CHECK-NEXT:      },
488// CHECK-NEXT:      "type": {
489// CHECK-NEXT:       "qualType": "NSNumber *"
490// CHECK-NEXT:      },
491// CHECK-NEXT:      "valueCategory": "prvalue",
492// CHECK-NEXT:      "selector": "numberWithInt:",
493// CHECK-NEXT:      "inner": [
494// CHECK-NEXT:       {
495// CHECK-NEXT:        "id": "0x{{.*}}",
496// CHECK-NEXT:        "kind": "ParenExpr",
497// CHECK-NEXT:        "range": {
498// CHECK-NEXT:         "begin": {
499// CHECK-NEXT:          "offset": 1661,
500// CHECK-NEXT:          "col": 4,
501// CHECK-NEXT:          "tokLen": 1
502// CHECK-NEXT:         },
503// CHECK-NEXT:         "end": {
504// CHECK-NEXT:          "offset": 1667,
505// CHECK-NEXT:          "col": 10,
506// CHECK-NEXT:          "tokLen": 1
507// CHECK-NEXT:         }
508// CHECK-NEXT:        },
509// CHECK-NEXT:        "type": {
510// CHECK-NEXT:         "qualType": "int"
511// CHECK-NEXT:        },
512// CHECK-NEXT:        "valueCategory": "prvalue",
513// CHECK-NEXT:        "inner": [
514// CHECK-NEXT:         {
515// CHECK-NEXT:          "id": "0x{{.*}}",
516// CHECK-NEXT:          "kind": "BinaryOperator",
517// CHECK-NEXT:          "range": {
518// CHECK-NEXT:           "begin": {
519// CHECK-NEXT:            "offset": 1662,
520// CHECK-NEXT:            "col": 5,
521// CHECK-NEXT:            "tokLen": 1
522// CHECK-NEXT:           },
523// CHECK-NEXT:           "end": {
524// CHECK-NEXT:            "offset": 1666,
525// CHECK-NEXT:            "col": 9,
526// CHECK-NEXT:            "tokLen": 1
527// CHECK-NEXT:           }
528// CHECK-NEXT:          },
529// CHECK-NEXT:          "type": {
530// CHECK-NEXT:           "qualType": "int"
531// CHECK-NEXT:          },
532// CHECK-NEXT:          "valueCategory": "prvalue",
533// CHECK-NEXT:          "opcode": "+",
534// CHECK-NEXT:          "inner": [
535// CHECK-NEXT:           {
536// CHECK-NEXT:            "id": "0x{{.*}}",
537// CHECK-NEXT:            "kind": "IntegerLiteral",
538// CHECK-NEXT:            "range": {
539// CHECK-NEXT:             "begin": {
540// CHECK-NEXT:              "offset": 1662,
541// CHECK-NEXT:              "col": 5,
542// CHECK-NEXT:              "tokLen": 1
543// CHECK-NEXT:             },
544// CHECK-NEXT:             "end": {
545// CHECK-NEXT:              "offset": 1662,
546// CHECK-NEXT:              "col": 5,
547// CHECK-NEXT:              "tokLen": 1
548// CHECK-NEXT:             }
549// CHECK-NEXT:            },
550// CHECK-NEXT:            "type": {
551// CHECK-NEXT:             "qualType": "int"
552// CHECK-NEXT:            },
553// CHECK-NEXT:            "valueCategory": "prvalue",
554// CHECK-NEXT:            "value": "1"
555// CHECK-NEXT:           },
556// CHECK-NEXT:           {
557// CHECK-NEXT:            "id": "0x{{.*}}",
558// CHECK-NEXT:            "kind": "IntegerLiteral",
559// CHECK-NEXT:            "range": {
560// CHECK-NEXT:             "begin": {
561// CHECK-NEXT:              "offset": 1666,
562// CHECK-NEXT:              "col": 9,
563// CHECK-NEXT:              "tokLen": 1
564// CHECK-NEXT:             },
565// CHECK-NEXT:             "end": {
566// CHECK-NEXT:              "offset": 1666,
567// CHECK-NEXT:              "col": 9,
568// CHECK-NEXT:              "tokLen": 1
569// CHECK-NEXT:             }
570// CHECK-NEXT:            },
571// CHECK-NEXT:            "type": {
572// CHECK-NEXT:             "qualType": "int"
573// CHECK-NEXT:            },
574// CHECK-NEXT:            "valueCategory": "prvalue",
575// CHECK-NEXT:            "value": "1"
576// CHECK-NEXT:           }
577// CHECK-NEXT:          ]
578// CHECK-NEXT:         }
579// CHECK-NEXT:        ]
580// CHECK-NEXT:       }
581// CHECK-NEXT:      ]
582// CHECK-NEXT:     }
583// CHECK-NEXT:    ]
584// CHECK-NEXT:   }
585// CHECK-NEXT:  ]
586// CHECK-NEXT: }
587
588// CHECK-NOT: {{^}}Dumping
589// CHECK:  "kind": "FunctionDecl",
590// CHECK-NEXT:  "loc": {
591// CHECK-NEXT:   "offset": 1678,
592// CHECK-NEXT:   "file": "{{.*}}",
593// CHECK-NEXT:   "line": 68,
594// CHECK-NEXT:   "col": 6,
595// CHECK-NEXT:   "tokLen": 16
596// CHECK-NEXT:  },
597// CHECK-NEXT:  "range": {
598// CHECK-NEXT:   "begin": {
599// CHECK-NEXT:    "offset": 1673,
600// CHECK-NEXT:    "col": 1,
601// CHECK-NEXT:    "tokLen": 4
602// CHECK-NEXT:   },
603// CHECK-NEXT:   "end": {
604// CHECK-NEXT:    "offset": 1729,
605// CHECK-NEXT:    "line": 70,
606// CHECK-NEXT:    "col": 1,
607// CHECK-NEXT:    "tokLen": 1
608// CHECK-NEXT:   }
609// CHECK-NEXT:  },
610// CHECK-NEXT:  "name": "TestObjCSelector",
611// CHECK-NEXT:  "mangledName": "TestObjCSelector",
612// CHECK-NEXT:  "type": {
613// CHECK-NEXT:   "qualType": "void ()"
614// CHECK-NEXT:  },
615// CHECK-NEXT:  "inner": [
616// CHECK-NEXT:   {
617// CHECK-NEXT:    "id": "0x{{.*}}",
618// CHECK-NEXT:    "kind": "CompoundStmt",
619// CHECK-NEXT:    "range": {
620// CHECK-NEXT:     "begin": {
621// CHECK-NEXT:      "offset": 1697,
622// CHECK-NEXT:      "line": 68,
623// CHECK-NEXT:      "col": 25,
624// CHECK-NEXT:      "tokLen": 1
625// CHECK-NEXT:     },
626// CHECK-NEXT:     "end": {
627// CHECK-NEXT:      "offset": 1729,
628// CHECK-NEXT:      "line": 70,
629// CHECK-NEXT:      "col": 1,
630// CHECK-NEXT:      "tokLen": 1
631// CHECK-NEXT:     }
632// CHECK-NEXT:    },
633// CHECK-NEXT:    "inner": [
634// CHECK-NEXT:     {
635// CHECK-NEXT:      "id": "0x{{.*}}",
636// CHECK-NEXT:      "kind": "DeclStmt",
637// CHECK-NEXT:      "range": {
638// CHECK-NEXT:       "begin": {
639// CHECK-NEXT:        "offset": 1701,
640// CHECK-NEXT:        "line": 69,
641// CHECK-NEXT:        "col": 3,
642// CHECK-NEXT:        "tokLen": 3
643// CHECK-NEXT:       },
644// CHECK-NEXT:       "end": {
645// CHECK-NEXT:        "offset": 1727,
646// CHECK-NEXT:        "col": 29,
647// CHECK-NEXT:        "tokLen": 1
648// CHECK-NEXT:       }
649// CHECK-NEXT:      },
650// CHECK-NEXT:      "inner": [
651// CHECK-NEXT:       {
652// CHECK-NEXT:        "id": "0x{{.*}}",
653// CHECK-NEXT:        "kind": "VarDecl",
654// CHECK-NEXT:        "loc": {
655// CHECK-NEXT:         "offset": 1705,
656// CHECK-NEXT:         "col": 7,
657// CHECK-NEXT:         "tokLen": 1
658// CHECK-NEXT:        },
659// CHECK-NEXT:        "range": {
660// CHECK-NEXT:         "begin": {
661// CHECK-NEXT:          "offset": 1701,
662// CHECK-NEXT:          "col": 3,
663// CHECK-NEXT:          "tokLen": 3
664// CHECK-NEXT:         },
665// CHECK-NEXT:         "end": {
666// CHECK-NEXT:          "offset": 1726,
667// CHECK-NEXT:          "col": 28,
668// CHECK-NEXT:          "tokLen": 1
669// CHECK-NEXT:         }
670// CHECK-NEXT:        },
671// CHECK-NEXT:        "name": "s",
672// CHECK-NEXT:        "mangledName": "s",
673// CHECK-NEXT:        "type": {
674// CHECK-NEXT:         "desugaredQualType": "SEL *",
675// CHECK-NEXT:         "qualType": "SEL",
676// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
677// CHECK-NEXT:        },
678// CHECK-NEXT:        "init": "c",
679// CHECK-NEXT:        "inner": [
680// CHECK-NEXT:         {
681// CHECK-NEXT:          "id": "0x{{.*}}",
682// CHECK-NEXT:          "kind": "ObjCSelectorExpr",
683// CHECK-NEXT:          "range": {
684// CHECK-NEXT:           "begin": {
685// CHECK-NEXT:            "offset": 1709,
686// CHECK-NEXT:            "col": 11,
687// CHECK-NEXT:            "tokLen": 1
688// CHECK-NEXT:           },
689// CHECK-NEXT:           "end": {
690// CHECK-NEXT:            "offset": 1726,
691// CHECK-NEXT:            "col": 28,
692// CHECK-NEXT:            "tokLen": 1
693// CHECK-NEXT:           }
694// CHECK-NEXT:          },
695// CHECK-NEXT:          "type": {
696// CHECK-NEXT:           "desugaredQualType": "SEL *",
697// CHECK-NEXT:           "qualType": "SEL",
698// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
699// CHECK-NEXT:          },
700// CHECK-NEXT:          "valueCategory": "prvalue",
701// CHECK-NEXT:          "selector": "dealloc"
702// CHECK-NEXT:         }
703// CHECK-NEXT:        ]
704// CHECK-NEXT:       }
705// CHECK-NEXT:      ]
706// CHECK-NEXT:     }
707// CHECK-NEXT:    ]
708// CHECK-NEXT:   }
709// CHECK-NEXT:  ]
710// CHECK-NEXT: }
711
712// CHECK-NOT: {{^}}Dumping
713// CHECK:  "kind": "FunctionDecl",
714// CHECK-NEXT:  "loc": {
715// CHECK-NEXT:   "offset": 1737,
716// CHECK-NEXT:   "file": "{{.*}}",
717// CHECK-NEXT:   "line": 72,
718// CHECK-NEXT:   "col": 6,
719// CHECK-NEXT:   "tokLen": 16
720// CHECK-NEXT:  },
721// CHECK-NEXT:  "range": {
722// CHECK-NEXT:   "begin": {
723// CHECK-NEXT:    "offset": 1732,
724// CHECK-NEXT:    "col": 1,
725// CHECK-NEXT:    "tokLen": 4
726// CHECK-NEXT:   },
727// CHECK-NEXT:   "end": {
728// CHECK-NEXT:    "offset": 1809,
729// CHECK-NEXT:    "line": 74,
730// CHECK-NEXT:    "col": 1,
731// CHECK-NEXT:    "tokLen": 1
732// CHECK-NEXT:   }
733// CHECK-NEXT:  },
734// CHECK-NEXT:  "name": "TestObjCProtocol",
735// CHECK-NEXT:  "mangledName": "TestObjCProtocol",
736// CHECK-NEXT:  "type": {
737// CHECK-NEXT:   "qualType": "void (id)"
738// CHECK-NEXT:  },
739// CHECK-NEXT:  "inner": [
740// CHECK-NEXT:   {
741// CHECK-NEXT:    "id": "0x{{.*}}",
742// CHECK-NEXT:    "kind": "ParmVarDecl",
743// CHECK-NEXT:    "loc": {
744// CHECK-NEXT:     "offset": 1757,
745// CHECK-NEXT:     "line": 72,
746// CHECK-NEXT:     "col": 26,
747// CHECK-NEXT:     "tokLen": 3
748// CHECK-NEXT:    },
749// CHECK-NEXT:    "range": {
750// CHECK-NEXT:     "begin": {
751// CHECK-NEXT:      "offset": 1754,
752// CHECK-NEXT:      "col": 23,
753// CHECK-NEXT:      "tokLen": 2
754// CHECK-NEXT:     },
755// CHECK-NEXT:     "end": {
756// CHECK-NEXT:      "offset": 1757,
757// CHECK-NEXT:      "col": 26,
758// CHECK-NEXT:      "tokLen": 3
759// CHECK-NEXT:     }
760// CHECK-NEXT:    },
761// CHECK-NEXT:    "isUsed": true,
762// CHECK-NEXT:    "name": "Obj",
763// CHECK-NEXT:    "mangledName": "Obj",
764// CHECK-NEXT:    "type": {
765// CHECK-NEXT:     "desugaredQualType": "id",
766// CHECK-NEXT:     "qualType": "id",
767// CHECK-NEXT:     "typeAliasDeclId": "0x{{.*}}"
768// CHECK-NEXT:    }
769// CHECK-NEXT:   },
770// CHECK-NEXT:   {
771// CHECK-NEXT:    "id": "0x{{.*}}",
772// CHECK-NEXT:    "kind": "CompoundStmt",
773// CHECK-NEXT:    "range": {
774// CHECK-NEXT:     "begin": {
775// CHECK-NEXT:      "offset": 1762,
776// CHECK-NEXT:      "col": 31,
777// CHECK-NEXT:      "tokLen": 1
778// CHECK-NEXT:     },
779// CHECK-NEXT:     "end": {
780// CHECK-NEXT:      "offset": 1809,
781// CHECK-NEXT:      "line": 74,
782// CHECK-NEXT:      "col": 1,
783// CHECK-NEXT:      "tokLen": 1
784// CHECK-NEXT:     }
785// CHECK-NEXT:    },
786// CHECK-NEXT:    "inner": [
787// CHECK-NEXT:     {
788// CHECK-NEXT:      "id": "0x{{.*}}",
789// CHECK-NEXT:      "kind": "ObjCMessageExpr",
790// CHECK-NEXT:      "range": {
791// CHECK-NEXT:       "begin": {
792// CHECK-NEXT:        "offset": 1766,
793// CHECK-NEXT:        "line": 73,
794// CHECK-NEXT:        "col": 3,
795// CHECK-NEXT:        "tokLen": 1
796// CHECK-NEXT:       },
797// CHECK-NEXT:       "end": {
798// CHECK-NEXT:        "offset": 1806,
799// CHECK-NEXT:        "col": 43,
800// CHECK-NEXT:        "tokLen": 1
801// CHECK-NEXT:       }
802// CHECK-NEXT:      },
803// CHECK-NEXT:      "type": {
804// CHECK-NEXT:       "qualType": "int"
805// CHECK-NEXT:      },
806// CHECK-NEXT:      "valueCategory": "prvalue",
807// CHECK-NEXT:      "selector": "conformsToProtocol:",
808// CHECK-NEXT:      "receiverKind": "instance",
809// CHECK-NEXT:      "inner": [
810// CHECK-NEXT:       {
811// CHECK-NEXT:        "id": "0x{{.*}}",
812// CHECK-NEXT:        "kind": "ImplicitCastExpr",
813// CHECK-NEXT:        "range": {
814// CHECK-NEXT:         "begin": {
815// CHECK-NEXT:          "offset": 1767,
816// CHECK-NEXT:          "col": 4,
817// CHECK-NEXT:          "tokLen": 3
818// CHECK-NEXT:         },
819// CHECK-NEXT:         "end": {
820// CHECK-NEXT:          "offset": 1767,
821// CHECK-NEXT:          "col": 4,
822// CHECK-NEXT:          "tokLen": 3
823// CHECK-NEXT:         }
824// CHECK-NEXT:        },
825// CHECK-NEXT:        "type": {
826// CHECK-NEXT:         "desugaredQualType": "id",
827// CHECK-NEXT:         "qualType": "id",
828// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
829// CHECK-NEXT:        },
830// CHECK-NEXT:        "valueCategory": "prvalue",
831// CHECK-NEXT:        "castKind": "LValueToRValue",
832// CHECK-NEXT:        "inner": [
833// CHECK-NEXT:         {
834// CHECK-NEXT:          "id": "0x{{.*}}",
835// CHECK-NEXT:          "kind": "DeclRefExpr",
836// CHECK-NEXT:          "range": {
837// CHECK-NEXT:           "begin": {
838// CHECK-NEXT:            "offset": 1767,
839// CHECK-NEXT:            "col": 4,
840// CHECK-NEXT:            "tokLen": 3
841// CHECK-NEXT:           },
842// CHECK-NEXT:           "end": {
843// CHECK-NEXT:            "offset": 1767,
844// CHECK-NEXT:            "col": 4,
845// CHECK-NEXT:            "tokLen": 3
846// CHECK-NEXT:           }
847// CHECK-NEXT:          },
848// CHECK-NEXT:          "type": {
849// CHECK-NEXT:           "desugaredQualType": "id",
850// CHECK-NEXT:           "qualType": "id",
851// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
852// CHECK-NEXT:          },
853// CHECK-NEXT:          "valueCategory": "lvalue",
854// CHECK-NEXT:          "referencedDecl": {
855// CHECK-NEXT:           "id": "0x{{.*}}",
856// CHECK-NEXT:           "kind": "ParmVarDecl",
857// CHECK-NEXT:           "name": "Obj",
858// CHECK-NEXT:           "type": {
859// CHECK-NEXT:            "desugaredQualType": "id",
860// CHECK-NEXT:            "qualType": "id",
861// CHECK-NEXT:            "typeAliasDeclId": "0x{{.*}}"
862// CHECK-NEXT:           }
863// CHECK-NEXT:          }
864// CHECK-NEXT:         }
865// CHECK-NEXT:        ]
866// CHECK-NEXT:       },
867// CHECK-NEXT:       {
868// CHECK-NEXT:        "id": "0x{{.*}}",
869// CHECK-NEXT:        "kind": "ObjCProtocolExpr",
870// CHECK-NEXT:        "range": {
871// CHECK-NEXT:         "begin": {
872// CHECK-NEXT:          "offset": 1790,
873// CHECK-NEXT:          "col": 27,
874// CHECK-NEXT:          "tokLen": 1
875// CHECK-NEXT:         },
876// CHECK-NEXT:         "end": {
877// CHECK-NEXT:          "offset": 1805,
878// CHECK-NEXT:          "col": 42,
879// CHECK-NEXT:          "tokLen": 1
880// CHECK-NEXT:         }
881// CHECK-NEXT:        },
882// CHECK-NEXT:        "type": {
883// CHECK-NEXT:         "qualType": "Protocol *"
884// CHECK-NEXT:        },
885// CHECK-NEXT:        "valueCategory": "prvalue",
886// CHECK-NEXT:        "protocol": {
887// CHECK-NEXT:         "id": "0x{{.*}}",
888// CHECK-NEXT:         "kind": "ObjCProtocolDecl",
889// CHECK-NEXT:         "name": "Proto"
890// CHECK-NEXT:        }
891// CHECK-NEXT:       }
892// CHECK-NEXT:      ]
893// CHECK-NEXT:     }
894// CHECK-NEXT:    ]
895// CHECK-NEXT:   }
896// CHECK-NEXT:  ]
897// CHECK-NEXT: }
898
899// CHECK-NOT: {{^}}Dumping
900// CHECK:  "kind": "FunctionDecl",
901// CHECK-NEXT:  "loc": {
902// CHECK-NEXT:   "offset": 1817,
903// CHECK-NEXT:   "file": "{{.*}}",
904// CHECK-NEXT:   "line": 76,
905// CHECK-NEXT:   "col": 6,
906// CHECK-NEXT:   "tokLen": 19
907// CHECK-NEXT:  },
908// CHECK-NEXT:  "range": {
909// CHECK-NEXT:   "begin": {
910// CHECK-NEXT:    "offset": 1812,
911// CHECK-NEXT:    "col": 1,
912// CHECK-NEXT:    "tokLen": 4
913// CHECK-NEXT:   },
914// CHECK-NEXT:   "end": {
915// CHECK-NEXT:    "offset": 1884,
916// CHECK-NEXT:    "line": 79,
917// CHECK-NEXT:    "col": 1,
918// CHECK-NEXT:    "tokLen": 1
919// CHECK-NEXT:   }
920// CHECK-NEXT:  },
921// CHECK-NEXT:  "name": "TestObjCPropertyRef",
922// CHECK-NEXT:  "mangledName": "TestObjCPropertyRef",
923// CHECK-NEXT:  "type": {
924// CHECK-NEXT:   "qualType": "void (J *)"
925// CHECK-NEXT:  },
926// CHECK-NEXT:  "inner": [
927// CHECK-NEXT:   {
928// CHECK-NEXT:    "id": "0x{{.*}}",
929// CHECK-NEXT:    "kind": "ParmVarDecl",
930// CHECK-NEXT:    "loc": {
931// CHECK-NEXT:     "offset": 1840,
932// CHECK-NEXT:     "line": 76,
933// CHECK-NEXT:     "col": 29,
934// CHECK-NEXT:     "tokLen": 3
935// CHECK-NEXT:    },
936// CHECK-NEXT:    "range": {
937// CHECK-NEXT:     "begin": {
938// CHECK-NEXT:      "offset": 1837,
939// CHECK-NEXT:      "col": 26,
940// CHECK-NEXT:      "tokLen": 1
941// CHECK-NEXT:     },
942// CHECK-NEXT:     "end": {
943// CHECK-NEXT:      "offset": 1840,
944// CHECK-NEXT:      "col": 29,
945// CHECK-NEXT:      "tokLen": 3
946// CHECK-NEXT:     }
947// CHECK-NEXT:    },
948// CHECK-NEXT:    "isUsed": true,
949// CHECK-NEXT:    "name": "Obj",
950// CHECK-NEXT:    "mangledName": "Obj",
951// CHECK-NEXT:    "type": {
952// CHECK-NEXT:     "qualType": "J *"
953// CHECK-NEXT:    }
954// CHECK-NEXT:   },
955// CHECK-NEXT:   {
956// CHECK-NEXT:    "id": "0x{{.*}}",
957// CHECK-NEXT:    "kind": "CompoundStmt",
958// CHECK-NEXT:    "range": {
959// CHECK-NEXT:     "begin": {
960// CHECK-NEXT:      "offset": 1845,
961// CHECK-NEXT:      "col": 34,
962// CHECK-NEXT:      "tokLen": 1
963// CHECK-NEXT:     },
964// CHECK-NEXT:     "end": {
965// CHECK-NEXT:      "offset": 1884,
966// CHECK-NEXT:      "line": 79,
967// CHECK-NEXT:      "col": 1,
968// CHECK-NEXT:      "tokLen": 1
969// CHECK-NEXT:     }
970// CHECK-NEXT:    },
971// CHECK-NEXT:    "inner": [
972// CHECK-NEXT:     {
973// CHECK-NEXT:      "id": "0x{{.*}}",
974// CHECK-NEXT:      "kind": "PseudoObjectExpr",
975// CHECK-NEXT:      "range": {
976// CHECK-NEXT:       "begin": {
977// CHECK-NEXT:        "offset": 1849,
978// CHECK-NEXT:        "line": 77,
979// CHECK-NEXT:        "col": 3,
980// CHECK-NEXT:        "tokLen": 3
981// CHECK-NEXT:       },
982// CHECK-NEXT:       "end": {
983// CHECK-NEXT:        "offset": 1860,
984// CHECK-NEXT:        "col": 14,
985// CHECK-NEXT:        "tokLen": 2
986// CHECK-NEXT:       }
987// CHECK-NEXT:      },
988// CHECK-NEXT:      "type": {
989// CHECK-NEXT:       "qualType": "unsigned int"
990// CHECK-NEXT:      },
991// CHECK-NEXT:      "valueCategory": "prvalue",
992// CHECK-NEXT:      "inner": [
993// CHECK-NEXT:       {
994// CHECK-NEXT:        "id": "0x{{.*}}",
995// CHECK-NEXT:        "kind": "BinaryOperator",
996// CHECK-NEXT:        "range": {
997// CHECK-NEXT:         "begin": {
998// CHECK-NEXT:          "offset": 1849,
999// CHECK-NEXT:          "col": 3,
1000// CHECK-NEXT:          "tokLen": 3
1001// CHECK-NEXT:         },
1002// CHECK-NEXT:         "end": {
1003// CHECK-NEXT:          "offset": 1860,
1004// CHECK-NEXT:          "col": 14,
1005// CHECK-NEXT:          "tokLen": 2
1006// CHECK-NEXT:         }
1007// CHECK-NEXT:        },
1008// CHECK-NEXT:        "type": {
1009// CHECK-NEXT:         "qualType": "int"
1010// CHECK-NEXT:        },
1011// CHECK-NEXT:        "valueCategory": "prvalue",
1012// CHECK-NEXT:        "opcode": "=",
1013// CHECK-NEXT:        "inner": [
1014// CHECK-NEXT:         {
1015// CHECK-NEXT:          "id": "0x{{.*}}",
1016// CHECK-NEXT:          "kind": "ObjCPropertyRefExpr",
1017// CHECK-NEXT:          "range": {
1018// CHECK-NEXT:           "begin": {
1019// CHECK-NEXT:            "offset": 1849,
1020// CHECK-NEXT:            "col": 3,
1021// CHECK-NEXT:            "tokLen": 3
1022// CHECK-NEXT:           },
1023// CHECK-NEXT:           "end": {
1024// CHECK-NEXT:            "offset": 1853,
1025// CHECK-NEXT:            "col": 7,
1026// CHECK-NEXT:            "tokLen": 4
1027// CHECK-NEXT:           }
1028// CHECK-NEXT:          },
1029// CHECK-NEXT:          "type": {
1030// CHECK-NEXT:           "qualType": "<pseudo-object type>"
1031// CHECK-NEXT:          },
1032// CHECK-NEXT:          "valueCategory": "lvalue",
1033// CHECK-NEXT:          "propertyKind": "explicit",
1034// CHECK-NEXT:          "property": {
1035// CHECK-NEXT:           "id": "0x{{.*}}",
1036// CHECK-NEXT:           "kind": "ObjCPropertyDecl",
1037// CHECK-NEXT:           "name": "prop"
1038// CHECK-NEXT:          },
1039// CHECK-NEXT:          "isMessagingSetter": true,
1040// CHECK-NEXT:          "inner": [
1041// CHECK-NEXT:           {
1042// CHECK-NEXT:            "id": "0x{{.*}}",
1043// CHECK-NEXT:            "kind": "OpaqueValueExpr",
1044// CHECK-NEXT:            "range": {
1045// CHECK-NEXT:             "begin": {
1046// CHECK-NEXT:              "offset": 1849,
1047// CHECK-NEXT:              "col": 3,
1048// CHECK-NEXT:              "tokLen": 3
1049// CHECK-NEXT:             },
1050// CHECK-NEXT:             "end": {
1051// CHECK-NEXT:              "offset": 1849,
1052// CHECK-NEXT:              "col": 3,
1053// CHECK-NEXT:              "tokLen": 3
1054// CHECK-NEXT:             }
1055// CHECK-NEXT:            },
1056// CHECK-NEXT:            "type": {
1057// CHECK-NEXT:             "qualType": "J *"
1058// CHECK-NEXT:            },
1059// CHECK-NEXT:            "valueCategory": "prvalue",
1060// CHECK-NEXT:            "inner": [
1061// CHECK-NEXT:             {
1062// CHECK-NEXT:              "id": "0x{{.*}}",
1063// CHECK-NEXT:              "kind": "ImplicitCastExpr",
1064// CHECK-NEXT:              "range": {
1065// CHECK-NEXT:               "begin": {
1066// CHECK-NEXT:                "offset": 1849,
1067// CHECK-NEXT:                "col": 3,
1068// CHECK-NEXT:                "tokLen": 3
1069// CHECK-NEXT:               },
1070// CHECK-NEXT:               "end": {
1071// CHECK-NEXT:                "offset": 1849,
1072// CHECK-NEXT:                "col": 3,
1073// CHECK-NEXT:                "tokLen": 3
1074// CHECK-NEXT:               }
1075// CHECK-NEXT:              },
1076// CHECK-NEXT:              "type": {
1077// CHECK-NEXT:               "qualType": "J *"
1078// CHECK-NEXT:              },
1079// CHECK-NEXT:              "valueCategory": "prvalue",
1080// CHECK-NEXT:              "castKind": "LValueToRValue",
1081// CHECK-NEXT:              "inner": [
1082// CHECK-NEXT:               {
1083// CHECK-NEXT:                "id": "0x{{.*}}",
1084// CHECK-NEXT:                "kind": "DeclRefExpr",
1085// CHECK-NEXT:                "range": {
1086// CHECK-NEXT:                 "begin": {
1087// CHECK-NEXT:                  "offset": 1849,
1088// CHECK-NEXT:                  "col": 3,
1089// CHECK-NEXT:                  "tokLen": 3
1090// CHECK-NEXT:                 },
1091// CHECK-NEXT:                 "end": {
1092// CHECK-NEXT:                  "offset": 1849,
1093// CHECK-NEXT:                  "col": 3,
1094// CHECK-NEXT:                  "tokLen": 3
1095// CHECK-NEXT:                 }
1096// CHECK-NEXT:                },
1097// CHECK-NEXT:                "type": {
1098// CHECK-NEXT:                 "qualType": "J *"
1099// CHECK-NEXT:                },
1100// CHECK-NEXT:                "valueCategory": "lvalue",
1101// CHECK-NEXT:                "referencedDecl": {
1102// CHECK-NEXT:                 "id": "0x{{.*}}",
1103// CHECK-NEXT:                 "kind": "ParmVarDecl",
1104// CHECK-NEXT:                 "name": "Obj",
1105// CHECK-NEXT:                 "type": {
1106// CHECK-NEXT:                  "qualType": "J *"
1107// CHECK-NEXT:                 }
1108// CHECK-NEXT:                }
1109// CHECK-NEXT:               }
1110// CHECK-NEXT:              ]
1111// CHECK-NEXT:             }
1112// CHECK-NEXT:            ]
1113// CHECK-NEXT:           }
1114// CHECK-NEXT:          ]
1115// CHECK-NEXT:         },
1116// CHECK-NEXT:         {
1117// CHECK-NEXT:          "id": "0x{{.*}}",
1118// CHECK-NEXT:          "kind": "OpaqueValueExpr",
1119// CHECK-NEXT:          "range": {
1120// CHECK-NEXT:           "begin": {
1121// CHECK-NEXT:            "offset": 1860,
1122// CHECK-NEXT:            "col": 14,
1123// CHECK-NEXT:            "tokLen": 2
1124// CHECK-NEXT:           },
1125// CHECK-NEXT:           "end": {
1126// CHECK-NEXT:            "offset": 1860,
1127// CHECK-NEXT:            "col": 14,
1128// CHECK-NEXT:            "tokLen": 2
1129// CHECK-NEXT:           }
1130// CHECK-NEXT:          },
1131// CHECK-NEXT:          "type": {
1132// CHECK-NEXT:           "qualType": "int"
1133// CHECK-NEXT:          },
1134// CHECK-NEXT:          "valueCategory": "prvalue",
1135// CHECK-NEXT:          "inner": [
1136// CHECK-NEXT:           {
1137// CHECK-NEXT:            "id": "0x{{.*}}",
1138// CHECK-NEXT:            "kind": "IntegerLiteral",
1139// CHECK-NEXT:            "range": {
1140// CHECK-NEXT:             "begin": {
1141// CHECK-NEXT:              "offset": 1860,
1142// CHECK-NEXT:              "col": 14,
1143// CHECK-NEXT:              "tokLen": 2
1144// CHECK-NEXT:             },
1145// CHECK-NEXT:             "end": {
1146// CHECK-NEXT:              "offset": 1860,
1147// CHECK-NEXT:              "col": 14,
1148// CHECK-NEXT:              "tokLen": 2
1149// CHECK-NEXT:             }
1150// CHECK-NEXT:            },
1151// CHECK-NEXT:            "type": {
1152// CHECK-NEXT:             "qualType": "int"
1153// CHECK-NEXT:            },
1154// CHECK-NEXT:            "valueCategory": "prvalue",
1155// CHECK-NEXT:            "value": "12"
1156// CHECK-NEXT:           }
1157// CHECK-NEXT:          ]
1158// CHECK-NEXT:         }
1159// CHECK-NEXT:        ]
1160// CHECK-NEXT:       },
1161// CHECK-NEXT:       {
1162// CHECK-NEXT:        "id": "0x{{.*}}",
1163// CHECK-NEXT:        "kind": "OpaqueValueExpr",
1164// CHECK-NEXT:        "range": {
1165// CHECK-NEXT:         "begin": {
1166// CHECK-NEXT:          "offset": 1849,
1167// CHECK-NEXT:          "col": 3,
1168// CHECK-NEXT:          "tokLen": 3
1169// CHECK-NEXT:         },
1170// CHECK-NEXT:         "end": {
1171// CHECK-NEXT:          "offset": 1849,
1172// CHECK-NEXT:          "col": 3,
1173// CHECK-NEXT:          "tokLen": 3
1174// CHECK-NEXT:         }
1175// CHECK-NEXT:        },
1176// CHECK-NEXT:        "type": {
1177// CHECK-NEXT:         "qualType": "J *"
1178// CHECK-NEXT:        },
1179// CHECK-NEXT:        "valueCategory": "prvalue",
1180// CHECK-NEXT:        "inner": [
1181// CHECK-NEXT:         {
1182// CHECK-NEXT:          "id": "0x{{.*}}",
1183// CHECK-NEXT:          "kind": "ImplicitCastExpr",
1184// CHECK-NEXT:          "range": {
1185// CHECK-NEXT:           "begin": {
1186// CHECK-NEXT:            "offset": 1849,
1187// CHECK-NEXT:            "col": 3,
1188// CHECK-NEXT:            "tokLen": 3
1189// CHECK-NEXT:           },
1190// CHECK-NEXT:           "end": {
1191// CHECK-NEXT:            "offset": 1849,
1192// CHECK-NEXT:            "col": 3,
1193// CHECK-NEXT:            "tokLen": 3
1194// CHECK-NEXT:           }
1195// CHECK-NEXT:          },
1196// CHECK-NEXT:          "type": {
1197// CHECK-NEXT:           "qualType": "J *"
1198// CHECK-NEXT:          },
1199// CHECK-NEXT:          "valueCategory": "prvalue",
1200// CHECK-NEXT:          "castKind": "LValueToRValue",
1201// CHECK-NEXT:          "inner": [
1202// CHECK-NEXT:           {
1203// CHECK-NEXT:            "id": "0x{{.*}}",
1204// CHECK-NEXT:            "kind": "DeclRefExpr",
1205// CHECK-NEXT:            "range": {
1206// CHECK-NEXT:             "begin": {
1207// CHECK-NEXT:              "offset": 1849,
1208// CHECK-NEXT:              "col": 3,
1209// CHECK-NEXT:              "tokLen": 3
1210// CHECK-NEXT:             },
1211// CHECK-NEXT:             "end": {
1212// CHECK-NEXT:              "offset": 1849,
1213// CHECK-NEXT:              "col": 3,
1214// CHECK-NEXT:              "tokLen": 3
1215// CHECK-NEXT:             }
1216// CHECK-NEXT:            },
1217// CHECK-NEXT:            "type": {
1218// CHECK-NEXT:             "qualType": "J *"
1219// CHECK-NEXT:            },
1220// CHECK-NEXT:            "valueCategory": "lvalue",
1221// CHECK-NEXT:            "referencedDecl": {
1222// CHECK-NEXT:             "id": "0x{{.*}}",
1223// CHECK-NEXT:             "kind": "ParmVarDecl",
1224// CHECK-NEXT:             "name": "Obj",
1225// CHECK-NEXT:             "type": {
1226// CHECK-NEXT:              "qualType": "J *"
1227// CHECK-NEXT:             }
1228// CHECK-NEXT:            }
1229// CHECK-NEXT:           }
1230// CHECK-NEXT:          ]
1231// CHECK-NEXT:         }
1232// CHECK-NEXT:        ]
1233// CHECK-NEXT:       },
1234// CHECK-NEXT:       {
1235// CHECK-NEXT:        "id": "0x{{.*}}",
1236// CHECK-NEXT:        "kind": "OpaqueValueExpr",
1237// CHECK-NEXT:        "range": {
1238// CHECK-NEXT:         "begin": {
1239// CHECK-NEXT:          "offset": 1860,
1240// CHECK-NEXT:          "col": 14,
1241// CHECK-NEXT:          "tokLen": 2
1242// CHECK-NEXT:         },
1243// CHECK-NEXT:         "end": {
1244// CHECK-NEXT:          "offset": 1860,
1245// CHECK-NEXT:          "col": 14,
1246// CHECK-NEXT:          "tokLen": 2
1247// CHECK-NEXT:         }
1248// CHECK-NEXT:        },
1249// CHECK-NEXT:        "type": {
1250// CHECK-NEXT:         "qualType": "int"
1251// CHECK-NEXT:        },
1252// CHECK-NEXT:        "valueCategory": "prvalue",
1253// CHECK-NEXT:        "inner": [
1254// CHECK-NEXT:         {
1255// CHECK-NEXT:          "id": "0x{{.*}}",
1256// CHECK-NEXT:          "kind": "IntegerLiteral",
1257// CHECK-NEXT:          "range": {
1258// CHECK-NEXT:           "begin": {
1259// CHECK-NEXT:            "offset": 1860,
1260// CHECK-NEXT:            "col": 14,
1261// CHECK-NEXT:            "tokLen": 2
1262// CHECK-NEXT:           },
1263// CHECK-NEXT:           "end": {
1264// CHECK-NEXT:            "offset": 1860,
1265// CHECK-NEXT:            "col": 14,
1266// CHECK-NEXT:            "tokLen": 2
1267// CHECK-NEXT:           }
1268// CHECK-NEXT:          },
1269// CHECK-NEXT:          "type": {
1270// CHECK-NEXT:           "qualType": "int"
1271// CHECK-NEXT:          },
1272// CHECK-NEXT:          "valueCategory": "prvalue",
1273// CHECK-NEXT:          "value": "12"
1274// CHECK-NEXT:         }
1275// CHECK-NEXT:        ]
1276// CHECK-NEXT:       },
1277// CHECK-NEXT:       {
1278// CHECK-NEXT:        "id": "0x{{.*}}",
1279// CHECK-NEXT:        "kind": "OpaqueValueExpr",
1280// CHECK-NEXT:        "range": {
1281// CHECK-NEXT:         "begin": {
1282// CHECK-NEXT:          "offset": 1860,
1283// CHECK-NEXT:          "col": 14,
1284// CHECK-NEXT:          "tokLen": 2
1285// CHECK-NEXT:         },
1286// CHECK-NEXT:         "end": {
1287// CHECK-NEXT:          "offset": 1860,
1288// CHECK-NEXT:          "col": 14,
1289// CHECK-NEXT:          "tokLen": 2
1290// CHECK-NEXT:         }
1291// CHECK-NEXT:        },
1292// CHECK-NEXT:        "type": {
1293// CHECK-NEXT:         "qualType": "unsigned int"
1294// CHECK-NEXT:        },
1295// CHECK-NEXT:        "valueCategory": "prvalue",
1296// CHECK-NEXT:        "inner": [
1297// CHECK-NEXT:         {
1298// CHECK-NEXT:          "id": "0x{{.*}}",
1299// CHECK-NEXT:          "kind": "ImplicitCastExpr",
1300// CHECK-NEXT:          "range": {
1301// CHECK-NEXT:           "begin": {
1302// CHECK-NEXT:            "offset": 1860,
1303// CHECK-NEXT:            "col": 14,
1304// CHECK-NEXT:            "tokLen": 2
1305// CHECK-NEXT:           },
1306// CHECK-NEXT:           "end": {
1307// CHECK-NEXT:            "offset": 1860,
1308// CHECK-NEXT:            "col": 14,
1309// CHECK-NEXT:            "tokLen": 2
1310// CHECK-NEXT:           }
1311// CHECK-NEXT:          },
1312// CHECK-NEXT:          "type": {
1313// CHECK-NEXT:           "qualType": "unsigned int"
1314// CHECK-NEXT:          },
1315// CHECK-NEXT:          "valueCategory": "prvalue",
1316// CHECK-NEXT:          "castKind": "IntegralCast",
1317// CHECK-NEXT:          "inner": [
1318// CHECK-NEXT:           {
1319// CHECK-NEXT:            "id": "0x{{.*}}",
1320// CHECK-NEXT:            "kind": "OpaqueValueExpr",
1321// CHECK-NEXT:            "range": {
1322// CHECK-NEXT:             "begin": {
1323// CHECK-NEXT:              "offset": 1860,
1324// CHECK-NEXT:              "col": 14,
1325// CHECK-NEXT:              "tokLen": 2
1326// CHECK-NEXT:             },
1327// CHECK-NEXT:             "end": {
1328// CHECK-NEXT:              "offset": 1860,
1329// CHECK-NEXT:              "col": 14,
1330// CHECK-NEXT:              "tokLen": 2
1331// CHECK-NEXT:             }
1332// CHECK-NEXT:            },
1333// CHECK-NEXT:            "type": {
1334// CHECK-NEXT:             "qualType": "int"
1335// CHECK-NEXT:            },
1336// CHECK-NEXT:            "valueCategory": "prvalue",
1337// CHECK-NEXT:            "inner": [
1338// CHECK-NEXT:             {
1339// CHECK-NEXT:              "id": "0x{{.*}}",
1340// CHECK-NEXT:              "kind": "IntegerLiteral",
1341// CHECK-NEXT:              "range": {
1342// CHECK-NEXT:               "begin": {
1343// CHECK-NEXT:                "offset": 1860,
1344// CHECK-NEXT:                "col": 14,
1345// CHECK-NEXT:                "tokLen": 2
1346// CHECK-NEXT:               },
1347// CHECK-NEXT:               "end": {
1348// CHECK-NEXT:                "offset": 1860,
1349// CHECK-NEXT:                "col": 14,
1350// CHECK-NEXT:                "tokLen": 2
1351// CHECK-NEXT:               }
1352// CHECK-NEXT:              },
1353// CHECK-NEXT:              "type": {
1354// CHECK-NEXT:               "qualType": "int"
1355// CHECK-NEXT:              },
1356// CHECK-NEXT:              "valueCategory": "prvalue",
1357// CHECK-NEXT:              "value": "12"
1358// CHECK-NEXT:             }
1359// CHECK-NEXT:            ]
1360// CHECK-NEXT:           }
1361// CHECK-NEXT:          ]
1362// CHECK-NEXT:         }
1363// CHECK-NEXT:        ]
1364// CHECK-NEXT:       },
1365// CHECK-NEXT:       {
1366// CHECK-NEXT:        "id": "0x{{.*}}",
1367// CHECK-NEXT:        "kind": "ObjCMessageExpr",
1368// CHECK-NEXT:        "range": {
1369// CHECK-NEXT:         "begin": {
1370// CHECK-NEXT:          "offset": 1853,
1371// CHECK-NEXT:          "col": 7,
1372// CHECK-NEXT:          "tokLen": 4
1373// CHECK-NEXT:         },
1374// CHECK-NEXT:         "end": {
1375// CHECK-NEXT:          "offset": 1853,
1376// CHECK-NEXT:          "col": 7,
1377// CHECK-NEXT:          "tokLen": 4
1378// CHECK-NEXT:         }
1379// CHECK-NEXT:        },
1380// CHECK-NEXT:        "type": {
1381// CHECK-NEXT:         "qualType": "void"
1382// CHECK-NEXT:        },
1383// CHECK-NEXT:        "valueCategory": "prvalue",
1384// CHECK-NEXT:        "selector": "setProp:",
1385// CHECK-NEXT:        "receiverKind": "instance",
1386// CHECK-NEXT:        "inner": [
1387// CHECK-NEXT:         {
1388// CHECK-NEXT:          "id": "0x{{.*}}",
1389// CHECK-NEXT:          "kind": "OpaqueValueExpr",
1390// CHECK-NEXT:          "range": {
1391// CHECK-NEXT:           "begin": {
1392// CHECK-NEXT:            "offset": 1849,
1393// CHECK-NEXT:            "col": 3,
1394// CHECK-NEXT:            "tokLen": 3
1395// CHECK-NEXT:           },
1396// CHECK-NEXT:           "end": {
1397// CHECK-NEXT:            "offset": 1849,
1398// CHECK-NEXT:            "col": 3,
1399// CHECK-NEXT:            "tokLen": 3
1400// CHECK-NEXT:           }
1401// CHECK-NEXT:          },
1402// CHECK-NEXT:          "type": {
1403// CHECK-NEXT:           "qualType": "J *"
1404// CHECK-NEXT:          },
1405// CHECK-NEXT:          "valueCategory": "prvalue",
1406// CHECK-NEXT:          "inner": [
1407// CHECK-NEXT:           {
1408// CHECK-NEXT:            "id": "0x{{.*}}",
1409// CHECK-NEXT:            "kind": "ImplicitCastExpr",
1410// CHECK-NEXT:            "range": {
1411// CHECK-NEXT:             "begin": {
1412// CHECK-NEXT:              "offset": 1849,
1413// CHECK-NEXT:              "col": 3,
1414// CHECK-NEXT:              "tokLen": 3
1415// CHECK-NEXT:             },
1416// CHECK-NEXT:             "end": {
1417// CHECK-NEXT:              "offset": 1849,
1418// CHECK-NEXT:              "col": 3,
1419// CHECK-NEXT:              "tokLen": 3
1420// CHECK-NEXT:             }
1421// CHECK-NEXT:            },
1422// CHECK-NEXT:            "type": {
1423// CHECK-NEXT:             "qualType": "J *"
1424// CHECK-NEXT:            },
1425// CHECK-NEXT:            "valueCategory": "prvalue",
1426// CHECK-NEXT:            "castKind": "LValueToRValue",
1427// CHECK-NEXT:            "inner": [
1428// CHECK-NEXT:             {
1429// CHECK-NEXT:              "id": "0x{{.*}}",
1430// CHECK-NEXT:              "kind": "DeclRefExpr",
1431// CHECK-NEXT:              "range": {
1432// CHECK-NEXT:               "begin": {
1433// CHECK-NEXT:                "offset": 1849,
1434// CHECK-NEXT:                "col": 3,
1435// CHECK-NEXT:                "tokLen": 3
1436// CHECK-NEXT:               },
1437// CHECK-NEXT:               "end": {
1438// CHECK-NEXT:                "offset": 1849,
1439// CHECK-NEXT:                "col": 3,
1440// CHECK-NEXT:                "tokLen": 3
1441// CHECK-NEXT:               }
1442// CHECK-NEXT:              },
1443// CHECK-NEXT:              "type": {
1444// CHECK-NEXT:               "qualType": "J *"
1445// CHECK-NEXT:              },
1446// CHECK-NEXT:              "valueCategory": "lvalue",
1447// CHECK-NEXT:              "referencedDecl": {
1448// CHECK-NEXT:               "id": "0x{{.*}}",
1449// CHECK-NEXT:               "kind": "ParmVarDecl",
1450// CHECK-NEXT:               "name": "Obj",
1451// CHECK-NEXT:               "type": {
1452// CHECK-NEXT:                "qualType": "J *"
1453// CHECK-NEXT:               }
1454// CHECK-NEXT:              }
1455// CHECK-NEXT:             }
1456// CHECK-NEXT:            ]
1457// CHECK-NEXT:           }
1458// CHECK-NEXT:          ]
1459// CHECK-NEXT:         },
1460// CHECK-NEXT:         {
1461// CHECK-NEXT:          "id": "0x{{.*}}",
1462// CHECK-NEXT:          "kind": "OpaqueValueExpr",
1463// CHECK-NEXT:          "range": {
1464// CHECK-NEXT:           "begin": {
1465// CHECK-NEXT:            "offset": 1860,
1466// CHECK-NEXT:            "col": 14,
1467// CHECK-NEXT:            "tokLen": 2
1468// CHECK-NEXT:           },
1469// CHECK-NEXT:           "end": {
1470// CHECK-NEXT:            "offset": 1860,
1471// CHECK-NEXT:            "col": 14,
1472// CHECK-NEXT:            "tokLen": 2
1473// CHECK-NEXT:           }
1474// CHECK-NEXT:          },
1475// CHECK-NEXT:          "type": {
1476// CHECK-NEXT:           "qualType": "unsigned int"
1477// CHECK-NEXT:          },
1478// CHECK-NEXT:          "valueCategory": "prvalue",
1479// CHECK-NEXT:          "inner": [
1480// CHECK-NEXT:           {
1481// CHECK-NEXT:            "id": "0x{{.*}}",
1482// CHECK-NEXT:            "kind": "ImplicitCastExpr",
1483// CHECK-NEXT:            "range": {
1484// CHECK-NEXT:             "begin": {
1485// CHECK-NEXT:              "offset": 1860,
1486// CHECK-NEXT:              "col": 14,
1487// CHECK-NEXT:              "tokLen": 2
1488// CHECK-NEXT:             },
1489// CHECK-NEXT:             "end": {
1490// CHECK-NEXT:              "offset": 1860,
1491// CHECK-NEXT:              "col": 14,
1492// CHECK-NEXT:              "tokLen": 2
1493// CHECK-NEXT:             }
1494// CHECK-NEXT:            },
1495// CHECK-NEXT:            "type": {
1496// CHECK-NEXT:             "qualType": "unsigned int"
1497// CHECK-NEXT:            },
1498// CHECK-NEXT:            "valueCategory": "prvalue",
1499// CHECK-NEXT:            "castKind": "IntegralCast",
1500// CHECK-NEXT:            "inner": [
1501// CHECK-NEXT:             {
1502// CHECK-NEXT:              "id": "0x{{.*}}",
1503// CHECK-NEXT:              "kind": "OpaqueValueExpr",
1504// CHECK-NEXT:              "range": {
1505// CHECK-NEXT:               "begin": {
1506// CHECK-NEXT:                "offset": 1860,
1507// CHECK-NEXT:                "col": 14,
1508// CHECK-NEXT:                "tokLen": 2
1509// CHECK-NEXT:               },
1510// CHECK-NEXT:               "end": {
1511// CHECK-NEXT:                "offset": 1860,
1512// CHECK-NEXT:                "col": 14,
1513// CHECK-NEXT:                "tokLen": 2
1514// CHECK-NEXT:               }
1515// CHECK-NEXT:              },
1516// CHECK-NEXT:              "type": {
1517// CHECK-NEXT:               "qualType": "int"
1518// CHECK-NEXT:              },
1519// CHECK-NEXT:              "valueCategory": "prvalue",
1520// CHECK-NEXT:              "inner": [
1521// CHECK-NEXT:               {
1522// CHECK-NEXT:                "id": "0x{{.*}}",
1523// CHECK-NEXT:                "kind": "IntegerLiteral",
1524// CHECK-NEXT:                "range": {
1525// CHECK-NEXT:                 "begin": {
1526// CHECK-NEXT:                  "offset": 1860,
1527// CHECK-NEXT:                  "col": 14,
1528// CHECK-NEXT:                  "tokLen": 2
1529// CHECK-NEXT:                 },
1530// CHECK-NEXT:                 "end": {
1531// CHECK-NEXT:                  "offset": 1860,
1532// CHECK-NEXT:                  "col": 14,
1533// CHECK-NEXT:                  "tokLen": 2
1534// CHECK-NEXT:                 }
1535// CHECK-NEXT:                },
1536// CHECK-NEXT:                "type": {
1537// CHECK-NEXT:                 "qualType": "int"
1538// CHECK-NEXT:                },
1539// CHECK-NEXT:                "valueCategory": "prvalue",
1540// CHECK-NEXT:                "value": "12"
1541// CHECK-NEXT:               }
1542// CHECK-NEXT:              ]
1543// CHECK-NEXT:             }
1544// CHECK-NEXT:            ]
1545// CHECK-NEXT:           }
1546// CHECK-NEXT:          ]
1547// CHECK-NEXT:         }
1548// CHECK-NEXT:        ]
1549// CHECK-NEXT:       }
1550// CHECK-NEXT:      ]
1551// CHECK-NEXT:     },
1552// CHECK-NEXT:     {
1553// CHECK-NEXT:      "id": "0x{{.*}}",
1554// CHECK-NEXT:      "kind": "DeclStmt",
1555// CHECK-NEXT:      "range": {
1556// CHECK-NEXT:       "begin": {
1557// CHECK-NEXT:        "offset": 1866,
1558// CHECK-NEXT:        "line": 78,
1559// CHECK-NEXT:        "col": 3,
1560// CHECK-NEXT:        "tokLen": 3
1561// CHECK-NEXT:       },
1562// CHECK-NEXT:       "end": {
1563// CHECK-NEXT:        "offset": 1882,
1564// CHECK-NEXT:        "col": 19,
1565// CHECK-NEXT:        "tokLen": 1
1566// CHECK-NEXT:       }
1567// CHECK-NEXT:      },
1568// CHECK-NEXT:      "inner": [
1569// CHECK-NEXT:       {
1570// CHECK-NEXT:        "id": "0x{{.*}}",
1571// CHECK-NEXT:        "kind": "VarDecl",
1572// CHECK-NEXT:        "loc": {
1573// CHECK-NEXT:         "offset": 1870,
1574// CHECK-NEXT:         "col": 7,
1575// CHECK-NEXT:         "tokLen": 1
1576// CHECK-NEXT:        },
1577// CHECK-NEXT:        "range": {
1578// CHECK-NEXT:         "begin": {
1579// CHECK-NEXT:          "offset": 1866,
1580// CHECK-NEXT:          "col": 3,
1581// CHECK-NEXT:          "tokLen": 3
1582// CHECK-NEXT:         },
1583// CHECK-NEXT:         "end": {
1584// CHECK-NEXT:          "offset": 1878,
1585// CHECK-NEXT:          "col": 15,
1586// CHECK-NEXT:          "tokLen": 4
1587// CHECK-NEXT:         }
1588// CHECK-NEXT:        },
1589// CHECK-NEXT:        "name": "i",
1590// CHECK-NEXT:        "mangledName": "i",
1591// CHECK-NEXT:        "type": {
1592// CHECK-NEXT:         "qualType": "int"
1593// CHECK-NEXT:        },
1594// CHECK-NEXT:        "init": "c",
1595// CHECK-NEXT:        "inner": [
1596// CHECK-NEXT:         {
1597// CHECK-NEXT:          "id": "0x{{.*}}",
1598// CHECK-NEXT:          "kind": "ImplicitCastExpr",
1599// CHECK-NEXT:          "range": {
1600// CHECK-NEXT:           "begin": {
1601// CHECK-NEXT:            "offset": 1874,
1602// CHECK-NEXT:            "col": 11,
1603// CHECK-NEXT:            "tokLen": 3
1604// CHECK-NEXT:           },
1605// CHECK-NEXT:           "end": {
1606// CHECK-NEXT:            "offset": 1878,
1607// CHECK-NEXT:            "col": 15,
1608// CHECK-NEXT:            "tokLen": 4
1609// CHECK-NEXT:           }
1610// CHECK-NEXT:          },
1611// CHECK-NEXT:          "type": {
1612// CHECK-NEXT:           "qualType": "int"
1613// CHECK-NEXT:          },
1614// CHECK-NEXT:          "valueCategory": "prvalue",
1615// CHECK-NEXT:          "castKind": "IntegralCast",
1616// CHECK-NEXT:          "inner": [
1617// CHECK-NEXT:           {
1618// CHECK-NEXT:            "id": "0x{{.*}}",
1619// CHECK-NEXT:            "kind": "PseudoObjectExpr",
1620// CHECK-NEXT:            "range": {
1621// CHECK-NEXT:             "begin": {
1622// CHECK-NEXT:              "offset": 1874,
1623// CHECK-NEXT:              "col": 11,
1624// CHECK-NEXT:              "tokLen": 3
1625// CHECK-NEXT:             },
1626// CHECK-NEXT:             "end": {
1627// CHECK-NEXT:              "offset": 1878,
1628// CHECK-NEXT:              "col": 15,
1629// CHECK-NEXT:              "tokLen": 4
1630// CHECK-NEXT:             }
1631// CHECK-NEXT:            },
1632// CHECK-NEXT:            "type": {
1633// CHECK-NEXT:             "qualType": "unsigned int"
1634// CHECK-NEXT:            },
1635// CHECK-NEXT:            "valueCategory": "prvalue",
1636// CHECK-NEXT:            "inner": [
1637// CHECK-NEXT:             {
1638// CHECK-NEXT:              "id": "0x{{.*}}",
1639// CHECK-NEXT:              "kind": "ObjCPropertyRefExpr",
1640// CHECK-NEXT:              "range": {
1641// CHECK-NEXT:               "begin": {
1642// CHECK-NEXT:                "offset": 1874,
1643// CHECK-NEXT:                "col": 11,
1644// CHECK-NEXT:                "tokLen": 3
1645// CHECK-NEXT:               },
1646// CHECK-NEXT:               "end": {
1647// CHECK-NEXT:                "offset": 1878,
1648// CHECK-NEXT:                "col": 15,
1649// CHECK-NEXT:                "tokLen": 4
1650// CHECK-NEXT:               }
1651// CHECK-NEXT:              },
1652// CHECK-NEXT:              "type": {
1653// CHECK-NEXT:               "qualType": "<pseudo-object type>"
1654// CHECK-NEXT:              },
1655// CHECK-NEXT:              "valueCategory": "lvalue",
1656// CHECK-NEXT:              "propertyKind": "explicit",
1657// CHECK-NEXT:              "property": {
1658// CHECK-NEXT:               "id": "0x{{.*}}",
1659// CHECK-NEXT:               "kind": "ObjCPropertyDecl",
1660// CHECK-NEXT:               "name": "prop"
1661// CHECK-NEXT:              },
1662// CHECK-NEXT:              "isMessagingGetter": true,
1663// CHECK-NEXT:              "inner": [
1664// CHECK-NEXT:               {
1665// CHECK-NEXT:                "id": "0x{{.*}}",
1666// CHECK-NEXT:                "kind": "OpaqueValueExpr",
1667// CHECK-NEXT:                "range": {
1668// CHECK-NEXT:                 "begin": {
1669// CHECK-NEXT:                  "offset": 1874,
1670// CHECK-NEXT:                  "col": 11,
1671// CHECK-NEXT:                  "tokLen": 3
1672// CHECK-NEXT:                 },
1673// CHECK-NEXT:                 "end": {
1674// CHECK-NEXT:                  "offset": 1874,
1675// CHECK-NEXT:                  "col": 11,
1676// CHECK-NEXT:                  "tokLen": 3
1677// CHECK-NEXT:                 }
1678// CHECK-NEXT:                },
1679// CHECK-NEXT:                "type": {
1680// CHECK-NEXT:                 "qualType": "J *"
1681// CHECK-NEXT:                },
1682// CHECK-NEXT:                "valueCategory": "prvalue",
1683// CHECK-NEXT:                "inner": [
1684// CHECK-NEXT:                 {
1685// CHECK-NEXT:                  "id": "0x{{.*}}",
1686// CHECK-NEXT:                  "kind": "ImplicitCastExpr",
1687// CHECK-NEXT:                  "range": {
1688// CHECK-NEXT:                   "begin": {
1689// CHECK-NEXT:                    "offset": 1874,
1690// CHECK-NEXT:                    "col": 11,
1691// CHECK-NEXT:                    "tokLen": 3
1692// CHECK-NEXT:                   },
1693// CHECK-NEXT:                   "end": {
1694// CHECK-NEXT:                    "offset": 1874,
1695// CHECK-NEXT:                    "col": 11,
1696// CHECK-NEXT:                    "tokLen": 3
1697// CHECK-NEXT:                   }
1698// CHECK-NEXT:                  },
1699// CHECK-NEXT:                  "type": {
1700// CHECK-NEXT:                   "qualType": "J *"
1701// CHECK-NEXT:                  },
1702// CHECK-NEXT:                  "valueCategory": "prvalue",
1703// CHECK-NEXT:                  "castKind": "LValueToRValue",
1704// CHECK-NEXT:                  "inner": [
1705// CHECK-NEXT:                   {
1706// CHECK-NEXT:                    "id": "0x{{.*}}",
1707// CHECK-NEXT:                    "kind": "DeclRefExpr",
1708// CHECK-NEXT:                    "range": {
1709// CHECK-NEXT:                     "begin": {
1710// CHECK-NEXT:                      "offset": 1874,
1711// CHECK-NEXT:                      "col": 11,
1712// CHECK-NEXT:                      "tokLen": 3
1713// CHECK-NEXT:                     },
1714// CHECK-NEXT:                     "end": {
1715// CHECK-NEXT:                      "offset": 1874,
1716// CHECK-NEXT:                      "col": 11,
1717// CHECK-NEXT:                      "tokLen": 3
1718// CHECK-NEXT:                     }
1719// CHECK-NEXT:                    },
1720// CHECK-NEXT:                    "type": {
1721// CHECK-NEXT:                     "qualType": "J *"
1722// CHECK-NEXT:                    },
1723// CHECK-NEXT:                    "valueCategory": "lvalue",
1724// CHECK-NEXT:                    "referencedDecl": {
1725// CHECK-NEXT:                     "id": "0x{{.*}}",
1726// CHECK-NEXT:                     "kind": "ParmVarDecl",
1727// CHECK-NEXT:                     "name": "Obj",
1728// CHECK-NEXT:                     "type": {
1729// CHECK-NEXT:                      "qualType": "J *"
1730// CHECK-NEXT:                     }
1731// CHECK-NEXT:                    }
1732// CHECK-NEXT:                   }
1733// CHECK-NEXT:                  ]
1734// CHECK-NEXT:                 }
1735// CHECK-NEXT:                ]
1736// CHECK-NEXT:               }
1737// CHECK-NEXT:              ]
1738// CHECK-NEXT:             },
1739// CHECK-NEXT:             {
1740// CHECK-NEXT:              "id": "0x{{.*}}",
1741// CHECK-NEXT:              "kind": "OpaqueValueExpr",
1742// CHECK-NEXT:              "range": {
1743// CHECK-NEXT:               "begin": {
1744// CHECK-NEXT:                "offset": 1874,
1745// CHECK-NEXT:                "col": 11,
1746// CHECK-NEXT:                "tokLen": 3
1747// CHECK-NEXT:               },
1748// CHECK-NEXT:               "end": {
1749// CHECK-NEXT:                "offset": 1874,
1750// CHECK-NEXT:                "col": 11,
1751// CHECK-NEXT:                "tokLen": 3
1752// CHECK-NEXT:               }
1753// CHECK-NEXT:              },
1754// CHECK-NEXT:              "type": {
1755// CHECK-NEXT:               "qualType": "J *"
1756// CHECK-NEXT:              },
1757// CHECK-NEXT:              "valueCategory": "prvalue",
1758// CHECK-NEXT:              "inner": [
1759// CHECK-NEXT:               {
1760// CHECK-NEXT:                "id": "0x{{.*}}",
1761// CHECK-NEXT:                "kind": "ImplicitCastExpr",
1762// CHECK-NEXT:                "range": {
1763// CHECK-NEXT:                 "begin": {
1764// CHECK-NEXT:                  "offset": 1874,
1765// CHECK-NEXT:                  "col": 11,
1766// CHECK-NEXT:                  "tokLen": 3
1767// CHECK-NEXT:                 },
1768// CHECK-NEXT:                 "end": {
1769// CHECK-NEXT:                  "offset": 1874,
1770// CHECK-NEXT:                  "col": 11,
1771// CHECK-NEXT:                  "tokLen": 3
1772// CHECK-NEXT:                 }
1773// CHECK-NEXT:                },
1774// CHECK-NEXT:                "type": {
1775// CHECK-NEXT:                 "qualType": "J *"
1776// CHECK-NEXT:                },
1777// CHECK-NEXT:                "valueCategory": "prvalue",
1778// CHECK-NEXT:                "castKind": "LValueToRValue",
1779// CHECK-NEXT:                "inner": [
1780// CHECK-NEXT:                 {
1781// CHECK-NEXT:                  "id": "0x{{.*}}",
1782// CHECK-NEXT:                  "kind": "DeclRefExpr",
1783// CHECK-NEXT:                  "range": {
1784// CHECK-NEXT:                   "begin": {
1785// CHECK-NEXT:                    "offset": 1874,
1786// CHECK-NEXT:                    "col": 11,
1787// CHECK-NEXT:                    "tokLen": 3
1788// CHECK-NEXT:                   },
1789// CHECK-NEXT:                   "end": {
1790// CHECK-NEXT:                    "offset": 1874,
1791// CHECK-NEXT:                    "col": 11,
1792// CHECK-NEXT:                    "tokLen": 3
1793// CHECK-NEXT:                   }
1794// CHECK-NEXT:                  },
1795// CHECK-NEXT:                  "type": {
1796// CHECK-NEXT:                   "qualType": "J *"
1797// CHECK-NEXT:                  },
1798// CHECK-NEXT:                  "valueCategory": "lvalue",
1799// CHECK-NEXT:                  "referencedDecl": {
1800// CHECK-NEXT:                   "id": "0x{{.*}}",
1801// CHECK-NEXT:                   "kind": "ParmVarDecl",
1802// CHECK-NEXT:                   "name": "Obj",
1803// CHECK-NEXT:                   "type": {
1804// CHECK-NEXT:                    "qualType": "J *"
1805// CHECK-NEXT:                   }
1806// CHECK-NEXT:                  }
1807// CHECK-NEXT:                 }
1808// CHECK-NEXT:                ]
1809// CHECK-NEXT:               }
1810// CHECK-NEXT:              ]
1811// CHECK-NEXT:             },
1812// CHECK-NEXT:             {
1813// CHECK-NEXT:              "id": "0x{{.*}}",
1814// CHECK-NEXT:              "kind": "ObjCMessageExpr",
1815// CHECK-NEXT:              "range": {
1816// CHECK-NEXT:               "begin": {
1817// CHECK-NEXT:                "offset": 1878,
1818// CHECK-NEXT:                "col": 15,
1819// CHECK-NEXT:                "tokLen": 4
1820// CHECK-NEXT:               },
1821// CHECK-NEXT:               "end": {
1822// CHECK-NEXT:                "offset": 1878,
1823// CHECK-NEXT:                "col": 15,
1824// CHECK-NEXT:                "tokLen": 4
1825// CHECK-NEXT:               }
1826// CHECK-NEXT:              },
1827// CHECK-NEXT:              "type": {
1828// CHECK-NEXT:               "qualType": "unsigned int"
1829// CHECK-NEXT:              },
1830// CHECK-NEXT:              "valueCategory": "prvalue",
1831// CHECK-NEXT:              "selector": "prop",
1832// CHECK-NEXT:              "receiverKind": "instance",
1833// CHECK-NEXT:              "inner": [
1834// CHECK-NEXT:               {
1835// CHECK-NEXT:                "id": "0x{{.*}}",
1836// CHECK-NEXT:                "kind": "OpaqueValueExpr",
1837// CHECK-NEXT:                "range": {
1838// CHECK-NEXT:                 "begin": {
1839// CHECK-NEXT:                  "offset": 1874,
1840// CHECK-NEXT:                  "col": 11,
1841// CHECK-NEXT:                  "tokLen": 3
1842// CHECK-NEXT:                 },
1843// CHECK-NEXT:                 "end": {
1844// CHECK-NEXT:                  "offset": 1874,
1845// CHECK-NEXT:                  "col": 11,
1846// CHECK-NEXT:                  "tokLen": 3
1847// CHECK-NEXT:                 }
1848// CHECK-NEXT:                },
1849// CHECK-NEXT:                "type": {
1850// CHECK-NEXT:                 "qualType": "J *"
1851// CHECK-NEXT:                },
1852// CHECK-NEXT:                "valueCategory": "prvalue",
1853// CHECK-NEXT:                "inner": [
1854// CHECK-NEXT:                 {
1855// CHECK-NEXT:                  "id": "0x{{.*}}",
1856// CHECK-NEXT:                  "kind": "ImplicitCastExpr",
1857// CHECK-NEXT:                  "range": {
1858// CHECK-NEXT:                   "begin": {
1859// CHECK-NEXT:                    "offset": 1874,
1860// CHECK-NEXT:                    "col": 11,
1861// CHECK-NEXT:                    "tokLen": 3
1862// CHECK-NEXT:                   },
1863// CHECK-NEXT:                   "end": {
1864// CHECK-NEXT:                    "offset": 1874,
1865// CHECK-NEXT:                    "col": 11,
1866// CHECK-NEXT:                    "tokLen": 3
1867// CHECK-NEXT:                   }
1868// CHECK-NEXT:                  },
1869// CHECK-NEXT:                  "type": {
1870// CHECK-NEXT:                   "qualType": "J *"
1871// CHECK-NEXT:                  },
1872// CHECK-NEXT:                  "valueCategory": "prvalue",
1873// CHECK-NEXT:                  "castKind": "LValueToRValue",
1874// CHECK-NEXT:                  "inner": [
1875// CHECK-NEXT:                   {
1876// CHECK-NEXT:                    "id": "0x{{.*}}",
1877// CHECK-NEXT:                    "kind": "DeclRefExpr",
1878// CHECK-NEXT:                    "range": {
1879// CHECK-NEXT:                     "begin": {
1880// CHECK-NEXT:                      "offset": 1874,
1881// CHECK-NEXT:                      "col": 11,
1882// CHECK-NEXT:                      "tokLen": 3
1883// CHECK-NEXT:                     },
1884// CHECK-NEXT:                     "end": {
1885// CHECK-NEXT:                      "offset": 1874,
1886// CHECK-NEXT:                      "col": 11,
1887// CHECK-NEXT:                      "tokLen": 3
1888// CHECK-NEXT:                     }
1889// CHECK-NEXT:                    },
1890// CHECK-NEXT:                    "type": {
1891// CHECK-NEXT:                     "qualType": "J *"
1892// CHECK-NEXT:                    },
1893// CHECK-NEXT:                    "valueCategory": "lvalue",
1894// CHECK-NEXT:                    "referencedDecl": {
1895// CHECK-NEXT:                     "id": "0x{{.*}}",
1896// CHECK-NEXT:                     "kind": "ParmVarDecl",
1897// CHECK-NEXT:                     "name": "Obj",
1898// CHECK-NEXT:                     "type": {
1899// CHECK-NEXT:                      "qualType": "J *"
1900// CHECK-NEXT:                     }
1901// CHECK-NEXT:                    }
1902// CHECK-NEXT:                   }
1903// CHECK-NEXT:                  ]
1904// CHECK-NEXT:                 }
1905// CHECK-NEXT:                ]
1906// CHECK-NEXT:               }
1907// CHECK-NEXT:              ]
1908// CHECK-NEXT:             }
1909// CHECK-NEXT:            ]
1910// CHECK-NEXT:           }
1911// CHECK-NEXT:          ]
1912// CHECK-NEXT:         }
1913// CHECK-NEXT:        ]
1914// CHECK-NEXT:       }
1915// CHECK-NEXT:      ]
1916// CHECK-NEXT:     }
1917// CHECK-NEXT:    ]
1918// CHECK-NEXT:   }
1919// CHECK-NEXT:  ]
1920// CHECK-NEXT: }
1921
1922// CHECK-NOT: {{^}}Dumping
1923// CHECK:  "kind": "FunctionDecl",
1924// CHECK-NEXT:  "loc": {
1925// CHECK-NEXT:   "offset": 1892,
1926// CHECK-NEXT:   "file": "{{.*}}",
1927// CHECK-NEXT:   "line": 81,
1928// CHECK-NEXT:   "col": 6,
1929// CHECK-NEXT:   "tokLen": 20
1930// CHECK-NEXT:  },
1931// CHECK-NEXT:  "range": {
1932// CHECK-NEXT:   "begin": {
1933// CHECK-NEXT:    "offset": 1887,
1934// CHECK-NEXT:    "col": 1,
1935// CHECK-NEXT:    "tokLen": 4
1936// CHECK-NEXT:   },
1937// CHECK-NEXT:   "end": {
1938// CHECK-NEXT:    "offset": 2052,
1939// CHECK-NEXT:    "line": 87,
1940// CHECK-NEXT:    "col": 1,
1941// CHECK-NEXT:    "tokLen": 1
1942// CHECK-NEXT:   }
1943// CHECK-NEXT:  },
1944// CHECK-NEXT:  "name": "TestObjCSubscriptRef",
1945// CHECK-NEXT:  "mangledName": "TestObjCSubscriptRef",
1946// CHECK-NEXT:  "type": {
1947// CHECK-NEXT:   "qualType": "void (NSMutableArray *, NSMutableDictionary *)"
1948// CHECK-NEXT:  },
1949// CHECK-NEXT:  "inner": [
1950// CHECK-NEXT:   {
1951// CHECK-NEXT:    "id": "0x{{.*}}",
1952// CHECK-NEXT:    "kind": "ParmVarDecl",
1953// CHECK-NEXT:    "loc": {
1954// CHECK-NEXT:     "offset": 1929,
1955// CHECK-NEXT:     "line": 81,
1956// CHECK-NEXT:     "col": 43,
1957// CHECK-NEXT:     "tokLen": 5
1958// CHECK-NEXT:    },
1959// CHECK-NEXT:    "range": {
1960// CHECK-NEXT:     "begin": {
1961// CHECK-NEXT:      "offset": 1913,
1962// CHECK-NEXT:      "col": 27,
1963// CHECK-NEXT:      "tokLen": 14
1964// CHECK-NEXT:     },
1965// CHECK-NEXT:     "end": {
1966// CHECK-NEXT:      "offset": 1929,
1967// CHECK-NEXT:      "col": 43,
1968// CHECK-NEXT:      "tokLen": 5
1969// CHECK-NEXT:     }
1970// CHECK-NEXT:    },
1971// CHECK-NEXT:    "isUsed": true,
1972// CHECK-NEXT:    "name": "Array",
1973// CHECK-NEXT:    "mangledName": "Array",
1974// CHECK-NEXT:    "type": {
1975// CHECK-NEXT:     "qualType": "NSMutableArray *"
1976// CHECK-NEXT:    }
1977// CHECK-NEXT:   },
1978// CHECK-NEXT:   {
1979// CHECK-NEXT:    "id": "0x{{.*}}",
1980// CHECK-NEXT:    "kind": "ParmVarDecl",
1981// CHECK-NEXT:    "loc": {
1982// CHECK-NEXT:     "offset": 1957,
1983// CHECK-NEXT:     "col": 71,
1984// CHECK-NEXT:     "tokLen": 4
1985// CHECK-NEXT:    },
1986// CHECK-NEXT:    "range": {
1987// CHECK-NEXT:     "begin": {
1988// CHECK-NEXT:      "offset": 1936,
1989// CHECK-NEXT:      "col": 50,
1990// CHECK-NEXT:      "tokLen": 19
1991// CHECK-NEXT:     },
1992// CHECK-NEXT:     "end": {
1993// CHECK-NEXT:      "offset": 1957,
1994// CHECK-NEXT:      "col": 71,
1995// CHECK-NEXT:      "tokLen": 4
1996// CHECK-NEXT:     }
1997// CHECK-NEXT:    },
1998// CHECK-NEXT:    "isUsed": true,
1999// CHECK-NEXT:    "name": "Dict",
2000// CHECK-NEXT:    "mangledName": "Dict",
2001// CHECK-NEXT:    "type": {
2002// CHECK-NEXT:     "qualType": "NSMutableDictionary *"
2003// CHECK-NEXT:    }
2004// CHECK-NEXT:   },
2005// CHECK-NEXT:   {
2006// CHECK-NEXT:    "id": "0x{{.*}}",
2007// CHECK-NEXT:    "kind": "CompoundStmt",
2008// CHECK-NEXT:    "range": {
2009// CHECK-NEXT:     "begin": {
2010// CHECK-NEXT:      "offset": 1963,
2011// CHECK-NEXT:      "col": 77,
2012// CHECK-NEXT:      "tokLen": 1
2013// CHECK-NEXT:     },
2014// CHECK-NEXT:     "end": {
2015// CHECK-NEXT:      "offset": 2052,
2016// CHECK-NEXT:      "line": 87,
2017// CHECK-NEXT:      "col": 1,
2018// CHECK-NEXT:      "tokLen": 1
2019// CHECK-NEXT:     }
2020// CHECK-NEXT:    },
2021// CHECK-NEXT:    "inner": [
2022// CHECK-NEXT:     {
2023// CHECK-NEXT:      "id": "0x{{.*}}",
2024// CHECK-NEXT:      "kind": "PseudoObjectExpr",
2025// CHECK-NEXT:      "range": {
2026// CHECK-NEXT:       "begin": {
2027// CHECK-NEXT:        "offset": 1966,
2028// CHECK-NEXT:        "line": 82,
2029// CHECK-NEXT:        "col": 2,
2030// CHECK-NEXT:        "tokLen": 5
2031// CHECK-NEXT:       },
2032// CHECK-NEXT:       "end": {
2033// CHECK-NEXT:        "offset": 1984,
2034// CHECK-NEXT:        "col": 20,
2035// CHECK-NEXT:        "tokLen": 1
2036// CHECK-NEXT:       }
2037// CHECK-NEXT:      },
2038// CHECK-NEXT:      "type": {
2039// CHECK-NEXT:       "desugaredQualType": "id",
2040// CHECK-NEXT:       "qualType": "id",
2041// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
2042// CHECK-NEXT:      },
2043// CHECK-NEXT:      "valueCategory": "prvalue",
2044// CHECK-NEXT:      "inner": [
2045// CHECK-NEXT:       {
2046// CHECK-NEXT:        "id": "0x{{.*}}",
2047// CHECK-NEXT:        "kind": "BinaryOperator",
2048// CHECK-NEXT:        "range": {
2049// CHECK-NEXT:         "begin": {
2050// CHECK-NEXT:          "offset": 1966,
2051// CHECK-NEXT:          "col": 2,
2052// CHECK-NEXT:          "tokLen": 5
2053// CHECK-NEXT:         },
2054// CHECK-NEXT:         "end": {
2055// CHECK-NEXT:          "offset": 1984,
2056// CHECK-NEXT:          "col": 20,
2057// CHECK-NEXT:          "tokLen": 1
2058// CHECK-NEXT:         }
2059// CHECK-NEXT:        },
2060// CHECK-NEXT:        "type": {
2061// CHECK-NEXT:         "qualType": "void *"
2062// CHECK-NEXT:        },
2063// CHECK-NEXT:        "valueCategory": "prvalue",
2064// CHECK-NEXT:        "opcode": "=",
2065// CHECK-NEXT:        "inner": [
2066// CHECK-NEXT:         {
2067// CHECK-NEXT:          "id": "0x{{.*}}",
2068// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr",
2069// CHECK-NEXT:          "range": {
2070// CHECK-NEXT:           "begin": {
2071// CHECK-NEXT:            "offset": 1966,
2072// CHECK-NEXT:            "col": 2,
2073// CHECK-NEXT:            "tokLen": 5
2074// CHECK-NEXT:           },
2075// CHECK-NEXT:           "end": {
2076// CHECK-NEXT:            "offset": 1973,
2077// CHECK-NEXT:            "col": 9,
2078// CHECK-NEXT:            "tokLen": 1
2079// CHECK-NEXT:           }
2080// CHECK-NEXT:          },
2081// CHECK-NEXT:          "type": {
2082// CHECK-NEXT:           "qualType": "<pseudo-object type>"
2083// CHECK-NEXT:          },
2084// CHECK-NEXT:          "valueCategory": "lvalue",
2085// CHECK-NEXT:          "subscriptKind": "array",
2086// CHECK-NEXT:          "inner": [
2087// CHECK-NEXT:           {
2088// CHECK-NEXT:            "id": "0x{{.*}}",
2089// CHECK-NEXT:            "kind": "OpaqueValueExpr",
2090// CHECK-NEXT:            "range": {
2091// CHECK-NEXT:             "begin": {
2092// CHECK-NEXT:              "offset": 1966,
2093// CHECK-NEXT:              "col": 2,
2094// CHECK-NEXT:              "tokLen": 5
2095// CHECK-NEXT:             },
2096// CHECK-NEXT:             "end": {
2097// CHECK-NEXT:              "offset": 1966,
2098// CHECK-NEXT:              "col": 2,
2099// CHECK-NEXT:              "tokLen": 5
2100// CHECK-NEXT:             }
2101// CHECK-NEXT:            },
2102// CHECK-NEXT:            "type": {
2103// CHECK-NEXT:             "qualType": "NSMutableArray *"
2104// CHECK-NEXT:            },
2105// CHECK-NEXT:            "valueCategory": "prvalue",
2106// CHECK-NEXT:            "inner": [
2107// CHECK-NEXT:             {
2108// CHECK-NEXT:              "id": "0x{{.*}}",
2109// CHECK-NEXT:              "kind": "ImplicitCastExpr",
2110// CHECK-NEXT:              "range": {
2111// CHECK-NEXT:               "begin": {
2112// CHECK-NEXT:                "offset": 1966,
2113// CHECK-NEXT:                "col": 2,
2114// CHECK-NEXT:                "tokLen": 5
2115// CHECK-NEXT:               },
2116// CHECK-NEXT:               "end": {
2117// CHECK-NEXT:                "offset": 1966,
2118// CHECK-NEXT:                "col": 2,
2119// CHECK-NEXT:                "tokLen": 5
2120// CHECK-NEXT:               }
2121// CHECK-NEXT:              },
2122// CHECK-NEXT:              "type": {
2123// CHECK-NEXT:               "qualType": "NSMutableArray *"
2124// CHECK-NEXT:              },
2125// CHECK-NEXT:              "valueCategory": "prvalue",
2126// CHECK-NEXT:              "castKind": "LValueToRValue",
2127// CHECK-NEXT:              "inner": [
2128// CHECK-NEXT:               {
2129// CHECK-NEXT:                "id": "0x{{.*}}",
2130// CHECK-NEXT:                "kind": "DeclRefExpr",
2131// CHECK-NEXT:                "range": {
2132// CHECK-NEXT:                 "begin": {
2133// CHECK-NEXT:                  "offset": 1966,
2134// CHECK-NEXT:                  "col": 2,
2135// CHECK-NEXT:                  "tokLen": 5
2136// CHECK-NEXT:                 },
2137// CHECK-NEXT:                 "end": {
2138// CHECK-NEXT:                  "offset": 1966,
2139// CHECK-NEXT:                  "col": 2,
2140// CHECK-NEXT:                  "tokLen": 5
2141// CHECK-NEXT:                 }
2142// CHECK-NEXT:                },
2143// CHECK-NEXT:                "type": {
2144// CHECK-NEXT:                 "qualType": "NSMutableArray *"
2145// CHECK-NEXT:                },
2146// CHECK-NEXT:                "valueCategory": "lvalue",
2147// CHECK-NEXT:                "referencedDecl": {
2148// CHECK-NEXT:                 "id": "0x{{.*}}",
2149// CHECK-NEXT:                 "kind": "ParmVarDecl",
2150// CHECK-NEXT:                 "name": "Array",
2151// CHECK-NEXT:                 "type": {
2152// CHECK-NEXT:                  "qualType": "NSMutableArray *"
2153// CHECK-NEXT:                 }
2154// CHECK-NEXT:                }
2155// CHECK-NEXT:               }
2156// CHECK-NEXT:              ]
2157// CHECK-NEXT:             }
2158// CHECK-NEXT:            ]
2159// CHECK-NEXT:           },
2160// CHECK-NEXT:           {
2161// CHECK-NEXT:            "id": "0x{{.*}}",
2162// CHECK-NEXT:            "kind": "OpaqueValueExpr",
2163// CHECK-NEXT:            "range": {
2164// CHECK-NEXT:             "begin": {
2165// CHECK-NEXT:              "offset": 1972,
2166// CHECK-NEXT:              "col": 8,
2167// CHECK-NEXT:              "tokLen": 1
2168// CHECK-NEXT:             },
2169// CHECK-NEXT:             "end": {
2170// CHECK-NEXT:              "offset": 1972,
2171// CHECK-NEXT:              "col": 8,
2172// CHECK-NEXT:              "tokLen": 1
2173// CHECK-NEXT:             }
2174// CHECK-NEXT:            },
2175// CHECK-NEXT:            "type": {
2176// CHECK-NEXT:             "qualType": "int"
2177// CHECK-NEXT:            },
2178// CHECK-NEXT:            "valueCategory": "prvalue",
2179// CHECK-NEXT:            "inner": [
2180// CHECK-NEXT:             {
2181// CHECK-NEXT:              "id": "0x{{.*}}",
2182// CHECK-NEXT:              "kind": "IntegerLiteral",
2183// CHECK-NEXT:              "range": {
2184// CHECK-NEXT:               "begin": {
2185// CHECK-NEXT:                "offset": 1972,
2186// CHECK-NEXT:                "col": 8,
2187// CHECK-NEXT:                "tokLen": 1
2188// CHECK-NEXT:               },
2189// CHECK-NEXT:               "end": {
2190// CHECK-NEXT:                "offset": 1972,
2191// CHECK-NEXT:                "col": 8,
2192// CHECK-NEXT:                "tokLen": 1
2193// CHECK-NEXT:               }
2194// CHECK-NEXT:              },
2195// CHECK-NEXT:              "type": {
2196// CHECK-NEXT:               "qualType": "int"
2197// CHECK-NEXT:              },
2198// CHECK-NEXT:              "valueCategory": "prvalue",
2199// CHECK-NEXT:              "value": "0"
2200// CHECK-NEXT:             }
2201// CHECK-NEXT:            ]
2202// CHECK-NEXT:           }
2203// CHECK-NEXT:          ]
2204// CHECK-NEXT:         },
2205// CHECK-NEXT:         {
2206// CHECK-NEXT:          "id": "0x{{.*}}",
2207// CHECK-NEXT:          "kind": "OpaqueValueExpr",
2208// CHECK-NEXT:          "range": {
2209// CHECK-NEXT:           "begin": {
2210// CHECK-NEXT:            "offset": 1977,
2211// CHECK-NEXT:            "col": 13,
2212// CHECK-NEXT:            "tokLen": 1
2213// CHECK-NEXT:           },
2214// CHECK-NEXT:           "end": {
2215// CHECK-NEXT:            "offset": 1984,
2216// CHECK-NEXT:            "col": 20,
2217// CHECK-NEXT:            "tokLen": 1
2218// CHECK-NEXT:           }
2219// CHECK-NEXT:          },
2220// CHECK-NEXT:          "type": {
2221// CHECK-NEXT:           "qualType": "void *"
2222// CHECK-NEXT:          },
2223// CHECK-NEXT:          "valueCategory": "prvalue",
2224// CHECK-NEXT:          "inner": [
2225// CHECK-NEXT:           {
2226// CHECK-NEXT:            "id": "0x{{.*}}",
2227// CHECK-NEXT:            "kind": "CStyleCastExpr",
2228// CHECK-NEXT:            "range": {
2229// CHECK-NEXT:             "begin": {
2230// CHECK-NEXT:              "offset": 1977,
2231// CHECK-NEXT:              "col": 13,
2232// CHECK-NEXT:              "tokLen": 1
2233// CHECK-NEXT:             },
2234// CHECK-NEXT:             "end": {
2235// CHECK-NEXT:              "offset": 1984,
2236// CHECK-NEXT:              "col": 20,
2237// CHECK-NEXT:              "tokLen": 1
2238// CHECK-NEXT:             }
2239// CHECK-NEXT:            },
2240// CHECK-NEXT:            "type": {
2241// CHECK-NEXT:             "qualType": "void *"
2242// CHECK-NEXT:            },
2243// CHECK-NEXT:            "valueCategory": "prvalue",
2244// CHECK-NEXT:            "castKind": "NullToPointer",
2245// CHECK-NEXT:            "inner": [
2246// CHECK-NEXT:             {
2247// CHECK-NEXT:              "id": "0x{{.*}}",
2248// CHECK-NEXT:              "kind": "IntegerLiteral",
2249// CHECK-NEXT:              "range": {
2250// CHECK-NEXT:               "begin": {
2251// CHECK-NEXT:                "offset": 1984,
2252// CHECK-NEXT:                "col": 20,
2253// CHECK-NEXT:                "tokLen": 1
2254// CHECK-NEXT:               },
2255// CHECK-NEXT:               "end": {
2256// CHECK-NEXT:                "offset": 1984,
2257// CHECK-NEXT:                "col": 20,
2258// CHECK-NEXT:                "tokLen": 1
2259// CHECK-NEXT:               }
2260// CHECK-NEXT:              },
2261// CHECK-NEXT:              "type": {
2262// CHECK-NEXT:               "qualType": "int"
2263// CHECK-NEXT:              },
2264// CHECK-NEXT:              "valueCategory": "prvalue",
2265// CHECK-NEXT:              "value": "0"
2266// CHECK-NEXT:             }
2267// CHECK-NEXT:            ]
2268// CHECK-NEXT:           }
2269// CHECK-NEXT:          ]
2270// CHECK-NEXT:         }
2271// CHECK-NEXT:        ]
2272// CHECK-NEXT:       },
2273// CHECK-NEXT:       {
2274// CHECK-NEXT:        "id": "0x{{.*}}",
2275// CHECK-NEXT:        "kind": "OpaqueValueExpr",
2276// CHECK-NEXT:        "range": {
2277// CHECK-NEXT:         "begin": {
2278// CHECK-NEXT:          "offset": 1966,
2279// CHECK-NEXT:          "col": 2,
2280// CHECK-NEXT:          "tokLen": 5
2281// CHECK-NEXT:         },
2282// CHECK-NEXT:         "end": {
2283// CHECK-NEXT:          "offset": 1966,
2284// CHECK-NEXT:          "col": 2,
2285// CHECK-NEXT:          "tokLen": 5
2286// CHECK-NEXT:         }
2287// CHECK-NEXT:        },
2288// CHECK-NEXT:        "type": {
2289// CHECK-NEXT:         "qualType": "NSMutableArray *"
2290// CHECK-NEXT:        },
2291// CHECK-NEXT:        "valueCategory": "prvalue",
2292// CHECK-NEXT:        "inner": [
2293// CHECK-NEXT:         {
2294// CHECK-NEXT:          "id": "0x{{.*}}",
2295// CHECK-NEXT:          "kind": "ImplicitCastExpr",
2296// CHECK-NEXT:          "range": {
2297// CHECK-NEXT:           "begin": {
2298// CHECK-NEXT:            "offset": 1966,
2299// CHECK-NEXT:            "col": 2,
2300// CHECK-NEXT:            "tokLen": 5
2301// CHECK-NEXT:           },
2302// CHECK-NEXT:           "end": {
2303// CHECK-NEXT:            "offset": 1966,
2304// CHECK-NEXT:            "col": 2,
2305// CHECK-NEXT:            "tokLen": 5
2306// CHECK-NEXT:           }
2307// CHECK-NEXT:          },
2308// CHECK-NEXT:          "type": {
2309// CHECK-NEXT:           "qualType": "NSMutableArray *"
2310// CHECK-NEXT:          },
2311// CHECK-NEXT:          "valueCategory": "prvalue",
2312// CHECK-NEXT:          "castKind": "LValueToRValue",
2313// CHECK-NEXT:          "inner": [
2314// CHECK-NEXT:           {
2315// CHECK-NEXT:            "id": "0x{{.*}}",
2316// CHECK-NEXT:            "kind": "DeclRefExpr",
2317// CHECK-NEXT:            "range": {
2318// CHECK-NEXT:             "begin": {
2319// CHECK-NEXT:              "offset": 1966,
2320// CHECK-NEXT:              "col": 2,
2321// CHECK-NEXT:              "tokLen": 5
2322// CHECK-NEXT:             },
2323// CHECK-NEXT:             "end": {
2324// CHECK-NEXT:              "offset": 1966,
2325// CHECK-NEXT:              "col": 2,
2326// CHECK-NEXT:              "tokLen": 5
2327// CHECK-NEXT:             }
2328// CHECK-NEXT:            },
2329// CHECK-NEXT:            "type": {
2330// CHECK-NEXT:             "qualType": "NSMutableArray *"
2331// CHECK-NEXT:            },
2332// CHECK-NEXT:            "valueCategory": "lvalue",
2333// CHECK-NEXT:            "referencedDecl": {
2334// CHECK-NEXT:             "id": "0x{{.*}}",
2335// CHECK-NEXT:             "kind": "ParmVarDecl",
2336// CHECK-NEXT:             "name": "Array",
2337// CHECK-NEXT:             "type": {
2338// CHECK-NEXT:              "qualType": "NSMutableArray *"
2339// CHECK-NEXT:             }
2340// CHECK-NEXT:            }
2341// CHECK-NEXT:           }
2342// CHECK-NEXT:          ]
2343// CHECK-NEXT:         }
2344// CHECK-NEXT:        ]
2345// CHECK-NEXT:       },
2346// CHECK-NEXT:       {
2347// CHECK-NEXT:        "id": "0x{{.*}}",
2348// CHECK-NEXT:        "kind": "OpaqueValueExpr",
2349// CHECK-NEXT:        "range": {
2350// CHECK-NEXT:         "begin": {
2351// CHECK-NEXT:          "offset": 1972,
2352// CHECK-NEXT:          "col": 8,
2353// CHECK-NEXT:          "tokLen": 1
2354// CHECK-NEXT:         },
2355// CHECK-NEXT:         "end": {
2356// CHECK-NEXT:          "offset": 1972,
2357// CHECK-NEXT:          "col": 8,
2358// CHECK-NEXT:          "tokLen": 1
2359// CHECK-NEXT:         }
2360// CHECK-NEXT:        },
2361// CHECK-NEXT:        "type": {
2362// CHECK-NEXT:         "qualType": "int"
2363// CHECK-NEXT:        },
2364// CHECK-NEXT:        "valueCategory": "prvalue",
2365// CHECK-NEXT:        "inner": [
2366// CHECK-NEXT:         {
2367// CHECK-NEXT:          "id": "0x{{.*}}",
2368// CHECK-NEXT:          "kind": "IntegerLiteral",
2369// CHECK-NEXT:          "range": {
2370// CHECK-NEXT:           "begin": {
2371// CHECK-NEXT:            "offset": 1972,
2372// CHECK-NEXT:            "col": 8,
2373// CHECK-NEXT:            "tokLen": 1
2374// CHECK-NEXT:           },
2375// CHECK-NEXT:           "end": {
2376// CHECK-NEXT:            "offset": 1972,
2377// CHECK-NEXT:            "col": 8,
2378// CHECK-NEXT:            "tokLen": 1
2379// CHECK-NEXT:           }
2380// CHECK-NEXT:          },
2381// CHECK-NEXT:          "type": {
2382// CHECK-NEXT:           "qualType": "int"
2383// CHECK-NEXT:          },
2384// CHECK-NEXT:          "valueCategory": "prvalue",
2385// CHECK-NEXT:          "value": "0"
2386// CHECK-NEXT:         }
2387// CHECK-NEXT:        ]
2388// CHECK-NEXT:       },
2389// CHECK-NEXT:       {
2390// CHECK-NEXT:        "id": "0x{{.*}}",
2391// CHECK-NEXT:        "kind": "OpaqueValueExpr",
2392// CHECK-NEXT:        "range": {
2393// CHECK-NEXT:         "begin": {
2394// CHECK-NEXT:          "offset": 1977,
2395// CHECK-NEXT:          "col": 13,
2396// CHECK-NEXT:          "tokLen": 1
2397// CHECK-NEXT:         },
2398// CHECK-NEXT:         "end": {
2399// CHECK-NEXT:          "offset": 1984,
2400// CHECK-NEXT:          "col": 20,
2401// CHECK-NEXT:          "tokLen": 1
2402// CHECK-NEXT:         }
2403// CHECK-NEXT:        },
2404// CHECK-NEXT:        "type": {
2405// CHECK-NEXT:         "qualType": "void *"
2406// CHECK-NEXT:        },
2407// CHECK-NEXT:        "valueCategory": "prvalue",
2408// CHECK-NEXT:        "inner": [
2409// CHECK-NEXT:         {
2410// CHECK-NEXT:          "id": "0x{{.*}}",
2411// CHECK-NEXT:          "kind": "CStyleCastExpr",
2412// CHECK-NEXT:          "range": {
2413// CHECK-NEXT:           "begin": {
2414// CHECK-NEXT:            "offset": 1977,
2415// CHECK-NEXT:            "col": 13,
2416// CHECK-NEXT:            "tokLen": 1
2417// CHECK-NEXT:           },
2418// CHECK-NEXT:           "end": {
2419// CHECK-NEXT:            "offset": 1984,
2420// CHECK-NEXT:            "col": 20,
2421// CHECK-NEXT:            "tokLen": 1
2422// CHECK-NEXT:           }
2423// CHECK-NEXT:          },
2424// CHECK-NEXT:          "type": {
2425// CHECK-NEXT:           "qualType": "void *"
2426// CHECK-NEXT:          },
2427// CHECK-NEXT:          "valueCategory": "prvalue",
2428// CHECK-NEXT:          "castKind": "NullToPointer",
2429// CHECK-NEXT:          "inner": [
2430// CHECK-NEXT:           {
2431// CHECK-NEXT:            "id": "0x{{.*}}",
2432// CHECK-NEXT:            "kind": "IntegerLiteral",
2433// CHECK-NEXT:            "range": {
2434// CHECK-NEXT:             "begin": {
2435// CHECK-NEXT:              "offset": 1984,
2436// CHECK-NEXT:              "col": 20,
2437// CHECK-NEXT:              "tokLen": 1
2438// CHECK-NEXT:             },
2439// CHECK-NEXT:             "end": {
2440// CHECK-NEXT:              "offset": 1984,
2441// CHECK-NEXT:              "col": 20,
2442// CHECK-NEXT:              "tokLen": 1
2443// CHECK-NEXT:             }
2444// CHECK-NEXT:            },
2445// CHECK-NEXT:            "type": {
2446// CHECK-NEXT:             "qualType": "int"
2447// CHECK-NEXT:            },
2448// CHECK-NEXT:            "valueCategory": "prvalue",
2449// CHECK-NEXT:            "value": "0"
2450// CHECK-NEXT:           }
2451// CHECK-NEXT:          ]
2452// CHECK-NEXT:         }
2453// CHECK-NEXT:        ]
2454// CHECK-NEXT:       },
2455// CHECK-NEXT:       {
2456// CHECK-NEXT:        "id": "0x{{.*}}",
2457// CHECK-NEXT:        "kind": "OpaqueValueExpr",
2458// CHECK-NEXT:        "range": {
2459// CHECK-NEXT:         "begin": {
2460// CHECK-NEXT:          "offset": 1977,
2461// CHECK-NEXT:          "col": 13,
2462// CHECK-NEXT:          "tokLen": 1
2463// CHECK-NEXT:         },
2464// CHECK-NEXT:         "end": {
2465// CHECK-NEXT:          "offset": 1984,
2466// CHECK-NEXT:          "col": 20,
2467// CHECK-NEXT:          "tokLen": 1
2468// CHECK-NEXT:         }
2469// CHECK-NEXT:        },
2470// CHECK-NEXT:        "type": {
2471// CHECK-NEXT:         "desugaredQualType": "id",
2472// CHECK-NEXT:         "qualType": "id",
2473// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
2474// CHECK-NEXT:        },
2475// CHECK-NEXT:        "valueCategory": "prvalue",
2476// CHECK-NEXT:        "inner": [
2477// CHECK-NEXT:         {
2478// CHECK-NEXT:          "id": "0x{{.*}}",
2479// CHECK-NEXT:          "kind": "ImplicitCastExpr",
2480// CHECK-NEXT:          "range": {
2481// CHECK-NEXT:           "begin": {
2482// CHECK-NEXT:            "offset": 1977,
2483// CHECK-NEXT:            "col": 13,
2484// CHECK-NEXT:            "tokLen": 1
2485// CHECK-NEXT:           },
2486// CHECK-NEXT:           "end": {
2487// CHECK-NEXT:            "offset": 1984,
2488// CHECK-NEXT:            "col": 20,
2489// CHECK-NEXT:            "tokLen": 1
2490// CHECK-NEXT:           }
2491// CHECK-NEXT:          },
2492// CHECK-NEXT:          "type": {
2493// CHECK-NEXT:           "desugaredQualType": "id",
2494// CHECK-NEXT:           "qualType": "id",
2495// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
2496// CHECK-NEXT:          },
2497// CHECK-NEXT:          "valueCategory": "prvalue",
2498// CHECK-NEXT:          "castKind": "NullToPointer",
2499// CHECK-NEXT:          "inner": [
2500// CHECK-NEXT:           {
2501// CHECK-NEXT:            "id": "0x{{.*}}",
2502// CHECK-NEXT:            "kind": "OpaqueValueExpr",
2503// CHECK-NEXT:            "range": {
2504// CHECK-NEXT:             "begin": {
2505// CHECK-NEXT:              "offset": 1977,
2506// CHECK-NEXT:              "col": 13,
2507// CHECK-NEXT:              "tokLen": 1
2508// CHECK-NEXT:             },
2509// CHECK-NEXT:             "end": {
2510// CHECK-NEXT:              "offset": 1984,
2511// CHECK-NEXT:              "col": 20,
2512// CHECK-NEXT:              "tokLen": 1
2513// CHECK-NEXT:             }
2514// CHECK-NEXT:            },
2515// CHECK-NEXT:            "type": {
2516// CHECK-NEXT:             "qualType": "void *"
2517// CHECK-NEXT:            },
2518// CHECK-NEXT:            "valueCategory": "prvalue",
2519// CHECK-NEXT:            "inner": [
2520// CHECK-NEXT:             {
2521// CHECK-NEXT:              "id": "0x{{.*}}",
2522// CHECK-NEXT:              "kind": "CStyleCastExpr",
2523// CHECK-NEXT:              "range": {
2524// CHECK-NEXT:               "begin": {
2525// CHECK-NEXT:                "offset": 1977,
2526// CHECK-NEXT:                "col": 13,
2527// CHECK-NEXT:                "tokLen": 1
2528// CHECK-NEXT:               },
2529// CHECK-NEXT:               "end": {
2530// CHECK-NEXT:                "offset": 1984,
2531// CHECK-NEXT:                "col": 20,
2532// CHECK-NEXT:                "tokLen": 1
2533// CHECK-NEXT:               }
2534// CHECK-NEXT:              },
2535// CHECK-NEXT:              "type": {
2536// CHECK-NEXT:               "qualType": "void *"
2537// CHECK-NEXT:              },
2538// CHECK-NEXT:              "valueCategory": "prvalue",
2539// CHECK-NEXT:              "castKind": "NullToPointer",
2540// CHECK-NEXT:              "inner": [
2541// CHECK-NEXT:               {
2542// CHECK-NEXT:                "id": "0x{{.*}}",
2543// CHECK-NEXT:                "kind": "IntegerLiteral",
2544// CHECK-NEXT:                "range": {
2545// CHECK-NEXT:                 "begin": {
2546// CHECK-NEXT:                  "offset": 1984,
2547// CHECK-NEXT:                  "col": 20,
2548// CHECK-NEXT:                  "tokLen": 1
2549// CHECK-NEXT:                 },
2550// CHECK-NEXT:                 "end": {
2551// CHECK-NEXT:                  "offset": 1984,
2552// CHECK-NEXT:                  "col": 20,
2553// CHECK-NEXT:                  "tokLen": 1
2554// CHECK-NEXT:                 }
2555// CHECK-NEXT:                },
2556// CHECK-NEXT:                "type": {
2557// CHECK-NEXT:                 "qualType": "int"
2558// CHECK-NEXT:                },
2559// CHECK-NEXT:                "valueCategory": "prvalue",
2560// CHECK-NEXT:                "value": "0"
2561// CHECK-NEXT:               }
2562// CHECK-NEXT:              ]
2563// CHECK-NEXT:             }
2564// CHECK-NEXT:            ]
2565// CHECK-NEXT:           }
2566// CHECK-NEXT:          ]
2567// CHECK-NEXT:         }
2568// CHECK-NEXT:        ]
2569// CHECK-NEXT:       },
2570// CHECK-NEXT:       {
2571// CHECK-NEXT:        "id": "0x{{.*}}",
2572// CHECK-NEXT:        "kind": "ObjCMessageExpr",
2573// CHECK-NEXT:        "range": {
2574// CHECK-NEXT:         "begin": {
2575// CHECK-NEXT:          "offset": 1966,
2576// CHECK-NEXT:          "col": 2,
2577// CHECK-NEXT:          "tokLen": 5
2578// CHECK-NEXT:         },
2579// CHECK-NEXT:         "end": {
2580// CHECK-NEXT:          "offset": 1966,
2581// CHECK-NEXT:          "col": 2,
2582// CHECK-NEXT:          "tokLen": 5
2583// CHECK-NEXT:         }
2584// CHECK-NEXT:        },
2585// CHECK-NEXT:        "type": {
2586// CHECK-NEXT:         "qualType": "void"
2587// CHECK-NEXT:        },
2588// CHECK-NEXT:        "valueCategory": "prvalue",
2589// CHECK-NEXT:        "selector": "setObject:atIndexedSubscript:",
2590// CHECK-NEXT:        "receiverKind": "instance",
2591// CHECK-NEXT:        "inner": [
2592// CHECK-NEXT:         {
2593// CHECK-NEXT:          "id": "0x{{.*}}",
2594// CHECK-NEXT:          "kind": "OpaqueValueExpr",
2595// CHECK-NEXT:          "range": {
2596// CHECK-NEXT:           "begin": {
2597// CHECK-NEXT:            "offset": 1966,
2598// CHECK-NEXT:            "col": 2,
2599// CHECK-NEXT:            "tokLen": 5
2600// CHECK-NEXT:           },
2601// CHECK-NEXT:           "end": {
2602// CHECK-NEXT:            "offset": 1966,
2603// CHECK-NEXT:            "col": 2,
2604// CHECK-NEXT:            "tokLen": 5
2605// CHECK-NEXT:           }
2606// CHECK-NEXT:          },
2607// CHECK-NEXT:          "type": {
2608// CHECK-NEXT:           "qualType": "NSMutableArray *"
2609// CHECK-NEXT:          },
2610// CHECK-NEXT:          "valueCategory": "prvalue",
2611// CHECK-NEXT:          "inner": [
2612// CHECK-NEXT:           {
2613// CHECK-NEXT:            "id": "0x{{.*}}",
2614// CHECK-NEXT:            "kind": "ImplicitCastExpr",
2615// CHECK-NEXT:            "range": {
2616// CHECK-NEXT:             "begin": {
2617// CHECK-NEXT:              "offset": 1966,
2618// CHECK-NEXT:              "col": 2,
2619// CHECK-NEXT:              "tokLen": 5
2620// CHECK-NEXT:             },
2621// CHECK-NEXT:             "end": {
2622// CHECK-NEXT:              "offset": 1966,
2623// CHECK-NEXT:              "col": 2,
2624// CHECK-NEXT:              "tokLen": 5
2625// CHECK-NEXT:             }
2626// CHECK-NEXT:            },
2627// CHECK-NEXT:            "type": {
2628// CHECK-NEXT:             "qualType": "NSMutableArray *"
2629// CHECK-NEXT:            },
2630// CHECK-NEXT:            "valueCategory": "prvalue",
2631// CHECK-NEXT:            "castKind": "LValueToRValue",
2632// CHECK-NEXT:            "inner": [
2633// CHECK-NEXT:             {
2634// CHECK-NEXT:              "id": "0x{{.*}}",
2635// CHECK-NEXT:              "kind": "DeclRefExpr",
2636// CHECK-NEXT:              "range": {
2637// CHECK-NEXT:               "begin": {
2638// CHECK-NEXT:                "offset": 1966,
2639// CHECK-NEXT:                "col": 2,
2640// CHECK-NEXT:                "tokLen": 5
2641// CHECK-NEXT:               },
2642// CHECK-NEXT:               "end": {
2643// CHECK-NEXT:                "offset": 1966,
2644// CHECK-NEXT:                "col": 2,
2645// CHECK-NEXT:                "tokLen": 5
2646// CHECK-NEXT:               }
2647// CHECK-NEXT:              },
2648// CHECK-NEXT:              "type": {
2649// CHECK-NEXT:               "qualType": "NSMutableArray *"
2650// CHECK-NEXT:              },
2651// CHECK-NEXT:              "valueCategory": "lvalue",
2652// CHECK-NEXT:              "referencedDecl": {
2653// CHECK-NEXT:               "id": "0x{{.*}}",
2654// CHECK-NEXT:               "kind": "ParmVarDecl",
2655// CHECK-NEXT:               "name": "Array",
2656// CHECK-NEXT:               "type": {
2657// CHECK-NEXT:                "qualType": "NSMutableArray *"
2658// CHECK-NEXT:               }
2659// CHECK-NEXT:              }
2660// CHECK-NEXT:             }
2661// CHECK-NEXT:            ]
2662// CHECK-NEXT:           }
2663// CHECK-NEXT:          ]
2664// CHECK-NEXT:         },
2665// CHECK-NEXT:         {
2666// CHECK-NEXT:          "id": "0x{{.*}}",
2667// CHECK-NEXT:          "kind": "OpaqueValueExpr",
2668// CHECK-NEXT:          "range": {
2669// CHECK-NEXT:           "begin": {
2670// CHECK-NEXT:            "offset": 1977,
2671// CHECK-NEXT:            "col": 13,
2672// CHECK-NEXT:            "tokLen": 1
2673// CHECK-NEXT:           },
2674// CHECK-NEXT:           "end": {
2675// CHECK-NEXT:            "offset": 1984,
2676// CHECK-NEXT:            "col": 20,
2677// CHECK-NEXT:            "tokLen": 1
2678// CHECK-NEXT:           }
2679// CHECK-NEXT:          },
2680// CHECK-NEXT:          "type": {
2681// CHECK-NEXT:           "desugaredQualType": "id",
2682// CHECK-NEXT:           "qualType": "id",
2683// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
2684// CHECK-NEXT:          },
2685// CHECK-NEXT:          "valueCategory": "prvalue",
2686// CHECK-NEXT:          "inner": [
2687// CHECK-NEXT:           {
2688// CHECK-NEXT:            "id": "0x{{.*}}",
2689// CHECK-NEXT:            "kind": "ImplicitCastExpr",
2690// CHECK-NEXT:            "range": {
2691// CHECK-NEXT:             "begin": {
2692// CHECK-NEXT:              "offset": 1977,
2693// CHECK-NEXT:              "col": 13,
2694// CHECK-NEXT:              "tokLen": 1
2695// CHECK-NEXT:             },
2696// CHECK-NEXT:             "end": {
2697// CHECK-NEXT:              "offset": 1984,
2698// CHECK-NEXT:              "col": 20,
2699// CHECK-NEXT:              "tokLen": 1
2700// CHECK-NEXT:             }
2701// CHECK-NEXT:            },
2702// CHECK-NEXT:            "type": {
2703// CHECK-NEXT:             "desugaredQualType": "id",
2704// CHECK-NEXT:             "qualType": "id",
2705// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
2706// CHECK-NEXT:            },
2707// CHECK-NEXT:            "valueCategory": "prvalue",
2708// CHECK-NEXT:            "castKind": "NullToPointer",
2709// CHECK-NEXT:            "inner": [
2710// CHECK-NEXT:             {
2711// CHECK-NEXT:              "id": "0x{{.*}}",
2712// CHECK-NEXT:              "kind": "OpaqueValueExpr",
2713// CHECK-NEXT:              "range": {
2714// CHECK-NEXT:               "begin": {
2715// CHECK-NEXT:                "offset": 1977,
2716// CHECK-NEXT:                "col": 13,
2717// CHECK-NEXT:                "tokLen": 1
2718// CHECK-NEXT:               },
2719// CHECK-NEXT:               "end": {
2720// CHECK-NEXT:                "offset": 1984,
2721// CHECK-NEXT:                "col": 20,
2722// CHECK-NEXT:                "tokLen": 1
2723// CHECK-NEXT:               }
2724// CHECK-NEXT:              },
2725// CHECK-NEXT:              "type": {
2726// CHECK-NEXT:               "qualType": "void *"
2727// CHECK-NEXT:              },
2728// CHECK-NEXT:              "valueCategory": "prvalue",
2729// CHECK-NEXT:              "inner": [
2730// CHECK-NEXT:               {
2731// CHECK-NEXT:                "id": "0x{{.*}}",
2732// CHECK-NEXT:                "kind": "CStyleCastExpr",
2733// CHECK-NEXT:                "range": {
2734// CHECK-NEXT:                 "begin": {
2735// CHECK-NEXT:                  "offset": 1977,
2736// CHECK-NEXT:                  "col": 13,
2737// CHECK-NEXT:                  "tokLen": 1
2738// CHECK-NEXT:                 },
2739// CHECK-NEXT:                 "end": {
2740// CHECK-NEXT:                  "offset": 1984,
2741// CHECK-NEXT:                  "col": 20,
2742// CHECK-NEXT:                  "tokLen": 1
2743// CHECK-NEXT:                 }
2744// CHECK-NEXT:                },
2745// CHECK-NEXT:                "type": {
2746// CHECK-NEXT:                 "qualType": "void *"
2747// CHECK-NEXT:                },
2748// CHECK-NEXT:                "valueCategory": "prvalue",
2749// CHECK-NEXT:                "castKind": "NullToPointer",
2750// CHECK-NEXT:                "inner": [
2751// CHECK-NEXT:                 {
2752// CHECK-NEXT:                  "id": "0x{{.*}}",
2753// CHECK-NEXT:                  "kind": "IntegerLiteral",
2754// CHECK-NEXT:                  "range": {
2755// CHECK-NEXT:                   "begin": {
2756// CHECK-NEXT:                    "offset": 1984,
2757// CHECK-NEXT:                    "col": 20,
2758// CHECK-NEXT:                    "tokLen": 1
2759// CHECK-NEXT:                   },
2760// CHECK-NEXT:                   "end": {
2761// CHECK-NEXT:                    "offset": 1984,
2762// CHECK-NEXT:                    "col": 20,
2763// CHECK-NEXT:                    "tokLen": 1
2764// CHECK-NEXT:                   }
2765// CHECK-NEXT:                  },
2766// CHECK-NEXT:                  "type": {
2767// CHECK-NEXT:                   "qualType": "int"
2768// CHECK-NEXT:                  },
2769// CHECK-NEXT:                  "valueCategory": "prvalue",
2770// CHECK-NEXT:                  "value": "0"
2771// CHECK-NEXT:                 }
2772// CHECK-NEXT:                ]
2773// CHECK-NEXT:               }
2774// CHECK-NEXT:              ]
2775// CHECK-NEXT:             }
2776// CHECK-NEXT:            ]
2777// CHECK-NEXT:           }
2778// CHECK-NEXT:          ]
2779// CHECK-NEXT:         },
2780// CHECK-NEXT:         {
2781// CHECK-NEXT:          "id": "0x{{.*}}",
2782// CHECK-NEXT:          "kind": "OpaqueValueExpr",
2783// CHECK-NEXT:          "range": {
2784// CHECK-NEXT:           "begin": {
2785// CHECK-NEXT:            "offset": 1972,
2786// CHECK-NEXT:            "col": 8,
2787// CHECK-NEXT:            "tokLen": 1
2788// CHECK-NEXT:           },
2789// CHECK-NEXT:           "end": {
2790// CHECK-NEXT:            "offset": 1972,
2791// CHECK-NEXT:            "col": 8,
2792// CHECK-NEXT:            "tokLen": 1
2793// CHECK-NEXT:           }
2794// CHECK-NEXT:          },
2795// CHECK-NEXT:          "type": {
2796// CHECK-NEXT:           "qualType": "int"
2797// CHECK-NEXT:          },
2798// CHECK-NEXT:          "valueCategory": "prvalue",
2799// CHECK-NEXT:          "inner": [
2800// CHECK-NEXT:           {
2801// CHECK-NEXT:            "id": "0x{{.*}}",
2802// CHECK-NEXT:            "kind": "IntegerLiteral",
2803// CHECK-NEXT:            "range": {
2804// CHECK-NEXT:             "begin": {
2805// CHECK-NEXT:              "offset": 1972,
2806// CHECK-NEXT:              "col": 8,
2807// CHECK-NEXT:              "tokLen": 1
2808// CHECK-NEXT:             },
2809// CHECK-NEXT:             "end": {
2810// CHECK-NEXT:              "offset": 1972,
2811// CHECK-NEXT:              "col": 8,
2812// CHECK-NEXT:              "tokLen": 1
2813// CHECK-NEXT:             }
2814// CHECK-NEXT:            },
2815// CHECK-NEXT:            "type": {
2816// CHECK-NEXT:             "qualType": "int"
2817// CHECK-NEXT:            },
2818// CHECK-NEXT:            "valueCategory": "prvalue",
2819// CHECK-NEXT:            "value": "0"
2820// CHECK-NEXT:           }
2821// CHECK-NEXT:          ]
2822// CHECK-NEXT:         }
2823// CHECK-NEXT:        ]
2824// CHECK-NEXT:       }
2825// CHECK-NEXT:      ]
2826// CHECK-NEXT:     },
2827// CHECK-NEXT:     {
2828// CHECK-NEXT:      "id": "0x{{.*}}",
2829// CHECK-NEXT:      "kind": "DeclStmt",
2830// CHECK-NEXT:      "range": {
2831// CHECK-NEXT:       "begin": {
2832// CHECK-NEXT:        "offset": 1988,
2833// CHECK-NEXT:        "line": 83,
2834// CHECK-NEXT:        "col": 2,
2835// CHECK-NEXT:        "tokLen": 2
2836// CHECK-NEXT:       },
2837// CHECK-NEXT:       "end": {
2838// CHECK-NEXT:        "offset": 2003,
2839// CHECK-NEXT:        "col": 17,
2840// CHECK-NEXT:        "tokLen": 1
2841// CHECK-NEXT:       }
2842// CHECK-NEXT:      },
2843// CHECK-NEXT:      "inner": [
2844// CHECK-NEXT:       {
2845// CHECK-NEXT:        "id": "0x{{.*}}",
2846// CHECK-NEXT:        "kind": "VarDecl",
2847// CHECK-NEXT:        "loc": {
2848// CHECK-NEXT:         "offset": 1991,
2849// CHECK-NEXT:         "col": 5,
2850// CHECK-NEXT:         "tokLen": 1
2851// CHECK-NEXT:        },
2852// CHECK-NEXT:        "range": {
2853// CHECK-NEXT:         "begin": {
2854// CHECK-NEXT:          "offset": 1988,
2855// CHECK-NEXT:          "col": 2,
2856// CHECK-NEXT:          "tokLen": 2
2857// CHECK-NEXT:         },
2858// CHECK-NEXT:         "end": {
2859// CHECK-NEXT:          "offset": 2002,
2860// CHECK-NEXT:          "col": 16,
2861// CHECK-NEXT:          "tokLen": 1
2862// CHECK-NEXT:         }
2863// CHECK-NEXT:        },
2864// CHECK-NEXT:        "isUsed": true,
2865// CHECK-NEXT:        "name": "i",
2866// CHECK-NEXT:        "mangledName": "i",
2867// CHECK-NEXT:        "type": {
2868// CHECK-NEXT:         "desugaredQualType": "id",
2869// CHECK-NEXT:         "qualType": "id",
2870// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
2871// CHECK-NEXT:        },
2872// CHECK-NEXT:        "init": "c",
2873// CHECK-NEXT:        "inner": [
2874// CHECK-NEXT:         {
2875// CHECK-NEXT:          "id": "0x{{.*}}",
2876// CHECK-NEXT:          "kind": "PseudoObjectExpr",
2877// CHECK-NEXT:          "range": {
2878// CHECK-NEXT:           "begin": {
2879// CHECK-NEXT:            "offset": 1995,
2880// CHECK-NEXT:            "col": 9,
2881// CHECK-NEXT:            "tokLen": 5
2882// CHECK-NEXT:           },
2883// CHECK-NEXT:           "end": {
2884// CHECK-NEXT:            "offset": 2002,
2885// CHECK-NEXT:            "col": 16,
2886// CHECK-NEXT:            "tokLen": 1
2887// CHECK-NEXT:           }
2888// CHECK-NEXT:          },
2889// CHECK-NEXT:          "type": {
2890// CHECK-NEXT:           "desugaredQualType": "id",
2891// CHECK-NEXT:           "qualType": "id",
2892// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
2893// CHECK-NEXT:          },
2894// CHECK-NEXT:          "valueCategory": "prvalue",
2895// CHECK-NEXT:          "inner": [
2896// CHECK-NEXT:           {
2897// CHECK-NEXT:            "id": "0x{{.*}}",
2898// CHECK-NEXT:            "kind": "ObjCSubscriptRefExpr",
2899// CHECK-NEXT:            "range": {
2900// CHECK-NEXT:             "begin": {
2901// CHECK-NEXT:              "offset": 1995,
2902// CHECK-NEXT:              "col": 9,
2903// CHECK-NEXT:              "tokLen": 5
2904// CHECK-NEXT:             },
2905// CHECK-NEXT:             "end": {
2906// CHECK-NEXT:              "offset": 2002,
2907// CHECK-NEXT:              "col": 16,
2908// CHECK-NEXT:              "tokLen": 1
2909// CHECK-NEXT:             }
2910// CHECK-NEXT:            },
2911// CHECK-NEXT:            "type": {
2912// CHECK-NEXT:             "qualType": "<pseudo-object type>"
2913// CHECK-NEXT:            },
2914// CHECK-NEXT:            "valueCategory": "lvalue",
2915// CHECK-NEXT:            "subscriptKind": "array",
2916// CHECK-NEXT:            "inner": [
2917// CHECK-NEXT:             {
2918// CHECK-NEXT:              "id": "0x{{.*}}",
2919// CHECK-NEXT:              "kind": "OpaqueValueExpr",
2920// CHECK-NEXT:              "range": {
2921// CHECK-NEXT:               "begin": {
2922// CHECK-NEXT:                "offset": 1995,
2923// CHECK-NEXT:                "col": 9,
2924// CHECK-NEXT:                "tokLen": 5
2925// CHECK-NEXT:               },
2926// CHECK-NEXT:               "end": {
2927// CHECK-NEXT:                "offset": 1995,
2928// CHECK-NEXT:                "col": 9,
2929// CHECK-NEXT:                "tokLen": 5
2930// CHECK-NEXT:               }
2931// CHECK-NEXT:              },
2932// CHECK-NEXT:              "type": {
2933// CHECK-NEXT:               "qualType": "NSMutableArray *"
2934// CHECK-NEXT:              },
2935// CHECK-NEXT:              "valueCategory": "prvalue",
2936// CHECK-NEXT:              "inner": [
2937// CHECK-NEXT:               {
2938// CHECK-NEXT:                "id": "0x{{.*}}",
2939// CHECK-NEXT:                "kind": "ImplicitCastExpr",
2940// CHECK-NEXT:                "range": {
2941// CHECK-NEXT:                 "begin": {
2942// CHECK-NEXT:                  "offset": 1995,
2943// CHECK-NEXT:                  "col": 9,
2944// CHECK-NEXT:                  "tokLen": 5
2945// CHECK-NEXT:                 },
2946// CHECK-NEXT:                 "end": {
2947// CHECK-NEXT:                  "offset": 1995,
2948// CHECK-NEXT:                  "col": 9,
2949// CHECK-NEXT:                  "tokLen": 5
2950// CHECK-NEXT:                 }
2951// CHECK-NEXT:                },
2952// CHECK-NEXT:                "type": {
2953// CHECK-NEXT:                 "qualType": "NSMutableArray *"
2954// CHECK-NEXT:                },
2955// CHECK-NEXT:                "valueCategory": "prvalue",
2956// CHECK-NEXT:                "castKind": "LValueToRValue",
2957// CHECK-NEXT:                "inner": [
2958// CHECK-NEXT:                 {
2959// CHECK-NEXT:                  "id": "0x{{.*}}",
2960// CHECK-NEXT:                  "kind": "DeclRefExpr",
2961// CHECK-NEXT:                  "range": {
2962// CHECK-NEXT:                   "begin": {
2963// CHECK-NEXT:                    "offset": 1995,
2964// CHECK-NEXT:                    "col": 9,
2965// CHECK-NEXT:                    "tokLen": 5
2966// CHECK-NEXT:                   },
2967// CHECK-NEXT:                   "end": {
2968// CHECK-NEXT:                    "offset": 1995,
2969// CHECK-NEXT:                    "col": 9,
2970// CHECK-NEXT:                    "tokLen": 5
2971// CHECK-NEXT:                   }
2972// CHECK-NEXT:                  },
2973// CHECK-NEXT:                  "type": {
2974// CHECK-NEXT:                   "qualType": "NSMutableArray *"
2975// CHECK-NEXT:                  },
2976// CHECK-NEXT:                  "valueCategory": "lvalue",
2977// CHECK-NEXT:                  "referencedDecl": {
2978// CHECK-NEXT:                   "id": "0x{{.*}}",
2979// CHECK-NEXT:                   "kind": "ParmVarDecl",
2980// CHECK-NEXT:                   "name": "Array",
2981// CHECK-NEXT:                   "type": {
2982// CHECK-NEXT:                    "qualType": "NSMutableArray *"
2983// CHECK-NEXT:                   }
2984// CHECK-NEXT:                  }
2985// CHECK-NEXT:                 }
2986// CHECK-NEXT:                ]
2987// CHECK-NEXT:               }
2988// CHECK-NEXT:              ]
2989// CHECK-NEXT:             },
2990// CHECK-NEXT:             {
2991// CHECK-NEXT:              "id": "0x{{.*}}",
2992// CHECK-NEXT:              "kind": "OpaqueValueExpr",
2993// CHECK-NEXT:              "range": {
2994// CHECK-NEXT:               "begin": {
2995// CHECK-NEXT:                "offset": 2001,
2996// CHECK-NEXT:                "col": 15,
2997// CHECK-NEXT:                "tokLen": 1
2998// CHECK-NEXT:               },
2999// CHECK-NEXT:               "end": {
3000// CHECK-NEXT:                "offset": 2001,
3001// CHECK-NEXT:                "col": 15,
3002// CHECK-NEXT:                "tokLen": 1
3003// CHECK-NEXT:               }
3004// CHECK-NEXT:              },
3005// CHECK-NEXT:              "type": {
3006// CHECK-NEXT:               "qualType": "int"
3007// CHECK-NEXT:              },
3008// CHECK-NEXT:              "valueCategory": "prvalue",
3009// CHECK-NEXT:              "inner": [
3010// CHECK-NEXT:               {
3011// CHECK-NEXT:                "id": "0x{{.*}}",
3012// CHECK-NEXT:                "kind": "IntegerLiteral",
3013// CHECK-NEXT:                "range": {
3014// CHECK-NEXT:                 "begin": {
3015// CHECK-NEXT:                  "offset": 2001,
3016// CHECK-NEXT:                  "col": 15,
3017// CHECK-NEXT:                  "tokLen": 1
3018// CHECK-NEXT:                 },
3019// CHECK-NEXT:                 "end": {
3020// CHECK-NEXT:                  "offset": 2001,
3021// CHECK-NEXT:                  "col": 15,
3022// CHECK-NEXT:                  "tokLen": 1
3023// CHECK-NEXT:                 }
3024// CHECK-NEXT:                },
3025// CHECK-NEXT:                "type": {
3026// CHECK-NEXT:                 "qualType": "int"
3027// CHECK-NEXT:                },
3028// CHECK-NEXT:                "valueCategory": "prvalue",
3029// CHECK-NEXT:                "value": "0"
3030// CHECK-NEXT:               }
3031// CHECK-NEXT:              ]
3032// CHECK-NEXT:             }
3033// CHECK-NEXT:            ]
3034// CHECK-NEXT:           },
3035// CHECK-NEXT:           {
3036// CHECK-NEXT:            "id": "0x{{.*}}",
3037// CHECK-NEXT:            "kind": "OpaqueValueExpr",
3038// CHECK-NEXT:            "range": {
3039// CHECK-NEXT:             "begin": {
3040// CHECK-NEXT:              "offset": 1995,
3041// CHECK-NEXT:              "col": 9,
3042// CHECK-NEXT:              "tokLen": 5
3043// CHECK-NEXT:             },
3044// CHECK-NEXT:             "end": {
3045// CHECK-NEXT:              "offset": 1995,
3046// CHECK-NEXT:              "col": 9,
3047// CHECK-NEXT:              "tokLen": 5
3048// CHECK-NEXT:             }
3049// CHECK-NEXT:            },
3050// CHECK-NEXT:            "type": {
3051// CHECK-NEXT:             "qualType": "NSMutableArray *"
3052// CHECK-NEXT:            },
3053// CHECK-NEXT:            "valueCategory": "prvalue",
3054// CHECK-NEXT:            "inner": [
3055// CHECK-NEXT:             {
3056// CHECK-NEXT:              "id": "0x{{.*}}",
3057// CHECK-NEXT:              "kind": "ImplicitCastExpr",
3058// CHECK-NEXT:              "range": {
3059// CHECK-NEXT:               "begin": {
3060// CHECK-NEXT:                "offset": 1995,
3061// CHECK-NEXT:                "col": 9,
3062// CHECK-NEXT:                "tokLen": 5
3063// CHECK-NEXT:               },
3064// CHECK-NEXT:               "end": {
3065// CHECK-NEXT:                "offset": 1995,
3066// CHECK-NEXT:                "col": 9,
3067// CHECK-NEXT:                "tokLen": 5
3068// CHECK-NEXT:               }
3069// CHECK-NEXT:              },
3070// CHECK-NEXT:              "type": {
3071// CHECK-NEXT:               "qualType": "NSMutableArray *"
3072// CHECK-NEXT:              },
3073// CHECK-NEXT:              "valueCategory": "prvalue",
3074// CHECK-NEXT:              "castKind": "LValueToRValue",
3075// CHECK-NEXT:              "inner": [
3076// CHECK-NEXT:               {
3077// CHECK-NEXT:                "id": "0x{{.*}}",
3078// CHECK-NEXT:                "kind": "DeclRefExpr",
3079// CHECK-NEXT:                "range": {
3080// CHECK-NEXT:                 "begin": {
3081// CHECK-NEXT:                  "offset": 1995,
3082// CHECK-NEXT:                  "col": 9,
3083// CHECK-NEXT:                  "tokLen": 5
3084// CHECK-NEXT:                 },
3085// CHECK-NEXT:                 "end": {
3086// CHECK-NEXT:                  "offset": 1995,
3087// CHECK-NEXT:                  "col": 9,
3088// CHECK-NEXT:                  "tokLen": 5
3089// CHECK-NEXT:                 }
3090// CHECK-NEXT:                },
3091// CHECK-NEXT:                "type": {
3092// CHECK-NEXT:                 "qualType": "NSMutableArray *"
3093// CHECK-NEXT:                },
3094// CHECK-NEXT:                "valueCategory": "lvalue",
3095// CHECK-NEXT:                "referencedDecl": {
3096// CHECK-NEXT:                 "id": "0x{{.*}}",
3097// CHECK-NEXT:                 "kind": "ParmVarDecl",
3098// CHECK-NEXT:                 "name": "Array",
3099// CHECK-NEXT:                 "type": {
3100// CHECK-NEXT:                  "qualType": "NSMutableArray *"
3101// CHECK-NEXT:                 }
3102// CHECK-NEXT:                }
3103// CHECK-NEXT:               }
3104// CHECK-NEXT:              ]
3105// CHECK-NEXT:             }
3106// CHECK-NEXT:            ]
3107// CHECK-NEXT:           },
3108// CHECK-NEXT:           {
3109// CHECK-NEXT:            "id": "0x{{.*}}",
3110// CHECK-NEXT:            "kind": "OpaqueValueExpr",
3111// CHECK-NEXT:            "range": {
3112// CHECK-NEXT:             "begin": {
3113// CHECK-NEXT:              "offset": 2001,
3114// CHECK-NEXT:              "col": 15,
3115// CHECK-NEXT:              "tokLen": 1
3116// CHECK-NEXT:             },
3117// CHECK-NEXT:             "end": {
3118// CHECK-NEXT:              "offset": 2001,
3119// CHECK-NEXT:              "col": 15,
3120// CHECK-NEXT:              "tokLen": 1
3121// CHECK-NEXT:             }
3122// CHECK-NEXT:            },
3123// CHECK-NEXT:            "type": {
3124// CHECK-NEXT:             "qualType": "int"
3125// CHECK-NEXT:            },
3126// CHECK-NEXT:            "valueCategory": "prvalue",
3127// CHECK-NEXT:            "inner": [
3128// CHECK-NEXT:             {
3129// CHECK-NEXT:              "id": "0x{{.*}}",
3130// CHECK-NEXT:              "kind": "IntegerLiteral",
3131// CHECK-NEXT:              "range": {
3132// CHECK-NEXT:               "begin": {
3133// CHECK-NEXT:                "offset": 2001,
3134// CHECK-NEXT:                "col": 15,
3135// CHECK-NEXT:                "tokLen": 1
3136// CHECK-NEXT:               },
3137// CHECK-NEXT:               "end": {
3138// CHECK-NEXT:                "offset": 2001,
3139// CHECK-NEXT:                "col": 15,
3140// CHECK-NEXT:                "tokLen": 1
3141// CHECK-NEXT:               }
3142// CHECK-NEXT:              },
3143// CHECK-NEXT:              "type": {
3144// CHECK-NEXT:               "qualType": "int"
3145// CHECK-NEXT:              },
3146// CHECK-NEXT:              "valueCategory": "prvalue",
3147// CHECK-NEXT:              "value": "0"
3148// CHECK-NEXT:             }
3149// CHECK-NEXT:            ]
3150// CHECK-NEXT:           },
3151// CHECK-NEXT:           {
3152// CHECK-NEXT:            "id": "0x{{.*}}",
3153// CHECK-NEXT:            "kind": "ObjCMessageExpr",
3154// CHECK-NEXT:            "range": {
3155// CHECK-NEXT:             "begin": {
3156// CHECK-NEXT:              "offset": 1995,
3157// CHECK-NEXT:              "col": 9,
3158// CHECK-NEXT:              "tokLen": 5
3159// CHECK-NEXT:             },
3160// CHECK-NEXT:             "end": {
3161// CHECK-NEXT:              "offset": 1995,
3162// CHECK-NEXT:              "col": 9,
3163// CHECK-NEXT:              "tokLen": 5
3164// CHECK-NEXT:             }
3165// CHECK-NEXT:            },
3166// CHECK-NEXT:            "type": {
3167// CHECK-NEXT:             "desugaredQualType": "id",
3168// CHECK-NEXT:             "qualType": "id",
3169// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
3170// CHECK-NEXT:            },
3171// CHECK-NEXT:            "valueCategory": "prvalue",
3172// CHECK-NEXT:            "selector": "objectAtIndexedSubscript:",
3173// CHECK-NEXT:            "receiverKind": "instance",
3174// CHECK-NEXT:            "inner": [
3175// CHECK-NEXT:             {
3176// CHECK-NEXT:              "id": "0x{{.*}}",
3177// CHECK-NEXT:              "kind": "OpaqueValueExpr",
3178// CHECK-NEXT:              "range": {
3179// CHECK-NEXT:               "begin": {
3180// CHECK-NEXT:                "offset": 1995,
3181// CHECK-NEXT:                "col": 9,
3182// CHECK-NEXT:                "tokLen": 5
3183// CHECK-NEXT:               },
3184// CHECK-NEXT:               "end": {
3185// CHECK-NEXT:                "offset": 1995,
3186// CHECK-NEXT:                "col": 9,
3187// CHECK-NEXT:                "tokLen": 5
3188// CHECK-NEXT:               }
3189// CHECK-NEXT:              },
3190// CHECK-NEXT:              "type": {
3191// CHECK-NEXT:               "qualType": "NSMutableArray *"
3192// CHECK-NEXT:              },
3193// CHECK-NEXT:              "valueCategory": "prvalue",
3194// CHECK-NEXT:              "inner": [
3195// CHECK-NEXT:               {
3196// CHECK-NEXT:                "id": "0x{{.*}}",
3197// CHECK-NEXT:                "kind": "ImplicitCastExpr",
3198// CHECK-NEXT:                "range": {
3199// CHECK-NEXT:                 "begin": {
3200// CHECK-NEXT:                  "offset": 1995,
3201// CHECK-NEXT:                  "col": 9,
3202// CHECK-NEXT:                  "tokLen": 5
3203// CHECK-NEXT:                 },
3204// CHECK-NEXT:                 "end": {
3205// CHECK-NEXT:                  "offset": 1995,
3206// CHECK-NEXT:                  "col": 9,
3207// CHECK-NEXT:                  "tokLen": 5
3208// CHECK-NEXT:                 }
3209// CHECK-NEXT:                },
3210// CHECK-NEXT:                "type": {
3211// CHECK-NEXT:                 "qualType": "NSMutableArray *"
3212// CHECK-NEXT:                },
3213// CHECK-NEXT:                "valueCategory": "prvalue",
3214// CHECK-NEXT:                "castKind": "LValueToRValue",
3215// CHECK-NEXT:                "inner": [
3216// CHECK-NEXT:                 {
3217// CHECK-NEXT:                  "id": "0x{{.*}}",
3218// CHECK-NEXT:                  "kind": "DeclRefExpr",
3219// CHECK-NEXT:                  "range": {
3220// CHECK-NEXT:                   "begin": {
3221// CHECK-NEXT:                    "offset": 1995,
3222// CHECK-NEXT:                    "col": 9,
3223// CHECK-NEXT:                    "tokLen": 5
3224// CHECK-NEXT:                   },
3225// CHECK-NEXT:                   "end": {
3226// CHECK-NEXT:                    "offset": 1995,
3227// CHECK-NEXT:                    "col": 9,
3228// CHECK-NEXT:                    "tokLen": 5
3229// CHECK-NEXT:                   }
3230// CHECK-NEXT:                  },
3231// CHECK-NEXT:                  "type": {
3232// CHECK-NEXT:                   "qualType": "NSMutableArray *"
3233// CHECK-NEXT:                  },
3234// CHECK-NEXT:                  "valueCategory": "lvalue",
3235// CHECK-NEXT:                  "referencedDecl": {
3236// CHECK-NEXT:                   "id": "0x{{.*}}",
3237// CHECK-NEXT:                   "kind": "ParmVarDecl",
3238// CHECK-NEXT:                   "name": "Array",
3239// CHECK-NEXT:                   "type": {
3240// CHECK-NEXT:                    "qualType": "NSMutableArray *"
3241// CHECK-NEXT:                   }
3242// CHECK-NEXT:                  }
3243// CHECK-NEXT:                 }
3244// CHECK-NEXT:                ]
3245// CHECK-NEXT:               }
3246// CHECK-NEXT:              ]
3247// CHECK-NEXT:             },
3248// CHECK-NEXT:             {
3249// CHECK-NEXT:              "id": "0x{{.*}}",
3250// CHECK-NEXT:              "kind": "OpaqueValueExpr",
3251// CHECK-NEXT:              "range": {
3252// CHECK-NEXT:               "begin": {
3253// CHECK-NEXT:                "offset": 2001,
3254// CHECK-NEXT:                "col": 15,
3255// CHECK-NEXT:                "tokLen": 1
3256// CHECK-NEXT:               },
3257// CHECK-NEXT:               "end": {
3258// CHECK-NEXT:                "offset": 2001,
3259// CHECK-NEXT:                "col": 15,
3260// CHECK-NEXT:                "tokLen": 1
3261// CHECK-NEXT:               }
3262// CHECK-NEXT:              },
3263// CHECK-NEXT:              "type": {
3264// CHECK-NEXT:               "qualType": "int"
3265// CHECK-NEXT:              },
3266// CHECK-NEXT:              "valueCategory": "prvalue",
3267// CHECK-NEXT:              "inner": [
3268// CHECK-NEXT:               {
3269// CHECK-NEXT:                "id": "0x{{.*}}",
3270// CHECK-NEXT:                "kind": "IntegerLiteral",
3271// CHECK-NEXT:                "range": {
3272// CHECK-NEXT:                 "begin": {
3273// CHECK-NEXT:                  "offset": 2001,
3274// CHECK-NEXT:                  "col": 15,
3275// CHECK-NEXT:                  "tokLen": 1
3276// CHECK-NEXT:                 },
3277// CHECK-NEXT:                 "end": {
3278// CHECK-NEXT:                  "offset": 2001,
3279// CHECK-NEXT:                  "col": 15,
3280// CHECK-NEXT:                  "tokLen": 1
3281// CHECK-NEXT:                 }
3282// CHECK-NEXT:                },
3283// CHECK-NEXT:                "type": {
3284// CHECK-NEXT:                 "qualType": "int"
3285// CHECK-NEXT:                },
3286// CHECK-NEXT:                "valueCategory": "prvalue",
3287// CHECK-NEXT:                "value": "0"
3288// CHECK-NEXT:               }
3289// CHECK-NEXT:              ]
3290// CHECK-NEXT:             }
3291// CHECK-NEXT:            ]
3292// CHECK-NEXT:           }
3293// CHECK-NEXT:          ]
3294// CHECK-NEXT:         }
3295// CHECK-NEXT:        ]
3296// CHECK-NEXT:       }
3297// CHECK-NEXT:      ]
3298// CHECK-NEXT:     },
3299// CHECK-NEXT:     {
3300// CHECK-NEXT:      "id": "0x{{.*}}",
3301// CHECK-NEXT:      "kind": "PseudoObjectExpr",
3302// CHECK-NEXT:      "range": {
3303// CHECK-NEXT:       "begin": {
3304// CHECK-NEXT:        "offset": 2008,
3305// CHECK-NEXT:        "line": 85,
3306// CHECK-NEXT:        "col": 2,
3307// CHECK-NEXT:        "tokLen": 4
3308// CHECK-NEXT:       },
3309// CHECK-NEXT:       "end": {
3310// CHECK-NEXT:        "offset": 2030,
3311// CHECK-NEXT:        "col": 24,
3312// CHECK-NEXT:        "tokLen": 1
3313// CHECK-NEXT:       }
3314// CHECK-NEXT:      },
3315// CHECK-NEXT:      "type": {
3316// CHECK-NEXT:       "desugaredQualType": "id",
3317// CHECK-NEXT:       "qualType": "id",
3318// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
3319// CHECK-NEXT:      },
3320// CHECK-NEXT:      "valueCategory": "prvalue",
3321// CHECK-NEXT:      "inner": [
3322// CHECK-NEXT:       {
3323// CHECK-NEXT:        "id": "0x{{.*}}",
3324// CHECK-NEXT:        "kind": "BinaryOperator",
3325// CHECK-NEXT:        "range": {
3326// CHECK-NEXT:         "begin": {
3327// CHECK-NEXT:          "offset": 2008,
3328// CHECK-NEXT:          "col": 2,
3329// CHECK-NEXT:          "tokLen": 4
3330// CHECK-NEXT:         },
3331// CHECK-NEXT:         "end": {
3332// CHECK-NEXT:          "offset": 2030,
3333// CHECK-NEXT:          "col": 24,
3334// CHECK-NEXT:          "tokLen": 1
3335// CHECK-NEXT:         }
3336// CHECK-NEXT:        },
3337// CHECK-NEXT:        "type": {
3338// CHECK-NEXT:         "qualType": "void *"
3339// CHECK-NEXT:        },
3340// CHECK-NEXT:        "valueCategory": "prvalue",
3341// CHECK-NEXT:        "opcode": "=",
3342// CHECK-NEXT:        "inner": [
3343// CHECK-NEXT:         {
3344// CHECK-NEXT:          "id": "0x{{.*}}",
3345// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr",
3346// CHECK-NEXT:          "range": {
3347// CHECK-NEXT:           "begin": {
3348// CHECK-NEXT:            "offset": 2008,
3349// CHECK-NEXT:            "col": 2,
3350// CHECK-NEXT:            "tokLen": 4
3351// CHECK-NEXT:           },
3352// CHECK-NEXT:           "end": {
3353// CHECK-NEXT:            "offset": 2019,
3354// CHECK-NEXT:            "col": 13,
3355// CHECK-NEXT:            "tokLen": 1
3356// CHECK-NEXT:           }
3357// CHECK-NEXT:          },
3358// CHECK-NEXT:          "type": {
3359// CHECK-NEXT:           "qualType": "<pseudo-object type>"
3360// CHECK-NEXT:          },
3361// CHECK-NEXT:          "valueCategory": "lvalue",
3362// CHECK-NEXT:          "subscriptKind": "dictionary",
3363// CHECK-NEXT:          "inner": [
3364// CHECK-NEXT:           {
3365// CHECK-NEXT:            "id": "0x{{.*}}",
3366// CHECK-NEXT:            "kind": "OpaqueValueExpr",
3367// CHECK-NEXT:            "range": {
3368// CHECK-NEXT:             "begin": {
3369// CHECK-NEXT:              "offset": 2008,
3370// CHECK-NEXT:              "col": 2,
3371// CHECK-NEXT:              "tokLen": 4
3372// CHECK-NEXT:             },
3373// CHECK-NEXT:             "end": {
3374// CHECK-NEXT:              "offset": 2008,
3375// CHECK-NEXT:              "col": 2,
3376// CHECK-NEXT:              "tokLen": 4
3377// CHECK-NEXT:             }
3378// CHECK-NEXT:            },
3379// CHECK-NEXT:            "type": {
3380// CHECK-NEXT:             "qualType": "NSMutableDictionary *"
3381// CHECK-NEXT:            },
3382// CHECK-NEXT:            "valueCategory": "prvalue",
3383// CHECK-NEXT:            "inner": [
3384// CHECK-NEXT:             {
3385// CHECK-NEXT:              "id": "0x{{.*}}",
3386// CHECK-NEXT:              "kind": "ImplicitCastExpr",
3387// CHECK-NEXT:              "range": {
3388// CHECK-NEXT:               "begin": {
3389// CHECK-NEXT:                "offset": 2008,
3390// CHECK-NEXT:                "col": 2,
3391// CHECK-NEXT:                "tokLen": 4
3392// CHECK-NEXT:               },
3393// CHECK-NEXT:               "end": {
3394// CHECK-NEXT:                "offset": 2008,
3395// CHECK-NEXT:                "col": 2,
3396// CHECK-NEXT:                "tokLen": 4
3397// CHECK-NEXT:               }
3398// CHECK-NEXT:              },
3399// CHECK-NEXT:              "type": {
3400// CHECK-NEXT:               "qualType": "NSMutableDictionary *"
3401// CHECK-NEXT:              },
3402// CHECK-NEXT:              "valueCategory": "prvalue",
3403// CHECK-NEXT:              "castKind": "LValueToRValue",
3404// CHECK-NEXT:              "inner": [
3405// CHECK-NEXT:               {
3406// CHECK-NEXT:                "id": "0x{{.*}}",
3407// CHECK-NEXT:                "kind": "DeclRefExpr",
3408// CHECK-NEXT:                "range": {
3409// CHECK-NEXT:                 "begin": {
3410// CHECK-NEXT:                  "offset": 2008,
3411// CHECK-NEXT:                  "col": 2,
3412// CHECK-NEXT:                  "tokLen": 4
3413// CHECK-NEXT:                 },
3414// CHECK-NEXT:                 "end": {
3415// CHECK-NEXT:                  "offset": 2008,
3416// CHECK-NEXT:                  "col": 2,
3417// CHECK-NEXT:                  "tokLen": 4
3418// CHECK-NEXT:                 }
3419// CHECK-NEXT:                },
3420// CHECK-NEXT:                "type": {
3421// CHECK-NEXT:                 "qualType": "NSMutableDictionary *"
3422// CHECK-NEXT:                },
3423// CHECK-NEXT:                "valueCategory": "lvalue",
3424// CHECK-NEXT:                "referencedDecl": {
3425// CHECK-NEXT:                 "id": "0x{{.*}}",
3426// CHECK-NEXT:                 "kind": "ParmVarDecl",
3427// CHECK-NEXT:                 "name": "Dict",
3428// CHECK-NEXT:                 "type": {
3429// CHECK-NEXT:                  "qualType": "NSMutableDictionary *"
3430// CHECK-NEXT:                 }
3431// CHECK-NEXT:                }
3432// CHECK-NEXT:               }
3433// CHECK-NEXT:              ]
3434// CHECK-NEXT:             }
3435// CHECK-NEXT:            ]
3436// CHECK-NEXT:           },
3437// CHECK-NEXT:           {
3438// CHECK-NEXT:            "id": "0x{{.*}}",
3439// CHECK-NEXT:            "kind": "OpaqueValueExpr",
3440// CHECK-NEXT:            "range": {
3441// CHECK-NEXT:             "begin": {
3442// CHECK-NEXT:              "offset": 2013,
3443// CHECK-NEXT:              "col": 7,
3444// CHECK-NEXT:              "tokLen": 1
3445// CHECK-NEXT:             },
3446// CHECK-NEXT:             "end": {
3447// CHECK-NEXT:              "offset": 2014,
3448// CHECK-NEXT:              "col": 8,
3449// CHECK-NEXT:              "tokLen": 5
3450// CHECK-NEXT:             }
3451// CHECK-NEXT:            },
3452// CHECK-NEXT:            "type": {
3453// CHECK-NEXT:             "qualType": "NSString *"
3454// CHECK-NEXT:            },
3455// CHECK-NEXT:            "valueCategory": "prvalue",
3456// CHECK-NEXT:            "inner": [
3457// CHECK-NEXT:             {
3458// CHECK-NEXT:              "id": "0x{{.*}}",
3459// CHECK-NEXT:              "kind": "ObjCStringLiteral",
3460// CHECK-NEXT:              "range": {
3461// CHECK-NEXT:               "begin": {
3462// CHECK-NEXT:                "offset": 2013,
3463// CHECK-NEXT:                "col": 7,
3464// CHECK-NEXT:                "tokLen": 1
3465// CHECK-NEXT:               },
3466// CHECK-NEXT:               "end": {
3467// CHECK-NEXT:                "offset": 2014,
3468// CHECK-NEXT:                "col": 8,
3469// CHECK-NEXT:                "tokLen": 5
3470// CHECK-NEXT:               }
3471// CHECK-NEXT:              },
3472// CHECK-NEXT:              "type": {
3473// CHECK-NEXT:               "qualType": "NSString *"
3474// CHECK-NEXT:              },
3475// CHECK-NEXT:              "valueCategory": "prvalue",
3476// CHECK-NEXT:              "inner": [
3477// CHECK-NEXT:               {
3478// CHECK-NEXT:                "id": "0x{{.*}}",
3479// CHECK-NEXT:                "kind": "StringLiteral",
3480// CHECK-NEXT:                "range": {
3481// CHECK-NEXT:                 "begin": {
3482// CHECK-NEXT:                  "offset": 2014,
3483// CHECK-NEXT:                  "col": 8,
3484// CHECK-NEXT:                  "tokLen": 5
3485// CHECK-NEXT:                 },
3486// CHECK-NEXT:                 "end": {
3487// CHECK-NEXT:                  "offset": 2014,
3488// CHECK-NEXT:                  "col": 8,
3489// CHECK-NEXT:                  "tokLen": 5
3490// CHECK-NEXT:                 }
3491// CHECK-NEXT:                },
3492// CHECK-NEXT:                "type": {
3493// CHECK-NEXT:                 "qualType": "char[4]"
3494// CHECK-NEXT:                },
3495// CHECK-NEXT:                "valueCategory": "lvalue",
3496// CHECK-NEXT:                "value": "\"key\""
3497// CHECK-NEXT:               }
3498// CHECK-NEXT:              ]
3499// CHECK-NEXT:             }
3500// CHECK-NEXT:            ]
3501// CHECK-NEXT:           }
3502// CHECK-NEXT:          ]
3503// CHECK-NEXT:         },
3504// CHECK-NEXT:         {
3505// CHECK-NEXT:          "id": "0x{{.*}}",
3506// CHECK-NEXT:          "kind": "OpaqueValueExpr",
3507// CHECK-NEXT:          "range": {
3508// CHECK-NEXT:           "begin": {
3509// CHECK-NEXT:            "offset": 2023,
3510// CHECK-NEXT:            "col": 17,
3511// CHECK-NEXT:            "tokLen": 1
3512// CHECK-NEXT:           },
3513// CHECK-NEXT:           "end": {
3514// CHECK-NEXT:            "offset": 2030,
3515// CHECK-NEXT:            "col": 24,
3516// CHECK-NEXT:            "tokLen": 1
3517// CHECK-NEXT:           }
3518// CHECK-NEXT:          },
3519// CHECK-NEXT:          "type": {
3520// CHECK-NEXT:           "qualType": "void *"
3521// CHECK-NEXT:          },
3522// CHECK-NEXT:          "valueCategory": "prvalue",
3523// CHECK-NEXT:          "inner": [
3524// CHECK-NEXT:           {
3525// CHECK-NEXT:            "id": "0x{{.*}}",
3526// CHECK-NEXT:            "kind": "CStyleCastExpr",
3527// CHECK-NEXT:            "range": {
3528// CHECK-NEXT:             "begin": {
3529// CHECK-NEXT:              "offset": 2023,
3530// CHECK-NEXT:              "col": 17,
3531// CHECK-NEXT:              "tokLen": 1
3532// CHECK-NEXT:             },
3533// CHECK-NEXT:             "end": {
3534// CHECK-NEXT:              "offset": 2030,
3535// CHECK-NEXT:              "col": 24,
3536// CHECK-NEXT:              "tokLen": 1
3537// CHECK-NEXT:             }
3538// CHECK-NEXT:            },
3539// CHECK-NEXT:            "type": {
3540// CHECK-NEXT:             "qualType": "void *"
3541// CHECK-NEXT:            },
3542// CHECK-NEXT:            "valueCategory": "prvalue",
3543// CHECK-NEXT:            "castKind": "NullToPointer",
3544// CHECK-NEXT:            "inner": [
3545// CHECK-NEXT:             {
3546// CHECK-NEXT:              "id": "0x{{.*}}",
3547// CHECK-NEXT:              "kind": "IntegerLiteral",
3548// CHECK-NEXT:              "range": {
3549// CHECK-NEXT:               "begin": {
3550// CHECK-NEXT:                "offset": 2030,
3551// CHECK-NEXT:                "col": 24,
3552// CHECK-NEXT:                "tokLen": 1
3553// CHECK-NEXT:               },
3554// CHECK-NEXT:               "end": {
3555// CHECK-NEXT:                "offset": 2030,
3556// CHECK-NEXT:                "col": 24,
3557// CHECK-NEXT:                "tokLen": 1
3558// CHECK-NEXT:               }
3559// CHECK-NEXT:              },
3560// CHECK-NEXT:              "type": {
3561// CHECK-NEXT:               "qualType": "int"
3562// CHECK-NEXT:              },
3563// CHECK-NEXT:              "valueCategory": "prvalue",
3564// CHECK-NEXT:              "value": "0"
3565// CHECK-NEXT:             }
3566// CHECK-NEXT:            ]
3567// CHECK-NEXT:           }
3568// CHECK-NEXT:          ]
3569// CHECK-NEXT:         }
3570// CHECK-NEXT:        ]
3571// CHECK-NEXT:       },
3572// CHECK-NEXT:       {
3573// CHECK-NEXT:        "id": "0x{{.*}}",
3574// CHECK-NEXT:        "kind": "OpaqueValueExpr",
3575// CHECK-NEXT:        "range": {
3576// CHECK-NEXT:         "begin": {
3577// CHECK-NEXT:          "offset": 2008,
3578// CHECK-NEXT:          "col": 2,
3579// CHECK-NEXT:          "tokLen": 4
3580// CHECK-NEXT:         },
3581// CHECK-NEXT:         "end": {
3582// CHECK-NEXT:          "offset": 2008,
3583// CHECK-NEXT:          "col": 2,
3584// CHECK-NEXT:          "tokLen": 4
3585// CHECK-NEXT:         }
3586// CHECK-NEXT:        },
3587// CHECK-NEXT:        "type": {
3588// CHECK-NEXT:         "qualType": "NSMutableDictionary *"
3589// CHECK-NEXT:        },
3590// CHECK-NEXT:        "valueCategory": "prvalue",
3591// CHECK-NEXT:        "inner": [
3592// CHECK-NEXT:         {
3593// CHECK-NEXT:          "id": "0x{{.*}}",
3594// CHECK-NEXT:          "kind": "ImplicitCastExpr",
3595// CHECK-NEXT:          "range": {
3596// CHECK-NEXT:           "begin": {
3597// CHECK-NEXT:            "offset": 2008,
3598// CHECK-NEXT:            "col": 2,
3599// CHECK-NEXT:            "tokLen": 4
3600// CHECK-NEXT:           },
3601// CHECK-NEXT:           "end": {
3602// CHECK-NEXT:            "offset": 2008,
3603// CHECK-NEXT:            "col": 2,
3604// CHECK-NEXT:            "tokLen": 4
3605// CHECK-NEXT:           }
3606// CHECK-NEXT:          },
3607// CHECK-NEXT:          "type": {
3608// CHECK-NEXT:           "qualType": "NSMutableDictionary *"
3609// CHECK-NEXT:          },
3610// CHECK-NEXT:          "valueCategory": "prvalue",
3611// CHECK-NEXT:          "castKind": "LValueToRValue",
3612// CHECK-NEXT:          "inner": [
3613// CHECK-NEXT:           {
3614// CHECK-NEXT:            "id": "0x{{.*}}",
3615// CHECK-NEXT:            "kind": "DeclRefExpr",
3616// CHECK-NEXT:            "range": {
3617// CHECK-NEXT:             "begin": {
3618// CHECK-NEXT:              "offset": 2008,
3619// CHECK-NEXT:              "col": 2,
3620// CHECK-NEXT:              "tokLen": 4
3621// CHECK-NEXT:             },
3622// CHECK-NEXT:             "end": {
3623// CHECK-NEXT:              "offset": 2008,
3624// CHECK-NEXT:              "col": 2,
3625// CHECK-NEXT:              "tokLen": 4
3626// CHECK-NEXT:             }
3627// CHECK-NEXT:            },
3628// CHECK-NEXT:            "type": {
3629// CHECK-NEXT:             "qualType": "NSMutableDictionary *"
3630// CHECK-NEXT:            },
3631// CHECK-NEXT:            "valueCategory": "lvalue",
3632// CHECK-NEXT:            "referencedDecl": {
3633// CHECK-NEXT:             "id": "0x{{.*}}",
3634// CHECK-NEXT:             "kind": "ParmVarDecl",
3635// CHECK-NEXT:             "name": "Dict",
3636// CHECK-NEXT:             "type": {
3637// CHECK-NEXT:              "qualType": "NSMutableDictionary *"
3638// CHECK-NEXT:             }
3639// CHECK-NEXT:            }
3640// CHECK-NEXT:           }
3641// CHECK-NEXT:          ]
3642// CHECK-NEXT:         }
3643// CHECK-NEXT:        ]
3644// CHECK-NEXT:       },
3645// CHECK-NEXT:       {
3646// CHECK-NEXT:        "id": "0x{{.*}}",
3647// CHECK-NEXT:        "kind": "OpaqueValueExpr",
3648// CHECK-NEXT:        "range": {
3649// CHECK-NEXT:         "begin": {
3650// CHECK-NEXT:          "offset": 2013,
3651// CHECK-NEXT:          "col": 7,
3652// CHECK-NEXT:          "tokLen": 1
3653// CHECK-NEXT:         },
3654// CHECK-NEXT:         "end": {
3655// CHECK-NEXT:          "offset": 2014,
3656// CHECK-NEXT:          "col": 8,
3657// CHECK-NEXT:          "tokLen": 5
3658// CHECK-NEXT:         }
3659// CHECK-NEXT:        },
3660// CHECK-NEXT:        "type": {
3661// CHECK-NEXT:         "qualType": "NSString *"
3662// CHECK-NEXT:        },
3663// CHECK-NEXT:        "valueCategory": "prvalue",
3664// CHECK-NEXT:        "inner": [
3665// CHECK-NEXT:         {
3666// CHECK-NEXT:          "id": "0x{{.*}}",
3667// CHECK-NEXT:          "kind": "ObjCStringLiteral",
3668// CHECK-NEXT:          "range": {
3669// CHECK-NEXT:           "begin": {
3670// CHECK-NEXT:            "offset": 2013,
3671// CHECK-NEXT:            "col": 7,
3672// CHECK-NEXT:            "tokLen": 1
3673// CHECK-NEXT:           },
3674// CHECK-NEXT:           "end": {
3675// CHECK-NEXT:            "offset": 2014,
3676// CHECK-NEXT:            "col": 8,
3677// CHECK-NEXT:            "tokLen": 5
3678// CHECK-NEXT:           }
3679// CHECK-NEXT:          },
3680// CHECK-NEXT:          "type": {
3681// CHECK-NEXT:           "qualType": "NSString *"
3682// CHECK-NEXT:          },
3683// CHECK-NEXT:          "valueCategory": "prvalue",
3684// CHECK-NEXT:          "inner": [
3685// CHECK-NEXT:           {
3686// CHECK-NEXT:            "id": "0x{{.*}}",
3687// CHECK-NEXT:            "kind": "StringLiteral",
3688// CHECK-NEXT:            "range": {
3689// CHECK-NEXT:             "begin": {
3690// CHECK-NEXT:              "offset": 2014,
3691// CHECK-NEXT:              "col": 8,
3692// CHECK-NEXT:              "tokLen": 5
3693// CHECK-NEXT:             },
3694// CHECK-NEXT:             "end": {
3695// CHECK-NEXT:              "offset": 2014,
3696// CHECK-NEXT:              "col": 8,
3697// CHECK-NEXT:              "tokLen": 5
3698// CHECK-NEXT:             }
3699// CHECK-NEXT:            },
3700// CHECK-NEXT:            "type": {
3701// CHECK-NEXT:             "qualType": "char[4]"
3702// CHECK-NEXT:            },
3703// CHECK-NEXT:            "valueCategory": "lvalue",
3704// CHECK-NEXT:            "value": "\"key\""
3705// CHECK-NEXT:           }
3706// CHECK-NEXT:          ]
3707// CHECK-NEXT:         }
3708// CHECK-NEXT:        ]
3709// CHECK-NEXT:       },
3710// CHECK-NEXT:       {
3711// CHECK-NEXT:        "id": "0x{{.*}}",
3712// CHECK-NEXT:        "kind": "OpaqueValueExpr",
3713// CHECK-NEXT:        "range": {
3714// CHECK-NEXT:         "begin": {
3715// CHECK-NEXT:          "offset": 2023,
3716// CHECK-NEXT:          "col": 17,
3717// CHECK-NEXT:          "tokLen": 1
3718// CHECK-NEXT:         },
3719// CHECK-NEXT:         "end": {
3720// CHECK-NEXT:          "offset": 2030,
3721// CHECK-NEXT:          "col": 24,
3722// CHECK-NEXT:          "tokLen": 1
3723// CHECK-NEXT:         }
3724// CHECK-NEXT:        },
3725// CHECK-NEXT:        "type": {
3726// CHECK-NEXT:         "qualType": "void *"
3727// CHECK-NEXT:        },
3728// CHECK-NEXT:        "valueCategory": "prvalue",
3729// CHECK-NEXT:        "inner": [
3730// CHECK-NEXT:         {
3731// CHECK-NEXT:          "id": "0x{{.*}}",
3732// CHECK-NEXT:          "kind": "CStyleCastExpr",
3733// CHECK-NEXT:          "range": {
3734// CHECK-NEXT:           "begin": {
3735// CHECK-NEXT:            "offset": 2023,
3736// CHECK-NEXT:            "col": 17,
3737// CHECK-NEXT:            "tokLen": 1
3738// CHECK-NEXT:           },
3739// CHECK-NEXT:           "end": {
3740// CHECK-NEXT:            "offset": 2030,
3741// CHECK-NEXT:            "col": 24,
3742// CHECK-NEXT:            "tokLen": 1
3743// CHECK-NEXT:           }
3744// CHECK-NEXT:          },
3745// CHECK-NEXT:          "type": {
3746// CHECK-NEXT:           "qualType": "void *"
3747// CHECK-NEXT:          },
3748// CHECK-NEXT:          "valueCategory": "prvalue",
3749// CHECK-NEXT:          "castKind": "NullToPointer",
3750// CHECK-NEXT:          "inner": [
3751// CHECK-NEXT:           {
3752// CHECK-NEXT:            "id": "0x{{.*}}",
3753// CHECK-NEXT:            "kind": "IntegerLiteral",
3754// CHECK-NEXT:            "range": {
3755// CHECK-NEXT:             "begin": {
3756// CHECK-NEXT:              "offset": 2030,
3757// CHECK-NEXT:              "col": 24,
3758// CHECK-NEXT:              "tokLen": 1
3759// CHECK-NEXT:             },
3760// CHECK-NEXT:             "end": {
3761// CHECK-NEXT:              "offset": 2030,
3762// CHECK-NEXT:              "col": 24,
3763// CHECK-NEXT:              "tokLen": 1
3764// CHECK-NEXT:             }
3765// CHECK-NEXT:            },
3766// CHECK-NEXT:            "type": {
3767// CHECK-NEXT:             "qualType": "int"
3768// CHECK-NEXT:            },
3769// CHECK-NEXT:            "valueCategory": "prvalue",
3770// CHECK-NEXT:            "value": "0"
3771// CHECK-NEXT:           }
3772// CHECK-NEXT:          ]
3773// CHECK-NEXT:         }
3774// CHECK-NEXT:        ]
3775// CHECK-NEXT:       },
3776// CHECK-NEXT:       {
3777// CHECK-NEXT:        "id": "0x{{.*}}",
3778// CHECK-NEXT:        "kind": "OpaqueValueExpr",
3779// CHECK-NEXT:        "range": {
3780// CHECK-NEXT:         "begin": {
3781// CHECK-NEXT:          "offset": 2023,
3782// CHECK-NEXT:          "col": 17,
3783// CHECK-NEXT:          "tokLen": 1
3784// CHECK-NEXT:         },
3785// CHECK-NEXT:         "end": {
3786// CHECK-NEXT:          "offset": 2030,
3787// CHECK-NEXT:          "col": 24,
3788// CHECK-NEXT:          "tokLen": 1
3789// CHECK-NEXT:         }
3790// CHECK-NEXT:        },
3791// CHECK-NEXT:        "type": {
3792// CHECK-NEXT:         "desugaredQualType": "id",
3793// CHECK-NEXT:         "qualType": "id",
3794// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
3795// CHECK-NEXT:        },
3796// CHECK-NEXT:        "valueCategory": "prvalue",
3797// CHECK-NEXT:        "inner": [
3798// CHECK-NEXT:         {
3799// CHECK-NEXT:          "id": "0x{{.*}}",
3800// CHECK-NEXT:          "kind": "ImplicitCastExpr",
3801// CHECK-NEXT:          "range": {
3802// CHECK-NEXT:           "begin": {
3803// CHECK-NEXT:            "offset": 2023,
3804// CHECK-NEXT:            "col": 17,
3805// CHECK-NEXT:            "tokLen": 1
3806// CHECK-NEXT:           },
3807// CHECK-NEXT:           "end": {
3808// CHECK-NEXT:            "offset": 2030,
3809// CHECK-NEXT:            "col": 24,
3810// CHECK-NEXT:            "tokLen": 1
3811// CHECK-NEXT:           }
3812// CHECK-NEXT:          },
3813// CHECK-NEXT:          "type": {
3814// CHECK-NEXT:           "desugaredQualType": "id",
3815// CHECK-NEXT:           "qualType": "id",
3816// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
3817// CHECK-NEXT:          },
3818// CHECK-NEXT:          "valueCategory": "prvalue",
3819// CHECK-NEXT:          "castKind": "NullToPointer",
3820// CHECK-NEXT:          "inner": [
3821// CHECK-NEXT:           {
3822// CHECK-NEXT:            "id": "0x{{.*}}",
3823// CHECK-NEXT:            "kind": "OpaqueValueExpr",
3824// CHECK-NEXT:            "range": {
3825// CHECK-NEXT:             "begin": {
3826// CHECK-NEXT:              "offset": 2023,
3827// CHECK-NEXT:              "col": 17,
3828// CHECK-NEXT:              "tokLen": 1
3829// CHECK-NEXT:             },
3830// CHECK-NEXT:             "end": {
3831// CHECK-NEXT:              "offset": 2030,
3832// CHECK-NEXT:              "col": 24,
3833// CHECK-NEXT:              "tokLen": 1
3834// CHECK-NEXT:             }
3835// CHECK-NEXT:            },
3836// CHECK-NEXT:            "type": {
3837// CHECK-NEXT:             "qualType": "void *"
3838// CHECK-NEXT:            },
3839// CHECK-NEXT:            "valueCategory": "prvalue",
3840// CHECK-NEXT:            "inner": [
3841// CHECK-NEXT:             {
3842// CHECK-NEXT:              "id": "0x{{.*}}",
3843// CHECK-NEXT:              "kind": "CStyleCastExpr",
3844// CHECK-NEXT:              "range": {
3845// CHECK-NEXT:               "begin": {
3846// CHECK-NEXT:                "offset": 2023,
3847// CHECK-NEXT:                "col": 17,
3848// CHECK-NEXT:                "tokLen": 1
3849// CHECK-NEXT:               },
3850// CHECK-NEXT:               "end": {
3851// CHECK-NEXT:                "offset": 2030,
3852// CHECK-NEXT:                "col": 24,
3853// CHECK-NEXT:                "tokLen": 1
3854// CHECK-NEXT:               }
3855// CHECK-NEXT:              },
3856// CHECK-NEXT:              "type": {
3857// CHECK-NEXT:               "qualType": "void *"
3858// CHECK-NEXT:              },
3859// CHECK-NEXT:              "valueCategory": "prvalue",
3860// CHECK-NEXT:              "castKind": "NullToPointer",
3861// CHECK-NEXT:              "inner": [
3862// CHECK-NEXT:               {
3863// CHECK-NEXT:                "id": "0x{{.*}}",
3864// CHECK-NEXT:                "kind": "IntegerLiteral",
3865// CHECK-NEXT:                "range": {
3866// CHECK-NEXT:                 "begin": {
3867// CHECK-NEXT:                  "offset": 2030,
3868// CHECK-NEXT:                  "col": 24,
3869// CHECK-NEXT:                  "tokLen": 1
3870// CHECK-NEXT:                 },
3871// CHECK-NEXT:                 "end": {
3872// CHECK-NEXT:                  "offset": 2030,
3873// CHECK-NEXT:                  "col": 24,
3874// CHECK-NEXT:                  "tokLen": 1
3875// CHECK-NEXT:                 }
3876// CHECK-NEXT:                },
3877// CHECK-NEXT:                "type": {
3878// CHECK-NEXT:                 "qualType": "int"
3879// CHECK-NEXT:                },
3880// CHECK-NEXT:                "valueCategory": "prvalue",
3881// CHECK-NEXT:                "value": "0"
3882// CHECK-NEXT:               }
3883// CHECK-NEXT:              ]
3884// CHECK-NEXT:             }
3885// CHECK-NEXT:            ]
3886// CHECK-NEXT:           }
3887// CHECK-NEXT:          ]
3888// CHECK-NEXT:         }
3889// CHECK-NEXT:        ]
3890// CHECK-NEXT:       },
3891// CHECK-NEXT:       {
3892// CHECK-NEXT:        "id": "0x{{.*}}",
3893// CHECK-NEXT:        "kind": "ObjCMessageExpr",
3894// CHECK-NEXT:        "range": {
3895// CHECK-NEXT:         "begin": {
3896// CHECK-NEXT:          "offset": 2008,
3897// CHECK-NEXT:          "col": 2,
3898// CHECK-NEXT:          "tokLen": 4
3899// CHECK-NEXT:         },
3900// CHECK-NEXT:         "end": {
3901// CHECK-NEXT:          "offset": 2008,
3902// CHECK-NEXT:          "col": 2,
3903// CHECK-NEXT:          "tokLen": 4
3904// CHECK-NEXT:         }
3905// CHECK-NEXT:        },
3906// CHECK-NEXT:        "type": {
3907// CHECK-NEXT:         "qualType": "void"
3908// CHECK-NEXT:        },
3909// CHECK-NEXT:        "valueCategory": "prvalue",
3910// CHECK-NEXT:        "selector": "setObject:forKeyedSubscript:",
3911// CHECK-NEXT:        "receiverKind": "instance",
3912// CHECK-NEXT:        "inner": [
3913// CHECK-NEXT:         {
3914// CHECK-NEXT:          "id": "0x{{.*}}",
3915// CHECK-NEXT:          "kind": "OpaqueValueExpr",
3916// CHECK-NEXT:          "range": {
3917// CHECK-NEXT:           "begin": {
3918// CHECK-NEXT:            "offset": 2008,
3919// CHECK-NEXT:            "col": 2,
3920// CHECK-NEXT:            "tokLen": 4
3921// CHECK-NEXT:           },
3922// CHECK-NEXT:           "end": {
3923// CHECK-NEXT:            "offset": 2008,
3924// CHECK-NEXT:            "col": 2,
3925// CHECK-NEXT:            "tokLen": 4
3926// CHECK-NEXT:           }
3927// CHECK-NEXT:          },
3928// CHECK-NEXT:          "type": {
3929// CHECK-NEXT:           "qualType": "NSMutableDictionary *"
3930// CHECK-NEXT:          },
3931// CHECK-NEXT:          "valueCategory": "prvalue",
3932// CHECK-NEXT:          "inner": [
3933// CHECK-NEXT:           {
3934// CHECK-NEXT:            "id": "0x{{.*}}",
3935// CHECK-NEXT:            "kind": "ImplicitCastExpr",
3936// CHECK-NEXT:            "range": {
3937// CHECK-NEXT:             "begin": {
3938// CHECK-NEXT:              "offset": 2008,
3939// CHECK-NEXT:              "col": 2,
3940// CHECK-NEXT:              "tokLen": 4
3941// CHECK-NEXT:             },
3942// CHECK-NEXT:             "end": {
3943// CHECK-NEXT:              "offset": 2008,
3944// CHECK-NEXT:              "col": 2,
3945// CHECK-NEXT:              "tokLen": 4
3946// CHECK-NEXT:             }
3947// CHECK-NEXT:            },
3948// CHECK-NEXT:            "type": {
3949// CHECK-NEXT:             "qualType": "NSMutableDictionary *"
3950// CHECK-NEXT:            },
3951// CHECK-NEXT:            "valueCategory": "prvalue",
3952// CHECK-NEXT:            "castKind": "LValueToRValue",
3953// CHECK-NEXT:            "inner": [
3954// CHECK-NEXT:             {
3955// CHECK-NEXT:              "id": "0x{{.*}}",
3956// CHECK-NEXT:              "kind": "DeclRefExpr",
3957// CHECK-NEXT:              "range": {
3958// CHECK-NEXT:               "begin": {
3959// CHECK-NEXT:                "offset": 2008,
3960// CHECK-NEXT:                "col": 2,
3961// CHECK-NEXT:                "tokLen": 4
3962// CHECK-NEXT:               },
3963// CHECK-NEXT:               "end": {
3964// CHECK-NEXT:                "offset": 2008,
3965// CHECK-NEXT:                "col": 2,
3966// CHECK-NEXT:                "tokLen": 4
3967// CHECK-NEXT:               }
3968// CHECK-NEXT:              },
3969// CHECK-NEXT:              "type": {
3970// CHECK-NEXT:               "qualType": "NSMutableDictionary *"
3971// CHECK-NEXT:              },
3972// CHECK-NEXT:              "valueCategory": "lvalue",
3973// CHECK-NEXT:              "referencedDecl": {
3974// CHECK-NEXT:               "id": "0x{{.*}}",
3975// CHECK-NEXT:               "kind": "ParmVarDecl",
3976// CHECK-NEXT:               "name": "Dict",
3977// CHECK-NEXT:               "type": {
3978// CHECK-NEXT:                "qualType": "NSMutableDictionary *"
3979// CHECK-NEXT:               }
3980// CHECK-NEXT:              }
3981// CHECK-NEXT:             }
3982// CHECK-NEXT:            ]
3983// CHECK-NEXT:           }
3984// CHECK-NEXT:          ]
3985// CHECK-NEXT:         },
3986// CHECK-NEXT:         {
3987// CHECK-NEXT:          "id": "0x{{.*}}",
3988// CHECK-NEXT:          "kind": "OpaqueValueExpr",
3989// CHECK-NEXT:          "range": {
3990// CHECK-NEXT:           "begin": {
3991// CHECK-NEXT:            "offset": 2023,
3992// CHECK-NEXT:            "col": 17,
3993// CHECK-NEXT:            "tokLen": 1
3994// CHECK-NEXT:           },
3995// CHECK-NEXT:           "end": {
3996// CHECK-NEXT:            "offset": 2030,
3997// CHECK-NEXT:            "col": 24,
3998// CHECK-NEXT:            "tokLen": 1
3999// CHECK-NEXT:           }
4000// CHECK-NEXT:          },
4001// CHECK-NEXT:          "type": {
4002// CHECK-NEXT:           "desugaredQualType": "id",
4003// CHECK-NEXT:           "qualType": "id",
4004// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
4005// CHECK-NEXT:          },
4006// CHECK-NEXT:          "valueCategory": "prvalue",
4007// CHECK-NEXT:          "inner": [
4008// CHECK-NEXT:           {
4009// CHECK-NEXT:            "id": "0x{{.*}}",
4010// CHECK-NEXT:            "kind": "ImplicitCastExpr",
4011// CHECK-NEXT:            "range": {
4012// CHECK-NEXT:             "begin": {
4013// CHECK-NEXT:              "offset": 2023,
4014// CHECK-NEXT:              "col": 17,
4015// CHECK-NEXT:              "tokLen": 1
4016// CHECK-NEXT:             },
4017// CHECK-NEXT:             "end": {
4018// CHECK-NEXT:              "offset": 2030,
4019// CHECK-NEXT:              "col": 24,
4020// CHECK-NEXT:              "tokLen": 1
4021// CHECK-NEXT:             }
4022// CHECK-NEXT:            },
4023// CHECK-NEXT:            "type": {
4024// CHECK-NEXT:             "desugaredQualType": "id",
4025// CHECK-NEXT:             "qualType": "id",
4026// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
4027// CHECK-NEXT:            },
4028// CHECK-NEXT:            "valueCategory": "prvalue",
4029// CHECK-NEXT:            "castKind": "NullToPointer",
4030// CHECK-NEXT:            "inner": [
4031// CHECK-NEXT:             {
4032// CHECK-NEXT:              "id": "0x{{.*}}",
4033// CHECK-NEXT:              "kind": "OpaqueValueExpr",
4034// CHECK-NEXT:              "range": {
4035// CHECK-NEXT:               "begin": {
4036// CHECK-NEXT:                "offset": 2023,
4037// CHECK-NEXT:                "col": 17,
4038// CHECK-NEXT:                "tokLen": 1
4039// CHECK-NEXT:               },
4040// CHECK-NEXT:               "end": {
4041// CHECK-NEXT:                "offset": 2030,
4042// CHECK-NEXT:                "col": 24,
4043// CHECK-NEXT:                "tokLen": 1
4044// CHECK-NEXT:               }
4045// CHECK-NEXT:              },
4046// CHECK-NEXT:              "type": {
4047// CHECK-NEXT:               "qualType": "void *"
4048// CHECK-NEXT:              },
4049// CHECK-NEXT:              "valueCategory": "prvalue",
4050// CHECK-NEXT:              "inner": [
4051// CHECK-NEXT:               {
4052// CHECK-NEXT:                "id": "0x{{.*}}",
4053// CHECK-NEXT:                "kind": "CStyleCastExpr",
4054// CHECK-NEXT:                "range": {
4055// CHECK-NEXT:                 "begin": {
4056// CHECK-NEXT:                  "offset": 2023,
4057// CHECK-NEXT:                  "col": 17,
4058// CHECK-NEXT:                  "tokLen": 1
4059// CHECK-NEXT:                 },
4060// CHECK-NEXT:                 "end": {
4061// CHECK-NEXT:                  "offset": 2030,
4062// CHECK-NEXT:                  "col": 24,
4063// CHECK-NEXT:                  "tokLen": 1
4064// CHECK-NEXT:                 }
4065// CHECK-NEXT:                },
4066// CHECK-NEXT:                "type": {
4067// CHECK-NEXT:                 "qualType": "void *"
4068// CHECK-NEXT:                },
4069// CHECK-NEXT:                "valueCategory": "prvalue",
4070// CHECK-NEXT:                "castKind": "NullToPointer",
4071// CHECK-NEXT:                "inner": [
4072// CHECK-NEXT:                 {
4073// CHECK-NEXT:                  "id": "0x{{.*}}",
4074// CHECK-NEXT:                  "kind": "IntegerLiteral",
4075// CHECK-NEXT:                  "range": {
4076// CHECK-NEXT:                   "begin": {
4077// CHECK-NEXT:                    "offset": 2030,
4078// CHECK-NEXT:                    "col": 24,
4079// CHECK-NEXT:                    "tokLen": 1
4080// CHECK-NEXT:                   },
4081// CHECK-NEXT:                   "end": {
4082// CHECK-NEXT:                    "offset": 2030,
4083// CHECK-NEXT:                    "col": 24,
4084// CHECK-NEXT:                    "tokLen": 1
4085// CHECK-NEXT:                   }
4086// CHECK-NEXT:                  },
4087// CHECK-NEXT:                  "type": {
4088// CHECK-NEXT:                   "qualType": "int"
4089// CHECK-NEXT:                  },
4090// CHECK-NEXT:                  "valueCategory": "prvalue",
4091// CHECK-NEXT:                  "value": "0"
4092// CHECK-NEXT:                 }
4093// CHECK-NEXT:                ]
4094// CHECK-NEXT:               }
4095// CHECK-NEXT:              ]
4096// CHECK-NEXT:             }
4097// CHECK-NEXT:            ]
4098// CHECK-NEXT:           }
4099// CHECK-NEXT:          ]
4100// CHECK-NEXT:         },
4101// CHECK-NEXT:         {
4102// CHECK-NEXT:          "id": "0x{{.*}}",
4103// CHECK-NEXT:          "kind": "ImplicitCastExpr",
4104// CHECK-NEXT:          "range": {
4105// CHECK-NEXT:           "begin": {
4106// CHECK-NEXT:            "offset": 2013,
4107// CHECK-NEXT:            "col": 7,
4108// CHECK-NEXT:            "tokLen": 1
4109// CHECK-NEXT:           },
4110// CHECK-NEXT:           "end": {
4111// CHECK-NEXT:            "offset": 2014,
4112// CHECK-NEXT:            "col": 8,
4113// CHECK-NEXT:            "tokLen": 5
4114// CHECK-NEXT:           }
4115// CHECK-NEXT:          },
4116// CHECK-NEXT:          "type": {
4117// CHECK-NEXT:           "desugaredQualType": "id",
4118// CHECK-NEXT:           "qualType": "id",
4119// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
4120// CHECK-NEXT:          },
4121// CHECK-NEXT:          "valueCategory": "prvalue",
4122// CHECK-NEXT:          "castKind": "BitCast",
4123// CHECK-NEXT:          "inner": [
4124// CHECK-NEXT:           {
4125// CHECK-NEXT:            "id": "0x{{.*}}",
4126// CHECK-NEXT:            "kind": "OpaqueValueExpr",
4127// CHECK-NEXT:            "range": {
4128// CHECK-NEXT:             "begin": {
4129// CHECK-NEXT:              "offset": 2013,
4130// CHECK-NEXT:              "col": 7,
4131// CHECK-NEXT:              "tokLen": 1
4132// CHECK-NEXT:             },
4133// CHECK-NEXT:             "end": {
4134// CHECK-NEXT:              "offset": 2014,
4135// CHECK-NEXT:              "col": 8,
4136// CHECK-NEXT:              "tokLen": 5
4137// CHECK-NEXT:             }
4138// CHECK-NEXT:            },
4139// CHECK-NEXT:            "type": {
4140// CHECK-NEXT:             "qualType": "NSString *"
4141// CHECK-NEXT:            },
4142// CHECK-NEXT:            "valueCategory": "prvalue",
4143// CHECK-NEXT:            "inner": [
4144// CHECK-NEXT:             {
4145// CHECK-NEXT:              "id": "0x{{.*}}",
4146// CHECK-NEXT:              "kind": "ObjCStringLiteral",
4147// CHECK-NEXT:              "range": {
4148// CHECK-NEXT:               "begin": {
4149// CHECK-NEXT:                "offset": 2013,
4150// CHECK-NEXT:                "col": 7,
4151// CHECK-NEXT:                "tokLen": 1
4152// CHECK-NEXT:               },
4153// CHECK-NEXT:               "end": {
4154// CHECK-NEXT:                "offset": 2014,
4155// CHECK-NEXT:                "col": 8,
4156// CHECK-NEXT:                "tokLen": 5
4157// CHECK-NEXT:               }
4158// CHECK-NEXT:              },
4159// CHECK-NEXT:              "type": {
4160// CHECK-NEXT:               "qualType": "NSString *"
4161// CHECK-NEXT:              },
4162// CHECK-NEXT:              "valueCategory": "prvalue",
4163// CHECK-NEXT:              "inner": [
4164// CHECK-NEXT:               {
4165// CHECK-NEXT:                "id": "0x{{.*}}",
4166// CHECK-NEXT:                "kind": "StringLiteral",
4167// CHECK-NEXT:                "range": {
4168// CHECK-NEXT:                 "begin": {
4169// CHECK-NEXT:                  "offset": 2014,
4170// CHECK-NEXT:                  "col": 8,
4171// CHECK-NEXT:                  "tokLen": 5
4172// CHECK-NEXT:                 },
4173// CHECK-NEXT:                 "end": {
4174// CHECK-NEXT:                  "offset": 2014,
4175// CHECK-NEXT:                  "col": 8,
4176// CHECK-NEXT:                  "tokLen": 5
4177// CHECK-NEXT:                 }
4178// CHECK-NEXT:                },
4179// CHECK-NEXT:                "type": {
4180// CHECK-NEXT:                 "qualType": "char[4]"
4181// CHECK-NEXT:                },
4182// CHECK-NEXT:                "valueCategory": "lvalue",
4183// CHECK-NEXT:                "value": "\"key\""
4184// CHECK-NEXT:               }
4185// CHECK-NEXT:              ]
4186// CHECK-NEXT:             }
4187// CHECK-NEXT:            ]
4188// CHECK-NEXT:           }
4189// CHECK-NEXT:          ]
4190// CHECK-NEXT:         }
4191// CHECK-NEXT:        ]
4192// CHECK-NEXT:       }
4193// CHECK-NEXT:      ]
4194// CHECK-NEXT:     },
4195// CHECK-NEXT:     {
4196// CHECK-NEXT:      "id": "0x{{.*}}",
4197// CHECK-NEXT:      "kind": "BinaryOperator",
4198// CHECK-NEXT:      "range": {
4199// CHECK-NEXT:       "begin": {
4200// CHECK-NEXT:        "offset": 2034,
4201// CHECK-NEXT:        "line": 86,
4202// CHECK-NEXT:        "col": 2,
4203// CHECK-NEXT:        "tokLen": 1
4204// CHECK-NEXT:       },
4205// CHECK-NEXT:       "end": {
4206// CHECK-NEXT:        "offset": 2049,
4207// CHECK-NEXT:        "col": 17,
4208// CHECK-NEXT:        "tokLen": 1
4209// CHECK-NEXT:       }
4210// CHECK-NEXT:      },
4211// CHECK-NEXT:      "type": {
4212// CHECK-NEXT:       "desugaredQualType": "id",
4213// CHECK-NEXT:       "qualType": "id",
4214// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
4215// CHECK-NEXT:      },
4216// CHECK-NEXT:      "valueCategory": "prvalue",
4217// CHECK-NEXT:      "opcode": "=",
4218// CHECK-NEXT:      "inner": [
4219// CHECK-NEXT:       {
4220// CHECK-NEXT:        "id": "0x{{.*}}",
4221// CHECK-NEXT:        "kind": "DeclRefExpr",
4222// CHECK-NEXT:        "range": {
4223// CHECK-NEXT:         "begin": {
4224// CHECK-NEXT:          "offset": 2034,
4225// CHECK-NEXT:          "col": 2,
4226// CHECK-NEXT:          "tokLen": 1
4227// CHECK-NEXT:         },
4228// CHECK-NEXT:         "end": {
4229// CHECK-NEXT:          "offset": 2034,
4230// CHECK-NEXT:          "col": 2,
4231// CHECK-NEXT:          "tokLen": 1
4232// CHECK-NEXT:         }
4233// CHECK-NEXT:        },
4234// CHECK-NEXT:        "type": {
4235// CHECK-NEXT:         "desugaredQualType": "id",
4236// CHECK-NEXT:         "qualType": "id",
4237// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
4238// CHECK-NEXT:        },
4239// CHECK-NEXT:        "valueCategory": "lvalue",
4240// CHECK-NEXT:        "referencedDecl": {
4241// CHECK-NEXT:         "id": "0x{{.*}}",
4242// CHECK-NEXT:         "kind": "VarDecl",
4243// CHECK-NEXT:         "name": "i",
4244// CHECK-NEXT:         "type": {
4245// CHECK-NEXT:          "desugaredQualType": "id",
4246// CHECK-NEXT:          "qualType": "id",
4247// CHECK-NEXT:          "typeAliasDeclId": "0x{{.*}}"
4248// CHECK-NEXT:         }
4249// CHECK-NEXT:        }
4250// CHECK-NEXT:       },
4251// CHECK-NEXT:       {
4252// CHECK-NEXT:        "id": "0x{{.*}}",
4253// CHECK-NEXT:        "kind": "PseudoObjectExpr",
4254// CHECK-NEXT:        "range": {
4255// CHECK-NEXT:         "begin": {
4256// CHECK-NEXT:          "offset": 2038,
4257// CHECK-NEXT:          "col": 6,
4258// CHECK-NEXT:          "tokLen": 4
4259// CHECK-NEXT:         },
4260// CHECK-NEXT:         "end": {
4261// CHECK-NEXT:          "offset": 2049,
4262// CHECK-NEXT:          "col": 17,
4263// CHECK-NEXT:          "tokLen": 1
4264// CHECK-NEXT:         }
4265// CHECK-NEXT:        },
4266// CHECK-NEXT:        "type": {
4267// CHECK-NEXT:         "desugaredQualType": "id",
4268// CHECK-NEXT:         "qualType": "id",
4269// CHECK-NEXT:         "typeAliasDeclId": "0x{{.*}}"
4270// CHECK-NEXT:        },
4271// CHECK-NEXT:        "valueCategory": "prvalue",
4272// CHECK-NEXT:        "inner": [
4273// CHECK-NEXT:         {
4274// CHECK-NEXT:          "id": "0x{{.*}}",
4275// CHECK-NEXT:          "kind": "ObjCSubscriptRefExpr",
4276// CHECK-NEXT:          "range": {
4277// CHECK-NEXT:           "begin": {
4278// CHECK-NEXT:            "offset": 2038,
4279// CHECK-NEXT:            "col": 6,
4280// CHECK-NEXT:            "tokLen": 4
4281// CHECK-NEXT:           },
4282// CHECK-NEXT:           "end": {
4283// CHECK-NEXT:            "offset": 2049,
4284// CHECK-NEXT:            "col": 17,
4285// CHECK-NEXT:            "tokLen": 1
4286// CHECK-NEXT:           }
4287// CHECK-NEXT:          },
4288// CHECK-NEXT:          "type": {
4289// CHECK-NEXT:           "qualType": "<pseudo-object type>"
4290// CHECK-NEXT:          },
4291// CHECK-NEXT:          "valueCategory": "lvalue",
4292// CHECK-NEXT:          "subscriptKind": "dictionary",
4293// CHECK-NEXT:          "inner": [
4294// CHECK-NEXT:           {
4295// CHECK-NEXT:            "id": "0x{{.*}}",
4296// CHECK-NEXT:            "kind": "OpaqueValueExpr",
4297// CHECK-NEXT:            "range": {
4298// CHECK-NEXT:             "begin": {
4299// CHECK-NEXT:              "offset": 2038,
4300// CHECK-NEXT:              "col": 6,
4301// CHECK-NEXT:              "tokLen": 4
4302// CHECK-NEXT:             },
4303// CHECK-NEXT:             "end": {
4304// CHECK-NEXT:              "offset": 2038,
4305// CHECK-NEXT:              "col": 6,
4306// CHECK-NEXT:              "tokLen": 4
4307// CHECK-NEXT:             }
4308// CHECK-NEXT:            },
4309// CHECK-NEXT:            "type": {
4310// CHECK-NEXT:             "qualType": "NSMutableDictionary *"
4311// CHECK-NEXT:            },
4312// CHECK-NEXT:            "valueCategory": "prvalue",
4313// CHECK-NEXT:            "inner": [
4314// CHECK-NEXT:             {
4315// CHECK-NEXT:              "id": "0x{{.*}}",
4316// CHECK-NEXT:              "kind": "ImplicitCastExpr",
4317// CHECK-NEXT:              "range": {
4318// CHECK-NEXT:               "begin": {
4319// CHECK-NEXT:                "offset": 2038,
4320// CHECK-NEXT:                "col": 6,
4321// CHECK-NEXT:                "tokLen": 4
4322// CHECK-NEXT:               },
4323// CHECK-NEXT:               "end": {
4324// CHECK-NEXT:                "offset": 2038,
4325// CHECK-NEXT:                "col": 6,
4326// CHECK-NEXT:                "tokLen": 4
4327// CHECK-NEXT:               }
4328// CHECK-NEXT:              },
4329// CHECK-NEXT:              "type": {
4330// CHECK-NEXT:               "qualType": "NSMutableDictionary *"
4331// CHECK-NEXT:              },
4332// CHECK-NEXT:              "valueCategory": "prvalue",
4333// CHECK-NEXT:              "castKind": "LValueToRValue",
4334// CHECK-NEXT:              "inner": [
4335// CHECK-NEXT:               {
4336// CHECK-NEXT:                "id": "0x{{.*}}",
4337// CHECK-NEXT:                "kind": "DeclRefExpr",
4338// CHECK-NEXT:                "range": {
4339// CHECK-NEXT:                 "begin": {
4340// CHECK-NEXT:                  "offset": 2038,
4341// CHECK-NEXT:                  "col": 6,
4342// CHECK-NEXT:                  "tokLen": 4
4343// CHECK-NEXT:                 },
4344// CHECK-NEXT:                 "end": {
4345// CHECK-NEXT:                  "offset": 2038,
4346// CHECK-NEXT:                  "col": 6,
4347// CHECK-NEXT:                  "tokLen": 4
4348// CHECK-NEXT:                 }
4349// CHECK-NEXT:                },
4350// CHECK-NEXT:                "type": {
4351// CHECK-NEXT:                 "qualType": "NSMutableDictionary *"
4352// CHECK-NEXT:                },
4353// CHECK-NEXT:                "valueCategory": "lvalue",
4354// CHECK-NEXT:                "referencedDecl": {
4355// CHECK-NEXT:                 "id": "0x{{.*}}",
4356// CHECK-NEXT:                 "kind": "ParmVarDecl",
4357// CHECK-NEXT:                 "name": "Dict",
4358// CHECK-NEXT:                 "type": {
4359// CHECK-NEXT:                  "qualType": "NSMutableDictionary *"
4360// CHECK-NEXT:                 }
4361// CHECK-NEXT:                }
4362// CHECK-NEXT:               }
4363// CHECK-NEXT:              ]
4364// CHECK-NEXT:             }
4365// CHECK-NEXT:            ]
4366// CHECK-NEXT:           },
4367// CHECK-NEXT:           {
4368// CHECK-NEXT:            "id": "0x{{.*}}",
4369// CHECK-NEXT:            "kind": "OpaqueValueExpr",
4370// CHECK-NEXT:            "range": {
4371// CHECK-NEXT:             "begin": {
4372// CHECK-NEXT:              "offset": 2043,
4373// CHECK-NEXT:              "col": 11,
4374// CHECK-NEXT:              "tokLen": 1
4375// CHECK-NEXT:             },
4376// CHECK-NEXT:             "end": {
4377// CHECK-NEXT:              "offset": 2044,
4378// CHECK-NEXT:              "col": 12,
4379// CHECK-NEXT:              "tokLen": 5
4380// CHECK-NEXT:             }
4381// CHECK-NEXT:            },
4382// CHECK-NEXT:            "type": {
4383// CHECK-NEXT:             "qualType": "NSString *"
4384// CHECK-NEXT:            },
4385// CHECK-NEXT:            "valueCategory": "prvalue",
4386// CHECK-NEXT:            "inner": [
4387// CHECK-NEXT:             {
4388// CHECK-NEXT:              "id": "0x{{.*}}",
4389// CHECK-NEXT:              "kind": "ObjCStringLiteral",
4390// CHECK-NEXT:              "range": {
4391// CHECK-NEXT:               "begin": {
4392// CHECK-NEXT:                "offset": 2043,
4393// CHECK-NEXT:                "col": 11,
4394// CHECK-NEXT:                "tokLen": 1
4395// CHECK-NEXT:               },
4396// CHECK-NEXT:               "end": {
4397// CHECK-NEXT:                "offset": 2044,
4398// CHECK-NEXT:                "col": 12,
4399// CHECK-NEXT:                "tokLen": 5
4400// CHECK-NEXT:               }
4401// CHECK-NEXT:              },
4402// CHECK-NEXT:              "type": {
4403// CHECK-NEXT:               "qualType": "NSString *"
4404// CHECK-NEXT:              },
4405// CHECK-NEXT:              "valueCategory": "prvalue",
4406// CHECK-NEXT:              "inner": [
4407// CHECK-NEXT:               {
4408// CHECK-NEXT:                "id": "0x{{.*}}",
4409// CHECK-NEXT:                "kind": "StringLiteral",
4410// CHECK-NEXT:                "range": {
4411// CHECK-NEXT:                 "begin": {
4412// CHECK-NEXT:                  "offset": 2044,
4413// CHECK-NEXT:                  "col": 12,
4414// CHECK-NEXT:                  "tokLen": 5
4415// CHECK-NEXT:                 },
4416// CHECK-NEXT:                 "end": {
4417// CHECK-NEXT:                  "offset": 2044,
4418// CHECK-NEXT:                  "col": 12,
4419// CHECK-NEXT:                  "tokLen": 5
4420// CHECK-NEXT:                 }
4421// CHECK-NEXT:                },
4422// CHECK-NEXT:                "type": {
4423// CHECK-NEXT:                 "qualType": "char[4]"
4424// CHECK-NEXT:                },
4425// CHECK-NEXT:                "valueCategory": "lvalue",
4426// CHECK-NEXT:                "value": "\"key\""
4427// CHECK-NEXT:               }
4428// CHECK-NEXT:              ]
4429// CHECK-NEXT:             }
4430// CHECK-NEXT:            ]
4431// CHECK-NEXT:           }
4432// CHECK-NEXT:          ]
4433// CHECK-NEXT:         },
4434// CHECK-NEXT:         {
4435// CHECK-NEXT:          "id": "0x{{.*}}",
4436// CHECK-NEXT:          "kind": "OpaqueValueExpr",
4437// CHECK-NEXT:          "range": {
4438// CHECK-NEXT:           "begin": {
4439// CHECK-NEXT:            "offset": 2038,
4440// CHECK-NEXT:            "col": 6,
4441// CHECK-NEXT:            "tokLen": 4
4442// CHECK-NEXT:           },
4443// CHECK-NEXT:           "end": {
4444// CHECK-NEXT:            "offset": 2038,
4445// CHECK-NEXT:            "col": 6,
4446// CHECK-NEXT:            "tokLen": 4
4447// CHECK-NEXT:           }
4448// CHECK-NEXT:          },
4449// CHECK-NEXT:          "type": {
4450// CHECK-NEXT:           "qualType": "NSMutableDictionary *"
4451// CHECK-NEXT:          },
4452// CHECK-NEXT:          "valueCategory": "prvalue",
4453// CHECK-NEXT:          "inner": [
4454// CHECK-NEXT:           {
4455// CHECK-NEXT:            "id": "0x{{.*}}",
4456// CHECK-NEXT:            "kind": "ImplicitCastExpr",
4457// CHECK-NEXT:            "range": {
4458// CHECK-NEXT:             "begin": {
4459// CHECK-NEXT:              "offset": 2038,
4460// CHECK-NEXT:              "col": 6,
4461// CHECK-NEXT:              "tokLen": 4
4462// CHECK-NEXT:             },
4463// CHECK-NEXT:             "end": {
4464// CHECK-NEXT:              "offset": 2038,
4465// CHECK-NEXT:              "col": 6,
4466// CHECK-NEXT:              "tokLen": 4
4467// CHECK-NEXT:             }
4468// CHECK-NEXT:            },
4469// CHECK-NEXT:            "type": {
4470// CHECK-NEXT:             "qualType": "NSMutableDictionary *"
4471// CHECK-NEXT:            },
4472// CHECK-NEXT:            "valueCategory": "prvalue",
4473// CHECK-NEXT:            "castKind": "LValueToRValue",
4474// CHECK-NEXT:            "inner": [
4475// CHECK-NEXT:             {
4476// CHECK-NEXT:              "id": "0x{{.*}}",
4477// CHECK-NEXT:              "kind": "DeclRefExpr",
4478// CHECK-NEXT:              "range": {
4479// CHECK-NEXT:               "begin": {
4480// CHECK-NEXT:                "offset": 2038,
4481// CHECK-NEXT:                "col": 6,
4482// CHECK-NEXT:                "tokLen": 4
4483// CHECK-NEXT:               },
4484// CHECK-NEXT:               "end": {
4485// CHECK-NEXT:                "offset": 2038,
4486// CHECK-NEXT:                "col": 6,
4487// CHECK-NEXT:                "tokLen": 4
4488// CHECK-NEXT:               }
4489// CHECK-NEXT:              },
4490// CHECK-NEXT:              "type": {
4491// CHECK-NEXT:               "qualType": "NSMutableDictionary *"
4492// CHECK-NEXT:              },
4493// CHECK-NEXT:              "valueCategory": "lvalue",
4494// CHECK-NEXT:              "referencedDecl": {
4495// CHECK-NEXT:               "id": "0x{{.*}}",
4496// CHECK-NEXT:               "kind": "ParmVarDecl",
4497// CHECK-NEXT:               "name": "Dict",
4498// CHECK-NEXT:               "type": {
4499// CHECK-NEXT:                "qualType": "NSMutableDictionary *"
4500// CHECK-NEXT:               }
4501// CHECK-NEXT:              }
4502// CHECK-NEXT:             }
4503// CHECK-NEXT:            ]
4504// CHECK-NEXT:           }
4505// CHECK-NEXT:          ]
4506// CHECK-NEXT:         },
4507// CHECK-NEXT:         {
4508// CHECK-NEXT:          "id": "0x{{.*}}",
4509// CHECK-NEXT:          "kind": "OpaqueValueExpr",
4510// CHECK-NEXT:          "range": {
4511// CHECK-NEXT:           "begin": {
4512// CHECK-NEXT:            "offset": 2043,
4513// CHECK-NEXT:            "col": 11,
4514// CHECK-NEXT:            "tokLen": 1
4515// CHECK-NEXT:           },
4516// CHECK-NEXT:           "end": {
4517// CHECK-NEXT:            "offset": 2044,
4518// CHECK-NEXT:            "col": 12,
4519// CHECK-NEXT:            "tokLen": 5
4520// CHECK-NEXT:           }
4521// CHECK-NEXT:          },
4522// CHECK-NEXT:          "type": {
4523// CHECK-NEXT:           "qualType": "NSString *"
4524// CHECK-NEXT:          },
4525// CHECK-NEXT:          "valueCategory": "prvalue",
4526// CHECK-NEXT:          "inner": [
4527// CHECK-NEXT:           {
4528// CHECK-NEXT:            "id": "0x{{.*}}",
4529// CHECK-NEXT:            "kind": "ObjCStringLiteral",
4530// CHECK-NEXT:            "range": {
4531// CHECK-NEXT:             "begin": {
4532// CHECK-NEXT:              "offset": 2043,
4533// CHECK-NEXT:              "col": 11,
4534// CHECK-NEXT:              "tokLen": 1
4535// CHECK-NEXT:             },
4536// CHECK-NEXT:             "end": {
4537// CHECK-NEXT:              "offset": 2044,
4538// CHECK-NEXT:              "col": 12,
4539// CHECK-NEXT:              "tokLen": 5
4540// CHECK-NEXT:             }
4541// CHECK-NEXT:            },
4542// CHECK-NEXT:            "type": {
4543// CHECK-NEXT:             "qualType": "NSString *"
4544// CHECK-NEXT:            },
4545// CHECK-NEXT:            "valueCategory": "prvalue",
4546// CHECK-NEXT:            "inner": [
4547// CHECK-NEXT:             {
4548// CHECK-NEXT:              "id": "0x{{.*}}",
4549// CHECK-NEXT:              "kind": "StringLiteral",
4550// CHECK-NEXT:              "range": {
4551// CHECK-NEXT:               "begin": {
4552// CHECK-NEXT:                "offset": 2044,
4553// CHECK-NEXT:                "col": 12,
4554// CHECK-NEXT:                "tokLen": 5
4555// CHECK-NEXT:               },
4556// CHECK-NEXT:               "end": {
4557// CHECK-NEXT:                "offset": 2044,
4558// CHECK-NEXT:                "col": 12,
4559// CHECK-NEXT:                "tokLen": 5
4560// CHECK-NEXT:               }
4561// CHECK-NEXT:              },
4562// CHECK-NEXT:              "type": {
4563// CHECK-NEXT:               "qualType": "char[4]"
4564// CHECK-NEXT:              },
4565// CHECK-NEXT:              "valueCategory": "lvalue",
4566// CHECK-NEXT:              "value": "\"key\""
4567// CHECK-NEXT:             }
4568// CHECK-NEXT:            ]
4569// CHECK-NEXT:           }
4570// CHECK-NEXT:          ]
4571// CHECK-NEXT:         },
4572// CHECK-NEXT:         {
4573// CHECK-NEXT:          "id": "0x{{.*}}",
4574// CHECK-NEXT:          "kind": "ObjCMessageExpr",
4575// CHECK-NEXT:          "range": {
4576// CHECK-NEXT:           "begin": {
4577// CHECK-NEXT:            "offset": 2038,
4578// CHECK-NEXT:            "col": 6,
4579// CHECK-NEXT:            "tokLen": 4
4580// CHECK-NEXT:           },
4581// CHECK-NEXT:           "end": {
4582// CHECK-NEXT:            "offset": 2038,
4583// CHECK-NEXT:            "col": 6,
4584// CHECK-NEXT:            "tokLen": 4
4585// CHECK-NEXT:           }
4586// CHECK-NEXT:          },
4587// CHECK-NEXT:          "type": {
4588// CHECK-NEXT:           "desugaredQualType": "id",
4589// CHECK-NEXT:           "qualType": "id",
4590// CHECK-NEXT:           "typeAliasDeclId": "0x{{.*}}"
4591// CHECK-NEXT:          },
4592// CHECK-NEXT:          "valueCategory": "prvalue",
4593// CHECK-NEXT:          "selector": "objectForKeyedSubscript:",
4594// CHECK-NEXT:          "receiverKind": "instance",
4595// CHECK-NEXT:          "inner": [
4596// CHECK-NEXT:           {
4597// CHECK-NEXT:            "id": "0x{{.*}}",
4598// CHECK-NEXT:            "kind": "OpaqueValueExpr",
4599// CHECK-NEXT:            "range": {
4600// CHECK-NEXT:             "begin": {
4601// CHECK-NEXT:              "offset": 2038,
4602// CHECK-NEXT:              "col": 6,
4603// CHECK-NEXT:              "tokLen": 4
4604// CHECK-NEXT:             },
4605// CHECK-NEXT:             "end": {
4606// CHECK-NEXT:              "offset": 2038,
4607// CHECK-NEXT:              "col": 6,
4608// CHECK-NEXT:              "tokLen": 4
4609// CHECK-NEXT:             }
4610// CHECK-NEXT:            },
4611// CHECK-NEXT:            "type": {
4612// CHECK-NEXT:             "qualType": "NSMutableDictionary *"
4613// CHECK-NEXT:            },
4614// CHECK-NEXT:            "valueCategory": "prvalue",
4615// CHECK-NEXT:            "inner": [
4616// CHECK-NEXT:             {
4617// CHECK-NEXT:              "id": "0x{{.*}}",
4618// CHECK-NEXT:              "kind": "ImplicitCastExpr",
4619// CHECK-NEXT:              "range": {
4620// CHECK-NEXT:               "begin": {
4621// CHECK-NEXT:                "offset": 2038,
4622// CHECK-NEXT:                "col": 6,
4623// CHECK-NEXT:                "tokLen": 4
4624// CHECK-NEXT:               },
4625// CHECK-NEXT:               "end": {
4626// CHECK-NEXT:                "offset": 2038,
4627// CHECK-NEXT:                "col": 6,
4628// CHECK-NEXT:                "tokLen": 4
4629// CHECK-NEXT:               }
4630// CHECK-NEXT:              },
4631// CHECK-NEXT:              "type": {
4632// CHECK-NEXT:               "qualType": "NSMutableDictionary *"
4633// CHECK-NEXT:              },
4634// CHECK-NEXT:              "valueCategory": "prvalue",
4635// CHECK-NEXT:              "castKind": "LValueToRValue",
4636// CHECK-NEXT:              "inner": [
4637// CHECK-NEXT:               {
4638// CHECK-NEXT:                "id": "0x{{.*}}",
4639// CHECK-NEXT:                "kind": "DeclRefExpr",
4640// CHECK-NEXT:                "range": {
4641// CHECK-NEXT:                 "begin": {
4642// CHECK-NEXT:                  "offset": 2038,
4643// CHECK-NEXT:                  "col": 6,
4644// CHECK-NEXT:                  "tokLen": 4
4645// CHECK-NEXT:                 },
4646// CHECK-NEXT:                 "end": {
4647// CHECK-NEXT:                  "offset": 2038,
4648// CHECK-NEXT:                  "col": 6,
4649// CHECK-NEXT:                  "tokLen": 4
4650// CHECK-NEXT:                 }
4651// CHECK-NEXT:                },
4652// CHECK-NEXT:                "type": {
4653// CHECK-NEXT:                 "qualType": "NSMutableDictionary *"
4654// CHECK-NEXT:                },
4655// CHECK-NEXT:                "valueCategory": "lvalue",
4656// CHECK-NEXT:                "referencedDecl": {
4657// CHECK-NEXT:                 "id": "0x{{.*}}",
4658// CHECK-NEXT:                 "kind": "ParmVarDecl",
4659// CHECK-NEXT:                 "name": "Dict",
4660// CHECK-NEXT:                 "type": {
4661// CHECK-NEXT:                  "qualType": "NSMutableDictionary *"
4662// CHECK-NEXT:                 }
4663// CHECK-NEXT:                }
4664// CHECK-NEXT:               }
4665// CHECK-NEXT:              ]
4666// CHECK-NEXT:             }
4667// CHECK-NEXT:            ]
4668// CHECK-NEXT:           },
4669// CHECK-NEXT:           {
4670// CHECK-NEXT:            "id": "0x{{.*}}",
4671// CHECK-NEXT:            "kind": "ImplicitCastExpr",
4672// CHECK-NEXT:            "range": {
4673// CHECK-NEXT:             "begin": {
4674// CHECK-NEXT:              "offset": 2043,
4675// CHECK-NEXT:              "col": 11,
4676// CHECK-NEXT:              "tokLen": 1
4677// CHECK-NEXT:             },
4678// CHECK-NEXT:             "end": {
4679// CHECK-NEXT:              "offset": 2044,
4680// CHECK-NEXT:              "col": 12,
4681// CHECK-NEXT:              "tokLen": 5
4682// CHECK-NEXT:             }
4683// CHECK-NEXT:            },
4684// CHECK-NEXT:            "type": {
4685// CHECK-NEXT:             "desugaredQualType": "id",
4686// CHECK-NEXT:             "qualType": "id",
4687// CHECK-NEXT:             "typeAliasDeclId": "0x{{.*}}"
4688// CHECK-NEXT:            },
4689// CHECK-NEXT:            "valueCategory": "prvalue",
4690// CHECK-NEXT:            "castKind": "BitCast",
4691// CHECK-NEXT:            "inner": [
4692// CHECK-NEXT:             {
4693// CHECK-NEXT:              "id": "0x{{.*}}",
4694// CHECK-NEXT:              "kind": "OpaqueValueExpr",
4695// CHECK-NEXT:              "range": {
4696// CHECK-NEXT:               "begin": {
4697// CHECK-NEXT:                "offset": 2043,
4698// CHECK-NEXT:                "col": 11,
4699// CHECK-NEXT:                "tokLen": 1
4700// CHECK-NEXT:               },
4701// CHECK-NEXT:               "end": {
4702// CHECK-NEXT:                "offset": 2044,
4703// CHECK-NEXT:                "col": 12,
4704// CHECK-NEXT:                "tokLen": 5
4705// CHECK-NEXT:               }
4706// CHECK-NEXT:              },
4707// CHECK-NEXT:              "type": {
4708// CHECK-NEXT:               "qualType": "NSString *"
4709// CHECK-NEXT:              },
4710// CHECK-NEXT:              "valueCategory": "prvalue",
4711// CHECK-NEXT:              "inner": [
4712// CHECK-NEXT:               {
4713// CHECK-NEXT:                "id": "0x{{.*}}",
4714// CHECK-NEXT:                "kind": "ObjCStringLiteral",
4715// CHECK-NEXT:                "range": {
4716// CHECK-NEXT:                 "begin": {
4717// CHECK-NEXT:                  "offset": 2043,
4718// CHECK-NEXT:                  "col": 11,
4719// CHECK-NEXT:                  "tokLen": 1
4720// CHECK-NEXT:                 },
4721// CHECK-NEXT:                 "end": {
4722// CHECK-NEXT:                  "offset": 2044,
4723// CHECK-NEXT:                  "col": 12,
4724// CHECK-NEXT:                  "tokLen": 5
4725// CHECK-NEXT:                 }
4726// CHECK-NEXT:                },
4727// CHECK-NEXT:                "type": {
4728// CHECK-NEXT:                 "qualType": "NSString *"
4729// CHECK-NEXT:                },
4730// CHECK-NEXT:                "valueCategory": "prvalue",
4731// CHECK-NEXT:                "inner": [
4732// CHECK-NEXT:                 {
4733// CHECK-NEXT:                  "id": "0x{{.*}}",
4734// CHECK-NEXT:                  "kind": "StringLiteral",
4735// CHECK-NEXT:                  "range": {
4736// CHECK-NEXT:                   "begin": {
4737// CHECK-NEXT:                    "offset": 2044,
4738// CHECK-NEXT:                    "col": 12,
4739// CHECK-NEXT:                    "tokLen": 5
4740// CHECK-NEXT:                   },
4741// CHECK-NEXT:                   "end": {
4742// CHECK-NEXT:                    "offset": 2044,
4743// CHECK-NEXT:                    "col": 12,
4744// CHECK-NEXT:                    "tokLen": 5
4745// CHECK-NEXT:                   }
4746// CHECK-NEXT:                  },
4747// CHECK-NEXT:                  "type": {
4748// CHECK-NEXT:                   "qualType": "char[4]"
4749// CHECK-NEXT:                  },
4750// CHECK-NEXT:                  "valueCategory": "lvalue",
4751// CHECK-NEXT:                  "value": "\"key\""
4752// CHECK-NEXT:                 }
4753// CHECK-NEXT:                ]
4754// CHECK-NEXT:               }
4755// CHECK-NEXT:              ]
4756// CHECK-NEXT:             }
4757// CHECK-NEXT:            ]
4758// CHECK-NEXT:           }
4759// CHECK-NEXT:          ]
4760// CHECK-NEXT:         }
4761// CHECK-NEXT:        ]
4762// CHECK-NEXT:       }
4763// CHECK-NEXT:      ]
4764// CHECK-NEXT:     }
4765// CHECK-NEXT:    ]
4766// CHECK-NEXT:   }
4767// CHECK-NEXT:  ]
4768// CHECK-NEXT: }
4769
4770// CHECK-NOT: {{^}}Dumping
4771// CHECK:  "kind": "FunctionDecl",
4772// CHECK-NEXT:  "loc": {
4773// CHECK-NEXT:   "offset": 2060,
4774// CHECK-NEXT:   "file": "{{.*}}",
4775// CHECK-NEXT:   "line": 89,
4776// CHECK-NEXT:   "col": 6,
4777// CHECK-NEXT:   "tokLen": 15
4778// CHECK-NEXT:  },
4779// CHECK-NEXT:  "range": {
4780// CHECK-NEXT:   "begin": {
4781// CHECK-NEXT:    "offset": 2055,
4782// CHECK-NEXT:    "col": 1,
4783// CHECK-NEXT:    "tokLen": 4
4784// CHECK-NEXT:   },
4785// CHECK-NEXT:   "end": {
4786// CHECK-NEXT:    "offset": 2105,
4787// CHECK-NEXT:    "line": 91,
4788// CHECK-NEXT:    "col": 1,
4789// CHECK-NEXT:    "tokLen": 1
4790// CHECK-NEXT:   }
4791// CHECK-NEXT:  },
4792// CHECK-NEXT:  "name": "TestObjCIVarRef",
4793// CHECK-NEXT:  "mangledName": "TestObjCIVarRef",
4794// CHECK-NEXT:  "type": {
4795// CHECK-NEXT:   "qualType": "void (I *)"
4796// CHECK-NEXT:  },
4797// CHECK-NEXT:  "inner": [
4798// CHECK-NEXT:   {
4799// CHECK-NEXT:    "id": "0x{{.*}}",
4800// CHECK-NEXT:    "kind": "ParmVarDecl",
4801// CHECK-NEXT:    "loc": {
4802// CHECK-NEXT:     "offset": 2079,
4803// CHECK-NEXT:     "line": 89,
4804// CHECK-NEXT:     "col": 25,
4805// CHECK-NEXT:     "tokLen": 3
4806// CHECK-NEXT:    },
4807// CHECK-NEXT:    "range": {
4808// CHECK-NEXT:     "begin": {
4809// CHECK-NEXT:      "offset": 2076,
4810// CHECK-NEXT:      "col": 22,
4811// CHECK-NEXT:      "tokLen": 1
4812// CHECK-NEXT:     },
4813// CHECK-NEXT:     "end": {
4814// CHECK-NEXT:      "offset": 2079,
4815// CHECK-NEXT:      "col": 25,
4816// CHECK-NEXT:      "tokLen": 3
4817// CHECK-NEXT:     }
4818// CHECK-NEXT:    },
4819// CHECK-NEXT:    "isUsed": true,
4820// CHECK-NEXT:    "name": "Ptr",
4821// CHECK-NEXT:    "mangledName": "Ptr",
4822// CHECK-NEXT:    "type": {
4823// CHECK-NEXT:     "qualType": "I *"
4824// CHECK-NEXT:    }
4825// CHECK-NEXT:   },
4826// CHECK-NEXT:   {
4827// CHECK-NEXT:    "id": "0x{{.*}}",
4828// CHECK-NEXT:    "kind": "CompoundStmt",
4829// CHECK-NEXT:    "range": {
4830// CHECK-NEXT:     "begin": {
4831// CHECK-NEXT:      "offset": 2084,
4832// CHECK-NEXT:      "col": 30,
4833// CHECK-NEXT:      "tokLen": 1
4834// CHECK-NEXT:     },
4835// CHECK-NEXT:     "end": {
4836// CHECK-NEXT:      "offset": 2105,
4837// CHECK-NEXT:      "line": 91,
4838// CHECK-NEXT:      "col": 1,
4839// CHECK-NEXT:      "tokLen": 1
4840// CHECK-NEXT:     }
4841// CHECK-NEXT:    },
4842// CHECK-NEXT:    "inner": [
4843// CHECK-NEXT:     {
4844// CHECK-NEXT:      "id": "0x{{.*}}",
4845// CHECK-NEXT:      "kind": "BinaryOperator",
4846// CHECK-NEXT:      "range": {
4847// CHECK-NEXT:       "begin": {
4848// CHECK-NEXT:        "offset": 2088,
4849// CHECK-NEXT:        "line": 90,
4850// CHECK-NEXT:        "col": 3,
4851// CHECK-NEXT:        "tokLen": 3
4852// CHECK-NEXT:       },
4853// CHECK-NEXT:       "end": {
4854// CHECK-NEXT:        "offset": 2102,
4855// CHECK-NEXT:        "col": 17,
4856// CHECK-NEXT:        "tokLen": 1
4857// CHECK-NEXT:       }
4858// CHECK-NEXT:      },
4859// CHECK-NEXT:      "type": {
4860// CHECK-NEXT:       "qualType": "int"
4861// CHECK-NEXT:      },
4862// CHECK-NEXT:      "valueCategory": "prvalue",
4863// CHECK-NEXT:      "opcode": "=",
4864// CHECK-NEXT:      "inner": [
4865// CHECK-NEXT:       {
4866// CHECK-NEXT:        "id": "0x{{.*}}",
4867// CHECK-NEXT:        "kind": "ObjCIvarRefExpr",
4868// CHECK-NEXT:        "range": {
4869// CHECK-NEXT:         "begin": {
4870// CHECK-NEXT:          "offset": 2088,
4871// CHECK-NEXT:          "col": 3,
4872// CHECK-NEXT:          "tokLen": 3
4873// CHECK-NEXT:         },
4874// CHECK-NEXT:         "end": {
4875// CHECK-NEXT:          "offset": 2093,
4876// CHECK-NEXT:          "col": 8,
4877// CHECK-NEXT:          "tokLen": 6
4878// CHECK-NEXT:         }
4879// CHECK-NEXT:        },
4880// CHECK-NEXT:        "type": {
4881// CHECK-NEXT:         "qualType": "int"
4882// CHECK-NEXT:        },
4883// CHECK-NEXT:        "valueCategory": "lvalue",
4884// CHECK-NEXT:        "decl": {
4885// CHECK-NEXT:         "id": "0x{{.*}}",
4886// CHECK-NEXT:         "kind": "ObjCIvarDecl",
4887// CHECK-NEXT:         "name": "public",
4888// CHECK-NEXT:         "type": {
4889// CHECK-NEXT:          "qualType": "int"
4890// CHECK-NEXT:         }
4891// CHECK-NEXT:        },
4892// CHECK-NEXT:        "isArrow": true,
4893// CHECK-NEXT:        "inner": [
4894// CHECK-NEXT:         {
4895// CHECK-NEXT:          "id": "0x{{.*}}",
4896// CHECK-NEXT:          "kind": "ImplicitCastExpr",
4897// CHECK-NEXT:          "range": {
4898// CHECK-NEXT:           "begin": {
4899// CHECK-NEXT:            "offset": 2088,
4900// CHECK-NEXT:            "col": 3,
4901// CHECK-NEXT:            "tokLen": 3
4902// CHECK-NEXT:           },
4903// CHECK-NEXT:           "end": {
4904// CHECK-NEXT:            "offset": 2088,
4905// CHECK-NEXT:            "col": 3,
4906// CHECK-NEXT:            "tokLen": 3
4907// CHECK-NEXT:           }
4908// CHECK-NEXT:          },
4909// CHECK-NEXT:          "type": {
4910// CHECK-NEXT:           "qualType": "I *"
4911// CHECK-NEXT:          },
4912// CHECK-NEXT:          "valueCategory": "prvalue",
4913// CHECK-NEXT:          "castKind": "LValueToRValue",
4914// CHECK-NEXT:          "inner": [
4915// CHECK-NEXT:           {
4916// CHECK-NEXT:            "id": "0x{{.*}}",
4917// CHECK-NEXT:            "kind": "DeclRefExpr",
4918// CHECK-NEXT:            "range": {
4919// CHECK-NEXT:             "begin": {
4920// CHECK-NEXT:              "offset": 2088,
4921// CHECK-NEXT:              "col": 3,
4922// CHECK-NEXT:              "tokLen": 3
4923// CHECK-NEXT:             },
4924// CHECK-NEXT:             "end": {
4925// CHECK-NEXT:              "offset": 2088,
4926// CHECK-NEXT:              "col": 3,
4927// CHECK-NEXT:              "tokLen": 3
4928// CHECK-NEXT:             }
4929// CHECK-NEXT:            },
4930// CHECK-NEXT:            "type": {
4931// CHECK-NEXT:             "qualType": "I *"
4932// CHECK-NEXT:            },
4933// CHECK-NEXT:            "valueCategory": "lvalue",
4934// CHECK-NEXT:            "referencedDecl": {
4935// CHECK-NEXT:             "id": "0x{{.*}}",
4936// CHECK-NEXT:             "kind": "ParmVarDecl",
4937// CHECK-NEXT:             "name": "Ptr",
4938// CHECK-NEXT:             "type": {
4939// CHECK-NEXT:              "qualType": "I *"
4940// CHECK-NEXT:             }
4941// CHECK-NEXT:            }
4942// CHECK-NEXT:           }
4943// CHECK-NEXT:          ]
4944// CHECK-NEXT:         }
4945// CHECK-NEXT:        ]
4946// CHECK-NEXT:       },
4947// CHECK-NEXT:       {
4948// CHECK-NEXT:        "id": "0x{{.*}}",
4949// CHECK-NEXT:        "kind": "IntegerLiteral",
4950// CHECK-NEXT:        "range": {
4951// CHECK-NEXT:         "begin": {
4952// CHECK-NEXT:          "offset": 2102,
4953// CHECK-NEXT:          "col": 17,
4954// CHECK-NEXT:          "tokLen": 1
4955// CHECK-NEXT:         },
4956// CHECK-NEXT:         "end": {
4957// CHECK-NEXT:          "offset": 2102,
4958// CHECK-NEXT:          "col": 17,
4959// CHECK-NEXT:          "tokLen": 1
4960// CHECK-NEXT:         }
4961// CHECK-NEXT:        },
4962// CHECK-NEXT:        "type": {
4963// CHECK-NEXT:         "qualType": "int"
4964// CHECK-NEXT:        },
4965// CHECK-NEXT:        "valueCategory": "prvalue",
4966// CHECK-NEXT:        "value": "0"
4967// CHECK-NEXT:       }
4968// CHECK-NEXT:      ]
4969// CHECK-NEXT:     }
4970// CHECK-NEXT:    ]
4971// CHECK-NEXT:   }
4972// CHECK-NEXT:  ]
4973// CHECK-NEXT: }
4974
4975// CHECK-NOT: {{^}}Dumping
4976// CHECK:  "kind": "FunctionDecl",
4977// CHECK-NEXT:  "loc": {
4978// CHECK-NEXT:   "offset": 2113,
4979// CHECK-NEXT:   "file": "{{.*}}",
4980// CHECK-NEXT:   "line": 93,
4981// CHECK-NEXT:   "col": 6,
4982// CHECK-NEXT:   "tokLen": 19
4983// CHECK-NEXT:  },
4984// CHECK-NEXT:  "range": {
4985// CHECK-NEXT:   "begin": {
4986// CHECK-NEXT:    "offset": 2108,
4987// CHECK-NEXT:    "col": 1,
4988// CHECK-NEXT:    "tokLen": 4
4989// CHECK-NEXT:   },
4990// CHECK-NEXT:   "end": {
4991// CHECK-NEXT:    "offset": 2164,
4992// CHECK-NEXT:    "line": 96,
4993// CHECK-NEXT:    "col": 1,
4994// CHECK-NEXT:    "tokLen": 1
4995// CHECK-NEXT:   }
4996// CHECK-NEXT:  },
4997// CHECK-NEXT:  "name": "TestObjCBoolLiteral",
4998// CHECK-NEXT:  "mangledName": "TestObjCBoolLiteral",
4999// CHECK-NEXT:  "type": {
5000// CHECK-NEXT:   "qualType": "void ()"
5001// CHECK-NEXT:  },
5002// CHECK-NEXT:  "inner": [
5003// CHECK-NEXT:   {
5004// CHECK-NEXT:    "id": "0x{{.*}}",
5005// CHECK-NEXT:    "kind": "CompoundStmt",
5006// CHECK-NEXT:    "range": {
5007// CHECK-NEXT:     "begin": {
5008// CHECK-NEXT:      "offset": 2135,
5009// CHECK-NEXT:      "line": 93,
5010// CHECK-NEXT:      "col": 28,
5011// CHECK-NEXT:      "tokLen": 1
5012// CHECK-NEXT:     },
5013// CHECK-NEXT:     "end": {
5014// CHECK-NEXT:      "offset": 2164,
5015// CHECK-NEXT:      "line": 96,
5016// CHECK-NEXT:      "col": 1,
5017// CHECK-NEXT:      "tokLen": 1
5018// CHECK-NEXT:     }
5019// CHECK-NEXT:    },
5020// CHECK-NEXT:    "inner": [
5021// CHECK-NEXT:     {
5022// CHECK-NEXT:      "id": "0x{{.*}}",
5023// CHECK-NEXT:      "kind": "ObjCBoolLiteralExpr",
5024// CHECK-NEXT:      "range": {
5025// CHECK-NEXT:       "begin": {
5026// CHECK-NEXT:        "offset": 2139,
5027// CHECK-NEXT:        "line": 94,
5028// CHECK-NEXT:        "col": 3,
5029// CHECK-NEXT:        "tokLen": 10
5030// CHECK-NEXT:       },
5031// CHECK-NEXT:       "end": {
5032// CHECK-NEXT:        "offset": 2139,
5033// CHECK-NEXT:        "col": 3,
5034// CHECK-NEXT:        "tokLen": 10
5035// CHECK-NEXT:       }
5036// CHECK-NEXT:      },
5037// CHECK-NEXT:      "type": {
5038// CHECK-NEXT:       "desugaredQualType": "signed char",
5039// CHECK-NEXT:       "qualType": "BOOL",
5040// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
5041// CHECK-NEXT:      },
5042// CHECK-NEXT:      "valueCategory": "prvalue",
5043// CHECK-NEXT:      "value": "__objc_yes"
5044// CHECK-NEXT:     },
5045// CHECK-NEXT:     {
5046// CHECK-NEXT:      "id": "0x{{.*}}",
5047// CHECK-NEXT:      "kind": "ObjCBoolLiteralExpr",
5048// CHECK-NEXT:      "range": {
5049// CHECK-NEXT:       "begin": {
5050// CHECK-NEXT:        "offset": 2153,
5051// CHECK-NEXT:        "line": 95,
5052// CHECK-NEXT:        "col": 3,
5053// CHECK-NEXT:        "tokLen": 9
5054// CHECK-NEXT:       },
5055// CHECK-NEXT:       "end": {
5056// CHECK-NEXT:        "offset": 2153,
5057// CHECK-NEXT:        "col": 3,
5058// CHECK-NEXT:        "tokLen": 9
5059// CHECK-NEXT:       }
5060// CHECK-NEXT:      },
5061// CHECK-NEXT:      "type": {
5062// CHECK-NEXT:       "desugaredQualType": "signed char",
5063// CHECK-NEXT:       "qualType": "BOOL",
5064// CHECK-NEXT:       "typeAliasDeclId": "0x{{.*}}"
5065// CHECK-NEXT:      },
5066// CHECK-NEXT:      "valueCategory": "prvalue",
5067// CHECK-NEXT:      "value": "__objc_no"
5068// CHECK-NEXT:     }
5069// CHECK-NEXT:    ]
5070// CHECK-NEXT:   }
5071// CHECK-NEXT:  ]
5072// CHECK-NEXT: }
5073