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