1// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.ObjCGenerics,alpha.core.DynamicTypeChecker -verify -Wno-objc-method-access %s
2// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.ObjCGenerics,alpha.core.DynamicTypeChecker -verify -Wno-objc-method-access %s -analyzer-output=plist -o %t.plist
3// RUN: FileCheck --input-file %t.plist %s
4
5#if !__has_feature(objc_generics)
6#  error Compiler does not support Objective-C generics?
7#endif
8
9#if !__has_feature(objc_generics_variance)
10#  error Compiler does not support co- and contr-variance?
11#endif
12
13#define nil 0
14typedef unsigned long NSUInteger;
15typedef int BOOL;
16
17@protocol NSObject
18+ (id)alloc;
19- (id)init;
20@end
21
22@protocol NSCopying
23@end
24
25__attribute__((objc_root_class))
26@interface NSObject <NSObject>
27@end
28
29@interface NSString : NSObject <NSCopying>
30@end
31
32@interface NSMutableString : NSString
33@end
34
35@interface NSNumber : NSObject <NSCopying>
36@end
37
38@interface NSSet : NSObject <NSCopying>
39@end
40
41@interface NSArray<__covariant ObjectType> : NSObject
42+ (instancetype)arrayWithObjects:(const ObjectType [])objects count:(NSUInteger)count;
43+ (instancetype)getEmpty;
44+ (NSArray<ObjectType> *)getEmpty2;
45- (BOOL)contains:(ObjectType)obj;
46- (ObjectType)getObjAtIndex:(NSUInteger)idx;
47- (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx;
48@property(readonly) ObjectType firstObject;
49@end
50
51@interface MutableArray<ObjectType> : NSArray<ObjectType>
52- (void)addObject:(ObjectType)anObject;
53@end
54
55@interface LegacyMutableArray : MutableArray
56@end
57
58@interface LegacySpecialMutableArray : LegacyMutableArray
59@end
60
61@interface BuggyMutableArray<T> : MutableArray
62@end
63
64@interface BuggySpecialMutableArray<T> : BuggyMutableArray<T>
65@end
66
67@interface MyMutableStringArray : MutableArray<NSString *>
68@end
69
70@interface ExceptionalArray<ExceptionType> : MutableArray<NSString *>
71- (ExceptionType) getException;
72@end
73
74@interface UnrelatedType : NSObject<NSCopying>
75@end
76
77int getUnknown();
78NSArray *getStuff();
79NSArray *getTypedStuff() {
80  NSArray<NSNumber *> *c = getStuff();
81  return c;
82}
83
84void doStuff(NSArray<NSNumber *> *);
85void withArrString(NSArray<NSString *> *);
86void withArrMutableString(NSArray<NSMutableString *> *);
87void withMutArrString(MutableArray<NSString *> *);
88void withMutArrMutableString(MutableArray<NSMutableString *> *);
89
90void incompatibleTypesErased(NSArray *a, NSArray<NSString *> *b,
91                             NSArray<NSNumber *> *c) {
92  a = b;
93  c = a; // expected-warning  {{Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'}}
94  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
95  [a contains: [[NSString alloc] init]];
96  doStuff(a); // expected-warning {{Conversion}}
97}
98
99void crossProceduralErasedTypes() {
100  NSArray<NSString *> *a = getTypedStuff(); // expected-warning {{Conversion}}
101}
102
103void incompatibleTypesErasedReverseConversion(NSArray *a,
104                                              NSArray<NSString *> *b) {
105  b = a;
106  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
107  [a contains: [[NSString alloc] init]];
108  doStuff(a); // expected-warning {{Conversion}}
109}
110
111void idErasedIncompatibleTypesReverseConversion(id a, NSArray<NSString *> *b) {
112  b = a;
113  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
114  [a contains: [[NSString alloc] init]];
115  doStuff(a); // expected-warning {{Conversion}}
116}
117
118void idErasedIncompatibleTypes(id a, NSArray<NSString *> *b,
119                               NSArray<NSNumber *> *c) {
120  a = b;
121  c = a; // expected-warning {{Conversion}}
122  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
123  [a contains: [[NSString alloc] init]];
124  doStuff(a); // expected-warning {{Conversion}}
125}
126
127void pathSensitiveInference(MutableArray *m, MutableArray<NSString *> *a,
128                            MutableArray<NSMutableString *> *b) {
129  if (getUnknown() == 5) {
130    m = a;
131    [m contains: [[NSString alloc] init]];
132  } else {
133    m = b;
134    [m contains: [[NSMutableString alloc] init]];
135  }
136  [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
137  [m addObject: [[NSMutableString alloc] init]];
138}
139
140void verifyAPIusage(id a, MutableArray<NSString *> *b) {
141  b = a;
142  doStuff(a); // expected-warning {{Conversion}}
143}
144
145void trustExplicitCasts(MutableArray *a,
146                        MutableArray<NSMutableString *> *b) {
147  b = (MutableArray<NSMutableString *> *)a;
148  [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
149}
150
151void subtypeOfGeneric(id d, MyMutableStringArray *a,
152                       MutableArray<NSString *> *b,
153                       MutableArray<NSNumber *> *c) {
154  d = a;
155  b = d;
156  c = d; // expected-warning {{Conversion}}
157}
158
159void genericSubtypeOfGeneric(id d, ExceptionalArray<NSString *> *a,
160                             MutableArray<NSString *> *b,
161                             MutableArray<NSNumber *> *c) {
162  d = a;
163  [d contains: [[NSString alloc] init]];
164  [d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
165  b = d;
166  c = d; // expected-warning {{Conversion}}
167}
168
169void genericSubtypeOfGenericReverse(id d, ExceptionalArray<NSString *> *a,
170                                    MutableArray<NSString *> *b,
171                                    MutableArray<NSNumber *> *c) {
172  a = d;
173  [d contains: [[NSString alloc] init]];
174  [d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
175  b = d;
176  c = d; // expected-warning {{Conversion}}
177}
178
179void inferenceFromAPI(id a) {
180  // Here the type parameter is invariant. There should be a warning every time
181  // when the type parameter changes during the conversions.
182  withMutArrString(a);
183  withMutArrMutableString(a); // expected-warning {{Conversion}}
184}
185
186void inferenceFromAPI2(id a) {
187  withMutArrMutableString(a);
188  withMutArrString(a); // expected-warning {{Conversion}}
189}
190
191void inferenceFromAPIWithLegacyTypes(LegacyMutableArray *a) {
192  withMutArrMutableString(a);
193  withMutArrString(a); // expected-warning {{Conversion}}
194}
195
196void inferenceFromAPIWithLegacyTypes2(LegacySpecialMutableArray *a) {
197  withMutArrString(a);
198  withMutArrMutableString(a); // expected-warning {{Conversion}}
199}
200
201void inferenceFromAPIWithLegacyTypes3(__kindof NSArray<NSString *> *a) {
202  LegacyMutableArray *b = a;
203  withMutArrString(b);
204  withMutArrMutableString(b); // expected-warning {{Conversion}}
205}
206
207void inferenceFromAPIWithBuggyTypes(BuggyMutableArray<NSMutableString *> *a) {
208  withMutArrString(a);
209  withMutArrMutableString(a); // expected-warning {{Conversion}}
210}
211
212void InferenceFromAPIWithBuggyTypes2(BuggySpecialMutableArray<NSMutableString *> *a) {
213  withMutArrMutableString(a);
214  withMutArrString(a); // expected-warning {{Conversion}}
215}
216
217void InferenceFromAPIWithBuggyTypes3(MutableArray<NSMutableString *> *a) {
218  id b = a;
219  withMutArrMutableString((BuggyMutableArray<NSMutableString *> *)b);
220  withMutArrString(b); // expected-warning {{Conversion}}
221}
222
223void InferenceFromAPIWithBuggyTypes4(__kindof NSArray<NSString *> *a) {
224  BuggyMutableArray<NSMutableString *> *b = a;
225  withMutArrString(b);
226  withMutArrMutableString(b); // expected-warning {{Conversion}}
227}
228
229NSArray<NSString *> *getStrings();
230void enforceDynamicRulesInsteadOfStatic(NSArray<NSNumber *> *a) {
231  NSArray *b = a;
232  // Valid uses of NSArray of NSNumbers.
233  b = getStrings();
234  // Valid uses of NSArray of NSStrings.
235}
236
237void workWithProperties(NSArray<NSNumber *> *a) {
238  NSArray *b = a;
239  NSString *str = [b getObjAtIndex: 0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
240  NSNumber *num = [b getObjAtIndex: 0];
241  str = [b firstObject]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
242  num = [b firstObject];
243  str = b.firstObject; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
244  num = b.firstObject;
245  str = b[0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
246  num = b[0];
247}
248
249void findMethodDeclInTrackedType(id m, NSArray<NSMutableString *> *a,
250                                 MutableArray<NSMutableString *> *b) {
251  a = b;
252  if (getUnknown() == 5) {
253    m = a;
254    [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
255  } else {
256    m = b;
257    [m addObject: [[NSMutableString alloc] init]];
258  }
259}
260
261void findMethodDeclInTrackedType2(__kindof NSArray<NSString *> *a,
262                                  MutableArray<NSMutableString *> *b) {
263  a = b;
264  if (getUnknown() == 5) {
265    [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
266  } else {
267    [a addObject: [[NSMutableString alloc] init]];
268  }
269}
270
271void testUnannotatedLiterals() {
272  // ObjCArrayLiterals are not specialized in the AST.
273  NSArray *arr = @[@"A", @"B"];
274  [arr contains: [[NSNumber alloc] init]];
275}
276
277void testAnnotatedLiterals() {
278  NSArray<NSString *> *arr = @[@"A", @"B"];
279  NSArray *arr2 = arr;
280  [arr2 contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
281}
282
283void nonExistentMethodDoesNotCrash(id a, MutableArray<NSMutableString *> *b) {
284  a = b;
285  [a nonExistentMethod];
286}
287
288void trackedClassVariables() {
289  Class c = [NSArray<NSString *> class];
290  NSArray<NSNumber *> *a = [c getEmpty]; // expected-warning {{Conversion}}
291  a = [c getEmpty2]; // expected-warning {{Conversion}}
292}
293
294void nestedCollections(NSArray<NSArray<NSNumber *> *> *mat, NSArray<NSString *> *row) {
295  id temp = row;
296  [mat contains: temp]; // expected-warning {{Conversion}}
297}
298
299void testMistmatchedTypeCast(MutableArray<NSMutableString *> *a) {
300  MutableArray *b = (MutableArray<NSNumber *> *)a;
301  [b addObject: [[NSNumber alloc] init]];
302  id c = (UnrelatedType *)a;
303  [c addObject: [[NSNumber alloc] init]];
304  [c addObject: [[NSString alloc] init]];
305}
306
307void returnCollectionToIdVariable(NSArray<NSArray<NSString *> *> *arr) {
308  NSArray *erased = arr;
309  id a = [erased firstObject];
310  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
311}
312
313void eraseSpecialization(NSArray<NSArray<NSString *> *> *arr) {
314  NSArray *erased = arr;
315  NSArray* a = [erased firstObject];
316  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
317}
318
319void returnToUnrelatedType(NSArray<NSArray<NSString *> *> *arr) {
320  NSArray *erased = arr;
321  NSSet* a = [erased firstObject]; // expected-warning {{Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'}}
322  (void)a;
323}
324
325void returnToIdVariable(NSArray<NSString *> *arr) {
326  NSArray *erased = arr;
327  id a = [erased firstObject];
328  NSNumber *res = a; // expected-warning {{Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'}}
329}
330
331@interface UnrelatedTypeGeneric<T> : NSObject<NSCopying>
332- (void)takesType:(T)v;
333@end
334
335void testGetMostInformativeDerivedForId(NSArray<NSString *> *a,
336                                  UnrelatedTypeGeneric<NSString *> *b) {
337  id idB = b;
338  a = idB; // expected-warning {{Conversion from value of type 'UnrelatedTypeGeneric<NSString *> *' to incompatible type 'NSArray<NSString *> *'}}
339
340  // rdar://problem/26086914 crash here caused by symbolic type being unrelated
341  // to compile-time source type of cast.
342  id x = a; // Compile-time type is NSArray<>, Symbolic type is UnrelatedTypeGeneric<>.
343  [x takesType:[[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
344}
345
346// CHECK: <key>diagnostics</key>
347// CHECK-NEXT: <array>
348// CHECK-NEXT:  <dict>
349// CHECK-NEXT:   <key>path</key>
350// CHECK-NEXT:   <array>
351// CHECK-NEXT:    <dict>
352// CHECK-NEXT:     <key>kind</key><string>event</string>
353// CHECK-NEXT:     <key>location</key>
354// CHECK-NEXT:     <dict>
355// CHECK-NEXT:      <key>line</key><integer>92</integer>
356// CHECK-NEXT:      <key>col</key><integer>7</integer>
357// CHECK-NEXT:      <key>file</key><integer>0</integer>
358// CHECK-NEXT:     </dict>
359// CHECK-NEXT:     <key>ranges</key>
360// CHECK-NEXT:     <array>
361// CHECK-NEXT:       <array>
362// CHECK-NEXT:        <dict>
363// CHECK-NEXT:         <key>line</key><integer>92</integer>
364// CHECK-NEXT:         <key>col</key><integer>7</integer>
365// CHECK-NEXT:         <key>file</key><integer>0</integer>
366// CHECK-NEXT:        </dict>
367// CHECK-NEXT:        <dict>
368// CHECK-NEXT:         <key>line</key><integer>92</integer>
369// CHECK-NEXT:         <key>col</key><integer>7</integer>
370// CHECK-NEXT:         <key>file</key><integer>0</integer>
371// CHECK-NEXT:        </dict>
372// CHECK-NEXT:       </array>
373// CHECK-NEXT:     </array>
374// CHECK-NEXT:     <key>depth</key><integer>0</integer>
375// CHECK-NEXT:     <key>extended_message</key>
376// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
377// CHECK-NEXT:     <key>message</key>
378// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
379// CHECK-NEXT:    </dict>
380// CHECK-NEXT:    <dict>
381// CHECK-NEXT:     <key>kind</key><string>control</string>
382// CHECK-NEXT:     <key>edges</key>
383// CHECK-NEXT:      <array>
384// CHECK-NEXT:       <dict>
385// CHECK-NEXT:        <key>start</key>
386// CHECK-NEXT:         <array>
387// CHECK-NEXT:          <dict>
388// CHECK-NEXT:           <key>line</key><integer>92</integer>
389// CHECK-NEXT:           <key>col</key><integer>3</integer>
390// CHECK-NEXT:           <key>file</key><integer>0</integer>
391// CHECK-NEXT:          </dict>
392// CHECK-NEXT:          <dict>
393// CHECK-NEXT:           <key>line</key><integer>92</integer>
394// CHECK-NEXT:           <key>col</key><integer>3</integer>
395// CHECK-NEXT:           <key>file</key><integer>0</integer>
396// CHECK-NEXT:          </dict>
397// CHECK-NEXT:         </array>
398// CHECK-NEXT:        <key>end</key>
399// CHECK-NEXT:         <array>
400// CHECK-NEXT:          <dict>
401// CHECK-NEXT:           <key>line</key><integer>93</integer>
402// CHECK-NEXT:           <key>col</key><integer>3</integer>
403// CHECK-NEXT:           <key>file</key><integer>0</integer>
404// CHECK-NEXT:          </dict>
405// CHECK-NEXT:          <dict>
406// CHECK-NEXT:           <key>line</key><integer>93</integer>
407// CHECK-NEXT:           <key>col</key><integer>3</integer>
408// CHECK-NEXT:           <key>file</key><integer>0</integer>
409// CHECK-NEXT:          </dict>
410// CHECK-NEXT:         </array>
411// CHECK-NEXT:       </dict>
412// CHECK-NEXT:      </array>
413// CHECK-NEXT:    </dict>
414// CHECK-NEXT:    <dict>
415// CHECK-NEXT:     <key>kind</key><string>control</string>
416// CHECK-NEXT:     <key>edges</key>
417// CHECK-NEXT:      <array>
418// CHECK-NEXT:       <dict>
419// CHECK-NEXT:        <key>start</key>
420// CHECK-NEXT:         <array>
421// CHECK-NEXT:          <dict>
422// CHECK-NEXT:           <key>line</key><integer>93</integer>
423// CHECK-NEXT:           <key>col</key><integer>3</integer>
424// CHECK-NEXT:           <key>file</key><integer>0</integer>
425// CHECK-NEXT:          </dict>
426// CHECK-NEXT:          <dict>
427// CHECK-NEXT:           <key>line</key><integer>93</integer>
428// CHECK-NEXT:           <key>col</key><integer>3</integer>
429// CHECK-NEXT:           <key>file</key><integer>0</integer>
430// CHECK-NEXT:          </dict>
431// CHECK-NEXT:         </array>
432// CHECK-NEXT:        <key>end</key>
433// CHECK-NEXT:         <array>
434// CHECK-NEXT:          <dict>
435// CHECK-NEXT:           <key>line</key><integer>93</integer>
436// CHECK-NEXT:           <key>col</key><integer>7</integer>
437// CHECK-NEXT:           <key>file</key><integer>0</integer>
438// CHECK-NEXT:          </dict>
439// CHECK-NEXT:          <dict>
440// CHECK-NEXT:           <key>line</key><integer>93</integer>
441// CHECK-NEXT:           <key>col</key><integer>7</integer>
442// CHECK-NEXT:           <key>file</key><integer>0</integer>
443// CHECK-NEXT:          </dict>
444// CHECK-NEXT:         </array>
445// CHECK-NEXT:       </dict>
446// CHECK-NEXT:      </array>
447// CHECK-NEXT:    </dict>
448// CHECK-NEXT:    <dict>
449// CHECK-NEXT:     <key>kind</key><string>event</string>
450// CHECK-NEXT:     <key>location</key>
451// CHECK-NEXT:     <dict>
452// CHECK-NEXT:      <key>line</key><integer>93</integer>
453// CHECK-NEXT:      <key>col</key><integer>7</integer>
454// CHECK-NEXT:      <key>file</key><integer>0</integer>
455// CHECK-NEXT:     </dict>
456// CHECK-NEXT:     <key>ranges</key>
457// CHECK-NEXT:     <array>
458// CHECK-NEXT:       <array>
459// CHECK-NEXT:        <dict>
460// CHECK-NEXT:         <key>line</key><integer>93</integer>
461// CHECK-NEXT:         <key>col</key><integer>7</integer>
462// CHECK-NEXT:         <key>file</key><integer>0</integer>
463// CHECK-NEXT:        </dict>
464// CHECK-NEXT:        <dict>
465// CHECK-NEXT:         <key>line</key><integer>93</integer>
466// CHECK-NEXT:         <key>col</key><integer>7</integer>
467// CHECK-NEXT:         <key>file</key><integer>0</integer>
468// CHECK-NEXT:        </dict>
469// CHECK-NEXT:       </array>
470// CHECK-NEXT:     </array>
471// CHECK-NEXT:     <key>depth</key><integer>0</integer>
472// CHECK-NEXT:     <key>extended_message</key>
473// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
474// CHECK-NEXT:     <key>message</key>
475// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
476// CHECK-NEXT:    </dict>
477// CHECK-NEXT:   </array>
478// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
479// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
480// CHECK-NEXT:   <key>type</key><string>Generics</string>
481// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
482// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
483// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>9632a21d129601d531e0b4585a27c686</string>
484// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
485// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErased</string>
486// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
487// CHECK-NEXT:  <key>location</key>
488// CHECK-NEXT:  <dict>
489// CHECK-NEXT:   <key>line</key><integer>93</integer>
490// CHECK-NEXT:   <key>col</key><integer>7</integer>
491// CHECK-NEXT:   <key>file</key><integer>0</integer>
492// CHECK-NEXT:  </dict>
493// CHECK-NEXT:  </dict>
494// CHECK-NEXT:  <dict>
495// CHECK-NEXT:   <key>path</key>
496// CHECK-NEXT:   <array>
497// CHECK-NEXT:    <dict>
498// CHECK-NEXT:     <key>kind</key><string>event</string>
499// CHECK-NEXT:     <key>location</key>
500// CHECK-NEXT:     <dict>
501// CHECK-NEXT:      <key>line</key><integer>92</integer>
502// CHECK-NEXT:      <key>col</key><integer>7</integer>
503// CHECK-NEXT:      <key>file</key><integer>0</integer>
504// CHECK-NEXT:     </dict>
505// CHECK-NEXT:     <key>ranges</key>
506// CHECK-NEXT:     <array>
507// CHECK-NEXT:       <array>
508// CHECK-NEXT:        <dict>
509// CHECK-NEXT:         <key>line</key><integer>92</integer>
510// CHECK-NEXT:         <key>col</key><integer>7</integer>
511// CHECK-NEXT:         <key>file</key><integer>0</integer>
512// CHECK-NEXT:        </dict>
513// CHECK-NEXT:        <dict>
514// CHECK-NEXT:         <key>line</key><integer>92</integer>
515// CHECK-NEXT:         <key>col</key><integer>7</integer>
516// CHECK-NEXT:         <key>file</key><integer>0</integer>
517// CHECK-NEXT:        </dict>
518// CHECK-NEXT:       </array>
519// CHECK-NEXT:     </array>
520// CHECK-NEXT:     <key>depth</key><integer>0</integer>
521// CHECK-NEXT:     <key>extended_message</key>
522// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
523// CHECK-NEXT:     <key>message</key>
524// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
525// CHECK-NEXT:    </dict>
526// CHECK-NEXT:    <dict>
527// CHECK-NEXT:     <key>kind</key><string>control</string>
528// CHECK-NEXT:     <key>edges</key>
529// CHECK-NEXT:      <array>
530// CHECK-NEXT:       <dict>
531// CHECK-NEXT:        <key>start</key>
532// CHECK-NEXT:         <array>
533// CHECK-NEXT:          <dict>
534// CHECK-NEXT:           <key>line</key><integer>92</integer>
535// CHECK-NEXT:           <key>col</key><integer>3</integer>
536// CHECK-NEXT:           <key>file</key><integer>0</integer>
537// CHECK-NEXT:          </dict>
538// CHECK-NEXT:          <dict>
539// CHECK-NEXT:           <key>line</key><integer>92</integer>
540// CHECK-NEXT:           <key>col</key><integer>3</integer>
541// CHECK-NEXT:           <key>file</key><integer>0</integer>
542// CHECK-NEXT:          </dict>
543// CHECK-NEXT:         </array>
544// CHECK-NEXT:        <key>end</key>
545// CHECK-NEXT:         <array>
546// CHECK-NEXT:          <dict>
547// CHECK-NEXT:           <key>line</key><integer>94</integer>
548// CHECK-NEXT:           <key>col</key><integer>3</integer>
549// CHECK-NEXT:           <key>file</key><integer>0</integer>
550// CHECK-NEXT:          </dict>
551// CHECK-NEXT:          <dict>
552// CHECK-NEXT:           <key>line</key><integer>94</integer>
553// CHECK-NEXT:           <key>col</key><integer>3</integer>
554// CHECK-NEXT:           <key>file</key><integer>0</integer>
555// CHECK-NEXT:          </dict>
556// CHECK-NEXT:         </array>
557// CHECK-NEXT:       </dict>
558// CHECK-NEXT:      </array>
559// CHECK-NEXT:    </dict>
560// CHECK-NEXT:    <dict>
561// CHECK-NEXT:     <key>kind</key><string>event</string>
562// CHECK-NEXT:     <key>location</key>
563// CHECK-NEXT:     <dict>
564// CHECK-NEXT:      <key>line</key><integer>94</integer>
565// CHECK-NEXT:      <key>col</key><integer>3</integer>
566// CHECK-NEXT:      <key>file</key><integer>0</integer>
567// CHECK-NEXT:     </dict>
568// CHECK-NEXT:     <key>ranges</key>
569// CHECK-NEXT:     <array>
570// CHECK-NEXT:       <array>
571// CHECK-NEXT:        <dict>
572// CHECK-NEXT:         <key>line</key><integer>94</integer>
573// CHECK-NEXT:         <key>col</key><integer>16</integer>
574// CHECK-NEXT:         <key>file</key><integer>0</integer>
575// CHECK-NEXT:        </dict>
576// CHECK-NEXT:        <dict>
577// CHECK-NEXT:         <key>line</key><integer>94</integer>
578// CHECK-NEXT:         <key>col</key><integer>38</integer>
579// CHECK-NEXT:         <key>file</key><integer>0</integer>
580// CHECK-NEXT:        </dict>
581// CHECK-NEXT:       </array>
582// CHECK-NEXT:     </array>
583// CHECK-NEXT:     <key>depth</key><integer>0</integer>
584// CHECK-NEXT:     <key>extended_message</key>
585// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
586// CHECK-NEXT:     <key>message</key>
587// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
588// CHECK-NEXT:    </dict>
589// CHECK-NEXT:   </array>
590// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
591// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
592// CHECK-NEXT:   <key>type</key><string>Generics</string>
593// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
594// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
595// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>3c9499ea9f5adc148d5c4b684e3dcc5a</string>
596// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
597// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErased</string>
598// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
599// CHECK-NEXT:  <key>location</key>
600// CHECK-NEXT:  <dict>
601// CHECK-NEXT:   <key>line</key><integer>94</integer>
602// CHECK-NEXT:   <key>col</key><integer>3</integer>
603// CHECK-NEXT:   <key>file</key><integer>0</integer>
604// CHECK-NEXT:  </dict>
605// CHECK-NEXT:  </dict>
606// CHECK-NEXT:  <dict>
607// CHECK-NEXT:   <key>path</key>
608// CHECK-NEXT:   <array>
609// CHECK-NEXT:    <dict>
610// CHECK-NEXT:     <key>kind</key><string>event</string>
611// CHECK-NEXT:     <key>location</key>
612// CHECK-NEXT:     <dict>
613// CHECK-NEXT:      <key>line</key><integer>92</integer>
614// CHECK-NEXT:      <key>col</key><integer>7</integer>
615// CHECK-NEXT:      <key>file</key><integer>0</integer>
616// CHECK-NEXT:     </dict>
617// CHECK-NEXT:     <key>ranges</key>
618// CHECK-NEXT:     <array>
619// CHECK-NEXT:       <array>
620// CHECK-NEXT:        <dict>
621// CHECK-NEXT:         <key>line</key><integer>92</integer>
622// CHECK-NEXT:         <key>col</key><integer>7</integer>
623// CHECK-NEXT:         <key>file</key><integer>0</integer>
624// CHECK-NEXT:        </dict>
625// CHECK-NEXT:        <dict>
626// CHECK-NEXT:         <key>line</key><integer>92</integer>
627// CHECK-NEXT:         <key>col</key><integer>7</integer>
628// CHECK-NEXT:         <key>file</key><integer>0</integer>
629// CHECK-NEXT:        </dict>
630// CHECK-NEXT:       </array>
631// CHECK-NEXT:     </array>
632// CHECK-NEXT:     <key>depth</key><integer>0</integer>
633// CHECK-NEXT:     <key>extended_message</key>
634// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
635// CHECK-NEXT:     <key>message</key>
636// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
637// CHECK-NEXT:    </dict>
638// CHECK-NEXT:    <dict>
639// CHECK-NEXT:     <key>kind</key><string>control</string>
640// CHECK-NEXT:     <key>edges</key>
641// CHECK-NEXT:      <array>
642// CHECK-NEXT:       <dict>
643// CHECK-NEXT:        <key>start</key>
644// CHECK-NEXT:         <array>
645// CHECK-NEXT:          <dict>
646// CHECK-NEXT:           <key>line</key><integer>92</integer>
647// CHECK-NEXT:           <key>col</key><integer>3</integer>
648// CHECK-NEXT:           <key>file</key><integer>0</integer>
649// CHECK-NEXT:          </dict>
650// CHECK-NEXT:          <dict>
651// CHECK-NEXT:           <key>line</key><integer>92</integer>
652// CHECK-NEXT:           <key>col</key><integer>3</integer>
653// CHECK-NEXT:           <key>file</key><integer>0</integer>
654// CHECK-NEXT:          </dict>
655// CHECK-NEXT:         </array>
656// CHECK-NEXT:        <key>end</key>
657// CHECK-NEXT:         <array>
658// CHECK-NEXT:          <dict>
659// CHECK-NEXT:           <key>line</key><integer>96</integer>
660// CHECK-NEXT:           <key>col</key><integer>3</integer>
661// CHECK-NEXT:           <key>file</key><integer>0</integer>
662// CHECK-NEXT:          </dict>
663// CHECK-NEXT:          <dict>
664// CHECK-NEXT:           <key>line</key><integer>96</integer>
665// CHECK-NEXT:           <key>col</key><integer>9</integer>
666// CHECK-NEXT:           <key>file</key><integer>0</integer>
667// CHECK-NEXT:          </dict>
668// CHECK-NEXT:         </array>
669// CHECK-NEXT:       </dict>
670// CHECK-NEXT:      </array>
671// CHECK-NEXT:    </dict>
672// CHECK-NEXT:    <dict>
673// CHECK-NEXT:     <key>kind</key><string>control</string>
674// CHECK-NEXT:     <key>edges</key>
675// CHECK-NEXT:      <array>
676// CHECK-NEXT:       <dict>
677// CHECK-NEXT:        <key>start</key>
678// CHECK-NEXT:         <array>
679// CHECK-NEXT:          <dict>
680// CHECK-NEXT:           <key>line</key><integer>96</integer>
681// CHECK-NEXT:           <key>col</key><integer>3</integer>
682// CHECK-NEXT:           <key>file</key><integer>0</integer>
683// CHECK-NEXT:          </dict>
684// CHECK-NEXT:          <dict>
685// CHECK-NEXT:           <key>line</key><integer>96</integer>
686// CHECK-NEXT:           <key>col</key><integer>9</integer>
687// CHECK-NEXT:           <key>file</key><integer>0</integer>
688// CHECK-NEXT:          </dict>
689// CHECK-NEXT:         </array>
690// CHECK-NEXT:        <key>end</key>
691// CHECK-NEXT:         <array>
692// CHECK-NEXT:          <dict>
693// CHECK-NEXT:           <key>line</key><integer>96</integer>
694// CHECK-NEXT:           <key>col</key><integer>11</integer>
695// CHECK-NEXT:           <key>file</key><integer>0</integer>
696// CHECK-NEXT:          </dict>
697// CHECK-NEXT:          <dict>
698// CHECK-NEXT:           <key>line</key><integer>96</integer>
699// CHECK-NEXT:           <key>col</key><integer>11</integer>
700// CHECK-NEXT:           <key>file</key><integer>0</integer>
701// CHECK-NEXT:          </dict>
702// CHECK-NEXT:         </array>
703// CHECK-NEXT:       </dict>
704// CHECK-NEXT:      </array>
705// CHECK-NEXT:    </dict>
706// CHECK-NEXT:    <dict>
707// CHECK-NEXT:     <key>kind</key><string>event</string>
708// CHECK-NEXT:     <key>location</key>
709// CHECK-NEXT:     <dict>
710// CHECK-NEXT:      <key>line</key><integer>96</integer>
711// CHECK-NEXT:      <key>col</key><integer>11</integer>
712// CHECK-NEXT:      <key>file</key><integer>0</integer>
713// CHECK-NEXT:     </dict>
714// CHECK-NEXT:     <key>ranges</key>
715// CHECK-NEXT:     <array>
716// CHECK-NEXT:       <array>
717// CHECK-NEXT:        <dict>
718// CHECK-NEXT:         <key>line</key><integer>96</integer>
719// CHECK-NEXT:         <key>col</key><integer>11</integer>
720// CHECK-NEXT:         <key>file</key><integer>0</integer>
721// CHECK-NEXT:        </dict>
722// CHECK-NEXT:        <dict>
723// CHECK-NEXT:         <key>line</key><integer>96</integer>
724// CHECK-NEXT:         <key>col</key><integer>11</integer>
725// CHECK-NEXT:         <key>file</key><integer>0</integer>
726// CHECK-NEXT:        </dict>
727// CHECK-NEXT:       </array>
728// CHECK-NEXT:     </array>
729// CHECK-NEXT:     <key>depth</key><integer>0</integer>
730// CHECK-NEXT:     <key>extended_message</key>
731// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
732// CHECK-NEXT:     <key>message</key>
733// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
734// CHECK-NEXT:    </dict>
735// CHECK-NEXT:   </array>
736// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
737// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
738// CHECK-NEXT:   <key>type</key><string>Generics</string>
739// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
740// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
741// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>1d8497465a98d7cc2067a916e217d5bc</string>
742// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
743// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErased</string>
744// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
745// CHECK-NEXT:  <key>location</key>
746// CHECK-NEXT:  <dict>
747// CHECK-NEXT:   <key>line</key><integer>96</integer>
748// CHECK-NEXT:   <key>col</key><integer>11</integer>
749// CHECK-NEXT:   <key>file</key><integer>0</integer>
750// CHECK-NEXT:  </dict>
751// CHECK-NEXT:  </dict>
752// CHECK-NEXT:  <dict>
753// CHECK-NEXT:   <key>path</key>
754// CHECK-NEXT:   <array>
755// CHECK-NEXT:    <dict>
756// CHECK-NEXT:     <key>kind</key><string>control</string>
757// CHECK-NEXT:     <key>edges</key>
758// CHECK-NEXT:      <array>
759// CHECK-NEXT:       <dict>
760// CHECK-NEXT:        <key>start</key>
761// CHECK-NEXT:         <array>
762// CHECK-NEXT:          <dict>
763// CHECK-NEXT:           <key>line</key><integer>100</integer>
764// CHECK-NEXT:           <key>col</key><integer>3</integer>
765// CHECK-NEXT:           <key>file</key><integer>0</integer>
766// CHECK-NEXT:          </dict>
767// CHECK-NEXT:          <dict>
768// CHECK-NEXT:           <key>line</key><integer>100</integer>
769// CHECK-NEXT:           <key>col</key><integer>9</integer>
770// CHECK-NEXT:           <key>file</key><integer>0</integer>
771// CHECK-NEXT:          </dict>
772// CHECK-NEXT:         </array>
773// CHECK-NEXT:        <key>end</key>
774// CHECK-NEXT:         <array>
775// CHECK-NEXT:          <dict>
776// CHECK-NEXT:           <key>line</key><integer>100</integer>
777// CHECK-NEXT:           <key>col</key><integer>28</integer>
778// CHECK-NEXT:           <key>file</key><integer>0</integer>
779// CHECK-NEXT:          </dict>
780// CHECK-NEXT:          <dict>
781// CHECK-NEXT:           <key>line</key><integer>100</integer>
782// CHECK-NEXT:           <key>col</key><integer>40</integer>
783// CHECK-NEXT:           <key>file</key><integer>0</integer>
784// CHECK-NEXT:          </dict>
785// CHECK-NEXT:         </array>
786// CHECK-NEXT:       </dict>
787// CHECK-NEXT:      </array>
788// CHECK-NEXT:    </dict>
789// CHECK-NEXT:    <dict>
790// CHECK-NEXT:     <key>kind</key><string>event</string>
791// CHECK-NEXT:     <key>location</key>
792// CHECK-NEXT:     <dict>
793// CHECK-NEXT:      <key>line</key><integer>100</integer>
794// CHECK-NEXT:      <key>col</key><integer>28</integer>
795// CHECK-NEXT:      <key>file</key><integer>0</integer>
796// CHECK-NEXT:     </dict>
797// CHECK-NEXT:     <key>ranges</key>
798// CHECK-NEXT:     <array>
799// CHECK-NEXT:       <array>
800// CHECK-NEXT:        <dict>
801// CHECK-NEXT:         <key>line</key><integer>100</integer>
802// CHECK-NEXT:         <key>col</key><integer>28</integer>
803// CHECK-NEXT:         <key>file</key><integer>0</integer>
804// CHECK-NEXT:        </dict>
805// CHECK-NEXT:        <dict>
806// CHECK-NEXT:         <key>line</key><integer>100</integer>
807// CHECK-NEXT:         <key>col</key><integer>42</integer>
808// CHECK-NEXT:         <key>file</key><integer>0</integer>
809// CHECK-NEXT:        </dict>
810// CHECK-NEXT:       </array>
811// CHECK-NEXT:     </array>
812// CHECK-NEXT:     <key>depth</key><integer>0</integer>
813// CHECK-NEXT:     <key>extended_message</key>
814// CHECK-NEXT:     <string>Calling &apos;getTypedStuff&apos;</string>
815// CHECK-NEXT:     <key>message</key>
816// CHECK-NEXT:     <string>Calling &apos;getTypedStuff&apos;</string>
817// CHECK-NEXT:    </dict>
818// CHECK-NEXT:    <dict>
819// CHECK-NEXT:     <key>kind</key><string>event</string>
820// CHECK-NEXT:     <key>location</key>
821// CHECK-NEXT:     <dict>
822// CHECK-NEXT:      <key>line</key><integer>79</integer>
823// CHECK-NEXT:      <key>col</key><integer>1</integer>
824// CHECK-NEXT:      <key>file</key><integer>0</integer>
825// CHECK-NEXT:     </dict>
826// CHECK-NEXT:     <key>depth</key><integer>1</integer>
827// CHECK-NEXT:     <key>extended_message</key>
828// CHECK-NEXT:     <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
829// CHECK-NEXT:     <key>message</key>
830// CHECK-NEXT:     <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
831// CHECK-NEXT:    </dict>
832// CHECK-NEXT:    <dict>
833// CHECK-NEXT:     <key>kind</key><string>control</string>
834// CHECK-NEXT:     <key>edges</key>
835// CHECK-NEXT:      <array>
836// CHECK-NEXT:       <dict>
837// CHECK-NEXT:        <key>start</key>
838// CHECK-NEXT:         <array>
839// CHECK-NEXT:          <dict>
840// CHECK-NEXT:           <key>line</key><integer>79</integer>
841// CHECK-NEXT:           <key>col</key><integer>1</integer>
842// CHECK-NEXT:           <key>file</key><integer>0</integer>
843// CHECK-NEXT:          </dict>
844// CHECK-NEXT:          <dict>
845// CHECK-NEXT:           <key>line</key><integer>79</integer>
846// CHECK-NEXT:           <key>col</key><integer>7</integer>
847// CHECK-NEXT:           <key>file</key><integer>0</integer>
848// CHECK-NEXT:          </dict>
849// CHECK-NEXT:         </array>
850// CHECK-NEXT:        <key>end</key>
851// CHECK-NEXT:         <array>
852// CHECK-NEXT:          <dict>
853// CHECK-NEXT:           <key>line</key><integer>80</integer>
854// CHECK-NEXT:           <key>col</key><integer>3</integer>
855// CHECK-NEXT:           <key>file</key><integer>0</integer>
856// CHECK-NEXT:          </dict>
857// CHECK-NEXT:          <dict>
858// CHECK-NEXT:           <key>line</key><integer>80</integer>
859// CHECK-NEXT:           <key>col</key><integer>9</integer>
860// CHECK-NEXT:           <key>file</key><integer>0</integer>
861// CHECK-NEXT:          </dict>
862// CHECK-NEXT:         </array>
863// CHECK-NEXT:       </dict>
864// CHECK-NEXT:      </array>
865// CHECK-NEXT:    </dict>
866// CHECK-NEXT:    <dict>
867// CHECK-NEXT:     <key>kind</key><string>event</string>
868// CHECK-NEXT:     <key>location</key>
869// CHECK-NEXT:     <dict>
870// CHECK-NEXT:      <key>line</key><integer>80</integer>
871// CHECK-NEXT:      <key>col</key><integer>28</integer>
872// CHECK-NEXT:      <key>file</key><integer>0</integer>
873// CHECK-NEXT:     </dict>
874// CHECK-NEXT:     <key>ranges</key>
875// CHECK-NEXT:     <array>
876// CHECK-NEXT:       <array>
877// CHECK-NEXT:        <dict>
878// CHECK-NEXT:         <key>line</key><integer>80</integer>
879// CHECK-NEXT:         <key>col</key><integer>28</integer>
880// CHECK-NEXT:         <key>file</key><integer>0</integer>
881// CHECK-NEXT:        </dict>
882// CHECK-NEXT:        <dict>
883// CHECK-NEXT:         <key>line</key><integer>80</integer>
884// CHECK-NEXT:         <key>col</key><integer>37</integer>
885// CHECK-NEXT:         <key>file</key><integer>0</integer>
886// CHECK-NEXT:        </dict>
887// CHECK-NEXT:       </array>
888// CHECK-NEXT:     </array>
889// CHECK-NEXT:     <key>depth</key><integer>1</integer>
890// CHECK-NEXT:     <key>extended_message</key>
891// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSNumber *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSNumber *&gt; *&apos;)</string>
892// CHECK-NEXT:     <key>message</key>
893// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSNumber *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSNumber *&gt; *&apos;)</string>
894// CHECK-NEXT:    </dict>
895// CHECK-NEXT:    <dict>
896// CHECK-NEXT:     <key>kind</key><string>control</string>
897// CHECK-NEXT:     <key>edges</key>
898// CHECK-NEXT:      <array>
899// CHECK-NEXT:       <dict>
900// CHECK-NEXT:        <key>start</key>
901// CHECK-NEXT:         <array>
902// CHECK-NEXT:          <dict>
903// CHECK-NEXT:           <key>line</key><integer>80</integer>
904// CHECK-NEXT:           <key>col</key><integer>3</integer>
905// CHECK-NEXT:           <key>file</key><integer>0</integer>
906// CHECK-NEXT:          </dict>
907// CHECK-NEXT:          <dict>
908// CHECK-NEXT:           <key>line</key><integer>80</integer>
909// CHECK-NEXT:           <key>col</key><integer>9</integer>
910// CHECK-NEXT:           <key>file</key><integer>0</integer>
911// CHECK-NEXT:          </dict>
912// CHECK-NEXT:         </array>
913// CHECK-NEXT:        <key>end</key>
914// CHECK-NEXT:         <array>
915// CHECK-NEXT:          <dict>
916// CHECK-NEXT:           <key>line</key><integer>81</integer>
917// CHECK-NEXT:           <key>col</key><integer>3</integer>
918// CHECK-NEXT:           <key>file</key><integer>0</integer>
919// CHECK-NEXT:          </dict>
920// CHECK-NEXT:          <dict>
921// CHECK-NEXT:           <key>line</key><integer>81</integer>
922// CHECK-NEXT:           <key>col</key><integer>8</integer>
923// CHECK-NEXT:           <key>file</key><integer>0</integer>
924// CHECK-NEXT:          </dict>
925// CHECK-NEXT:         </array>
926// CHECK-NEXT:       </dict>
927// CHECK-NEXT:      </array>
928// CHECK-NEXT:    </dict>
929// CHECK-NEXT:    <dict>
930// CHECK-NEXT:     <key>kind</key><string>event</string>
931// CHECK-NEXT:     <key>location</key>
932// CHECK-NEXT:     <dict>
933// CHECK-NEXT:      <key>line</key><integer>100</integer>
934// CHECK-NEXT:      <key>col</key><integer>28</integer>
935// CHECK-NEXT:      <key>file</key><integer>0</integer>
936// CHECK-NEXT:     </dict>
937// CHECK-NEXT:     <key>ranges</key>
938// CHECK-NEXT:     <array>
939// CHECK-NEXT:       <array>
940// CHECK-NEXT:        <dict>
941// CHECK-NEXT:         <key>line</key><integer>100</integer>
942// CHECK-NEXT:         <key>col</key><integer>28</integer>
943// CHECK-NEXT:         <key>file</key><integer>0</integer>
944// CHECK-NEXT:        </dict>
945// CHECK-NEXT:        <dict>
946// CHECK-NEXT:         <key>line</key><integer>100</integer>
947// CHECK-NEXT:         <key>col</key><integer>42</integer>
948// CHECK-NEXT:         <key>file</key><integer>0</integer>
949// CHECK-NEXT:        </dict>
950// CHECK-NEXT:       </array>
951// CHECK-NEXT:     </array>
952// CHECK-NEXT:     <key>depth</key><integer>0</integer>
953// CHECK-NEXT:     <key>extended_message</key>
954// CHECK-NEXT:     <string>Returning from &apos;getTypedStuff&apos;</string>
955// CHECK-NEXT:     <key>message</key>
956// CHECK-NEXT:     <string>Returning from &apos;getTypedStuff&apos;</string>
957// CHECK-NEXT:    </dict>
958// CHECK-NEXT:    <dict>
959// CHECK-NEXT:     <key>kind</key><string>event</string>
960// CHECK-NEXT:     <key>location</key>
961// CHECK-NEXT:     <dict>
962// CHECK-NEXT:      <key>line</key><integer>100</integer>
963// CHECK-NEXT:      <key>col</key><integer>28</integer>
964// CHECK-NEXT:      <key>file</key><integer>0</integer>
965// CHECK-NEXT:     </dict>
966// CHECK-NEXT:     <key>ranges</key>
967// CHECK-NEXT:     <array>
968// CHECK-NEXT:       <array>
969// CHECK-NEXT:        <dict>
970// CHECK-NEXT:         <key>line</key><integer>100</integer>
971// CHECK-NEXT:         <key>col</key><integer>28</integer>
972// CHECK-NEXT:         <key>file</key><integer>0</integer>
973// CHECK-NEXT:        </dict>
974// CHECK-NEXT:        <dict>
975// CHECK-NEXT:         <key>line</key><integer>100</integer>
976// CHECK-NEXT:         <key>col</key><integer>42</integer>
977// CHECK-NEXT:         <key>file</key><integer>0</integer>
978// CHECK-NEXT:        </dict>
979// CHECK-NEXT:       </array>
980// CHECK-NEXT:     </array>
981// CHECK-NEXT:     <key>depth</key><integer>0</integer>
982// CHECK-NEXT:     <key>extended_message</key>
983// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
984// CHECK-NEXT:     <key>message</key>
985// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
986// CHECK-NEXT:    </dict>
987// CHECK-NEXT:   </array>
988// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
989// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
990// CHECK-NEXT:   <key>type</key><string>Generics</string>
991// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
992// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
993// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>82c378fdcfcc5c0318d2f3ca46420ec1</string>
994// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
995// CHECK-NEXT:  <key>issue_context</key><string>crossProceduralErasedTypes</string>
996// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>1</string>
997// CHECK-NEXT:  <key>location</key>
998// CHECK-NEXT:  <dict>
999// CHECK-NEXT:   <key>line</key><integer>100</integer>
1000// CHECK-NEXT:   <key>col</key><integer>28</integer>
1001// CHECK-NEXT:   <key>file</key><integer>0</integer>
1002// CHECK-NEXT:  </dict>
1003// CHECK-NEXT:  </dict>
1004// CHECK-NEXT:  <dict>
1005// CHECK-NEXT:   <key>path</key>
1006// CHECK-NEXT:   <array>
1007// CHECK-NEXT:    <dict>
1008// CHECK-NEXT:     <key>kind</key><string>event</string>
1009// CHECK-NEXT:     <key>location</key>
1010// CHECK-NEXT:     <dict>
1011// CHECK-NEXT:      <key>line</key><integer>105</integer>
1012// CHECK-NEXT:      <key>col</key><integer>7</integer>
1013// CHECK-NEXT:      <key>file</key><integer>0</integer>
1014// CHECK-NEXT:     </dict>
1015// CHECK-NEXT:     <key>ranges</key>
1016// CHECK-NEXT:     <array>
1017// CHECK-NEXT:       <array>
1018// CHECK-NEXT:        <dict>
1019// CHECK-NEXT:         <key>line</key><integer>105</integer>
1020// CHECK-NEXT:         <key>col</key><integer>7</integer>
1021// CHECK-NEXT:         <key>file</key><integer>0</integer>
1022// CHECK-NEXT:        </dict>
1023// CHECK-NEXT:        <dict>
1024// CHECK-NEXT:         <key>line</key><integer>105</integer>
1025// CHECK-NEXT:         <key>col</key><integer>7</integer>
1026// CHECK-NEXT:         <key>file</key><integer>0</integer>
1027// CHECK-NEXT:        </dict>
1028// CHECK-NEXT:       </array>
1029// CHECK-NEXT:     </array>
1030// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1031// CHECK-NEXT:     <key>extended_message</key>
1032// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1033// CHECK-NEXT:     <key>message</key>
1034// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1035// CHECK-NEXT:    </dict>
1036// CHECK-NEXT:    <dict>
1037// CHECK-NEXT:     <key>kind</key><string>control</string>
1038// CHECK-NEXT:     <key>edges</key>
1039// CHECK-NEXT:      <array>
1040// CHECK-NEXT:       <dict>
1041// CHECK-NEXT:        <key>start</key>
1042// CHECK-NEXT:         <array>
1043// CHECK-NEXT:          <dict>
1044// CHECK-NEXT:           <key>line</key><integer>105</integer>
1045// CHECK-NEXT:           <key>col</key><integer>3</integer>
1046// CHECK-NEXT:           <key>file</key><integer>0</integer>
1047// CHECK-NEXT:          </dict>
1048// CHECK-NEXT:          <dict>
1049// CHECK-NEXT:           <key>line</key><integer>105</integer>
1050// CHECK-NEXT:           <key>col</key><integer>3</integer>
1051// CHECK-NEXT:           <key>file</key><integer>0</integer>
1052// CHECK-NEXT:          </dict>
1053// CHECK-NEXT:         </array>
1054// CHECK-NEXT:        <key>end</key>
1055// CHECK-NEXT:         <array>
1056// CHECK-NEXT:          <dict>
1057// CHECK-NEXT:           <key>line</key><integer>106</integer>
1058// CHECK-NEXT:           <key>col</key><integer>3</integer>
1059// CHECK-NEXT:           <key>file</key><integer>0</integer>
1060// CHECK-NEXT:          </dict>
1061// CHECK-NEXT:          <dict>
1062// CHECK-NEXT:           <key>line</key><integer>106</integer>
1063// CHECK-NEXT:           <key>col</key><integer>3</integer>
1064// CHECK-NEXT:           <key>file</key><integer>0</integer>
1065// CHECK-NEXT:          </dict>
1066// CHECK-NEXT:         </array>
1067// CHECK-NEXT:       </dict>
1068// CHECK-NEXT:      </array>
1069// CHECK-NEXT:    </dict>
1070// CHECK-NEXT:    <dict>
1071// CHECK-NEXT:     <key>kind</key><string>event</string>
1072// CHECK-NEXT:     <key>location</key>
1073// CHECK-NEXT:     <dict>
1074// CHECK-NEXT:      <key>line</key><integer>106</integer>
1075// CHECK-NEXT:      <key>col</key><integer>3</integer>
1076// CHECK-NEXT:      <key>file</key><integer>0</integer>
1077// CHECK-NEXT:     </dict>
1078// CHECK-NEXT:     <key>ranges</key>
1079// CHECK-NEXT:     <array>
1080// CHECK-NEXT:       <array>
1081// CHECK-NEXT:        <dict>
1082// CHECK-NEXT:         <key>line</key><integer>106</integer>
1083// CHECK-NEXT:         <key>col</key><integer>16</integer>
1084// CHECK-NEXT:         <key>file</key><integer>0</integer>
1085// CHECK-NEXT:        </dict>
1086// CHECK-NEXT:        <dict>
1087// CHECK-NEXT:         <key>line</key><integer>106</integer>
1088// CHECK-NEXT:         <key>col</key><integer>38</integer>
1089// CHECK-NEXT:         <key>file</key><integer>0</integer>
1090// CHECK-NEXT:        </dict>
1091// CHECK-NEXT:       </array>
1092// CHECK-NEXT:     </array>
1093// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1094// CHECK-NEXT:     <key>extended_message</key>
1095// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1096// CHECK-NEXT:     <key>message</key>
1097// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1098// CHECK-NEXT:    </dict>
1099// CHECK-NEXT:   </array>
1100// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1101// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1102// CHECK-NEXT:   <key>type</key><string>Generics</string>
1103// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1104// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1105// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>97a49604cb3d640307a104f14b6d950d</string>
1106// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1107// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1108// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
1109// CHECK-NEXT:  <key>location</key>
1110// CHECK-NEXT:  <dict>
1111// CHECK-NEXT:   <key>line</key><integer>106</integer>
1112// CHECK-NEXT:   <key>col</key><integer>3</integer>
1113// CHECK-NEXT:   <key>file</key><integer>0</integer>
1114// CHECK-NEXT:  </dict>
1115// CHECK-NEXT:  </dict>
1116// CHECK-NEXT:  <dict>
1117// CHECK-NEXT:   <key>path</key>
1118// CHECK-NEXT:   <array>
1119// CHECK-NEXT:    <dict>
1120// CHECK-NEXT:     <key>kind</key><string>event</string>
1121// CHECK-NEXT:     <key>location</key>
1122// CHECK-NEXT:     <dict>
1123// CHECK-NEXT:      <key>line</key><integer>105</integer>
1124// CHECK-NEXT:      <key>col</key><integer>7</integer>
1125// CHECK-NEXT:      <key>file</key><integer>0</integer>
1126// CHECK-NEXT:     </dict>
1127// CHECK-NEXT:     <key>ranges</key>
1128// CHECK-NEXT:     <array>
1129// CHECK-NEXT:       <array>
1130// CHECK-NEXT:        <dict>
1131// CHECK-NEXT:         <key>line</key><integer>105</integer>
1132// CHECK-NEXT:         <key>col</key><integer>7</integer>
1133// CHECK-NEXT:         <key>file</key><integer>0</integer>
1134// CHECK-NEXT:        </dict>
1135// CHECK-NEXT:        <dict>
1136// CHECK-NEXT:         <key>line</key><integer>105</integer>
1137// CHECK-NEXT:         <key>col</key><integer>7</integer>
1138// CHECK-NEXT:         <key>file</key><integer>0</integer>
1139// CHECK-NEXT:        </dict>
1140// CHECK-NEXT:       </array>
1141// CHECK-NEXT:     </array>
1142// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1143// CHECK-NEXT:     <key>extended_message</key>
1144// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1145// CHECK-NEXT:     <key>message</key>
1146// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1147// CHECK-NEXT:    </dict>
1148// CHECK-NEXT:    <dict>
1149// CHECK-NEXT:     <key>kind</key><string>control</string>
1150// CHECK-NEXT:     <key>edges</key>
1151// CHECK-NEXT:      <array>
1152// CHECK-NEXT:       <dict>
1153// CHECK-NEXT:        <key>start</key>
1154// CHECK-NEXT:         <array>
1155// CHECK-NEXT:          <dict>
1156// CHECK-NEXT:           <key>line</key><integer>105</integer>
1157// CHECK-NEXT:           <key>col</key><integer>3</integer>
1158// CHECK-NEXT:           <key>file</key><integer>0</integer>
1159// CHECK-NEXT:          </dict>
1160// CHECK-NEXT:          <dict>
1161// CHECK-NEXT:           <key>line</key><integer>105</integer>
1162// CHECK-NEXT:           <key>col</key><integer>3</integer>
1163// CHECK-NEXT:           <key>file</key><integer>0</integer>
1164// CHECK-NEXT:          </dict>
1165// CHECK-NEXT:         </array>
1166// CHECK-NEXT:        <key>end</key>
1167// CHECK-NEXT:         <array>
1168// CHECK-NEXT:          <dict>
1169// CHECK-NEXT:           <key>line</key><integer>108</integer>
1170// CHECK-NEXT:           <key>col</key><integer>3</integer>
1171// CHECK-NEXT:           <key>file</key><integer>0</integer>
1172// CHECK-NEXT:          </dict>
1173// CHECK-NEXT:          <dict>
1174// CHECK-NEXT:           <key>line</key><integer>108</integer>
1175// CHECK-NEXT:           <key>col</key><integer>9</integer>
1176// CHECK-NEXT:           <key>file</key><integer>0</integer>
1177// CHECK-NEXT:          </dict>
1178// CHECK-NEXT:         </array>
1179// CHECK-NEXT:       </dict>
1180// CHECK-NEXT:      </array>
1181// CHECK-NEXT:    </dict>
1182// CHECK-NEXT:    <dict>
1183// CHECK-NEXT:     <key>kind</key><string>control</string>
1184// CHECK-NEXT:     <key>edges</key>
1185// CHECK-NEXT:      <array>
1186// CHECK-NEXT:       <dict>
1187// CHECK-NEXT:        <key>start</key>
1188// CHECK-NEXT:         <array>
1189// CHECK-NEXT:          <dict>
1190// CHECK-NEXT:           <key>line</key><integer>108</integer>
1191// CHECK-NEXT:           <key>col</key><integer>3</integer>
1192// CHECK-NEXT:           <key>file</key><integer>0</integer>
1193// CHECK-NEXT:          </dict>
1194// CHECK-NEXT:          <dict>
1195// CHECK-NEXT:           <key>line</key><integer>108</integer>
1196// CHECK-NEXT:           <key>col</key><integer>9</integer>
1197// CHECK-NEXT:           <key>file</key><integer>0</integer>
1198// CHECK-NEXT:          </dict>
1199// CHECK-NEXT:         </array>
1200// CHECK-NEXT:        <key>end</key>
1201// CHECK-NEXT:         <array>
1202// CHECK-NEXT:          <dict>
1203// CHECK-NEXT:           <key>line</key><integer>108</integer>
1204// CHECK-NEXT:           <key>col</key><integer>11</integer>
1205// CHECK-NEXT:           <key>file</key><integer>0</integer>
1206// CHECK-NEXT:          </dict>
1207// CHECK-NEXT:          <dict>
1208// CHECK-NEXT:           <key>line</key><integer>108</integer>
1209// CHECK-NEXT:           <key>col</key><integer>11</integer>
1210// CHECK-NEXT:           <key>file</key><integer>0</integer>
1211// CHECK-NEXT:          </dict>
1212// CHECK-NEXT:         </array>
1213// CHECK-NEXT:       </dict>
1214// CHECK-NEXT:      </array>
1215// CHECK-NEXT:    </dict>
1216// CHECK-NEXT:    <dict>
1217// CHECK-NEXT:     <key>kind</key><string>event</string>
1218// CHECK-NEXT:     <key>location</key>
1219// CHECK-NEXT:     <dict>
1220// CHECK-NEXT:      <key>line</key><integer>108</integer>
1221// CHECK-NEXT:      <key>col</key><integer>11</integer>
1222// CHECK-NEXT:      <key>file</key><integer>0</integer>
1223// CHECK-NEXT:     </dict>
1224// CHECK-NEXT:     <key>ranges</key>
1225// CHECK-NEXT:     <array>
1226// CHECK-NEXT:       <array>
1227// CHECK-NEXT:        <dict>
1228// CHECK-NEXT:         <key>line</key><integer>108</integer>
1229// CHECK-NEXT:         <key>col</key><integer>11</integer>
1230// CHECK-NEXT:         <key>file</key><integer>0</integer>
1231// CHECK-NEXT:        </dict>
1232// CHECK-NEXT:        <dict>
1233// CHECK-NEXT:         <key>line</key><integer>108</integer>
1234// CHECK-NEXT:         <key>col</key><integer>11</integer>
1235// CHECK-NEXT:         <key>file</key><integer>0</integer>
1236// CHECK-NEXT:        </dict>
1237// CHECK-NEXT:       </array>
1238// CHECK-NEXT:     </array>
1239// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1240// CHECK-NEXT:     <key>extended_message</key>
1241// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1242// CHECK-NEXT:     <key>message</key>
1243// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1244// CHECK-NEXT:    </dict>
1245// CHECK-NEXT:   </array>
1246// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1247// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1248// CHECK-NEXT:   <key>type</key><string>Generics</string>
1249// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1250// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1251// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>b358a659d36c93a9fba593cf6d866a2b</string>
1252// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1253// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1254// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
1255// CHECK-NEXT:  <key>location</key>
1256// CHECK-NEXT:  <dict>
1257// CHECK-NEXT:   <key>line</key><integer>108</integer>
1258// CHECK-NEXT:   <key>col</key><integer>11</integer>
1259// CHECK-NEXT:   <key>file</key><integer>0</integer>
1260// CHECK-NEXT:  </dict>
1261// CHECK-NEXT:  </dict>
1262// CHECK-NEXT:  <dict>
1263// CHECK-NEXT:   <key>path</key>
1264// CHECK-NEXT:   <array>
1265// CHECK-NEXT:    <dict>
1266// CHECK-NEXT:     <key>kind</key><string>event</string>
1267// CHECK-NEXT:     <key>location</key>
1268// CHECK-NEXT:     <dict>
1269// CHECK-NEXT:      <key>line</key><integer>112</integer>
1270// CHECK-NEXT:      <key>col</key><integer>7</integer>
1271// CHECK-NEXT:      <key>file</key><integer>0</integer>
1272// CHECK-NEXT:     </dict>
1273// CHECK-NEXT:     <key>ranges</key>
1274// CHECK-NEXT:     <array>
1275// CHECK-NEXT:       <array>
1276// CHECK-NEXT:        <dict>
1277// CHECK-NEXT:         <key>line</key><integer>112</integer>
1278// CHECK-NEXT:         <key>col</key><integer>7</integer>
1279// CHECK-NEXT:         <key>file</key><integer>0</integer>
1280// CHECK-NEXT:        </dict>
1281// CHECK-NEXT:        <dict>
1282// CHECK-NEXT:         <key>line</key><integer>112</integer>
1283// CHECK-NEXT:         <key>col</key><integer>7</integer>
1284// CHECK-NEXT:         <key>file</key><integer>0</integer>
1285// CHECK-NEXT:        </dict>
1286// CHECK-NEXT:       </array>
1287// CHECK-NEXT:     </array>
1288// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1289// CHECK-NEXT:     <key>extended_message</key>
1290// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1291// CHECK-NEXT:     <key>message</key>
1292// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1293// CHECK-NEXT:    </dict>
1294// CHECK-NEXT:    <dict>
1295// CHECK-NEXT:     <key>kind</key><string>control</string>
1296// CHECK-NEXT:     <key>edges</key>
1297// CHECK-NEXT:      <array>
1298// CHECK-NEXT:       <dict>
1299// CHECK-NEXT:        <key>start</key>
1300// CHECK-NEXT:         <array>
1301// CHECK-NEXT:          <dict>
1302// CHECK-NEXT:           <key>line</key><integer>112</integer>
1303// CHECK-NEXT:           <key>col</key><integer>3</integer>
1304// CHECK-NEXT:           <key>file</key><integer>0</integer>
1305// CHECK-NEXT:          </dict>
1306// CHECK-NEXT:          <dict>
1307// CHECK-NEXT:           <key>line</key><integer>112</integer>
1308// CHECK-NEXT:           <key>col</key><integer>3</integer>
1309// CHECK-NEXT:           <key>file</key><integer>0</integer>
1310// CHECK-NEXT:          </dict>
1311// CHECK-NEXT:         </array>
1312// CHECK-NEXT:        <key>end</key>
1313// CHECK-NEXT:         <array>
1314// CHECK-NEXT:          <dict>
1315// CHECK-NEXT:           <key>line</key><integer>113</integer>
1316// CHECK-NEXT:           <key>col</key><integer>3</integer>
1317// CHECK-NEXT:           <key>file</key><integer>0</integer>
1318// CHECK-NEXT:          </dict>
1319// CHECK-NEXT:          <dict>
1320// CHECK-NEXT:           <key>line</key><integer>113</integer>
1321// CHECK-NEXT:           <key>col</key><integer>3</integer>
1322// CHECK-NEXT:           <key>file</key><integer>0</integer>
1323// CHECK-NEXT:          </dict>
1324// CHECK-NEXT:         </array>
1325// CHECK-NEXT:       </dict>
1326// CHECK-NEXT:      </array>
1327// CHECK-NEXT:    </dict>
1328// CHECK-NEXT:    <dict>
1329// CHECK-NEXT:     <key>kind</key><string>event</string>
1330// CHECK-NEXT:     <key>location</key>
1331// CHECK-NEXT:     <dict>
1332// CHECK-NEXT:      <key>line</key><integer>113</integer>
1333// CHECK-NEXT:      <key>col</key><integer>3</integer>
1334// CHECK-NEXT:      <key>file</key><integer>0</integer>
1335// CHECK-NEXT:     </dict>
1336// CHECK-NEXT:     <key>ranges</key>
1337// CHECK-NEXT:     <array>
1338// CHECK-NEXT:       <array>
1339// CHECK-NEXT:        <dict>
1340// CHECK-NEXT:         <key>line</key><integer>113</integer>
1341// CHECK-NEXT:         <key>col</key><integer>16</integer>
1342// CHECK-NEXT:         <key>file</key><integer>0</integer>
1343// CHECK-NEXT:        </dict>
1344// CHECK-NEXT:        <dict>
1345// CHECK-NEXT:         <key>line</key><integer>113</integer>
1346// CHECK-NEXT:         <key>col</key><integer>38</integer>
1347// CHECK-NEXT:         <key>file</key><integer>0</integer>
1348// CHECK-NEXT:        </dict>
1349// CHECK-NEXT:       </array>
1350// CHECK-NEXT:     </array>
1351// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1352// CHECK-NEXT:     <key>extended_message</key>
1353// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1354// CHECK-NEXT:     <key>message</key>
1355// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1356// CHECK-NEXT:    </dict>
1357// CHECK-NEXT:   </array>
1358// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1359// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1360// CHECK-NEXT:   <key>type</key><string>Generics</string>
1361// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1362// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1363// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a57d9309397250421e9b96afe80c2045</string>
1364// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1365// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1366// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
1367// CHECK-NEXT:  <key>location</key>
1368// CHECK-NEXT:  <dict>
1369// CHECK-NEXT:   <key>line</key><integer>113</integer>
1370// CHECK-NEXT:   <key>col</key><integer>3</integer>
1371// CHECK-NEXT:   <key>file</key><integer>0</integer>
1372// CHECK-NEXT:  </dict>
1373// CHECK-NEXT:  </dict>
1374// CHECK-NEXT:  <dict>
1375// CHECK-NEXT:   <key>path</key>
1376// CHECK-NEXT:   <array>
1377// CHECK-NEXT:    <dict>
1378// CHECK-NEXT:     <key>kind</key><string>event</string>
1379// CHECK-NEXT:     <key>location</key>
1380// CHECK-NEXT:     <dict>
1381// CHECK-NEXT:      <key>line</key><integer>112</integer>
1382// CHECK-NEXT:      <key>col</key><integer>7</integer>
1383// CHECK-NEXT:      <key>file</key><integer>0</integer>
1384// CHECK-NEXT:     </dict>
1385// CHECK-NEXT:     <key>ranges</key>
1386// CHECK-NEXT:     <array>
1387// CHECK-NEXT:       <array>
1388// CHECK-NEXT:        <dict>
1389// CHECK-NEXT:         <key>line</key><integer>112</integer>
1390// CHECK-NEXT:         <key>col</key><integer>7</integer>
1391// CHECK-NEXT:         <key>file</key><integer>0</integer>
1392// CHECK-NEXT:        </dict>
1393// CHECK-NEXT:        <dict>
1394// CHECK-NEXT:         <key>line</key><integer>112</integer>
1395// CHECK-NEXT:         <key>col</key><integer>7</integer>
1396// CHECK-NEXT:         <key>file</key><integer>0</integer>
1397// CHECK-NEXT:        </dict>
1398// CHECK-NEXT:       </array>
1399// CHECK-NEXT:     </array>
1400// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1401// CHECK-NEXT:     <key>extended_message</key>
1402// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1403// CHECK-NEXT:     <key>message</key>
1404// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1405// CHECK-NEXT:    </dict>
1406// CHECK-NEXT:    <dict>
1407// CHECK-NEXT:     <key>kind</key><string>control</string>
1408// CHECK-NEXT:     <key>edges</key>
1409// CHECK-NEXT:      <array>
1410// CHECK-NEXT:       <dict>
1411// CHECK-NEXT:        <key>start</key>
1412// CHECK-NEXT:         <array>
1413// CHECK-NEXT:          <dict>
1414// CHECK-NEXT:           <key>line</key><integer>112</integer>
1415// CHECK-NEXT:           <key>col</key><integer>3</integer>
1416// CHECK-NEXT:           <key>file</key><integer>0</integer>
1417// CHECK-NEXT:          </dict>
1418// CHECK-NEXT:          <dict>
1419// CHECK-NEXT:           <key>line</key><integer>112</integer>
1420// CHECK-NEXT:           <key>col</key><integer>3</integer>
1421// CHECK-NEXT:           <key>file</key><integer>0</integer>
1422// CHECK-NEXT:          </dict>
1423// CHECK-NEXT:         </array>
1424// CHECK-NEXT:        <key>end</key>
1425// CHECK-NEXT:         <array>
1426// CHECK-NEXT:          <dict>
1427// CHECK-NEXT:           <key>line</key><integer>115</integer>
1428// CHECK-NEXT:           <key>col</key><integer>3</integer>
1429// CHECK-NEXT:           <key>file</key><integer>0</integer>
1430// CHECK-NEXT:          </dict>
1431// CHECK-NEXT:          <dict>
1432// CHECK-NEXT:           <key>line</key><integer>115</integer>
1433// CHECK-NEXT:           <key>col</key><integer>9</integer>
1434// CHECK-NEXT:           <key>file</key><integer>0</integer>
1435// CHECK-NEXT:          </dict>
1436// CHECK-NEXT:         </array>
1437// CHECK-NEXT:       </dict>
1438// CHECK-NEXT:      </array>
1439// CHECK-NEXT:    </dict>
1440// CHECK-NEXT:    <dict>
1441// CHECK-NEXT:     <key>kind</key><string>control</string>
1442// CHECK-NEXT:     <key>edges</key>
1443// CHECK-NEXT:      <array>
1444// CHECK-NEXT:       <dict>
1445// CHECK-NEXT:        <key>start</key>
1446// CHECK-NEXT:         <array>
1447// CHECK-NEXT:          <dict>
1448// CHECK-NEXT:           <key>line</key><integer>115</integer>
1449// CHECK-NEXT:           <key>col</key><integer>3</integer>
1450// CHECK-NEXT:           <key>file</key><integer>0</integer>
1451// CHECK-NEXT:          </dict>
1452// CHECK-NEXT:          <dict>
1453// CHECK-NEXT:           <key>line</key><integer>115</integer>
1454// CHECK-NEXT:           <key>col</key><integer>9</integer>
1455// CHECK-NEXT:           <key>file</key><integer>0</integer>
1456// CHECK-NEXT:          </dict>
1457// CHECK-NEXT:         </array>
1458// CHECK-NEXT:        <key>end</key>
1459// CHECK-NEXT:         <array>
1460// CHECK-NEXT:          <dict>
1461// CHECK-NEXT:           <key>line</key><integer>115</integer>
1462// CHECK-NEXT:           <key>col</key><integer>11</integer>
1463// CHECK-NEXT:           <key>file</key><integer>0</integer>
1464// CHECK-NEXT:          </dict>
1465// CHECK-NEXT:          <dict>
1466// CHECK-NEXT:           <key>line</key><integer>115</integer>
1467// CHECK-NEXT:           <key>col</key><integer>11</integer>
1468// CHECK-NEXT:           <key>file</key><integer>0</integer>
1469// CHECK-NEXT:          </dict>
1470// CHECK-NEXT:         </array>
1471// CHECK-NEXT:       </dict>
1472// CHECK-NEXT:      </array>
1473// CHECK-NEXT:    </dict>
1474// CHECK-NEXT:    <dict>
1475// CHECK-NEXT:     <key>kind</key><string>event</string>
1476// CHECK-NEXT:     <key>location</key>
1477// CHECK-NEXT:     <dict>
1478// CHECK-NEXT:      <key>line</key><integer>115</integer>
1479// CHECK-NEXT:      <key>col</key><integer>11</integer>
1480// CHECK-NEXT:      <key>file</key><integer>0</integer>
1481// CHECK-NEXT:     </dict>
1482// CHECK-NEXT:     <key>ranges</key>
1483// CHECK-NEXT:     <array>
1484// CHECK-NEXT:       <array>
1485// CHECK-NEXT:        <dict>
1486// CHECK-NEXT:         <key>line</key><integer>115</integer>
1487// CHECK-NEXT:         <key>col</key><integer>11</integer>
1488// CHECK-NEXT:         <key>file</key><integer>0</integer>
1489// CHECK-NEXT:        </dict>
1490// CHECK-NEXT:        <dict>
1491// CHECK-NEXT:         <key>line</key><integer>115</integer>
1492// CHECK-NEXT:         <key>col</key><integer>11</integer>
1493// CHECK-NEXT:         <key>file</key><integer>0</integer>
1494// CHECK-NEXT:        </dict>
1495// CHECK-NEXT:       </array>
1496// CHECK-NEXT:     </array>
1497// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1498// CHECK-NEXT:     <key>extended_message</key>
1499// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1500// CHECK-NEXT:     <key>message</key>
1501// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1502// CHECK-NEXT:    </dict>
1503// CHECK-NEXT:   </array>
1504// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1505// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1506// CHECK-NEXT:   <key>type</key><string>Generics</string>
1507// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1508// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1509// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>3c86c79284e67f28d04b7ef88bedbb8b</string>
1510// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1511// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1512// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
1513// CHECK-NEXT:  <key>location</key>
1514// CHECK-NEXT:  <dict>
1515// CHECK-NEXT:   <key>line</key><integer>115</integer>
1516// CHECK-NEXT:   <key>col</key><integer>11</integer>
1517// CHECK-NEXT:   <key>file</key><integer>0</integer>
1518// CHECK-NEXT:  </dict>
1519// CHECK-NEXT:  </dict>
1520// CHECK-NEXT:  <dict>
1521// CHECK-NEXT:   <key>path</key>
1522// CHECK-NEXT:   <array>
1523// CHECK-NEXT:    <dict>
1524// CHECK-NEXT:     <key>kind</key><string>event</string>
1525// CHECK-NEXT:     <key>location</key>
1526// CHECK-NEXT:     <dict>
1527// CHECK-NEXT:      <key>line</key><integer>120</integer>
1528// CHECK-NEXT:      <key>col</key><integer>7</integer>
1529// CHECK-NEXT:      <key>file</key><integer>0</integer>
1530// CHECK-NEXT:     </dict>
1531// CHECK-NEXT:     <key>ranges</key>
1532// CHECK-NEXT:     <array>
1533// CHECK-NEXT:       <array>
1534// CHECK-NEXT:        <dict>
1535// CHECK-NEXT:         <key>line</key><integer>120</integer>
1536// CHECK-NEXT:         <key>col</key><integer>7</integer>
1537// CHECK-NEXT:         <key>file</key><integer>0</integer>
1538// CHECK-NEXT:        </dict>
1539// CHECK-NEXT:        <dict>
1540// CHECK-NEXT:         <key>line</key><integer>120</integer>
1541// CHECK-NEXT:         <key>col</key><integer>7</integer>
1542// CHECK-NEXT:         <key>file</key><integer>0</integer>
1543// CHECK-NEXT:        </dict>
1544// CHECK-NEXT:       </array>
1545// CHECK-NEXT:     </array>
1546// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1547// CHECK-NEXT:     <key>extended_message</key>
1548// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1549// CHECK-NEXT:     <key>message</key>
1550// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1551// CHECK-NEXT:    </dict>
1552// CHECK-NEXT:    <dict>
1553// CHECK-NEXT:     <key>kind</key><string>control</string>
1554// CHECK-NEXT:     <key>edges</key>
1555// CHECK-NEXT:      <array>
1556// CHECK-NEXT:       <dict>
1557// CHECK-NEXT:        <key>start</key>
1558// CHECK-NEXT:         <array>
1559// CHECK-NEXT:          <dict>
1560// CHECK-NEXT:           <key>line</key><integer>120</integer>
1561// CHECK-NEXT:           <key>col</key><integer>3</integer>
1562// CHECK-NEXT:           <key>file</key><integer>0</integer>
1563// CHECK-NEXT:          </dict>
1564// CHECK-NEXT:          <dict>
1565// CHECK-NEXT:           <key>line</key><integer>120</integer>
1566// CHECK-NEXT:           <key>col</key><integer>3</integer>
1567// CHECK-NEXT:           <key>file</key><integer>0</integer>
1568// CHECK-NEXT:          </dict>
1569// CHECK-NEXT:         </array>
1570// CHECK-NEXT:        <key>end</key>
1571// CHECK-NEXT:         <array>
1572// CHECK-NEXT:          <dict>
1573// CHECK-NEXT:           <key>line</key><integer>121</integer>
1574// CHECK-NEXT:           <key>col</key><integer>3</integer>
1575// CHECK-NEXT:           <key>file</key><integer>0</integer>
1576// CHECK-NEXT:          </dict>
1577// CHECK-NEXT:          <dict>
1578// CHECK-NEXT:           <key>line</key><integer>121</integer>
1579// CHECK-NEXT:           <key>col</key><integer>3</integer>
1580// CHECK-NEXT:           <key>file</key><integer>0</integer>
1581// CHECK-NEXT:          </dict>
1582// CHECK-NEXT:         </array>
1583// CHECK-NEXT:       </dict>
1584// CHECK-NEXT:      </array>
1585// CHECK-NEXT:    </dict>
1586// CHECK-NEXT:    <dict>
1587// CHECK-NEXT:     <key>kind</key><string>control</string>
1588// CHECK-NEXT:     <key>edges</key>
1589// CHECK-NEXT:      <array>
1590// CHECK-NEXT:       <dict>
1591// CHECK-NEXT:        <key>start</key>
1592// CHECK-NEXT:         <array>
1593// CHECK-NEXT:          <dict>
1594// CHECK-NEXT:           <key>line</key><integer>121</integer>
1595// CHECK-NEXT:           <key>col</key><integer>3</integer>
1596// CHECK-NEXT:           <key>file</key><integer>0</integer>
1597// CHECK-NEXT:          </dict>
1598// CHECK-NEXT:          <dict>
1599// CHECK-NEXT:           <key>line</key><integer>121</integer>
1600// CHECK-NEXT:           <key>col</key><integer>3</integer>
1601// CHECK-NEXT:           <key>file</key><integer>0</integer>
1602// CHECK-NEXT:          </dict>
1603// CHECK-NEXT:         </array>
1604// CHECK-NEXT:        <key>end</key>
1605// CHECK-NEXT:         <array>
1606// CHECK-NEXT:          <dict>
1607// CHECK-NEXT:           <key>line</key><integer>121</integer>
1608// CHECK-NEXT:           <key>col</key><integer>7</integer>
1609// CHECK-NEXT:           <key>file</key><integer>0</integer>
1610// CHECK-NEXT:          </dict>
1611// CHECK-NEXT:          <dict>
1612// CHECK-NEXT:           <key>line</key><integer>121</integer>
1613// CHECK-NEXT:           <key>col</key><integer>7</integer>
1614// CHECK-NEXT:           <key>file</key><integer>0</integer>
1615// CHECK-NEXT:          </dict>
1616// CHECK-NEXT:         </array>
1617// CHECK-NEXT:       </dict>
1618// CHECK-NEXT:      </array>
1619// CHECK-NEXT:    </dict>
1620// CHECK-NEXT:    <dict>
1621// CHECK-NEXT:     <key>kind</key><string>event</string>
1622// CHECK-NEXT:     <key>location</key>
1623// CHECK-NEXT:     <dict>
1624// CHECK-NEXT:      <key>line</key><integer>121</integer>
1625// CHECK-NEXT:      <key>col</key><integer>7</integer>
1626// CHECK-NEXT:      <key>file</key><integer>0</integer>
1627// CHECK-NEXT:     </dict>
1628// CHECK-NEXT:     <key>ranges</key>
1629// CHECK-NEXT:     <array>
1630// CHECK-NEXT:       <array>
1631// CHECK-NEXT:        <dict>
1632// CHECK-NEXT:         <key>line</key><integer>121</integer>
1633// CHECK-NEXT:         <key>col</key><integer>7</integer>
1634// CHECK-NEXT:         <key>file</key><integer>0</integer>
1635// CHECK-NEXT:        </dict>
1636// CHECK-NEXT:        <dict>
1637// CHECK-NEXT:         <key>line</key><integer>121</integer>
1638// CHECK-NEXT:         <key>col</key><integer>7</integer>
1639// CHECK-NEXT:         <key>file</key><integer>0</integer>
1640// CHECK-NEXT:        </dict>
1641// CHECK-NEXT:       </array>
1642// CHECK-NEXT:     </array>
1643// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1644// CHECK-NEXT:     <key>extended_message</key>
1645// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1646// CHECK-NEXT:     <key>message</key>
1647// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1648// CHECK-NEXT:    </dict>
1649// CHECK-NEXT:   </array>
1650// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1651// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1652// CHECK-NEXT:   <key>type</key><string>Generics</string>
1653// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1654// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1655// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a669a3ca1da5a07458c0186f43a295cb</string>
1656// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1657// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1658// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
1659// CHECK-NEXT:  <key>location</key>
1660// CHECK-NEXT:  <dict>
1661// CHECK-NEXT:   <key>line</key><integer>121</integer>
1662// CHECK-NEXT:   <key>col</key><integer>7</integer>
1663// CHECK-NEXT:   <key>file</key><integer>0</integer>
1664// CHECK-NEXT:  </dict>
1665// CHECK-NEXT:  </dict>
1666// CHECK-NEXT:  <dict>
1667// CHECK-NEXT:   <key>path</key>
1668// CHECK-NEXT:   <array>
1669// CHECK-NEXT:    <dict>
1670// CHECK-NEXT:     <key>kind</key><string>event</string>
1671// CHECK-NEXT:     <key>location</key>
1672// CHECK-NEXT:     <dict>
1673// CHECK-NEXT:      <key>line</key><integer>120</integer>
1674// CHECK-NEXT:      <key>col</key><integer>7</integer>
1675// CHECK-NEXT:      <key>file</key><integer>0</integer>
1676// CHECK-NEXT:     </dict>
1677// CHECK-NEXT:     <key>ranges</key>
1678// CHECK-NEXT:     <array>
1679// CHECK-NEXT:       <array>
1680// CHECK-NEXT:        <dict>
1681// CHECK-NEXT:         <key>line</key><integer>120</integer>
1682// CHECK-NEXT:         <key>col</key><integer>7</integer>
1683// CHECK-NEXT:         <key>file</key><integer>0</integer>
1684// CHECK-NEXT:        </dict>
1685// CHECK-NEXT:        <dict>
1686// CHECK-NEXT:         <key>line</key><integer>120</integer>
1687// CHECK-NEXT:         <key>col</key><integer>7</integer>
1688// CHECK-NEXT:         <key>file</key><integer>0</integer>
1689// CHECK-NEXT:        </dict>
1690// CHECK-NEXT:       </array>
1691// CHECK-NEXT:     </array>
1692// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1693// CHECK-NEXT:     <key>extended_message</key>
1694// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1695// CHECK-NEXT:     <key>message</key>
1696// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1697// CHECK-NEXT:    </dict>
1698// CHECK-NEXT:    <dict>
1699// CHECK-NEXT:     <key>kind</key><string>control</string>
1700// CHECK-NEXT:     <key>edges</key>
1701// CHECK-NEXT:      <array>
1702// CHECK-NEXT:       <dict>
1703// CHECK-NEXT:        <key>start</key>
1704// CHECK-NEXT:         <array>
1705// CHECK-NEXT:          <dict>
1706// CHECK-NEXT:           <key>line</key><integer>120</integer>
1707// CHECK-NEXT:           <key>col</key><integer>3</integer>
1708// CHECK-NEXT:           <key>file</key><integer>0</integer>
1709// CHECK-NEXT:          </dict>
1710// CHECK-NEXT:          <dict>
1711// CHECK-NEXT:           <key>line</key><integer>120</integer>
1712// CHECK-NEXT:           <key>col</key><integer>3</integer>
1713// CHECK-NEXT:           <key>file</key><integer>0</integer>
1714// CHECK-NEXT:          </dict>
1715// CHECK-NEXT:         </array>
1716// CHECK-NEXT:        <key>end</key>
1717// CHECK-NEXT:         <array>
1718// CHECK-NEXT:          <dict>
1719// CHECK-NEXT:           <key>line</key><integer>122</integer>
1720// CHECK-NEXT:           <key>col</key><integer>3</integer>
1721// CHECK-NEXT:           <key>file</key><integer>0</integer>
1722// CHECK-NEXT:          </dict>
1723// CHECK-NEXT:          <dict>
1724// CHECK-NEXT:           <key>line</key><integer>122</integer>
1725// CHECK-NEXT:           <key>col</key><integer>3</integer>
1726// CHECK-NEXT:           <key>file</key><integer>0</integer>
1727// CHECK-NEXT:          </dict>
1728// CHECK-NEXT:         </array>
1729// CHECK-NEXT:       </dict>
1730// CHECK-NEXT:      </array>
1731// CHECK-NEXT:    </dict>
1732// CHECK-NEXT:    <dict>
1733// CHECK-NEXT:     <key>kind</key><string>event</string>
1734// CHECK-NEXT:     <key>location</key>
1735// CHECK-NEXT:     <dict>
1736// CHECK-NEXT:      <key>line</key><integer>122</integer>
1737// CHECK-NEXT:      <key>col</key><integer>3</integer>
1738// CHECK-NEXT:      <key>file</key><integer>0</integer>
1739// CHECK-NEXT:     </dict>
1740// CHECK-NEXT:     <key>ranges</key>
1741// CHECK-NEXT:     <array>
1742// CHECK-NEXT:       <array>
1743// CHECK-NEXT:        <dict>
1744// CHECK-NEXT:         <key>line</key><integer>122</integer>
1745// CHECK-NEXT:         <key>col</key><integer>16</integer>
1746// CHECK-NEXT:         <key>file</key><integer>0</integer>
1747// CHECK-NEXT:        </dict>
1748// CHECK-NEXT:        <dict>
1749// CHECK-NEXT:         <key>line</key><integer>122</integer>
1750// CHECK-NEXT:         <key>col</key><integer>38</integer>
1751// CHECK-NEXT:         <key>file</key><integer>0</integer>
1752// CHECK-NEXT:        </dict>
1753// CHECK-NEXT:       </array>
1754// CHECK-NEXT:     </array>
1755// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1756// CHECK-NEXT:     <key>extended_message</key>
1757// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1758// CHECK-NEXT:     <key>message</key>
1759// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1760// CHECK-NEXT:    </dict>
1761// CHECK-NEXT:   </array>
1762// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1763// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1764// CHECK-NEXT:   <key>type</key><string>Generics</string>
1765// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1766// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1767// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>7ab912bd3fb03b47dc9489cac0297e2a</string>
1768// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1769// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1770// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
1771// CHECK-NEXT:  <key>location</key>
1772// CHECK-NEXT:  <dict>
1773// CHECK-NEXT:   <key>line</key><integer>122</integer>
1774// CHECK-NEXT:   <key>col</key><integer>3</integer>
1775// CHECK-NEXT:   <key>file</key><integer>0</integer>
1776// CHECK-NEXT:  </dict>
1777// CHECK-NEXT:  </dict>
1778// CHECK-NEXT:  <dict>
1779// CHECK-NEXT:   <key>path</key>
1780// CHECK-NEXT:   <array>
1781// CHECK-NEXT:    <dict>
1782// CHECK-NEXT:     <key>kind</key><string>event</string>
1783// CHECK-NEXT:     <key>location</key>
1784// CHECK-NEXT:     <dict>
1785// CHECK-NEXT:      <key>line</key><integer>120</integer>
1786// CHECK-NEXT:      <key>col</key><integer>7</integer>
1787// CHECK-NEXT:      <key>file</key><integer>0</integer>
1788// CHECK-NEXT:     </dict>
1789// CHECK-NEXT:     <key>ranges</key>
1790// CHECK-NEXT:     <array>
1791// CHECK-NEXT:       <array>
1792// CHECK-NEXT:        <dict>
1793// CHECK-NEXT:         <key>line</key><integer>120</integer>
1794// CHECK-NEXT:         <key>col</key><integer>7</integer>
1795// CHECK-NEXT:         <key>file</key><integer>0</integer>
1796// CHECK-NEXT:        </dict>
1797// CHECK-NEXT:        <dict>
1798// CHECK-NEXT:         <key>line</key><integer>120</integer>
1799// CHECK-NEXT:         <key>col</key><integer>7</integer>
1800// CHECK-NEXT:         <key>file</key><integer>0</integer>
1801// CHECK-NEXT:        </dict>
1802// CHECK-NEXT:       </array>
1803// CHECK-NEXT:     </array>
1804// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1805// CHECK-NEXT:     <key>extended_message</key>
1806// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1807// CHECK-NEXT:     <key>message</key>
1808// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1809// CHECK-NEXT:    </dict>
1810// CHECK-NEXT:    <dict>
1811// CHECK-NEXT:     <key>kind</key><string>control</string>
1812// CHECK-NEXT:     <key>edges</key>
1813// CHECK-NEXT:      <array>
1814// CHECK-NEXT:       <dict>
1815// CHECK-NEXT:        <key>start</key>
1816// CHECK-NEXT:         <array>
1817// CHECK-NEXT:          <dict>
1818// CHECK-NEXT:           <key>line</key><integer>120</integer>
1819// CHECK-NEXT:           <key>col</key><integer>3</integer>
1820// CHECK-NEXT:           <key>file</key><integer>0</integer>
1821// CHECK-NEXT:          </dict>
1822// CHECK-NEXT:          <dict>
1823// CHECK-NEXT:           <key>line</key><integer>120</integer>
1824// CHECK-NEXT:           <key>col</key><integer>3</integer>
1825// CHECK-NEXT:           <key>file</key><integer>0</integer>
1826// CHECK-NEXT:          </dict>
1827// CHECK-NEXT:         </array>
1828// CHECK-NEXT:        <key>end</key>
1829// CHECK-NEXT:         <array>
1830// CHECK-NEXT:          <dict>
1831// CHECK-NEXT:           <key>line</key><integer>124</integer>
1832// CHECK-NEXT:           <key>col</key><integer>3</integer>
1833// CHECK-NEXT:           <key>file</key><integer>0</integer>
1834// CHECK-NEXT:          </dict>
1835// CHECK-NEXT:          <dict>
1836// CHECK-NEXT:           <key>line</key><integer>124</integer>
1837// CHECK-NEXT:           <key>col</key><integer>9</integer>
1838// CHECK-NEXT:           <key>file</key><integer>0</integer>
1839// CHECK-NEXT:          </dict>
1840// CHECK-NEXT:         </array>
1841// CHECK-NEXT:       </dict>
1842// CHECK-NEXT:      </array>
1843// CHECK-NEXT:    </dict>
1844// CHECK-NEXT:    <dict>
1845// CHECK-NEXT:     <key>kind</key><string>control</string>
1846// CHECK-NEXT:     <key>edges</key>
1847// CHECK-NEXT:      <array>
1848// CHECK-NEXT:       <dict>
1849// CHECK-NEXT:        <key>start</key>
1850// CHECK-NEXT:         <array>
1851// CHECK-NEXT:          <dict>
1852// CHECK-NEXT:           <key>line</key><integer>124</integer>
1853// CHECK-NEXT:           <key>col</key><integer>3</integer>
1854// CHECK-NEXT:           <key>file</key><integer>0</integer>
1855// CHECK-NEXT:          </dict>
1856// CHECK-NEXT:          <dict>
1857// CHECK-NEXT:           <key>line</key><integer>124</integer>
1858// CHECK-NEXT:           <key>col</key><integer>9</integer>
1859// CHECK-NEXT:           <key>file</key><integer>0</integer>
1860// CHECK-NEXT:          </dict>
1861// CHECK-NEXT:         </array>
1862// CHECK-NEXT:        <key>end</key>
1863// CHECK-NEXT:         <array>
1864// CHECK-NEXT:          <dict>
1865// CHECK-NEXT:           <key>line</key><integer>124</integer>
1866// CHECK-NEXT:           <key>col</key><integer>11</integer>
1867// CHECK-NEXT:           <key>file</key><integer>0</integer>
1868// CHECK-NEXT:          </dict>
1869// CHECK-NEXT:          <dict>
1870// CHECK-NEXT:           <key>line</key><integer>124</integer>
1871// CHECK-NEXT:           <key>col</key><integer>11</integer>
1872// CHECK-NEXT:           <key>file</key><integer>0</integer>
1873// CHECK-NEXT:          </dict>
1874// CHECK-NEXT:         </array>
1875// CHECK-NEXT:       </dict>
1876// CHECK-NEXT:      </array>
1877// CHECK-NEXT:    </dict>
1878// CHECK-NEXT:    <dict>
1879// CHECK-NEXT:     <key>kind</key><string>event</string>
1880// CHECK-NEXT:     <key>location</key>
1881// CHECK-NEXT:     <dict>
1882// CHECK-NEXT:      <key>line</key><integer>124</integer>
1883// CHECK-NEXT:      <key>col</key><integer>11</integer>
1884// CHECK-NEXT:      <key>file</key><integer>0</integer>
1885// CHECK-NEXT:     </dict>
1886// CHECK-NEXT:     <key>ranges</key>
1887// CHECK-NEXT:     <array>
1888// CHECK-NEXT:       <array>
1889// CHECK-NEXT:        <dict>
1890// CHECK-NEXT:         <key>line</key><integer>124</integer>
1891// CHECK-NEXT:         <key>col</key><integer>11</integer>
1892// CHECK-NEXT:         <key>file</key><integer>0</integer>
1893// CHECK-NEXT:        </dict>
1894// CHECK-NEXT:        <dict>
1895// CHECK-NEXT:         <key>line</key><integer>124</integer>
1896// CHECK-NEXT:         <key>col</key><integer>11</integer>
1897// CHECK-NEXT:         <key>file</key><integer>0</integer>
1898// CHECK-NEXT:        </dict>
1899// CHECK-NEXT:       </array>
1900// CHECK-NEXT:     </array>
1901// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1902// CHECK-NEXT:     <key>extended_message</key>
1903// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1904// CHECK-NEXT:     <key>message</key>
1905// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1906// CHECK-NEXT:    </dict>
1907// CHECK-NEXT:   </array>
1908// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1909// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1910// CHECK-NEXT:   <key>type</key><string>Generics</string>
1911// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1912// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1913// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>0c7b4313b8b720c914b04863f47f971f</string>
1914// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1915// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1916// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
1917// CHECK-NEXT:  <key>location</key>
1918// CHECK-NEXT:  <dict>
1919// CHECK-NEXT:   <key>line</key><integer>124</integer>
1920// CHECK-NEXT:   <key>col</key><integer>11</integer>
1921// CHECK-NEXT:   <key>file</key><integer>0</integer>
1922// CHECK-NEXT:  </dict>
1923// CHECK-NEXT:  </dict>
1924// CHECK-NEXT:  <dict>
1925// CHECK-NEXT:   <key>path</key>
1926// CHECK-NEXT:   <array>
1927// CHECK-NEXT:    <dict>
1928// CHECK-NEXT:     <key>kind</key><string>control</string>
1929// CHECK-NEXT:     <key>edges</key>
1930// CHECK-NEXT:      <array>
1931// CHECK-NEXT:       <dict>
1932// CHECK-NEXT:        <key>start</key>
1933// CHECK-NEXT:         <array>
1934// CHECK-NEXT:          <dict>
1935// CHECK-NEXT:           <key>line</key><integer>129</integer>
1936// CHECK-NEXT:           <key>col</key><integer>3</integer>
1937// CHECK-NEXT:           <key>file</key><integer>0</integer>
1938// CHECK-NEXT:          </dict>
1939// CHECK-NEXT:          <dict>
1940// CHECK-NEXT:           <key>line</key><integer>129</integer>
1941// CHECK-NEXT:           <key>col</key><integer>4</integer>
1942// CHECK-NEXT:           <key>file</key><integer>0</integer>
1943// CHECK-NEXT:          </dict>
1944// CHECK-NEXT:         </array>
1945// CHECK-NEXT:        <key>end</key>
1946// CHECK-NEXT:         <array>
1947// CHECK-NEXT:          <dict>
1948// CHECK-NEXT:           <key>line</key><integer>133</integer>
1949// CHECK-NEXT:           <key>col</key><integer>5</integer>
1950// CHECK-NEXT:           <key>file</key><integer>0</integer>
1951// CHECK-NEXT:          </dict>
1952// CHECK-NEXT:          <dict>
1953// CHECK-NEXT:           <key>line</key><integer>133</integer>
1954// CHECK-NEXT:           <key>col</key><integer>5</integer>
1955// CHECK-NEXT:           <key>file</key><integer>0</integer>
1956// CHECK-NEXT:          </dict>
1957// CHECK-NEXT:         </array>
1958// CHECK-NEXT:       </dict>
1959// CHECK-NEXT:      </array>
1960// CHECK-NEXT:    </dict>
1961// CHECK-NEXT:    <dict>
1962// CHECK-NEXT:     <key>kind</key><string>event</string>
1963// CHECK-NEXT:     <key>location</key>
1964// CHECK-NEXT:     <dict>
1965// CHECK-NEXT:      <key>line</key><integer>133</integer>
1966// CHECK-NEXT:      <key>col</key><integer>9</integer>
1967// CHECK-NEXT:      <key>file</key><integer>0</integer>
1968// CHECK-NEXT:     </dict>
1969// CHECK-NEXT:     <key>ranges</key>
1970// CHECK-NEXT:     <array>
1971// CHECK-NEXT:       <array>
1972// CHECK-NEXT:        <dict>
1973// CHECK-NEXT:         <key>line</key><integer>133</integer>
1974// CHECK-NEXT:         <key>col</key><integer>9</integer>
1975// CHECK-NEXT:         <key>file</key><integer>0</integer>
1976// CHECK-NEXT:        </dict>
1977// CHECK-NEXT:        <dict>
1978// CHECK-NEXT:         <key>line</key><integer>133</integer>
1979// CHECK-NEXT:         <key>col</key><integer>9</integer>
1980// CHECK-NEXT:         <key>file</key><integer>0</integer>
1981// CHECK-NEXT:        </dict>
1982// CHECK-NEXT:       </array>
1983// CHECK-NEXT:     </array>
1984// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1985// CHECK-NEXT:     <key>extended_message</key>
1986// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray *&apos;)</string>
1987// CHECK-NEXT:     <key>message</key>
1988// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray *&apos;)</string>
1989// CHECK-NEXT:    </dict>
1990// CHECK-NEXT:    <dict>
1991// CHECK-NEXT:     <key>kind</key><string>control</string>
1992// CHECK-NEXT:     <key>edges</key>
1993// CHECK-NEXT:      <array>
1994// CHECK-NEXT:       <dict>
1995// CHECK-NEXT:        <key>start</key>
1996// CHECK-NEXT:         <array>
1997// CHECK-NEXT:          <dict>
1998// CHECK-NEXT:           <key>line</key><integer>133</integer>
1999// CHECK-NEXT:           <key>col</key><integer>5</integer>
2000// CHECK-NEXT:           <key>file</key><integer>0</integer>
2001// CHECK-NEXT:          </dict>
2002// CHECK-NEXT:          <dict>
2003// CHECK-NEXT:           <key>line</key><integer>133</integer>
2004// CHECK-NEXT:           <key>col</key><integer>5</integer>
2005// CHECK-NEXT:           <key>file</key><integer>0</integer>
2006// CHECK-NEXT:          </dict>
2007// CHECK-NEXT:         </array>
2008// CHECK-NEXT:        <key>end</key>
2009// CHECK-NEXT:         <array>
2010// CHECK-NEXT:          <dict>
2011// CHECK-NEXT:           <key>line</key><integer>134</integer>
2012// CHECK-NEXT:           <key>col</key><integer>5</integer>
2013// CHECK-NEXT:           <key>file</key><integer>0</integer>
2014// CHECK-NEXT:          </dict>
2015// CHECK-NEXT:          <dict>
2016// CHECK-NEXT:           <key>line</key><integer>134</integer>
2017// CHECK-NEXT:           <key>col</key><integer>5</integer>
2018// CHECK-NEXT:           <key>file</key><integer>0</integer>
2019// CHECK-NEXT:          </dict>
2020// CHECK-NEXT:         </array>
2021// CHECK-NEXT:       </dict>
2022// CHECK-NEXT:      </array>
2023// CHECK-NEXT:    </dict>
2024// CHECK-NEXT:    <dict>
2025// CHECK-NEXT:     <key>kind</key><string>control</string>
2026// CHECK-NEXT:     <key>edges</key>
2027// CHECK-NEXT:      <array>
2028// CHECK-NEXT:       <dict>
2029// CHECK-NEXT:        <key>start</key>
2030// CHECK-NEXT:         <array>
2031// CHECK-NEXT:          <dict>
2032// CHECK-NEXT:           <key>line</key><integer>134</integer>
2033// CHECK-NEXT:           <key>col</key><integer>5</integer>
2034// CHECK-NEXT:           <key>file</key><integer>0</integer>
2035// CHECK-NEXT:          </dict>
2036// CHECK-NEXT:          <dict>
2037// CHECK-NEXT:           <key>line</key><integer>134</integer>
2038// CHECK-NEXT:           <key>col</key><integer>5</integer>
2039// CHECK-NEXT:           <key>file</key><integer>0</integer>
2040// CHECK-NEXT:          </dict>
2041// CHECK-NEXT:         </array>
2042// CHECK-NEXT:        <key>end</key>
2043// CHECK-NEXT:         <array>
2044// CHECK-NEXT:          <dict>
2045// CHECK-NEXT:           <key>line</key><integer>136</integer>
2046// CHECK-NEXT:           <key>col</key><integer>3</integer>
2047// CHECK-NEXT:           <key>file</key><integer>0</integer>
2048// CHECK-NEXT:          </dict>
2049// CHECK-NEXT:          <dict>
2050// CHECK-NEXT:           <key>line</key><integer>136</integer>
2051// CHECK-NEXT:           <key>col</key><integer>3</integer>
2052// CHECK-NEXT:           <key>file</key><integer>0</integer>
2053// CHECK-NEXT:          </dict>
2054// CHECK-NEXT:         </array>
2055// CHECK-NEXT:       </dict>
2056// CHECK-NEXT:      </array>
2057// CHECK-NEXT:    </dict>
2058// CHECK-NEXT:    <dict>
2059// CHECK-NEXT:     <key>kind</key><string>event</string>
2060// CHECK-NEXT:     <key>location</key>
2061// CHECK-NEXT:     <dict>
2062// CHECK-NEXT:      <key>line</key><integer>136</integer>
2063// CHECK-NEXT:      <key>col</key><integer>3</integer>
2064// CHECK-NEXT:      <key>file</key><integer>0</integer>
2065// CHECK-NEXT:     </dict>
2066// CHECK-NEXT:     <key>ranges</key>
2067// CHECK-NEXT:     <array>
2068// CHECK-NEXT:       <array>
2069// CHECK-NEXT:        <dict>
2070// CHECK-NEXT:         <key>line</key><integer>136</integer>
2071// CHECK-NEXT:         <key>col</key><integer>17</integer>
2072// CHECK-NEXT:         <key>file</key><integer>0</integer>
2073// CHECK-NEXT:        </dict>
2074// CHECK-NEXT:        <dict>
2075// CHECK-NEXT:         <key>line</key><integer>136</integer>
2076// CHECK-NEXT:         <key>col</key><integer>39</integer>
2077// CHECK-NEXT:         <key>file</key><integer>0</integer>
2078// CHECK-NEXT:        </dict>
2079// CHECK-NEXT:       </array>
2080// CHECK-NEXT:     </array>
2081// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2082// CHECK-NEXT:     <key>extended_message</key>
2083// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2084// CHECK-NEXT:     <key>message</key>
2085// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2086// CHECK-NEXT:    </dict>
2087// CHECK-NEXT:   </array>
2088// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2089// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2090// CHECK-NEXT:   <key>type</key><string>Generics</string>
2091// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2092// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2093// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>24a08781e7d8971a7d8f8f607ce40074</string>
2094// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2095// CHECK-NEXT:  <key>issue_context</key><string>pathSensitiveInference</string>
2096// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>8</string>
2097// CHECK-NEXT:  <key>location</key>
2098// CHECK-NEXT:  <dict>
2099// CHECK-NEXT:   <key>line</key><integer>136</integer>
2100// CHECK-NEXT:   <key>col</key><integer>3</integer>
2101// CHECK-NEXT:   <key>file</key><integer>0</integer>
2102// CHECK-NEXT:  </dict>
2103// CHECK-NEXT:  </dict>
2104// CHECK-NEXT:  <dict>
2105// CHECK-NEXT:   <key>path</key>
2106// CHECK-NEXT:   <array>
2107// CHECK-NEXT:    <dict>
2108// CHECK-NEXT:     <key>kind</key><string>event</string>
2109// CHECK-NEXT:     <key>location</key>
2110// CHECK-NEXT:     <dict>
2111// CHECK-NEXT:      <key>line</key><integer>141</integer>
2112// CHECK-NEXT:      <key>col</key><integer>7</integer>
2113// CHECK-NEXT:      <key>file</key><integer>0</integer>
2114// CHECK-NEXT:     </dict>
2115// CHECK-NEXT:     <key>ranges</key>
2116// CHECK-NEXT:     <array>
2117// CHECK-NEXT:       <array>
2118// CHECK-NEXT:        <dict>
2119// CHECK-NEXT:         <key>line</key><integer>141</integer>
2120// CHECK-NEXT:         <key>col</key><integer>7</integer>
2121// CHECK-NEXT:         <key>file</key><integer>0</integer>
2122// CHECK-NEXT:        </dict>
2123// CHECK-NEXT:        <dict>
2124// CHECK-NEXT:         <key>line</key><integer>141</integer>
2125// CHECK-NEXT:         <key>col</key><integer>7</integer>
2126// CHECK-NEXT:         <key>file</key><integer>0</integer>
2127// CHECK-NEXT:        </dict>
2128// CHECK-NEXT:       </array>
2129// CHECK-NEXT:     </array>
2130// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2131// CHECK-NEXT:     <key>extended_message</key>
2132// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
2133// CHECK-NEXT:     <key>message</key>
2134// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
2135// CHECK-NEXT:    </dict>
2136// CHECK-NEXT:    <dict>
2137// CHECK-NEXT:     <key>kind</key><string>control</string>
2138// CHECK-NEXT:     <key>edges</key>
2139// CHECK-NEXT:      <array>
2140// CHECK-NEXT:       <dict>
2141// CHECK-NEXT:        <key>start</key>
2142// CHECK-NEXT:         <array>
2143// CHECK-NEXT:          <dict>
2144// CHECK-NEXT:           <key>line</key><integer>141</integer>
2145// CHECK-NEXT:           <key>col</key><integer>3</integer>
2146// CHECK-NEXT:           <key>file</key><integer>0</integer>
2147// CHECK-NEXT:          </dict>
2148// CHECK-NEXT:          <dict>
2149// CHECK-NEXT:           <key>line</key><integer>141</integer>
2150// CHECK-NEXT:           <key>col</key><integer>3</integer>
2151// CHECK-NEXT:           <key>file</key><integer>0</integer>
2152// CHECK-NEXT:          </dict>
2153// CHECK-NEXT:         </array>
2154// CHECK-NEXT:        <key>end</key>
2155// CHECK-NEXT:         <array>
2156// CHECK-NEXT:          <dict>
2157// CHECK-NEXT:           <key>line</key><integer>142</integer>
2158// CHECK-NEXT:           <key>col</key><integer>3</integer>
2159// CHECK-NEXT:           <key>file</key><integer>0</integer>
2160// CHECK-NEXT:          </dict>
2161// CHECK-NEXT:          <dict>
2162// CHECK-NEXT:           <key>line</key><integer>142</integer>
2163// CHECK-NEXT:           <key>col</key><integer>9</integer>
2164// CHECK-NEXT:           <key>file</key><integer>0</integer>
2165// CHECK-NEXT:          </dict>
2166// CHECK-NEXT:         </array>
2167// CHECK-NEXT:       </dict>
2168// CHECK-NEXT:      </array>
2169// CHECK-NEXT:    </dict>
2170// CHECK-NEXT:    <dict>
2171// CHECK-NEXT:     <key>kind</key><string>control</string>
2172// CHECK-NEXT:     <key>edges</key>
2173// CHECK-NEXT:      <array>
2174// CHECK-NEXT:       <dict>
2175// CHECK-NEXT:        <key>start</key>
2176// CHECK-NEXT:         <array>
2177// CHECK-NEXT:          <dict>
2178// CHECK-NEXT:           <key>line</key><integer>142</integer>
2179// CHECK-NEXT:           <key>col</key><integer>3</integer>
2180// CHECK-NEXT:           <key>file</key><integer>0</integer>
2181// CHECK-NEXT:          </dict>
2182// CHECK-NEXT:          <dict>
2183// CHECK-NEXT:           <key>line</key><integer>142</integer>
2184// CHECK-NEXT:           <key>col</key><integer>9</integer>
2185// CHECK-NEXT:           <key>file</key><integer>0</integer>
2186// CHECK-NEXT:          </dict>
2187// CHECK-NEXT:         </array>
2188// CHECK-NEXT:        <key>end</key>
2189// CHECK-NEXT:         <array>
2190// CHECK-NEXT:          <dict>
2191// CHECK-NEXT:           <key>line</key><integer>142</integer>
2192// CHECK-NEXT:           <key>col</key><integer>11</integer>
2193// CHECK-NEXT:           <key>file</key><integer>0</integer>
2194// CHECK-NEXT:          </dict>
2195// CHECK-NEXT:          <dict>
2196// CHECK-NEXT:           <key>line</key><integer>142</integer>
2197// CHECK-NEXT:           <key>col</key><integer>11</integer>
2198// CHECK-NEXT:           <key>file</key><integer>0</integer>
2199// CHECK-NEXT:          </dict>
2200// CHECK-NEXT:         </array>
2201// CHECK-NEXT:       </dict>
2202// CHECK-NEXT:      </array>
2203// CHECK-NEXT:    </dict>
2204// CHECK-NEXT:    <dict>
2205// CHECK-NEXT:     <key>kind</key><string>event</string>
2206// CHECK-NEXT:     <key>location</key>
2207// CHECK-NEXT:     <dict>
2208// CHECK-NEXT:      <key>line</key><integer>142</integer>
2209// CHECK-NEXT:      <key>col</key><integer>11</integer>
2210// CHECK-NEXT:      <key>file</key><integer>0</integer>
2211// CHECK-NEXT:     </dict>
2212// CHECK-NEXT:     <key>ranges</key>
2213// CHECK-NEXT:     <array>
2214// CHECK-NEXT:       <array>
2215// CHECK-NEXT:        <dict>
2216// CHECK-NEXT:         <key>line</key><integer>142</integer>
2217// CHECK-NEXT:         <key>col</key><integer>11</integer>
2218// CHECK-NEXT:         <key>file</key><integer>0</integer>
2219// CHECK-NEXT:        </dict>
2220// CHECK-NEXT:        <dict>
2221// CHECK-NEXT:         <key>line</key><integer>142</integer>
2222// CHECK-NEXT:         <key>col</key><integer>11</integer>
2223// CHECK-NEXT:         <key>file</key><integer>0</integer>
2224// CHECK-NEXT:        </dict>
2225// CHECK-NEXT:       </array>
2226// CHECK-NEXT:     </array>
2227// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2228// CHECK-NEXT:     <key>extended_message</key>
2229// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2230// CHECK-NEXT:     <key>message</key>
2231// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2232// CHECK-NEXT:    </dict>
2233// CHECK-NEXT:   </array>
2234// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2235// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2236// CHECK-NEXT:   <key>type</key><string>Generics</string>
2237// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2238// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2239// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a8534f675404d57d833dc3c371d49845</string>
2240// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2241// CHECK-NEXT:  <key>issue_context</key><string>verifyAPIusage</string>
2242// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
2243// CHECK-NEXT:  <key>location</key>
2244// CHECK-NEXT:  <dict>
2245// CHECK-NEXT:   <key>line</key><integer>142</integer>
2246// CHECK-NEXT:   <key>col</key><integer>11</integer>
2247// CHECK-NEXT:   <key>file</key><integer>0</integer>
2248// CHECK-NEXT:  </dict>
2249// CHECK-NEXT:  </dict>
2250// CHECK-NEXT:  <dict>
2251// CHECK-NEXT:   <key>path</key>
2252// CHECK-NEXT:   <array>
2253// CHECK-NEXT:    <dict>
2254// CHECK-NEXT:     <key>kind</key><string>event</string>
2255// CHECK-NEXT:     <key>location</key>
2256// CHECK-NEXT:     <dict>
2257// CHECK-NEXT:      <key>line</key><integer>147</integer>
2258// CHECK-NEXT:      <key>col</key><integer>7</integer>
2259// CHECK-NEXT:      <key>file</key><integer>0</integer>
2260// CHECK-NEXT:     </dict>
2261// CHECK-NEXT:     <key>ranges</key>
2262// CHECK-NEXT:     <array>
2263// CHECK-NEXT:       <array>
2264// CHECK-NEXT:        <dict>
2265// CHECK-NEXT:         <key>line</key><integer>147</integer>
2266// CHECK-NEXT:         <key>col</key><integer>7</integer>
2267// CHECK-NEXT:         <key>file</key><integer>0</integer>
2268// CHECK-NEXT:        </dict>
2269// CHECK-NEXT:        <dict>
2270// CHECK-NEXT:         <key>line</key><integer>147</integer>
2271// CHECK-NEXT:         <key>col</key><integer>42</integer>
2272// CHECK-NEXT:         <key>file</key><integer>0</integer>
2273// CHECK-NEXT:        </dict>
2274// CHECK-NEXT:       </array>
2275// CHECK-NEXT:     </array>
2276// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2277// CHECK-NEXT:     <key>extended_message</key>
2278// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from explicit cast (from &apos;MutableArray *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
2279// CHECK-NEXT:     <key>message</key>
2280// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from explicit cast (from &apos;MutableArray *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
2281// CHECK-NEXT:    </dict>
2282// CHECK-NEXT:    <dict>
2283// CHECK-NEXT:     <key>kind</key><string>control</string>
2284// CHECK-NEXT:     <key>edges</key>
2285// CHECK-NEXT:      <array>
2286// CHECK-NEXT:       <dict>
2287// CHECK-NEXT:        <key>start</key>
2288// CHECK-NEXT:         <array>
2289// CHECK-NEXT:          <dict>
2290// CHECK-NEXT:           <key>line</key><integer>147</integer>
2291// CHECK-NEXT:           <key>col</key><integer>3</integer>
2292// CHECK-NEXT:           <key>file</key><integer>0</integer>
2293// CHECK-NEXT:          </dict>
2294// CHECK-NEXT:          <dict>
2295// CHECK-NEXT:           <key>line</key><integer>147</integer>
2296// CHECK-NEXT:           <key>col</key><integer>3</integer>
2297// CHECK-NEXT:           <key>file</key><integer>0</integer>
2298// CHECK-NEXT:          </dict>
2299// CHECK-NEXT:         </array>
2300// CHECK-NEXT:        <key>end</key>
2301// CHECK-NEXT:         <array>
2302// CHECK-NEXT:          <dict>
2303// CHECK-NEXT:           <key>line</key><integer>148</integer>
2304// CHECK-NEXT:           <key>col</key><integer>3</integer>
2305// CHECK-NEXT:           <key>file</key><integer>0</integer>
2306// CHECK-NEXT:          </dict>
2307// CHECK-NEXT:          <dict>
2308// CHECK-NEXT:           <key>line</key><integer>148</integer>
2309// CHECK-NEXT:           <key>col</key><integer>3</integer>
2310// CHECK-NEXT:           <key>file</key><integer>0</integer>
2311// CHECK-NEXT:          </dict>
2312// CHECK-NEXT:         </array>
2313// CHECK-NEXT:       </dict>
2314// CHECK-NEXT:      </array>
2315// CHECK-NEXT:    </dict>
2316// CHECK-NEXT:    <dict>
2317// CHECK-NEXT:     <key>kind</key><string>event</string>
2318// CHECK-NEXT:     <key>location</key>
2319// CHECK-NEXT:     <dict>
2320// CHECK-NEXT:      <key>line</key><integer>148</integer>
2321// CHECK-NEXT:      <key>col</key><integer>3</integer>
2322// CHECK-NEXT:      <key>file</key><integer>0</integer>
2323// CHECK-NEXT:     </dict>
2324// CHECK-NEXT:     <key>ranges</key>
2325// CHECK-NEXT:     <array>
2326// CHECK-NEXT:       <array>
2327// CHECK-NEXT:        <dict>
2328// CHECK-NEXT:         <key>line</key><integer>148</integer>
2329// CHECK-NEXT:         <key>col</key><integer>17</integer>
2330// CHECK-NEXT:         <key>file</key><integer>0</integer>
2331// CHECK-NEXT:        </dict>
2332// CHECK-NEXT:        <dict>
2333// CHECK-NEXT:         <key>line</key><integer>148</integer>
2334// CHECK-NEXT:         <key>col</key><integer>39</integer>
2335// CHECK-NEXT:         <key>file</key><integer>0</integer>
2336// CHECK-NEXT:        </dict>
2337// CHECK-NEXT:       </array>
2338// CHECK-NEXT:     </array>
2339// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2340// CHECK-NEXT:     <key>extended_message</key>
2341// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2342// CHECK-NEXT:     <key>message</key>
2343// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2344// CHECK-NEXT:    </dict>
2345// CHECK-NEXT:   </array>
2346// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2347// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2348// CHECK-NEXT:   <key>type</key><string>Generics</string>
2349// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2350// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2351// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>0549631e5a7fa668375061b6c898e438</string>
2352// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2353// CHECK-NEXT:  <key>issue_context</key><string>trustExplicitCasts</string>
2354// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
2355// CHECK-NEXT:  <key>location</key>
2356// CHECK-NEXT:  <dict>
2357// CHECK-NEXT:   <key>line</key><integer>148</integer>
2358// CHECK-NEXT:   <key>col</key><integer>3</integer>
2359// CHECK-NEXT:   <key>file</key><integer>0</integer>
2360// CHECK-NEXT:  </dict>
2361// CHECK-NEXT:  </dict>
2362// CHECK-NEXT:  <dict>
2363// CHECK-NEXT:   <key>path</key>
2364// CHECK-NEXT:   <array>
2365// CHECK-NEXT:    <dict>
2366// CHECK-NEXT:     <key>kind</key><string>control</string>
2367// CHECK-NEXT:     <key>edges</key>
2368// CHECK-NEXT:      <array>
2369// CHECK-NEXT:       <dict>
2370// CHECK-NEXT:        <key>start</key>
2371// CHECK-NEXT:         <array>
2372// CHECK-NEXT:          <dict>
2373// CHECK-NEXT:           <key>line</key><integer>154</integer>
2374// CHECK-NEXT:           <key>col</key><integer>3</integer>
2375// CHECK-NEXT:           <key>file</key><integer>0</integer>
2376// CHECK-NEXT:          </dict>
2377// CHECK-NEXT:          <dict>
2378// CHECK-NEXT:           <key>line</key><integer>154</integer>
2379// CHECK-NEXT:           <key>col</key><integer>3</integer>
2380// CHECK-NEXT:           <key>file</key><integer>0</integer>
2381// CHECK-NEXT:          </dict>
2382// CHECK-NEXT:         </array>
2383// CHECK-NEXT:        <key>end</key>
2384// CHECK-NEXT:         <array>
2385// CHECK-NEXT:          <dict>
2386// CHECK-NEXT:           <key>line</key><integer>155</integer>
2387// CHECK-NEXT:           <key>col</key><integer>3</integer>
2388// CHECK-NEXT:           <key>file</key><integer>0</integer>
2389// CHECK-NEXT:          </dict>
2390// CHECK-NEXT:          <dict>
2391// CHECK-NEXT:           <key>line</key><integer>155</integer>
2392// CHECK-NEXT:           <key>col</key><integer>3</integer>
2393// CHECK-NEXT:           <key>file</key><integer>0</integer>
2394// CHECK-NEXT:          </dict>
2395// CHECK-NEXT:         </array>
2396// CHECK-NEXT:       </dict>
2397// CHECK-NEXT:      </array>
2398// CHECK-NEXT:    </dict>
2399// CHECK-NEXT:    <dict>
2400// CHECK-NEXT:     <key>kind</key><string>event</string>
2401// CHECK-NEXT:     <key>location</key>
2402// CHECK-NEXT:     <dict>
2403// CHECK-NEXT:      <key>line</key><integer>155</integer>
2404// CHECK-NEXT:      <key>col</key><integer>7</integer>
2405// CHECK-NEXT:      <key>file</key><integer>0</integer>
2406// CHECK-NEXT:     </dict>
2407// CHECK-NEXT:     <key>ranges</key>
2408// CHECK-NEXT:     <array>
2409// CHECK-NEXT:       <array>
2410// CHECK-NEXT:        <dict>
2411// CHECK-NEXT:         <key>line</key><integer>155</integer>
2412// CHECK-NEXT:         <key>col</key><integer>7</integer>
2413// CHECK-NEXT:         <key>file</key><integer>0</integer>
2414// CHECK-NEXT:        </dict>
2415// CHECK-NEXT:        <dict>
2416// CHECK-NEXT:         <key>line</key><integer>155</integer>
2417// CHECK-NEXT:         <key>col</key><integer>7</integer>
2418// CHECK-NEXT:         <key>file</key><integer>0</integer>
2419// CHECK-NEXT:        </dict>
2420// CHECK-NEXT:       </array>
2421// CHECK-NEXT:     </array>
2422// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2423// CHECK-NEXT:     <key>extended_message</key>
2424// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
2425// CHECK-NEXT:     <key>message</key>
2426// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
2427// CHECK-NEXT:    </dict>
2428// CHECK-NEXT:    <dict>
2429// CHECK-NEXT:     <key>kind</key><string>control</string>
2430// CHECK-NEXT:     <key>edges</key>
2431// CHECK-NEXT:      <array>
2432// CHECK-NEXT:       <dict>
2433// CHECK-NEXT:        <key>start</key>
2434// CHECK-NEXT:         <array>
2435// CHECK-NEXT:          <dict>
2436// CHECK-NEXT:           <key>line</key><integer>155</integer>
2437// CHECK-NEXT:           <key>col</key><integer>3</integer>
2438// CHECK-NEXT:           <key>file</key><integer>0</integer>
2439// CHECK-NEXT:          </dict>
2440// CHECK-NEXT:          <dict>
2441// CHECK-NEXT:           <key>line</key><integer>155</integer>
2442// CHECK-NEXT:           <key>col</key><integer>3</integer>
2443// CHECK-NEXT:           <key>file</key><integer>0</integer>
2444// CHECK-NEXT:          </dict>
2445// CHECK-NEXT:         </array>
2446// CHECK-NEXT:        <key>end</key>
2447// CHECK-NEXT:         <array>
2448// CHECK-NEXT:          <dict>
2449// CHECK-NEXT:           <key>line</key><integer>156</integer>
2450// CHECK-NEXT:           <key>col</key><integer>3</integer>
2451// CHECK-NEXT:           <key>file</key><integer>0</integer>
2452// CHECK-NEXT:          </dict>
2453// CHECK-NEXT:          <dict>
2454// CHECK-NEXT:           <key>line</key><integer>156</integer>
2455// CHECK-NEXT:           <key>col</key><integer>3</integer>
2456// CHECK-NEXT:           <key>file</key><integer>0</integer>
2457// CHECK-NEXT:          </dict>
2458// CHECK-NEXT:         </array>
2459// CHECK-NEXT:       </dict>
2460// CHECK-NEXT:      </array>
2461// CHECK-NEXT:    </dict>
2462// CHECK-NEXT:    <dict>
2463// CHECK-NEXT:     <key>kind</key><string>control</string>
2464// CHECK-NEXT:     <key>edges</key>
2465// CHECK-NEXT:      <array>
2466// CHECK-NEXT:       <dict>
2467// CHECK-NEXT:        <key>start</key>
2468// CHECK-NEXT:         <array>
2469// CHECK-NEXT:          <dict>
2470// CHECK-NEXT:           <key>line</key><integer>156</integer>
2471// CHECK-NEXT:           <key>col</key><integer>3</integer>
2472// CHECK-NEXT:           <key>file</key><integer>0</integer>
2473// CHECK-NEXT:          </dict>
2474// CHECK-NEXT:          <dict>
2475// CHECK-NEXT:           <key>line</key><integer>156</integer>
2476// CHECK-NEXT:           <key>col</key><integer>3</integer>
2477// CHECK-NEXT:           <key>file</key><integer>0</integer>
2478// CHECK-NEXT:          </dict>
2479// CHECK-NEXT:         </array>
2480// CHECK-NEXT:        <key>end</key>
2481// CHECK-NEXT:         <array>
2482// CHECK-NEXT:          <dict>
2483// CHECK-NEXT:           <key>line</key><integer>156</integer>
2484// CHECK-NEXT:           <key>col</key><integer>7</integer>
2485// CHECK-NEXT:           <key>file</key><integer>0</integer>
2486// CHECK-NEXT:          </dict>
2487// CHECK-NEXT:          <dict>
2488// CHECK-NEXT:           <key>line</key><integer>156</integer>
2489// CHECK-NEXT:           <key>col</key><integer>7</integer>
2490// CHECK-NEXT:           <key>file</key><integer>0</integer>
2491// CHECK-NEXT:          </dict>
2492// CHECK-NEXT:         </array>
2493// CHECK-NEXT:       </dict>
2494// CHECK-NEXT:      </array>
2495// CHECK-NEXT:    </dict>
2496// CHECK-NEXT:    <dict>
2497// CHECK-NEXT:     <key>kind</key><string>event</string>
2498// CHECK-NEXT:     <key>location</key>
2499// CHECK-NEXT:     <dict>
2500// CHECK-NEXT:      <key>line</key><integer>156</integer>
2501// CHECK-NEXT:      <key>col</key><integer>7</integer>
2502// CHECK-NEXT:      <key>file</key><integer>0</integer>
2503// CHECK-NEXT:     </dict>
2504// CHECK-NEXT:     <key>ranges</key>
2505// CHECK-NEXT:     <array>
2506// CHECK-NEXT:       <array>
2507// CHECK-NEXT:        <dict>
2508// CHECK-NEXT:         <key>line</key><integer>156</integer>
2509// CHECK-NEXT:         <key>col</key><integer>7</integer>
2510// CHECK-NEXT:         <key>file</key><integer>0</integer>
2511// CHECK-NEXT:        </dict>
2512// CHECK-NEXT:        <dict>
2513// CHECK-NEXT:         <key>line</key><integer>156</integer>
2514// CHECK-NEXT:         <key>col</key><integer>7</integer>
2515// CHECK-NEXT:         <key>file</key><integer>0</integer>
2516// CHECK-NEXT:        </dict>
2517// CHECK-NEXT:       </array>
2518// CHECK-NEXT:     </array>
2519// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2520// CHECK-NEXT:     <key>extended_message</key>
2521// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2522// CHECK-NEXT:     <key>message</key>
2523// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2524// CHECK-NEXT:    </dict>
2525// CHECK-NEXT:   </array>
2526// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2527// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2528// CHECK-NEXT:   <key>type</key><string>Generics</string>
2529// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2530// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2531// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>d113e22b9ee9ded1cd94750c3557eff4</string>
2532// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2533// CHECK-NEXT:  <key>issue_context</key><string>subtypeOfGeneric</string>
2534// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
2535// CHECK-NEXT:  <key>location</key>
2536// CHECK-NEXT:  <dict>
2537// CHECK-NEXT:   <key>line</key><integer>156</integer>
2538// CHECK-NEXT:   <key>col</key><integer>7</integer>
2539// CHECK-NEXT:   <key>file</key><integer>0</integer>
2540// CHECK-NEXT:  </dict>
2541// CHECK-NEXT:  </dict>
2542// CHECK-NEXT:  <dict>
2543// CHECK-NEXT:   <key>path</key>
2544// CHECK-NEXT:   <array>
2545// CHECK-NEXT:    <dict>
2546// CHECK-NEXT:     <key>kind</key><string>event</string>
2547// CHECK-NEXT:     <key>location</key>
2548// CHECK-NEXT:     <dict>
2549// CHECK-NEXT:      <key>line</key><integer>162</integer>
2550// CHECK-NEXT:      <key>col</key><integer>7</integer>
2551// CHECK-NEXT:      <key>file</key><integer>0</integer>
2552// CHECK-NEXT:     </dict>
2553// CHECK-NEXT:     <key>ranges</key>
2554// CHECK-NEXT:     <array>
2555// CHECK-NEXT:       <array>
2556// CHECK-NEXT:        <dict>
2557// CHECK-NEXT:         <key>line</key><integer>162</integer>
2558// CHECK-NEXT:         <key>col</key><integer>7</integer>
2559// CHECK-NEXT:         <key>file</key><integer>0</integer>
2560// CHECK-NEXT:        </dict>
2561// CHECK-NEXT:        <dict>
2562// CHECK-NEXT:         <key>line</key><integer>162</integer>
2563// CHECK-NEXT:         <key>col</key><integer>7</integer>
2564// CHECK-NEXT:         <key>file</key><integer>0</integer>
2565// CHECK-NEXT:        </dict>
2566// CHECK-NEXT:       </array>
2567// CHECK-NEXT:     </array>
2568// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2569// CHECK-NEXT:     <key>extended_message</key>
2570// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
2571// CHECK-NEXT:     <key>message</key>
2572// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
2573// CHECK-NEXT:    </dict>
2574// CHECK-NEXT:    <dict>
2575// CHECK-NEXT:     <key>kind</key><string>control</string>
2576// CHECK-NEXT:     <key>edges</key>
2577// CHECK-NEXT:      <array>
2578// CHECK-NEXT:       <dict>
2579// CHECK-NEXT:        <key>start</key>
2580// CHECK-NEXT:         <array>
2581// CHECK-NEXT:          <dict>
2582// CHECK-NEXT:           <key>line</key><integer>162</integer>
2583// CHECK-NEXT:           <key>col</key><integer>3</integer>
2584// CHECK-NEXT:           <key>file</key><integer>0</integer>
2585// CHECK-NEXT:          </dict>
2586// CHECK-NEXT:          <dict>
2587// CHECK-NEXT:           <key>line</key><integer>162</integer>
2588// CHECK-NEXT:           <key>col</key><integer>3</integer>
2589// CHECK-NEXT:           <key>file</key><integer>0</integer>
2590// CHECK-NEXT:          </dict>
2591// CHECK-NEXT:         </array>
2592// CHECK-NEXT:        <key>end</key>
2593// CHECK-NEXT:         <array>
2594// CHECK-NEXT:          <dict>
2595// CHECK-NEXT:           <key>line</key><integer>164</integer>
2596// CHECK-NEXT:           <key>col</key><integer>3</integer>
2597// CHECK-NEXT:           <key>file</key><integer>0</integer>
2598// CHECK-NEXT:          </dict>
2599// CHECK-NEXT:          <dict>
2600// CHECK-NEXT:           <key>line</key><integer>164</integer>
2601// CHECK-NEXT:           <key>col</key><integer>3</integer>
2602// CHECK-NEXT:           <key>file</key><integer>0</integer>
2603// CHECK-NEXT:          </dict>
2604// CHECK-NEXT:         </array>
2605// CHECK-NEXT:       </dict>
2606// CHECK-NEXT:      </array>
2607// CHECK-NEXT:    </dict>
2608// CHECK-NEXT:    <dict>
2609// CHECK-NEXT:     <key>kind</key><string>event</string>
2610// CHECK-NEXT:     <key>location</key>
2611// CHECK-NEXT:     <dict>
2612// CHECK-NEXT:      <key>line</key><integer>164</integer>
2613// CHECK-NEXT:      <key>col</key><integer>3</integer>
2614// CHECK-NEXT:      <key>file</key><integer>0</integer>
2615// CHECK-NEXT:     </dict>
2616// CHECK-NEXT:     <key>ranges</key>
2617// CHECK-NEXT:     <array>
2618// CHECK-NEXT:       <array>
2619// CHECK-NEXT:        <dict>
2620// CHECK-NEXT:         <key>line</key><integer>164</integer>
2621// CHECK-NEXT:         <key>col</key><integer>16</integer>
2622// CHECK-NEXT:         <key>file</key><integer>0</integer>
2623// CHECK-NEXT:        </dict>
2624// CHECK-NEXT:        <dict>
2625// CHECK-NEXT:         <key>line</key><integer>164</integer>
2626// CHECK-NEXT:         <key>col</key><integer>38</integer>
2627// CHECK-NEXT:         <key>file</key><integer>0</integer>
2628// CHECK-NEXT:        </dict>
2629// CHECK-NEXT:       </array>
2630// CHECK-NEXT:     </array>
2631// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2632// CHECK-NEXT:     <key>extended_message</key>
2633// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2634// CHECK-NEXT:     <key>message</key>
2635// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2636// CHECK-NEXT:    </dict>
2637// CHECK-NEXT:   </array>
2638// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2639// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2640// CHECK-NEXT:   <key>type</key><string>Generics</string>
2641// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2642// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2643// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>22fad8121164716006b2a12f4ddc494e</string>
2644// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2645// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2646// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
2647// CHECK-NEXT:  <key>location</key>
2648// CHECK-NEXT:  <dict>
2649// CHECK-NEXT:   <key>line</key><integer>164</integer>
2650// CHECK-NEXT:   <key>col</key><integer>3</integer>
2651// CHECK-NEXT:   <key>file</key><integer>0</integer>
2652// CHECK-NEXT:  </dict>
2653// CHECK-NEXT:  </dict>
2654// CHECK-NEXT:  <dict>
2655// CHECK-NEXT:   <key>path</key>
2656// CHECK-NEXT:   <array>
2657// CHECK-NEXT:    <dict>
2658// CHECK-NEXT:     <key>kind</key><string>event</string>
2659// CHECK-NEXT:     <key>location</key>
2660// CHECK-NEXT:     <dict>
2661// CHECK-NEXT:      <key>line</key><integer>162</integer>
2662// CHECK-NEXT:      <key>col</key><integer>7</integer>
2663// CHECK-NEXT:      <key>file</key><integer>0</integer>
2664// CHECK-NEXT:     </dict>
2665// CHECK-NEXT:     <key>ranges</key>
2666// CHECK-NEXT:     <array>
2667// CHECK-NEXT:       <array>
2668// CHECK-NEXT:        <dict>
2669// CHECK-NEXT:         <key>line</key><integer>162</integer>
2670// CHECK-NEXT:         <key>col</key><integer>7</integer>
2671// CHECK-NEXT:         <key>file</key><integer>0</integer>
2672// CHECK-NEXT:        </dict>
2673// CHECK-NEXT:        <dict>
2674// CHECK-NEXT:         <key>line</key><integer>162</integer>
2675// CHECK-NEXT:         <key>col</key><integer>7</integer>
2676// CHECK-NEXT:         <key>file</key><integer>0</integer>
2677// CHECK-NEXT:        </dict>
2678// CHECK-NEXT:       </array>
2679// CHECK-NEXT:     </array>
2680// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2681// CHECK-NEXT:     <key>extended_message</key>
2682// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
2683// CHECK-NEXT:     <key>message</key>
2684// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
2685// CHECK-NEXT:    </dict>
2686// CHECK-NEXT:    <dict>
2687// CHECK-NEXT:     <key>kind</key><string>control</string>
2688// CHECK-NEXT:     <key>edges</key>
2689// CHECK-NEXT:      <array>
2690// CHECK-NEXT:       <dict>
2691// CHECK-NEXT:        <key>start</key>
2692// CHECK-NEXT:         <array>
2693// CHECK-NEXT:          <dict>
2694// CHECK-NEXT:           <key>line</key><integer>162</integer>
2695// CHECK-NEXT:           <key>col</key><integer>3</integer>
2696// CHECK-NEXT:           <key>file</key><integer>0</integer>
2697// CHECK-NEXT:          </dict>
2698// CHECK-NEXT:          <dict>
2699// CHECK-NEXT:           <key>line</key><integer>162</integer>
2700// CHECK-NEXT:           <key>col</key><integer>3</integer>
2701// CHECK-NEXT:           <key>file</key><integer>0</integer>
2702// CHECK-NEXT:          </dict>
2703// CHECK-NEXT:         </array>
2704// CHECK-NEXT:        <key>end</key>
2705// CHECK-NEXT:         <array>
2706// CHECK-NEXT:          <dict>
2707// CHECK-NEXT:           <key>line</key><integer>166</integer>
2708// CHECK-NEXT:           <key>col</key><integer>3</integer>
2709// CHECK-NEXT:           <key>file</key><integer>0</integer>
2710// CHECK-NEXT:          </dict>
2711// CHECK-NEXT:          <dict>
2712// CHECK-NEXT:           <key>line</key><integer>166</integer>
2713// CHECK-NEXT:           <key>col</key><integer>3</integer>
2714// CHECK-NEXT:           <key>file</key><integer>0</integer>
2715// CHECK-NEXT:          </dict>
2716// CHECK-NEXT:         </array>
2717// CHECK-NEXT:       </dict>
2718// CHECK-NEXT:      </array>
2719// CHECK-NEXT:    </dict>
2720// CHECK-NEXT:    <dict>
2721// CHECK-NEXT:     <key>kind</key><string>control</string>
2722// CHECK-NEXT:     <key>edges</key>
2723// CHECK-NEXT:      <array>
2724// CHECK-NEXT:       <dict>
2725// CHECK-NEXT:        <key>start</key>
2726// CHECK-NEXT:         <array>
2727// CHECK-NEXT:          <dict>
2728// CHECK-NEXT:           <key>line</key><integer>166</integer>
2729// CHECK-NEXT:           <key>col</key><integer>3</integer>
2730// CHECK-NEXT:           <key>file</key><integer>0</integer>
2731// CHECK-NEXT:          </dict>
2732// CHECK-NEXT:          <dict>
2733// CHECK-NEXT:           <key>line</key><integer>166</integer>
2734// CHECK-NEXT:           <key>col</key><integer>3</integer>
2735// CHECK-NEXT:           <key>file</key><integer>0</integer>
2736// CHECK-NEXT:          </dict>
2737// CHECK-NEXT:         </array>
2738// CHECK-NEXT:        <key>end</key>
2739// CHECK-NEXT:         <array>
2740// CHECK-NEXT:          <dict>
2741// CHECK-NEXT:           <key>line</key><integer>166</integer>
2742// CHECK-NEXT:           <key>col</key><integer>7</integer>
2743// CHECK-NEXT:           <key>file</key><integer>0</integer>
2744// CHECK-NEXT:          </dict>
2745// CHECK-NEXT:          <dict>
2746// CHECK-NEXT:           <key>line</key><integer>166</integer>
2747// CHECK-NEXT:           <key>col</key><integer>7</integer>
2748// CHECK-NEXT:           <key>file</key><integer>0</integer>
2749// CHECK-NEXT:          </dict>
2750// CHECK-NEXT:         </array>
2751// CHECK-NEXT:       </dict>
2752// CHECK-NEXT:      </array>
2753// CHECK-NEXT:    </dict>
2754// CHECK-NEXT:    <dict>
2755// CHECK-NEXT:     <key>kind</key><string>event</string>
2756// CHECK-NEXT:     <key>location</key>
2757// CHECK-NEXT:     <dict>
2758// CHECK-NEXT:      <key>line</key><integer>166</integer>
2759// CHECK-NEXT:      <key>col</key><integer>7</integer>
2760// CHECK-NEXT:      <key>file</key><integer>0</integer>
2761// CHECK-NEXT:     </dict>
2762// CHECK-NEXT:     <key>ranges</key>
2763// CHECK-NEXT:     <array>
2764// CHECK-NEXT:       <array>
2765// CHECK-NEXT:        <dict>
2766// CHECK-NEXT:         <key>line</key><integer>166</integer>
2767// CHECK-NEXT:         <key>col</key><integer>7</integer>
2768// CHECK-NEXT:         <key>file</key><integer>0</integer>
2769// CHECK-NEXT:        </dict>
2770// CHECK-NEXT:        <dict>
2771// CHECK-NEXT:         <key>line</key><integer>166</integer>
2772// CHECK-NEXT:         <key>col</key><integer>7</integer>
2773// CHECK-NEXT:         <key>file</key><integer>0</integer>
2774// CHECK-NEXT:        </dict>
2775// CHECK-NEXT:       </array>
2776// CHECK-NEXT:     </array>
2777// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2778// CHECK-NEXT:     <key>extended_message</key>
2779// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2780// CHECK-NEXT:     <key>message</key>
2781// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2782// CHECK-NEXT:    </dict>
2783// CHECK-NEXT:   </array>
2784// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2785// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2786// CHECK-NEXT:   <key>type</key><string>Generics</string>
2787// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2788// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2789// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>f1b900572a63726a729714a765595c38</string>
2790// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2791// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2792// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
2793// CHECK-NEXT:  <key>location</key>
2794// CHECK-NEXT:  <dict>
2795// CHECK-NEXT:   <key>line</key><integer>166</integer>
2796// CHECK-NEXT:   <key>col</key><integer>7</integer>
2797// CHECK-NEXT:   <key>file</key><integer>0</integer>
2798// CHECK-NEXT:  </dict>
2799// CHECK-NEXT:  </dict>
2800// CHECK-NEXT:  <dict>
2801// CHECK-NEXT:   <key>path</key>
2802// CHECK-NEXT:   <array>
2803// CHECK-NEXT:    <dict>
2804// CHECK-NEXT:     <key>kind</key><string>event</string>
2805// CHECK-NEXT:     <key>location</key>
2806// CHECK-NEXT:     <dict>
2807// CHECK-NEXT:      <key>line</key><integer>172</integer>
2808// CHECK-NEXT:      <key>col</key><integer>7</integer>
2809// CHECK-NEXT:      <key>file</key><integer>0</integer>
2810// CHECK-NEXT:     </dict>
2811// CHECK-NEXT:     <key>ranges</key>
2812// CHECK-NEXT:     <array>
2813// CHECK-NEXT:       <array>
2814// CHECK-NEXT:        <dict>
2815// CHECK-NEXT:         <key>line</key><integer>172</integer>
2816// CHECK-NEXT:         <key>col</key><integer>7</integer>
2817// CHECK-NEXT:         <key>file</key><integer>0</integer>
2818// CHECK-NEXT:        </dict>
2819// CHECK-NEXT:        <dict>
2820// CHECK-NEXT:         <key>line</key><integer>172</integer>
2821// CHECK-NEXT:         <key>col</key><integer>7</integer>
2822// CHECK-NEXT:         <key>file</key><integer>0</integer>
2823// CHECK-NEXT:        </dict>
2824// CHECK-NEXT:       </array>
2825// CHECK-NEXT:     </array>
2826// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2827// CHECK-NEXT:     <key>extended_message</key>
2828// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;ExceptionalArray&lt;NSString *&gt; *&apos;)</string>
2829// CHECK-NEXT:     <key>message</key>
2830// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;ExceptionalArray&lt;NSString *&gt; *&apos;)</string>
2831// CHECK-NEXT:    </dict>
2832// CHECK-NEXT:    <dict>
2833// CHECK-NEXT:     <key>kind</key><string>control</string>
2834// CHECK-NEXT:     <key>edges</key>
2835// CHECK-NEXT:      <array>
2836// CHECK-NEXT:       <dict>
2837// CHECK-NEXT:        <key>start</key>
2838// CHECK-NEXT:         <array>
2839// CHECK-NEXT:          <dict>
2840// CHECK-NEXT:           <key>line</key><integer>172</integer>
2841// CHECK-NEXT:           <key>col</key><integer>3</integer>
2842// CHECK-NEXT:           <key>file</key><integer>0</integer>
2843// CHECK-NEXT:          </dict>
2844// CHECK-NEXT:          <dict>
2845// CHECK-NEXT:           <key>line</key><integer>172</integer>
2846// CHECK-NEXT:           <key>col</key><integer>3</integer>
2847// CHECK-NEXT:           <key>file</key><integer>0</integer>
2848// CHECK-NEXT:          </dict>
2849// CHECK-NEXT:         </array>
2850// CHECK-NEXT:        <key>end</key>
2851// CHECK-NEXT:         <array>
2852// CHECK-NEXT:          <dict>
2853// CHECK-NEXT:           <key>line</key><integer>174</integer>
2854// CHECK-NEXT:           <key>col</key><integer>3</integer>
2855// CHECK-NEXT:           <key>file</key><integer>0</integer>
2856// CHECK-NEXT:          </dict>
2857// CHECK-NEXT:          <dict>
2858// CHECK-NEXT:           <key>line</key><integer>174</integer>
2859// CHECK-NEXT:           <key>col</key><integer>3</integer>
2860// CHECK-NEXT:           <key>file</key><integer>0</integer>
2861// CHECK-NEXT:          </dict>
2862// CHECK-NEXT:         </array>
2863// CHECK-NEXT:       </dict>
2864// CHECK-NEXT:      </array>
2865// CHECK-NEXT:    </dict>
2866// CHECK-NEXT:    <dict>
2867// CHECK-NEXT:     <key>kind</key><string>event</string>
2868// CHECK-NEXT:     <key>location</key>
2869// CHECK-NEXT:     <dict>
2870// CHECK-NEXT:      <key>line</key><integer>174</integer>
2871// CHECK-NEXT:      <key>col</key><integer>3</integer>
2872// CHECK-NEXT:      <key>file</key><integer>0</integer>
2873// CHECK-NEXT:     </dict>
2874// CHECK-NEXT:     <key>ranges</key>
2875// CHECK-NEXT:     <array>
2876// CHECK-NEXT:       <array>
2877// CHECK-NEXT:        <dict>
2878// CHECK-NEXT:         <key>line</key><integer>174</integer>
2879// CHECK-NEXT:         <key>col</key><integer>16</integer>
2880// CHECK-NEXT:         <key>file</key><integer>0</integer>
2881// CHECK-NEXT:        </dict>
2882// CHECK-NEXT:        <dict>
2883// CHECK-NEXT:         <key>line</key><integer>174</integer>
2884// CHECK-NEXT:         <key>col</key><integer>38</integer>
2885// CHECK-NEXT:         <key>file</key><integer>0</integer>
2886// CHECK-NEXT:        </dict>
2887// CHECK-NEXT:       </array>
2888// CHECK-NEXT:     </array>
2889// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2890// CHECK-NEXT:     <key>extended_message</key>
2891// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2892// CHECK-NEXT:     <key>message</key>
2893// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2894// CHECK-NEXT:    </dict>
2895// CHECK-NEXT:   </array>
2896// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2897// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2898// CHECK-NEXT:   <key>type</key><string>Generics</string>
2899// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2900// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2901// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>c70c13fbce3e6a90637decd9d0e19d95</string>
2902// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2903// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
2904// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
2905// CHECK-NEXT:  <key>location</key>
2906// CHECK-NEXT:  <dict>
2907// CHECK-NEXT:   <key>line</key><integer>174</integer>
2908// CHECK-NEXT:   <key>col</key><integer>3</integer>
2909// CHECK-NEXT:   <key>file</key><integer>0</integer>
2910// CHECK-NEXT:  </dict>
2911// CHECK-NEXT:  </dict>
2912// CHECK-NEXT:  <dict>
2913// CHECK-NEXT:   <key>path</key>
2914// CHECK-NEXT:   <array>
2915// CHECK-NEXT:    <dict>
2916// CHECK-NEXT:     <key>kind</key><string>event</string>
2917// CHECK-NEXT:     <key>location</key>
2918// CHECK-NEXT:     <dict>
2919// CHECK-NEXT:      <key>line</key><integer>172</integer>
2920// CHECK-NEXT:      <key>col</key><integer>7</integer>
2921// CHECK-NEXT:      <key>file</key><integer>0</integer>
2922// CHECK-NEXT:     </dict>
2923// CHECK-NEXT:     <key>ranges</key>
2924// CHECK-NEXT:     <array>
2925// CHECK-NEXT:       <array>
2926// CHECK-NEXT:        <dict>
2927// CHECK-NEXT:         <key>line</key><integer>172</integer>
2928// CHECK-NEXT:         <key>col</key><integer>7</integer>
2929// CHECK-NEXT:         <key>file</key><integer>0</integer>
2930// CHECK-NEXT:        </dict>
2931// CHECK-NEXT:        <dict>
2932// CHECK-NEXT:         <key>line</key><integer>172</integer>
2933// CHECK-NEXT:         <key>col</key><integer>7</integer>
2934// CHECK-NEXT:         <key>file</key><integer>0</integer>
2935// CHECK-NEXT:        </dict>
2936// CHECK-NEXT:       </array>
2937// CHECK-NEXT:     </array>
2938// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2939// CHECK-NEXT:     <key>extended_message</key>
2940// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;ExceptionalArray&lt;NSString *&gt; *&apos;)</string>
2941// CHECK-NEXT:     <key>message</key>
2942// CHECK-NEXT:     <string>Type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;ExceptionalArray&lt;NSString *&gt; *&apos;)</string>
2943// CHECK-NEXT:    </dict>
2944// CHECK-NEXT:    <dict>
2945// CHECK-NEXT:     <key>kind</key><string>control</string>
2946// CHECK-NEXT:     <key>edges</key>
2947// CHECK-NEXT:      <array>
2948// CHECK-NEXT:       <dict>
2949// CHECK-NEXT:        <key>start</key>
2950// CHECK-NEXT:         <array>
2951// CHECK-NEXT:          <dict>
2952// CHECK-NEXT:           <key>line</key><integer>172</integer>
2953// CHECK-NEXT:           <key>col</key><integer>3</integer>
2954// CHECK-NEXT:           <key>file</key><integer>0</integer>
2955// CHECK-NEXT:          </dict>
2956// CHECK-NEXT:          <dict>
2957// CHECK-NEXT:           <key>line</key><integer>172</integer>
2958// CHECK-NEXT:           <key>col</key><integer>3</integer>
2959// CHECK-NEXT:           <key>file</key><integer>0</integer>
2960// CHECK-NEXT:          </dict>
2961// CHECK-NEXT:         </array>
2962// CHECK-NEXT:        <key>end</key>
2963// CHECK-NEXT:         <array>
2964// CHECK-NEXT:          <dict>
2965// CHECK-NEXT:           <key>line</key><integer>176</integer>
2966// CHECK-NEXT:           <key>col</key><integer>3</integer>
2967// CHECK-NEXT:           <key>file</key><integer>0</integer>
2968// CHECK-NEXT:          </dict>
2969// CHECK-NEXT:          <dict>
2970// CHECK-NEXT:           <key>line</key><integer>176</integer>
2971// CHECK-NEXT:           <key>col</key><integer>3</integer>
2972// CHECK-NEXT:           <key>file</key><integer>0</integer>
2973// CHECK-NEXT:          </dict>
2974// CHECK-NEXT:         </array>
2975// CHECK-NEXT:       </dict>
2976// CHECK-NEXT:      </array>
2977// CHECK-NEXT:    </dict>
2978// CHECK-NEXT:    <dict>
2979// CHECK-NEXT:     <key>kind</key><string>control</string>
2980// CHECK-NEXT:     <key>edges</key>
2981// CHECK-NEXT:      <array>
2982// CHECK-NEXT:       <dict>
2983// CHECK-NEXT:        <key>start</key>
2984// CHECK-NEXT:         <array>
2985// CHECK-NEXT:          <dict>
2986// CHECK-NEXT:           <key>line</key><integer>176</integer>
2987// CHECK-NEXT:           <key>col</key><integer>3</integer>
2988// CHECK-NEXT:           <key>file</key><integer>0</integer>
2989// CHECK-NEXT:          </dict>
2990// CHECK-NEXT:          <dict>
2991// CHECK-NEXT:           <key>line</key><integer>176</integer>
2992// CHECK-NEXT:           <key>col</key><integer>3</integer>
2993// CHECK-NEXT:           <key>file</key><integer>0</integer>
2994// CHECK-NEXT:          </dict>
2995// CHECK-NEXT:         </array>
2996// CHECK-NEXT:        <key>end</key>
2997// CHECK-NEXT:         <array>
2998// CHECK-NEXT:          <dict>
2999// CHECK-NEXT:           <key>line</key><integer>176</integer>
3000// CHECK-NEXT:           <key>col</key><integer>7</integer>
3001// CHECK-NEXT:           <key>file</key><integer>0</integer>
3002// CHECK-NEXT:          </dict>
3003// CHECK-NEXT:          <dict>
3004// CHECK-NEXT:           <key>line</key><integer>176</integer>
3005// CHECK-NEXT:           <key>col</key><integer>7</integer>
3006// CHECK-NEXT:           <key>file</key><integer>0</integer>
3007// CHECK-NEXT:          </dict>
3008// CHECK-NEXT:         </array>
3009// CHECK-NEXT:       </dict>
3010// CHECK-NEXT:      </array>
3011// CHECK-NEXT:    </dict>
3012// CHECK-NEXT:    <dict>
3013// CHECK-NEXT:     <key>kind</key><string>event</string>
3014// CHECK-NEXT:     <key>location</key>
3015// CHECK-NEXT:     <dict>
3016// CHECK-NEXT:      <key>line</key><integer>176</integer>
3017// CHECK-NEXT:      <key>col</key><integer>7</integer>
3018// CHECK-NEXT:      <key>file</key><integer>0</integer>
3019// CHECK-NEXT:     </dict>
3020// CHECK-NEXT:     <key>ranges</key>
3021// CHECK-NEXT:     <array>
3022// CHECK-NEXT:       <array>
3023// CHECK-NEXT:        <dict>
3024// CHECK-NEXT:         <key>line</key><integer>176</integer>
3025// CHECK-NEXT:         <key>col</key><integer>7</integer>
3026// CHECK-NEXT:         <key>file</key><integer>0</integer>
3027// CHECK-NEXT:        </dict>
3028// CHECK-NEXT:        <dict>
3029// CHECK-NEXT:         <key>line</key><integer>176</integer>
3030// CHECK-NEXT:         <key>col</key><integer>7</integer>
3031// CHECK-NEXT:         <key>file</key><integer>0</integer>
3032// CHECK-NEXT:        </dict>
3033// CHECK-NEXT:       </array>
3034// CHECK-NEXT:     </array>
3035// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3036// CHECK-NEXT:     <key>extended_message</key>
3037// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
3038// CHECK-NEXT:     <key>message</key>
3039// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
3040// CHECK-NEXT:    </dict>
3041// CHECK-NEXT:   </array>
3042// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
3043// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3044// CHECK-NEXT:   <key>type</key><string>Generics</string>
3045// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3046// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3047// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>b6ee3b22fbad45f213b4bf14bec7eeaf</string>
3048// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3049// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
3050// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
3051// CHECK-NEXT:  <key>location</key>
3052// CHECK-NEXT:  <dict>
3053// CHECK-NEXT:   <key>line</key><integer>176</integer>
3054// CHECK-NEXT:   <key>col</key><integer>7</integer>
3055// CHECK-NEXT:   <key>file</key><integer>0</integer>
3056// CHECK-NEXT:  </dict>
3057// CHECK-NEXT:  </dict>
3058// CHECK-NEXT:  <dict>
3059// CHECK-NEXT:   <key>path</key>
3060// CHECK-NEXT:   <array>
3061// CHECK-NEXT:    <dict>
3062// CHECK-NEXT:     <key>kind</key><string>event</string>
3063// CHECK-NEXT:     <key>location</key>
3064// CHECK-NEXT:     <dict>
3065// CHECK-NEXT:      <key>line</key><integer>182</integer>
3066// CHECK-NEXT:      <key>col</key><integer>20</integer>
3067// CHECK-NEXT:      <key>file</key><integer>0</integer>
3068// CHECK-NEXT:     </dict>
3069// CHECK-NEXT:     <key>ranges</key>
3070// CHECK-NEXT:     <array>
3071// CHECK-NEXT:       <array>
3072// CHECK-NEXT:        <dict>
3073// CHECK-NEXT:         <key>line</key><integer>182</integer>
3074// CHECK-NEXT:         <key>col</key><integer>20</integer>
3075// CHECK-NEXT:         <key>file</key><integer>0</integer>
3076// CHECK-NEXT:        </dict>
3077// CHECK-NEXT:        <dict>
3078// CHECK-NEXT:         <key>line</key><integer>182</integer>
3079// CHECK-NEXT:         <key>col</key><integer>20</integer>
3080// CHECK-NEXT:         <key>file</key><integer>0</integer>
3081// CHECK-NEXT:        </dict>
3082// CHECK-NEXT:       </array>
3083// CHECK-NEXT:     </array>
3084// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3085// CHECK-NEXT:     <key>extended_message</key>
3086// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3087// CHECK-NEXT:     <key>message</key>
3088// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3089// CHECK-NEXT:    </dict>
3090// CHECK-NEXT:    <dict>
3091// CHECK-NEXT:     <key>kind</key><string>control</string>
3092// CHECK-NEXT:     <key>edges</key>
3093// CHECK-NEXT:      <array>
3094// CHECK-NEXT:       <dict>
3095// CHECK-NEXT:        <key>start</key>
3096// CHECK-NEXT:         <array>
3097// CHECK-NEXT:          <dict>
3098// CHECK-NEXT:           <key>line</key><integer>182</integer>
3099// CHECK-NEXT:           <key>col</key><integer>3</integer>
3100// CHECK-NEXT:           <key>file</key><integer>0</integer>
3101// CHECK-NEXT:          </dict>
3102// CHECK-NEXT:          <dict>
3103// CHECK-NEXT:           <key>line</key><integer>182</integer>
3104// CHECK-NEXT:           <key>col</key><integer>18</integer>
3105// CHECK-NEXT:           <key>file</key><integer>0</integer>
3106// CHECK-NEXT:          </dict>
3107// CHECK-NEXT:         </array>
3108// CHECK-NEXT:        <key>end</key>
3109// CHECK-NEXT:         <array>
3110// CHECK-NEXT:          <dict>
3111// CHECK-NEXT:           <key>line</key><integer>183</integer>
3112// CHECK-NEXT:           <key>col</key><integer>3</integer>
3113// CHECK-NEXT:           <key>file</key><integer>0</integer>
3114// CHECK-NEXT:          </dict>
3115// CHECK-NEXT:          <dict>
3116// CHECK-NEXT:           <key>line</key><integer>183</integer>
3117// CHECK-NEXT:           <key>col</key><integer>25</integer>
3118// CHECK-NEXT:           <key>file</key><integer>0</integer>
3119// CHECK-NEXT:          </dict>
3120// CHECK-NEXT:         </array>
3121// CHECK-NEXT:       </dict>
3122// CHECK-NEXT:      </array>
3123// CHECK-NEXT:    </dict>
3124// CHECK-NEXT:    <dict>
3125// CHECK-NEXT:     <key>kind</key><string>control</string>
3126// CHECK-NEXT:     <key>edges</key>
3127// CHECK-NEXT:      <array>
3128// CHECK-NEXT:       <dict>
3129// CHECK-NEXT:        <key>start</key>
3130// CHECK-NEXT:         <array>
3131// CHECK-NEXT:          <dict>
3132// CHECK-NEXT:           <key>line</key><integer>183</integer>
3133// CHECK-NEXT:           <key>col</key><integer>3</integer>
3134// CHECK-NEXT:           <key>file</key><integer>0</integer>
3135// CHECK-NEXT:          </dict>
3136// CHECK-NEXT:          <dict>
3137// CHECK-NEXT:           <key>line</key><integer>183</integer>
3138// CHECK-NEXT:           <key>col</key><integer>25</integer>
3139// CHECK-NEXT:           <key>file</key><integer>0</integer>
3140// CHECK-NEXT:          </dict>
3141// CHECK-NEXT:         </array>
3142// CHECK-NEXT:        <key>end</key>
3143// CHECK-NEXT:         <array>
3144// CHECK-NEXT:          <dict>
3145// CHECK-NEXT:           <key>line</key><integer>183</integer>
3146// CHECK-NEXT:           <key>col</key><integer>27</integer>
3147// CHECK-NEXT:           <key>file</key><integer>0</integer>
3148// CHECK-NEXT:          </dict>
3149// CHECK-NEXT:          <dict>
3150// CHECK-NEXT:           <key>line</key><integer>183</integer>
3151// CHECK-NEXT:           <key>col</key><integer>27</integer>
3152// CHECK-NEXT:           <key>file</key><integer>0</integer>
3153// CHECK-NEXT:          </dict>
3154// CHECK-NEXT:         </array>
3155// CHECK-NEXT:       </dict>
3156// CHECK-NEXT:      </array>
3157// CHECK-NEXT:    </dict>
3158// CHECK-NEXT:    <dict>
3159// CHECK-NEXT:     <key>kind</key><string>event</string>
3160// CHECK-NEXT:     <key>location</key>
3161// CHECK-NEXT:     <dict>
3162// CHECK-NEXT:      <key>line</key><integer>183</integer>
3163// CHECK-NEXT:      <key>col</key><integer>27</integer>
3164// CHECK-NEXT:      <key>file</key><integer>0</integer>
3165// CHECK-NEXT:     </dict>
3166// CHECK-NEXT:     <key>ranges</key>
3167// CHECK-NEXT:     <array>
3168// CHECK-NEXT:       <array>
3169// CHECK-NEXT:        <dict>
3170// CHECK-NEXT:         <key>line</key><integer>183</integer>
3171// CHECK-NEXT:         <key>col</key><integer>27</integer>
3172// CHECK-NEXT:         <key>file</key><integer>0</integer>
3173// CHECK-NEXT:        </dict>
3174// CHECK-NEXT:        <dict>
3175// CHECK-NEXT:         <key>line</key><integer>183</integer>
3176// CHECK-NEXT:         <key>col</key><integer>27</integer>
3177// CHECK-NEXT:         <key>file</key><integer>0</integer>
3178// CHECK-NEXT:        </dict>
3179// CHECK-NEXT:       </array>
3180// CHECK-NEXT:     </array>
3181// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3182// CHECK-NEXT:     <key>extended_message</key>
3183// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3184// CHECK-NEXT:     <key>message</key>
3185// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3186// CHECK-NEXT:    </dict>
3187// CHECK-NEXT:   </array>
3188// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3189// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3190// CHECK-NEXT:   <key>type</key><string>Generics</string>
3191// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3192// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3193// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>6aab15d40b39ec0a6b749e561d486e6a</string>
3194// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3195// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPI</string>
3196// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
3197// CHECK-NEXT:  <key>location</key>
3198// CHECK-NEXT:  <dict>
3199// CHECK-NEXT:   <key>line</key><integer>183</integer>
3200// CHECK-NEXT:   <key>col</key><integer>27</integer>
3201// CHECK-NEXT:   <key>file</key><integer>0</integer>
3202// CHECK-NEXT:  </dict>
3203// CHECK-NEXT:  </dict>
3204// CHECK-NEXT:  <dict>
3205// CHECK-NEXT:   <key>path</key>
3206// CHECK-NEXT:   <array>
3207// CHECK-NEXT:    <dict>
3208// CHECK-NEXT:     <key>kind</key><string>event</string>
3209// CHECK-NEXT:     <key>location</key>
3210// CHECK-NEXT:     <dict>
3211// CHECK-NEXT:      <key>line</key><integer>187</integer>
3212// CHECK-NEXT:      <key>col</key><integer>27</integer>
3213// CHECK-NEXT:      <key>file</key><integer>0</integer>
3214// CHECK-NEXT:     </dict>
3215// CHECK-NEXT:     <key>ranges</key>
3216// CHECK-NEXT:     <array>
3217// CHECK-NEXT:       <array>
3218// CHECK-NEXT:        <dict>
3219// CHECK-NEXT:         <key>line</key><integer>187</integer>
3220// CHECK-NEXT:         <key>col</key><integer>27</integer>
3221// CHECK-NEXT:         <key>file</key><integer>0</integer>
3222// CHECK-NEXT:        </dict>
3223// CHECK-NEXT:        <dict>
3224// CHECK-NEXT:         <key>line</key><integer>187</integer>
3225// CHECK-NEXT:         <key>col</key><integer>27</integer>
3226// CHECK-NEXT:         <key>file</key><integer>0</integer>
3227// CHECK-NEXT:        </dict>
3228// CHECK-NEXT:       </array>
3229// CHECK-NEXT:     </array>
3230// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3231// CHECK-NEXT:     <key>extended_message</key>
3232// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
3233// CHECK-NEXT:     <key>message</key>
3234// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
3235// CHECK-NEXT:    </dict>
3236// CHECK-NEXT:    <dict>
3237// CHECK-NEXT:     <key>kind</key><string>control</string>
3238// CHECK-NEXT:     <key>edges</key>
3239// CHECK-NEXT:      <array>
3240// CHECK-NEXT:       <dict>
3241// CHECK-NEXT:        <key>start</key>
3242// CHECK-NEXT:         <array>
3243// CHECK-NEXT:          <dict>
3244// CHECK-NEXT:           <key>line</key><integer>187</integer>
3245// CHECK-NEXT:           <key>col</key><integer>3</integer>
3246// CHECK-NEXT:           <key>file</key><integer>0</integer>
3247// CHECK-NEXT:          </dict>
3248// CHECK-NEXT:          <dict>
3249// CHECK-NEXT:           <key>line</key><integer>187</integer>
3250// CHECK-NEXT:           <key>col</key><integer>25</integer>
3251// CHECK-NEXT:           <key>file</key><integer>0</integer>
3252// CHECK-NEXT:          </dict>
3253// CHECK-NEXT:         </array>
3254// CHECK-NEXT:        <key>end</key>
3255// CHECK-NEXT:         <array>
3256// CHECK-NEXT:          <dict>
3257// CHECK-NEXT:           <key>line</key><integer>188</integer>
3258// CHECK-NEXT:           <key>col</key><integer>3</integer>
3259// CHECK-NEXT:           <key>file</key><integer>0</integer>
3260// CHECK-NEXT:          </dict>
3261// CHECK-NEXT:          <dict>
3262// CHECK-NEXT:           <key>line</key><integer>188</integer>
3263// CHECK-NEXT:           <key>col</key><integer>18</integer>
3264// CHECK-NEXT:           <key>file</key><integer>0</integer>
3265// CHECK-NEXT:          </dict>
3266// CHECK-NEXT:         </array>
3267// CHECK-NEXT:       </dict>
3268// CHECK-NEXT:      </array>
3269// CHECK-NEXT:    </dict>
3270// CHECK-NEXT:    <dict>
3271// CHECK-NEXT:     <key>kind</key><string>control</string>
3272// CHECK-NEXT:     <key>edges</key>
3273// CHECK-NEXT:      <array>
3274// CHECK-NEXT:       <dict>
3275// CHECK-NEXT:        <key>start</key>
3276// CHECK-NEXT:         <array>
3277// CHECK-NEXT:          <dict>
3278// CHECK-NEXT:           <key>line</key><integer>188</integer>
3279// CHECK-NEXT:           <key>col</key><integer>3</integer>
3280// CHECK-NEXT:           <key>file</key><integer>0</integer>
3281// CHECK-NEXT:          </dict>
3282// CHECK-NEXT:          <dict>
3283// CHECK-NEXT:           <key>line</key><integer>188</integer>
3284// CHECK-NEXT:           <key>col</key><integer>18</integer>
3285// CHECK-NEXT:           <key>file</key><integer>0</integer>
3286// CHECK-NEXT:          </dict>
3287// CHECK-NEXT:         </array>
3288// CHECK-NEXT:        <key>end</key>
3289// CHECK-NEXT:         <array>
3290// CHECK-NEXT:          <dict>
3291// CHECK-NEXT:           <key>line</key><integer>188</integer>
3292// CHECK-NEXT:           <key>col</key><integer>20</integer>
3293// CHECK-NEXT:           <key>file</key><integer>0</integer>
3294// CHECK-NEXT:          </dict>
3295// CHECK-NEXT:          <dict>
3296// CHECK-NEXT:           <key>line</key><integer>188</integer>
3297// CHECK-NEXT:           <key>col</key><integer>20</integer>
3298// CHECK-NEXT:           <key>file</key><integer>0</integer>
3299// CHECK-NEXT:          </dict>
3300// CHECK-NEXT:         </array>
3301// CHECK-NEXT:       </dict>
3302// CHECK-NEXT:      </array>
3303// CHECK-NEXT:    </dict>
3304// CHECK-NEXT:    <dict>
3305// CHECK-NEXT:     <key>kind</key><string>event</string>
3306// CHECK-NEXT:     <key>location</key>
3307// CHECK-NEXT:     <dict>
3308// CHECK-NEXT:      <key>line</key><integer>188</integer>
3309// CHECK-NEXT:      <key>col</key><integer>20</integer>
3310// CHECK-NEXT:      <key>file</key><integer>0</integer>
3311// CHECK-NEXT:     </dict>
3312// CHECK-NEXT:     <key>ranges</key>
3313// CHECK-NEXT:     <array>
3314// CHECK-NEXT:       <array>
3315// CHECK-NEXT:        <dict>
3316// CHECK-NEXT:         <key>line</key><integer>188</integer>
3317// CHECK-NEXT:         <key>col</key><integer>20</integer>
3318// CHECK-NEXT:         <key>file</key><integer>0</integer>
3319// CHECK-NEXT:        </dict>
3320// CHECK-NEXT:        <dict>
3321// CHECK-NEXT:         <key>line</key><integer>188</integer>
3322// CHECK-NEXT:         <key>col</key><integer>20</integer>
3323// CHECK-NEXT:         <key>file</key><integer>0</integer>
3324// CHECK-NEXT:        </dict>
3325// CHECK-NEXT:       </array>
3326// CHECK-NEXT:     </array>
3327// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3328// CHECK-NEXT:     <key>extended_message</key>
3329// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3330// CHECK-NEXT:     <key>message</key>
3331// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3332// CHECK-NEXT:    </dict>
3333// CHECK-NEXT:   </array>
3334// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3335// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3336// CHECK-NEXT:   <key>type</key><string>Generics</string>
3337// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3338// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3339// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>bd1da1b7775323773555e5d5c122661f</string>
3340// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3341// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPI2</string>
3342// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3343// CHECK-NEXT:  <key>location</key>
3344// CHECK-NEXT:  <dict>
3345// CHECK-NEXT:   <key>line</key><integer>188</integer>
3346// CHECK-NEXT:   <key>col</key><integer>20</integer>
3347// CHECK-NEXT:   <key>file</key><integer>0</integer>
3348// CHECK-NEXT:  </dict>
3349// CHECK-NEXT:  </dict>
3350// CHECK-NEXT:  <dict>
3351// CHECK-NEXT:   <key>path</key>
3352// CHECK-NEXT:   <array>
3353// CHECK-NEXT:    <dict>
3354// CHECK-NEXT:     <key>kind</key><string>event</string>
3355// CHECK-NEXT:     <key>location</key>
3356// CHECK-NEXT:     <dict>
3357// CHECK-NEXT:      <key>line</key><integer>192</integer>
3358// CHECK-NEXT:      <key>col</key><integer>27</integer>
3359// CHECK-NEXT:      <key>file</key><integer>0</integer>
3360// CHECK-NEXT:     </dict>
3361// CHECK-NEXT:     <key>ranges</key>
3362// CHECK-NEXT:     <array>
3363// CHECK-NEXT:       <array>
3364// CHECK-NEXT:        <dict>
3365// CHECK-NEXT:         <key>line</key><integer>192</integer>
3366// CHECK-NEXT:         <key>col</key><integer>27</integer>
3367// CHECK-NEXT:         <key>file</key><integer>0</integer>
3368// CHECK-NEXT:        </dict>
3369// CHECK-NEXT:        <dict>
3370// CHECK-NEXT:         <key>line</key><integer>192</integer>
3371// CHECK-NEXT:         <key>col</key><integer>27</integer>
3372// CHECK-NEXT:         <key>file</key><integer>0</integer>
3373// CHECK-NEXT:        </dict>
3374// CHECK-NEXT:       </array>
3375// CHECK-NEXT:     </array>
3376// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3377// CHECK-NEXT:     <key>extended_message</key>
3378// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;LegacyMutableArray *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
3379// CHECK-NEXT:     <key>message</key>
3380// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;LegacyMutableArray *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
3381// CHECK-NEXT:    </dict>
3382// CHECK-NEXT:    <dict>
3383// CHECK-NEXT:     <key>kind</key><string>control</string>
3384// CHECK-NEXT:     <key>edges</key>
3385// CHECK-NEXT:      <array>
3386// CHECK-NEXT:       <dict>
3387// CHECK-NEXT:        <key>start</key>
3388// CHECK-NEXT:         <array>
3389// CHECK-NEXT:          <dict>
3390// CHECK-NEXT:           <key>line</key><integer>192</integer>
3391// CHECK-NEXT:           <key>col</key><integer>3</integer>
3392// CHECK-NEXT:           <key>file</key><integer>0</integer>
3393// CHECK-NEXT:          </dict>
3394// CHECK-NEXT:          <dict>
3395// CHECK-NEXT:           <key>line</key><integer>192</integer>
3396// CHECK-NEXT:           <key>col</key><integer>25</integer>
3397// CHECK-NEXT:           <key>file</key><integer>0</integer>
3398// CHECK-NEXT:          </dict>
3399// CHECK-NEXT:         </array>
3400// CHECK-NEXT:        <key>end</key>
3401// CHECK-NEXT:         <array>
3402// CHECK-NEXT:          <dict>
3403// CHECK-NEXT:           <key>line</key><integer>193</integer>
3404// CHECK-NEXT:           <key>col</key><integer>3</integer>
3405// CHECK-NEXT:           <key>file</key><integer>0</integer>
3406// CHECK-NEXT:          </dict>
3407// CHECK-NEXT:          <dict>
3408// CHECK-NEXT:           <key>line</key><integer>193</integer>
3409// CHECK-NEXT:           <key>col</key><integer>18</integer>
3410// CHECK-NEXT:           <key>file</key><integer>0</integer>
3411// CHECK-NEXT:          </dict>
3412// CHECK-NEXT:         </array>
3413// CHECK-NEXT:       </dict>
3414// CHECK-NEXT:      </array>
3415// CHECK-NEXT:    </dict>
3416// CHECK-NEXT:    <dict>
3417// CHECK-NEXT:     <key>kind</key><string>control</string>
3418// CHECK-NEXT:     <key>edges</key>
3419// CHECK-NEXT:      <array>
3420// CHECK-NEXT:       <dict>
3421// CHECK-NEXT:        <key>start</key>
3422// CHECK-NEXT:         <array>
3423// CHECK-NEXT:          <dict>
3424// CHECK-NEXT:           <key>line</key><integer>193</integer>
3425// CHECK-NEXT:           <key>col</key><integer>3</integer>
3426// CHECK-NEXT:           <key>file</key><integer>0</integer>
3427// CHECK-NEXT:          </dict>
3428// CHECK-NEXT:          <dict>
3429// CHECK-NEXT:           <key>line</key><integer>193</integer>
3430// CHECK-NEXT:           <key>col</key><integer>18</integer>
3431// CHECK-NEXT:           <key>file</key><integer>0</integer>
3432// CHECK-NEXT:          </dict>
3433// CHECK-NEXT:         </array>
3434// CHECK-NEXT:        <key>end</key>
3435// CHECK-NEXT:         <array>
3436// CHECK-NEXT:          <dict>
3437// CHECK-NEXT:           <key>line</key><integer>193</integer>
3438// CHECK-NEXT:           <key>col</key><integer>20</integer>
3439// CHECK-NEXT:           <key>file</key><integer>0</integer>
3440// CHECK-NEXT:          </dict>
3441// CHECK-NEXT:          <dict>
3442// CHECK-NEXT:           <key>line</key><integer>193</integer>
3443// CHECK-NEXT:           <key>col</key><integer>20</integer>
3444// CHECK-NEXT:           <key>file</key><integer>0</integer>
3445// CHECK-NEXT:          </dict>
3446// CHECK-NEXT:         </array>
3447// CHECK-NEXT:       </dict>
3448// CHECK-NEXT:      </array>
3449// CHECK-NEXT:    </dict>
3450// CHECK-NEXT:    <dict>
3451// CHECK-NEXT:     <key>kind</key><string>event</string>
3452// CHECK-NEXT:     <key>location</key>
3453// CHECK-NEXT:     <dict>
3454// CHECK-NEXT:      <key>line</key><integer>193</integer>
3455// CHECK-NEXT:      <key>col</key><integer>20</integer>
3456// CHECK-NEXT:      <key>file</key><integer>0</integer>
3457// CHECK-NEXT:     </dict>
3458// CHECK-NEXT:     <key>ranges</key>
3459// CHECK-NEXT:     <array>
3460// CHECK-NEXT:       <array>
3461// CHECK-NEXT:        <dict>
3462// CHECK-NEXT:         <key>line</key><integer>193</integer>
3463// CHECK-NEXT:         <key>col</key><integer>20</integer>
3464// CHECK-NEXT:         <key>file</key><integer>0</integer>
3465// CHECK-NEXT:        </dict>
3466// CHECK-NEXT:        <dict>
3467// CHECK-NEXT:         <key>line</key><integer>193</integer>
3468// CHECK-NEXT:         <key>col</key><integer>20</integer>
3469// CHECK-NEXT:         <key>file</key><integer>0</integer>
3470// CHECK-NEXT:        </dict>
3471// CHECK-NEXT:       </array>
3472// CHECK-NEXT:     </array>
3473// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3474// CHECK-NEXT:     <key>extended_message</key>
3475// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3476// CHECK-NEXT:     <key>message</key>
3477// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3478// CHECK-NEXT:    </dict>
3479// CHECK-NEXT:   </array>
3480// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3481// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3482// CHECK-NEXT:   <key>type</key><string>Generics</string>
3483// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3484// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3485// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>3f2abd3c0b4b4a80a71bcbb668124ffb</string>
3486// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3487// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes</string>
3488// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3489// CHECK-NEXT:  <key>location</key>
3490// CHECK-NEXT:  <dict>
3491// CHECK-NEXT:   <key>line</key><integer>193</integer>
3492// CHECK-NEXT:   <key>col</key><integer>20</integer>
3493// CHECK-NEXT:   <key>file</key><integer>0</integer>
3494// CHECK-NEXT:  </dict>
3495// CHECK-NEXT:  </dict>
3496// CHECK-NEXT:  <dict>
3497// CHECK-NEXT:   <key>path</key>
3498// CHECK-NEXT:   <array>
3499// CHECK-NEXT:    <dict>
3500// CHECK-NEXT:     <key>kind</key><string>event</string>
3501// CHECK-NEXT:     <key>location</key>
3502// CHECK-NEXT:     <dict>
3503// CHECK-NEXT:      <key>line</key><integer>197</integer>
3504// CHECK-NEXT:      <key>col</key><integer>20</integer>
3505// CHECK-NEXT:      <key>file</key><integer>0</integer>
3506// CHECK-NEXT:     </dict>
3507// CHECK-NEXT:     <key>ranges</key>
3508// CHECK-NEXT:     <array>
3509// CHECK-NEXT:       <array>
3510// CHECK-NEXT:        <dict>
3511// CHECK-NEXT:         <key>line</key><integer>197</integer>
3512// CHECK-NEXT:         <key>col</key><integer>20</integer>
3513// CHECK-NEXT:         <key>file</key><integer>0</integer>
3514// CHECK-NEXT:        </dict>
3515// CHECK-NEXT:        <dict>
3516// CHECK-NEXT:         <key>line</key><integer>197</integer>
3517// CHECK-NEXT:         <key>col</key><integer>20</integer>
3518// CHECK-NEXT:         <key>file</key><integer>0</integer>
3519// CHECK-NEXT:        </dict>
3520// CHECK-NEXT:       </array>
3521// CHECK-NEXT:     </array>
3522// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3523// CHECK-NEXT:     <key>extended_message</key>
3524// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;LegacySpecialMutableArray *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3525// CHECK-NEXT:     <key>message</key>
3526// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;LegacySpecialMutableArray *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3527// CHECK-NEXT:    </dict>
3528// CHECK-NEXT:    <dict>
3529// CHECK-NEXT:     <key>kind</key><string>control</string>
3530// CHECK-NEXT:     <key>edges</key>
3531// CHECK-NEXT:      <array>
3532// CHECK-NEXT:       <dict>
3533// CHECK-NEXT:        <key>start</key>
3534// CHECK-NEXT:         <array>
3535// CHECK-NEXT:          <dict>
3536// CHECK-NEXT:           <key>line</key><integer>197</integer>
3537// CHECK-NEXT:           <key>col</key><integer>3</integer>
3538// CHECK-NEXT:           <key>file</key><integer>0</integer>
3539// CHECK-NEXT:          </dict>
3540// CHECK-NEXT:          <dict>
3541// CHECK-NEXT:           <key>line</key><integer>197</integer>
3542// CHECK-NEXT:           <key>col</key><integer>18</integer>
3543// CHECK-NEXT:           <key>file</key><integer>0</integer>
3544// CHECK-NEXT:          </dict>
3545// CHECK-NEXT:         </array>
3546// CHECK-NEXT:        <key>end</key>
3547// CHECK-NEXT:         <array>
3548// CHECK-NEXT:          <dict>
3549// CHECK-NEXT:           <key>line</key><integer>198</integer>
3550// CHECK-NEXT:           <key>col</key><integer>3</integer>
3551// CHECK-NEXT:           <key>file</key><integer>0</integer>
3552// CHECK-NEXT:          </dict>
3553// CHECK-NEXT:          <dict>
3554// CHECK-NEXT:           <key>line</key><integer>198</integer>
3555// CHECK-NEXT:           <key>col</key><integer>25</integer>
3556// CHECK-NEXT:           <key>file</key><integer>0</integer>
3557// CHECK-NEXT:          </dict>
3558// CHECK-NEXT:         </array>
3559// CHECK-NEXT:       </dict>
3560// CHECK-NEXT:      </array>
3561// CHECK-NEXT:    </dict>
3562// CHECK-NEXT:    <dict>
3563// CHECK-NEXT:     <key>kind</key><string>control</string>
3564// CHECK-NEXT:     <key>edges</key>
3565// CHECK-NEXT:      <array>
3566// CHECK-NEXT:       <dict>
3567// CHECK-NEXT:        <key>start</key>
3568// CHECK-NEXT:         <array>
3569// CHECK-NEXT:          <dict>
3570// CHECK-NEXT:           <key>line</key><integer>198</integer>
3571// CHECK-NEXT:           <key>col</key><integer>3</integer>
3572// CHECK-NEXT:           <key>file</key><integer>0</integer>
3573// CHECK-NEXT:          </dict>
3574// CHECK-NEXT:          <dict>
3575// CHECK-NEXT:           <key>line</key><integer>198</integer>
3576// CHECK-NEXT:           <key>col</key><integer>25</integer>
3577// CHECK-NEXT:           <key>file</key><integer>0</integer>
3578// CHECK-NEXT:          </dict>
3579// CHECK-NEXT:         </array>
3580// CHECK-NEXT:        <key>end</key>
3581// CHECK-NEXT:         <array>
3582// CHECK-NEXT:          <dict>
3583// CHECK-NEXT:           <key>line</key><integer>198</integer>
3584// CHECK-NEXT:           <key>col</key><integer>27</integer>
3585// CHECK-NEXT:           <key>file</key><integer>0</integer>
3586// CHECK-NEXT:          </dict>
3587// CHECK-NEXT:          <dict>
3588// CHECK-NEXT:           <key>line</key><integer>198</integer>
3589// CHECK-NEXT:           <key>col</key><integer>27</integer>
3590// CHECK-NEXT:           <key>file</key><integer>0</integer>
3591// CHECK-NEXT:          </dict>
3592// CHECK-NEXT:         </array>
3593// CHECK-NEXT:       </dict>
3594// CHECK-NEXT:      </array>
3595// CHECK-NEXT:    </dict>
3596// CHECK-NEXT:    <dict>
3597// CHECK-NEXT:     <key>kind</key><string>event</string>
3598// CHECK-NEXT:     <key>location</key>
3599// CHECK-NEXT:     <dict>
3600// CHECK-NEXT:      <key>line</key><integer>198</integer>
3601// CHECK-NEXT:      <key>col</key><integer>27</integer>
3602// CHECK-NEXT:      <key>file</key><integer>0</integer>
3603// CHECK-NEXT:     </dict>
3604// CHECK-NEXT:     <key>ranges</key>
3605// CHECK-NEXT:     <array>
3606// CHECK-NEXT:       <array>
3607// CHECK-NEXT:        <dict>
3608// CHECK-NEXT:         <key>line</key><integer>198</integer>
3609// CHECK-NEXT:         <key>col</key><integer>27</integer>
3610// CHECK-NEXT:         <key>file</key><integer>0</integer>
3611// CHECK-NEXT:        </dict>
3612// CHECK-NEXT:        <dict>
3613// CHECK-NEXT:         <key>line</key><integer>198</integer>
3614// CHECK-NEXT:         <key>col</key><integer>27</integer>
3615// CHECK-NEXT:         <key>file</key><integer>0</integer>
3616// CHECK-NEXT:        </dict>
3617// CHECK-NEXT:       </array>
3618// CHECK-NEXT:     </array>
3619// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3620// CHECK-NEXT:     <key>extended_message</key>
3621// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3622// CHECK-NEXT:     <key>message</key>
3623// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3624// CHECK-NEXT:    </dict>
3625// CHECK-NEXT:   </array>
3626// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3627// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3628// CHECK-NEXT:   <key>type</key><string>Generics</string>
3629// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3630// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3631// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>73a50f2592e8b3c9af898749f24176f7</string>
3632// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3633// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes2</string>
3634// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3635// CHECK-NEXT:  <key>location</key>
3636// CHECK-NEXT:  <dict>
3637// CHECK-NEXT:   <key>line</key><integer>198</integer>
3638// CHECK-NEXT:   <key>col</key><integer>27</integer>
3639// CHECK-NEXT:   <key>file</key><integer>0</integer>
3640// CHECK-NEXT:  </dict>
3641// CHECK-NEXT:  </dict>
3642// CHECK-NEXT:  <dict>
3643// CHECK-NEXT:   <key>path</key>
3644// CHECK-NEXT:   <array>
3645// CHECK-NEXT:    <dict>
3646// CHECK-NEXT:     <key>kind</key><string>event</string>
3647// CHECK-NEXT:     <key>location</key>
3648// CHECK-NEXT:     <dict>
3649// CHECK-NEXT:      <key>line</key><integer>202</integer>
3650// CHECK-NEXT:      <key>col</key><integer>27</integer>
3651// CHECK-NEXT:      <key>file</key><integer>0</integer>
3652// CHECK-NEXT:     </dict>
3653// CHECK-NEXT:     <key>ranges</key>
3654// CHECK-NEXT:     <array>
3655// CHECK-NEXT:       <array>
3656// CHECK-NEXT:        <dict>
3657// CHECK-NEXT:         <key>line</key><integer>202</integer>
3658// CHECK-NEXT:         <key>col</key><integer>27</integer>
3659// CHECK-NEXT:         <key>file</key><integer>0</integer>
3660// CHECK-NEXT:        </dict>
3661// CHECK-NEXT:        <dict>
3662// CHECK-NEXT:         <key>line</key><integer>202</integer>
3663// CHECK-NEXT:         <key>col</key><integer>27</integer>
3664// CHECK-NEXT:         <key>file</key><integer>0</integer>
3665// CHECK-NEXT:        </dict>
3666// CHECK-NEXT:       </array>
3667// CHECK-NEXT:     </array>
3668// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3669// CHECK-NEXT:     <key>extended_message</key>
3670// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;__kindof NSArray&lt;NSString *&gt; *&apos; to &apos;LegacyMutableArray *&apos;)</string>
3671// CHECK-NEXT:     <key>message</key>
3672// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;__kindof NSArray&lt;NSString *&gt; *&apos; to &apos;LegacyMutableArray *&apos;)</string>
3673// CHECK-NEXT:    </dict>
3674// CHECK-NEXT:    <dict>
3675// CHECK-NEXT:     <key>kind</key><string>control</string>
3676// CHECK-NEXT:     <key>edges</key>
3677// CHECK-NEXT:      <array>
3678// CHECK-NEXT:       <dict>
3679// CHECK-NEXT:        <key>start</key>
3680// CHECK-NEXT:         <array>
3681// CHECK-NEXT:          <dict>
3682// CHECK-NEXT:           <key>line</key><integer>202</integer>
3683// CHECK-NEXT:           <key>col</key><integer>3</integer>
3684// CHECK-NEXT:           <key>file</key><integer>0</integer>
3685// CHECK-NEXT:          </dict>
3686// CHECK-NEXT:          <dict>
3687// CHECK-NEXT:           <key>line</key><integer>202</integer>
3688// CHECK-NEXT:           <key>col</key><integer>20</integer>
3689// CHECK-NEXT:           <key>file</key><integer>0</integer>
3690// CHECK-NEXT:          </dict>
3691// CHECK-NEXT:         </array>
3692// CHECK-NEXT:        <key>end</key>
3693// CHECK-NEXT:         <array>
3694// CHECK-NEXT:          <dict>
3695// CHECK-NEXT:           <key>line</key><integer>203</integer>
3696// CHECK-NEXT:           <key>col</key><integer>3</integer>
3697// CHECK-NEXT:           <key>file</key><integer>0</integer>
3698// CHECK-NEXT:          </dict>
3699// CHECK-NEXT:          <dict>
3700// CHECK-NEXT:           <key>line</key><integer>203</integer>
3701// CHECK-NEXT:           <key>col</key><integer>18</integer>
3702// CHECK-NEXT:           <key>file</key><integer>0</integer>
3703// CHECK-NEXT:          </dict>
3704// CHECK-NEXT:         </array>
3705// CHECK-NEXT:       </dict>
3706// CHECK-NEXT:      </array>
3707// CHECK-NEXT:    </dict>
3708// CHECK-NEXT:    <dict>
3709// CHECK-NEXT:     <key>kind</key><string>event</string>
3710// CHECK-NEXT:     <key>location</key>
3711// CHECK-NEXT:     <dict>
3712// CHECK-NEXT:      <key>line</key><integer>203</integer>
3713// CHECK-NEXT:      <key>col</key><integer>20</integer>
3714// CHECK-NEXT:      <key>file</key><integer>0</integer>
3715// CHECK-NEXT:     </dict>
3716// CHECK-NEXT:     <key>ranges</key>
3717// CHECK-NEXT:     <array>
3718// CHECK-NEXT:       <array>
3719// CHECK-NEXT:        <dict>
3720// CHECK-NEXT:         <key>line</key><integer>203</integer>
3721// CHECK-NEXT:         <key>col</key><integer>20</integer>
3722// CHECK-NEXT:         <key>file</key><integer>0</integer>
3723// CHECK-NEXT:        </dict>
3724// CHECK-NEXT:        <dict>
3725// CHECK-NEXT:         <key>line</key><integer>203</integer>
3726// CHECK-NEXT:         <key>col</key><integer>20</integer>
3727// CHECK-NEXT:         <key>file</key><integer>0</integer>
3728// CHECK-NEXT:        </dict>
3729// CHECK-NEXT:       </array>
3730// CHECK-NEXT:     </array>
3731// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3732// CHECK-NEXT:     <key>extended_message</key>
3733// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;LegacyMutableArray *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3734// CHECK-NEXT:     <key>message</key>
3735// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;LegacyMutableArray *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3736// CHECK-NEXT:    </dict>
3737// CHECK-NEXT:    <dict>
3738// CHECK-NEXT:     <key>kind</key><string>control</string>
3739// CHECK-NEXT:     <key>edges</key>
3740// CHECK-NEXT:      <array>
3741// CHECK-NEXT:       <dict>
3742// CHECK-NEXT:        <key>start</key>
3743// CHECK-NEXT:         <array>
3744// CHECK-NEXT:          <dict>
3745// CHECK-NEXT:           <key>line</key><integer>203</integer>
3746// CHECK-NEXT:           <key>col</key><integer>3</integer>
3747// CHECK-NEXT:           <key>file</key><integer>0</integer>
3748// CHECK-NEXT:          </dict>
3749// CHECK-NEXT:          <dict>
3750// CHECK-NEXT:           <key>line</key><integer>203</integer>
3751// CHECK-NEXT:           <key>col</key><integer>18</integer>
3752// CHECK-NEXT:           <key>file</key><integer>0</integer>
3753// CHECK-NEXT:          </dict>
3754// CHECK-NEXT:         </array>
3755// CHECK-NEXT:        <key>end</key>
3756// CHECK-NEXT:         <array>
3757// CHECK-NEXT:          <dict>
3758// CHECK-NEXT:           <key>line</key><integer>204</integer>
3759// CHECK-NEXT:           <key>col</key><integer>3</integer>
3760// CHECK-NEXT:           <key>file</key><integer>0</integer>
3761// CHECK-NEXT:          </dict>
3762// CHECK-NEXT:          <dict>
3763// CHECK-NEXT:           <key>line</key><integer>204</integer>
3764// CHECK-NEXT:           <key>col</key><integer>25</integer>
3765// CHECK-NEXT:           <key>file</key><integer>0</integer>
3766// CHECK-NEXT:          </dict>
3767// CHECK-NEXT:         </array>
3768// CHECK-NEXT:       </dict>
3769// CHECK-NEXT:      </array>
3770// CHECK-NEXT:    </dict>
3771// CHECK-NEXT:    <dict>
3772// CHECK-NEXT:     <key>kind</key><string>control</string>
3773// CHECK-NEXT:     <key>edges</key>
3774// CHECK-NEXT:      <array>
3775// CHECK-NEXT:       <dict>
3776// CHECK-NEXT:        <key>start</key>
3777// CHECK-NEXT:         <array>
3778// CHECK-NEXT:          <dict>
3779// CHECK-NEXT:           <key>line</key><integer>204</integer>
3780// CHECK-NEXT:           <key>col</key><integer>3</integer>
3781// CHECK-NEXT:           <key>file</key><integer>0</integer>
3782// CHECK-NEXT:          </dict>
3783// CHECK-NEXT:          <dict>
3784// CHECK-NEXT:           <key>line</key><integer>204</integer>
3785// CHECK-NEXT:           <key>col</key><integer>25</integer>
3786// CHECK-NEXT:           <key>file</key><integer>0</integer>
3787// CHECK-NEXT:          </dict>
3788// CHECK-NEXT:         </array>
3789// CHECK-NEXT:        <key>end</key>
3790// CHECK-NEXT:         <array>
3791// CHECK-NEXT:          <dict>
3792// CHECK-NEXT:           <key>line</key><integer>204</integer>
3793// CHECK-NEXT:           <key>col</key><integer>27</integer>
3794// CHECK-NEXT:           <key>file</key><integer>0</integer>
3795// CHECK-NEXT:          </dict>
3796// CHECK-NEXT:          <dict>
3797// CHECK-NEXT:           <key>line</key><integer>204</integer>
3798// CHECK-NEXT:           <key>col</key><integer>27</integer>
3799// CHECK-NEXT:           <key>file</key><integer>0</integer>
3800// CHECK-NEXT:          </dict>
3801// CHECK-NEXT:         </array>
3802// CHECK-NEXT:       </dict>
3803// CHECK-NEXT:      </array>
3804// CHECK-NEXT:    </dict>
3805// CHECK-NEXT:    <dict>
3806// CHECK-NEXT:     <key>kind</key><string>event</string>
3807// CHECK-NEXT:     <key>location</key>
3808// CHECK-NEXT:     <dict>
3809// CHECK-NEXT:      <key>line</key><integer>204</integer>
3810// CHECK-NEXT:      <key>col</key><integer>27</integer>
3811// CHECK-NEXT:      <key>file</key><integer>0</integer>
3812// CHECK-NEXT:     </dict>
3813// CHECK-NEXT:     <key>ranges</key>
3814// CHECK-NEXT:     <array>
3815// CHECK-NEXT:       <array>
3816// CHECK-NEXT:        <dict>
3817// CHECK-NEXT:         <key>line</key><integer>204</integer>
3818// CHECK-NEXT:         <key>col</key><integer>27</integer>
3819// CHECK-NEXT:         <key>file</key><integer>0</integer>
3820// CHECK-NEXT:        </dict>
3821// CHECK-NEXT:        <dict>
3822// CHECK-NEXT:         <key>line</key><integer>204</integer>
3823// CHECK-NEXT:         <key>col</key><integer>27</integer>
3824// CHECK-NEXT:         <key>file</key><integer>0</integer>
3825// CHECK-NEXT:        </dict>
3826// CHECK-NEXT:       </array>
3827// CHECK-NEXT:     </array>
3828// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3829// CHECK-NEXT:     <key>extended_message</key>
3830// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3831// CHECK-NEXT:     <key>message</key>
3832// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3833// CHECK-NEXT:    </dict>
3834// CHECK-NEXT:   </array>
3835// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3836// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3837// CHECK-NEXT:   <key>type</key><string>Generics</string>
3838// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3839// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3840// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>23ca540c8961ab9a362a194e1e895f86</string>
3841// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3842// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes3</string>
3843// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
3844// CHECK-NEXT:  <key>location</key>
3845// CHECK-NEXT:  <dict>
3846// CHECK-NEXT:   <key>line</key><integer>204</integer>
3847// CHECK-NEXT:   <key>col</key><integer>27</integer>
3848// CHECK-NEXT:   <key>file</key><integer>0</integer>
3849// CHECK-NEXT:  </dict>
3850// CHECK-NEXT:  </dict>
3851// CHECK-NEXT:  <dict>
3852// CHECK-NEXT:   <key>path</key>
3853// CHECK-NEXT:   <array>
3854// CHECK-NEXT:    <dict>
3855// CHECK-NEXT:     <key>kind</key><string>event</string>
3856// CHECK-NEXT:     <key>location</key>
3857// CHECK-NEXT:     <dict>
3858// CHECK-NEXT:      <key>line</key><integer>208</integer>
3859// CHECK-NEXT:      <key>col</key><integer>20</integer>
3860// CHECK-NEXT:      <key>file</key><integer>0</integer>
3861// CHECK-NEXT:     </dict>
3862// CHECK-NEXT:     <key>ranges</key>
3863// CHECK-NEXT:     <array>
3864// CHECK-NEXT:       <array>
3865// CHECK-NEXT:        <dict>
3866// CHECK-NEXT:         <key>line</key><integer>208</integer>
3867// CHECK-NEXT:         <key>col</key><integer>20</integer>
3868// CHECK-NEXT:         <key>file</key><integer>0</integer>
3869// CHECK-NEXT:        </dict>
3870// CHECK-NEXT:        <dict>
3871// CHECK-NEXT:         <key>line</key><integer>208</integer>
3872// CHECK-NEXT:         <key>col</key><integer>20</integer>
3873// CHECK-NEXT:         <key>file</key><integer>0</integer>
3874// CHECK-NEXT:        </dict>
3875// CHECK-NEXT:       </array>
3876// CHECK-NEXT:     </array>
3877// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3878// CHECK-NEXT:     <key>extended_message</key>
3879// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3880// CHECK-NEXT:     <key>message</key>
3881// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
3882// CHECK-NEXT:    </dict>
3883// CHECK-NEXT:    <dict>
3884// CHECK-NEXT:     <key>kind</key><string>control</string>
3885// CHECK-NEXT:     <key>edges</key>
3886// CHECK-NEXT:      <array>
3887// CHECK-NEXT:       <dict>
3888// CHECK-NEXT:        <key>start</key>
3889// CHECK-NEXT:         <array>
3890// CHECK-NEXT:          <dict>
3891// CHECK-NEXT:           <key>line</key><integer>208</integer>
3892// CHECK-NEXT:           <key>col</key><integer>3</integer>
3893// CHECK-NEXT:           <key>file</key><integer>0</integer>
3894// CHECK-NEXT:          </dict>
3895// CHECK-NEXT:          <dict>
3896// CHECK-NEXT:           <key>line</key><integer>208</integer>
3897// CHECK-NEXT:           <key>col</key><integer>18</integer>
3898// CHECK-NEXT:           <key>file</key><integer>0</integer>
3899// CHECK-NEXT:          </dict>
3900// CHECK-NEXT:         </array>
3901// CHECK-NEXT:        <key>end</key>
3902// CHECK-NEXT:         <array>
3903// CHECK-NEXT:          <dict>
3904// CHECK-NEXT:           <key>line</key><integer>209</integer>
3905// CHECK-NEXT:           <key>col</key><integer>3</integer>
3906// CHECK-NEXT:           <key>file</key><integer>0</integer>
3907// CHECK-NEXT:          </dict>
3908// CHECK-NEXT:          <dict>
3909// CHECK-NEXT:           <key>line</key><integer>209</integer>
3910// CHECK-NEXT:           <key>col</key><integer>25</integer>
3911// CHECK-NEXT:           <key>file</key><integer>0</integer>
3912// CHECK-NEXT:          </dict>
3913// CHECK-NEXT:         </array>
3914// CHECK-NEXT:       </dict>
3915// CHECK-NEXT:      </array>
3916// CHECK-NEXT:    </dict>
3917// CHECK-NEXT:    <dict>
3918// CHECK-NEXT:     <key>kind</key><string>control</string>
3919// CHECK-NEXT:     <key>edges</key>
3920// CHECK-NEXT:      <array>
3921// CHECK-NEXT:       <dict>
3922// CHECK-NEXT:        <key>start</key>
3923// CHECK-NEXT:         <array>
3924// CHECK-NEXT:          <dict>
3925// CHECK-NEXT:           <key>line</key><integer>209</integer>
3926// CHECK-NEXT:           <key>col</key><integer>3</integer>
3927// CHECK-NEXT:           <key>file</key><integer>0</integer>
3928// CHECK-NEXT:          </dict>
3929// CHECK-NEXT:          <dict>
3930// CHECK-NEXT:           <key>line</key><integer>209</integer>
3931// CHECK-NEXT:           <key>col</key><integer>25</integer>
3932// CHECK-NEXT:           <key>file</key><integer>0</integer>
3933// CHECK-NEXT:          </dict>
3934// CHECK-NEXT:         </array>
3935// CHECK-NEXT:        <key>end</key>
3936// CHECK-NEXT:         <array>
3937// CHECK-NEXT:          <dict>
3938// CHECK-NEXT:           <key>line</key><integer>209</integer>
3939// CHECK-NEXT:           <key>col</key><integer>27</integer>
3940// CHECK-NEXT:           <key>file</key><integer>0</integer>
3941// CHECK-NEXT:          </dict>
3942// CHECK-NEXT:          <dict>
3943// CHECK-NEXT:           <key>line</key><integer>209</integer>
3944// CHECK-NEXT:           <key>col</key><integer>27</integer>
3945// CHECK-NEXT:           <key>file</key><integer>0</integer>
3946// CHECK-NEXT:          </dict>
3947// CHECK-NEXT:         </array>
3948// CHECK-NEXT:       </dict>
3949// CHECK-NEXT:      </array>
3950// CHECK-NEXT:    </dict>
3951// CHECK-NEXT:    <dict>
3952// CHECK-NEXT:     <key>kind</key><string>event</string>
3953// CHECK-NEXT:     <key>location</key>
3954// CHECK-NEXT:     <dict>
3955// CHECK-NEXT:      <key>line</key><integer>209</integer>
3956// CHECK-NEXT:      <key>col</key><integer>27</integer>
3957// CHECK-NEXT:      <key>file</key><integer>0</integer>
3958// CHECK-NEXT:     </dict>
3959// CHECK-NEXT:     <key>ranges</key>
3960// CHECK-NEXT:     <array>
3961// CHECK-NEXT:       <array>
3962// CHECK-NEXT:        <dict>
3963// CHECK-NEXT:         <key>line</key><integer>209</integer>
3964// CHECK-NEXT:         <key>col</key><integer>27</integer>
3965// CHECK-NEXT:         <key>file</key><integer>0</integer>
3966// CHECK-NEXT:        </dict>
3967// CHECK-NEXT:        <dict>
3968// CHECK-NEXT:         <key>line</key><integer>209</integer>
3969// CHECK-NEXT:         <key>col</key><integer>27</integer>
3970// CHECK-NEXT:         <key>file</key><integer>0</integer>
3971// CHECK-NEXT:        </dict>
3972// CHECK-NEXT:       </array>
3973// CHECK-NEXT:     </array>
3974// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3975// CHECK-NEXT:     <key>extended_message</key>
3976// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3977// CHECK-NEXT:     <key>message</key>
3978// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3979// CHECK-NEXT:    </dict>
3980// CHECK-NEXT:   </array>
3981// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3982// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3983// CHECK-NEXT:   <key>type</key><string>Generics</string>
3984// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3985// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3986// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>be7e9426f827314f05fd4e15b25909df</string>
3987// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3988// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithBuggyTypes</string>
3989// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3990// CHECK-NEXT:  <key>location</key>
3991// CHECK-NEXT:  <dict>
3992// CHECK-NEXT:   <key>line</key><integer>209</integer>
3993// CHECK-NEXT:   <key>col</key><integer>27</integer>
3994// CHECK-NEXT:   <key>file</key><integer>0</integer>
3995// CHECK-NEXT:  </dict>
3996// CHECK-NEXT:  </dict>
3997// CHECK-NEXT:  <dict>
3998// CHECK-NEXT:   <key>path</key>
3999// CHECK-NEXT:   <array>
4000// CHECK-NEXT:    <dict>
4001// CHECK-NEXT:     <key>kind</key><string>event</string>
4002// CHECK-NEXT:     <key>location</key>
4003// CHECK-NEXT:     <dict>
4004// CHECK-NEXT:      <key>line</key><integer>213</integer>
4005// CHECK-NEXT:      <key>col</key><integer>27</integer>
4006// CHECK-NEXT:      <key>file</key><integer>0</integer>
4007// CHECK-NEXT:     </dict>
4008// CHECK-NEXT:     <key>ranges</key>
4009// CHECK-NEXT:     <array>
4010// CHECK-NEXT:       <array>
4011// CHECK-NEXT:        <dict>
4012// CHECK-NEXT:         <key>line</key><integer>213</integer>
4013// CHECK-NEXT:         <key>col</key><integer>27</integer>
4014// CHECK-NEXT:         <key>file</key><integer>0</integer>
4015// CHECK-NEXT:        </dict>
4016// CHECK-NEXT:        <dict>
4017// CHECK-NEXT:         <key>line</key><integer>213</integer>
4018// CHECK-NEXT:         <key>col</key><integer>27</integer>
4019// CHECK-NEXT:         <key>file</key><integer>0</integer>
4020// CHECK-NEXT:        </dict>
4021// CHECK-NEXT:       </array>
4022// CHECK-NEXT:     </array>
4023// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4024// CHECK-NEXT:     <key>extended_message</key>
4025// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggySpecialMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
4026// CHECK-NEXT:     <key>message</key>
4027// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggySpecialMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
4028// CHECK-NEXT:    </dict>
4029// CHECK-NEXT:    <dict>
4030// CHECK-NEXT:     <key>kind</key><string>control</string>
4031// CHECK-NEXT:     <key>edges</key>
4032// CHECK-NEXT:      <array>
4033// CHECK-NEXT:       <dict>
4034// CHECK-NEXT:        <key>start</key>
4035// CHECK-NEXT:         <array>
4036// CHECK-NEXT:          <dict>
4037// CHECK-NEXT:           <key>line</key><integer>213</integer>
4038// CHECK-NEXT:           <key>col</key><integer>3</integer>
4039// CHECK-NEXT:           <key>file</key><integer>0</integer>
4040// CHECK-NEXT:          </dict>
4041// CHECK-NEXT:          <dict>
4042// CHECK-NEXT:           <key>line</key><integer>213</integer>
4043// CHECK-NEXT:           <key>col</key><integer>25</integer>
4044// CHECK-NEXT:           <key>file</key><integer>0</integer>
4045// CHECK-NEXT:          </dict>
4046// CHECK-NEXT:         </array>
4047// CHECK-NEXT:        <key>end</key>
4048// CHECK-NEXT:         <array>
4049// CHECK-NEXT:          <dict>
4050// CHECK-NEXT:           <key>line</key><integer>214</integer>
4051// CHECK-NEXT:           <key>col</key><integer>3</integer>
4052// CHECK-NEXT:           <key>file</key><integer>0</integer>
4053// CHECK-NEXT:          </dict>
4054// CHECK-NEXT:          <dict>
4055// CHECK-NEXT:           <key>line</key><integer>214</integer>
4056// CHECK-NEXT:           <key>col</key><integer>18</integer>
4057// CHECK-NEXT:           <key>file</key><integer>0</integer>
4058// CHECK-NEXT:          </dict>
4059// CHECK-NEXT:         </array>
4060// CHECK-NEXT:       </dict>
4061// CHECK-NEXT:      </array>
4062// CHECK-NEXT:    </dict>
4063// CHECK-NEXT:    <dict>
4064// CHECK-NEXT:     <key>kind</key><string>control</string>
4065// CHECK-NEXT:     <key>edges</key>
4066// CHECK-NEXT:      <array>
4067// CHECK-NEXT:       <dict>
4068// CHECK-NEXT:        <key>start</key>
4069// CHECK-NEXT:         <array>
4070// CHECK-NEXT:          <dict>
4071// CHECK-NEXT:           <key>line</key><integer>214</integer>
4072// CHECK-NEXT:           <key>col</key><integer>3</integer>
4073// CHECK-NEXT:           <key>file</key><integer>0</integer>
4074// CHECK-NEXT:          </dict>
4075// CHECK-NEXT:          <dict>
4076// CHECK-NEXT:           <key>line</key><integer>214</integer>
4077// CHECK-NEXT:           <key>col</key><integer>18</integer>
4078// CHECK-NEXT:           <key>file</key><integer>0</integer>
4079// CHECK-NEXT:          </dict>
4080// CHECK-NEXT:         </array>
4081// CHECK-NEXT:        <key>end</key>
4082// CHECK-NEXT:         <array>
4083// CHECK-NEXT:          <dict>
4084// CHECK-NEXT:           <key>line</key><integer>214</integer>
4085// CHECK-NEXT:           <key>col</key><integer>20</integer>
4086// CHECK-NEXT:           <key>file</key><integer>0</integer>
4087// CHECK-NEXT:          </dict>
4088// CHECK-NEXT:          <dict>
4089// CHECK-NEXT:           <key>line</key><integer>214</integer>
4090// CHECK-NEXT:           <key>col</key><integer>20</integer>
4091// CHECK-NEXT:           <key>file</key><integer>0</integer>
4092// CHECK-NEXT:          </dict>
4093// CHECK-NEXT:         </array>
4094// CHECK-NEXT:       </dict>
4095// CHECK-NEXT:      </array>
4096// CHECK-NEXT:    </dict>
4097// CHECK-NEXT:    <dict>
4098// CHECK-NEXT:     <key>kind</key><string>event</string>
4099// CHECK-NEXT:     <key>location</key>
4100// CHECK-NEXT:     <dict>
4101// CHECK-NEXT:      <key>line</key><integer>214</integer>
4102// CHECK-NEXT:      <key>col</key><integer>20</integer>
4103// CHECK-NEXT:      <key>file</key><integer>0</integer>
4104// CHECK-NEXT:     </dict>
4105// CHECK-NEXT:     <key>ranges</key>
4106// CHECK-NEXT:     <array>
4107// CHECK-NEXT:       <array>
4108// CHECK-NEXT:        <dict>
4109// CHECK-NEXT:         <key>line</key><integer>214</integer>
4110// CHECK-NEXT:         <key>col</key><integer>20</integer>
4111// CHECK-NEXT:         <key>file</key><integer>0</integer>
4112// CHECK-NEXT:        </dict>
4113// CHECK-NEXT:        <dict>
4114// CHECK-NEXT:         <key>line</key><integer>214</integer>
4115// CHECK-NEXT:         <key>col</key><integer>20</integer>
4116// CHECK-NEXT:         <key>file</key><integer>0</integer>
4117// CHECK-NEXT:        </dict>
4118// CHECK-NEXT:       </array>
4119// CHECK-NEXT:     </array>
4120// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4121// CHECK-NEXT:     <key>extended_message</key>
4122// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4123// CHECK-NEXT:     <key>message</key>
4124// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4125// CHECK-NEXT:    </dict>
4126// CHECK-NEXT:   </array>
4127// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4128// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
4129// CHECK-NEXT:   <key>type</key><string>Generics</string>
4130// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
4131// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4132// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>0f97a618ccac913d7c8631b5b86a133e</string>
4133// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4134// CHECK-NEXT:  <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes2</string>
4135// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
4136// CHECK-NEXT:  <key>location</key>
4137// CHECK-NEXT:  <dict>
4138// CHECK-NEXT:   <key>line</key><integer>214</integer>
4139// CHECK-NEXT:   <key>col</key><integer>20</integer>
4140// CHECK-NEXT:   <key>file</key><integer>0</integer>
4141// CHECK-NEXT:  </dict>
4142// CHECK-NEXT:  </dict>
4143// CHECK-NEXT:  <dict>
4144// CHECK-NEXT:   <key>path</key>
4145// CHECK-NEXT:   <array>
4146// CHECK-NEXT:    <dict>
4147// CHECK-NEXT:     <key>kind</key><string>event</string>
4148// CHECK-NEXT:     <key>location</key>
4149// CHECK-NEXT:     <dict>
4150// CHECK-NEXT:      <key>line</key><integer>218</integer>
4151// CHECK-NEXT:      <key>col</key><integer>10</integer>
4152// CHECK-NEXT:      <key>file</key><integer>0</integer>
4153// CHECK-NEXT:     </dict>
4154// CHECK-NEXT:     <key>ranges</key>
4155// CHECK-NEXT:     <array>
4156// CHECK-NEXT:       <array>
4157// CHECK-NEXT:        <dict>
4158// CHECK-NEXT:         <key>line</key><integer>218</integer>
4159// CHECK-NEXT:         <key>col</key><integer>10</integer>
4160// CHECK-NEXT:         <key>file</key><integer>0</integer>
4161// CHECK-NEXT:        </dict>
4162// CHECK-NEXT:        <dict>
4163// CHECK-NEXT:         <key>line</key><integer>218</integer>
4164// CHECK-NEXT:         <key>col</key><integer>10</integer>
4165// CHECK-NEXT:         <key>file</key><integer>0</integer>
4166// CHECK-NEXT:        </dict>
4167// CHECK-NEXT:       </array>
4168// CHECK-NEXT:     </array>
4169// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4170// CHECK-NEXT:     <key>extended_message</key>
4171// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;id&apos;)</string>
4172// CHECK-NEXT:     <key>message</key>
4173// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;id&apos;)</string>
4174// CHECK-NEXT:    </dict>
4175// CHECK-NEXT:    <dict>
4176// CHECK-NEXT:     <key>kind</key><string>control</string>
4177// CHECK-NEXT:     <key>edges</key>
4178// CHECK-NEXT:      <array>
4179// CHECK-NEXT:       <dict>
4180// CHECK-NEXT:        <key>start</key>
4181// CHECK-NEXT:         <array>
4182// CHECK-NEXT:          <dict>
4183// CHECK-NEXT:           <key>line</key><integer>218</integer>
4184// CHECK-NEXT:           <key>col</key><integer>3</integer>
4185// CHECK-NEXT:           <key>file</key><integer>0</integer>
4186// CHECK-NEXT:          </dict>
4187// CHECK-NEXT:          <dict>
4188// CHECK-NEXT:           <key>line</key><integer>218</integer>
4189// CHECK-NEXT:           <key>col</key><integer>4</integer>
4190// CHECK-NEXT:           <key>file</key><integer>0</integer>
4191// CHECK-NEXT:          </dict>
4192// CHECK-NEXT:         </array>
4193// CHECK-NEXT:        <key>end</key>
4194// CHECK-NEXT:         <array>
4195// CHECK-NEXT:          <dict>
4196// CHECK-NEXT:           <key>line</key><integer>220</integer>
4197// CHECK-NEXT:           <key>col</key><integer>3</integer>
4198// CHECK-NEXT:           <key>file</key><integer>0</integer>
4199// CHECK-NEXT:          </dict>
4200// CHECK-NEXT:          <dict>
4201// CHECK-NEXT:           <key>line</key><integer>220</integer>
4202// CHECK-NEXT:           <key>col</key><integer>18</integer>
4203// CHECK-NEXT:           <key>file</key><integer>0</integer>
4204// CHECK-NEXT:          </dict>
4205// CHECK-NEXT:         </array>
4206// CHECK-NEXT:       </dict>
4207// CHECK-NEXT:      </array>
4208// CHECK-NEXT:    </dict>
4209// CHECK-NEXT:    <dict>
4210// CHECK-NEXT:     <key>kind</key><string>control</string>
4211// CHECK-NEXT:     <key>edges</key>
4212// CHECK-NEXT:      <array>
4213// CHECK-NEXT:       <dict>
4214// CHECK-NEXT:        <key>start</key>
4215// CHECK-NEXT:         <array>
4216// CHECK-NEXT:          <dict>
4217// CHECK-NEXT:           <key>line</key><integer>220</integer>
4218// CHECK-NEXT:           <key>col</key><integer>3</integer>
4219// CHECK-NEXT:           <key>file</key><integer>0</integer>
4220// CHECK-NEXT:          </dict>
4221// CHECK-NEXT:          <dict>
4222// CHECK-NEXT:           <key>line</key><integer>220</integer>
4223// CHECK-NEXT:           <key>col</key><integer>18</integer>
4224// CHECK-NEXT:           <key>file</key><integer>0</integer>
4225// CHECK-NEXT:          </dict>
4226// CHECK-NEXT:         </array>
4227// CHECK-NEXT:        <key>end</key>
4228// CHECK-NEXT:         <array>
4229// CHECK-NEXT:          <dict>
4230// CHECK-NEXT:           <key>line</key><integer>220</integer>
4231// CHECK-NEXT:           <key>col</key><integer>20</integer>
4232// CHECK-NEXT:           <key>file</key><integer>0</integer>
4233// CHECK-NEXT:          </dict>
4234// CHECK-NEXT:          <dict>
4235// CHECK-NEXT:           <key>line</key><integer>220</integer>
4236// CHECK-NEXT:           <key>col</key><integer>20</integer>
4237// CHECK-NEXT:           <key>file</key><integer>0</integer>
4238// CHECK-NEXT:          </dict>
4239// CHECK-NEXT:         </array>
4240// CHECK-NEXT:       </dict>
4241// CHECK-NEXT:      </array>
4242// CHECK-NEXT:    </dict>
4243// CHECK-NEXT:    <dict>
4244// CHECK-NEXT:     <key>kind</key><string>event</string>
4245// CHECK-NEXT:     <key>location</key>
4246// CHECK-NEXT:     <dict>
4247// CHECK-NEXT:      <key>line</key><integer>220</integer>
4248// CHECK-NEXT:      <key>col</key><integer>20</integer>
4249// CHECK-NEXT:      <key>file</key><integer>0</integer>
4250// CHECK-NEXT:     </dict>
4251// CHECK-NEXT:     <key>ranges</key>
4252// CHECK-NEXT:     <array>
4253// CHECK-NEXT:       <array>
4254// CHECK-NEXT:        <dict>
4255// CHECK-NEXT:         <key>line</key><integer>220</integer>
4256// CHECK-NEXT:         <key>col</key><integer>20</integer>
4257// CHECK-NEXT:         <key>file</key><integer>0</integer>
4258// CHECK-NEXT:        </dict>
4259// CHECK-NEXT:        <dict>
4260// CHECK-NEXT:         <key>line</key><integer>220</integer>
4261// CHECK-NEXT:         <key>col</key><integer>20</integer>
4262// CHECK-NEXT:         <key>file</key><integer>0</integer>
4263// CHECK-NEXT:        </dict>
4264// CHECK-NEXT:       </array>
4265// CHECK-NEXT:     </array>
4266// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4267// CHECK-NEXT:     <key>extended_message</key>
4268// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4269// CHECK-NEXT:     <key>message</key>
4270// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4271// CHECK-NEXT:    </dict>
4272// CHECK-NEXT:   </array>
4273// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4274// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
4275// CHECK-NEXT:   <key>type</key><string>Generics</string>
4276// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
4277// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4278// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>725c54c88bb271138b1de545ee59a8aa</string>
4279// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4280// CHECK-NEXT:  <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes3</string>
4281// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
4282// CHECK-NEXT:  <key>location</key>
4283// CHECK-NEXT:  <dict>
4284// CHECK-NEXT:   <key>line</key><integer>220</integer>
4285// CHECK-NEXT:   <key>col</key><integer>20</integer>
4286// CHECK-NEXT:   <key>file</key><integer>0</integer>
4287// CHECK-NEXT:  </dict>
4288// CHECK-NEXT:  </dict>
4289// CHECK-NEXT:  <dict>
4290// CHECK-NEXT:   <key>path</key>
4291// CHECK-NEXT:   <array>
4292// CHECK-NEXT:    <dict>
4293// CHECK-NEXT:     <key>kind</key><string>event</string>
4294// CHECK-NEXT:     <key>location</key>
4295// CHECK-NEXT:     <dict>
4296// CHECK-NEXT:      <key>line</key><integer>224</integer>
4297// CHECK-NEXT:      <key>col</key><integer>45</integer>
4298// CHECK-NEXT:      <key>file</key><integer>0</integer>
4299// CHECK-NEXT:     </dict>
4300// CHECK-NEXT:     <key>ranges</key>
4301// CHECK-NEXT:     <array>
4302// CHECK-NEXT:       <array>
4303// CHECK-NEXT:        <dict>
4304// CHECK-NEXT:         <key>line</key><integer>224</integer>
4305// CHECK-NEXT:         <key>col</key><integer>45</integer>
4306// CHECK-NEXT:         <key>file</key><integer>0</integer>
4307// CHECK-NEXT:        </dict>
4308// CHECK-NEXT:        <dict>
4309// CHECK-NEXT:         <key>line</key><integer>224</integer>
4310// CHECK-NEXT:         <key>col</key><integer>45</integer>
4311// CHECK-NEXT:         <key>file</key><integer>0</integer>
4312// CHECK-NEXT:        </dict>
4313// CHECK-NEXT:       </array>
4314// CHECK-NEXT:     </array>
4315// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4316// CHECK-NEXT:     <key>extended_message</key>
4317// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;__kindof NSArray&lt;NSString *&gt; *&apos; to &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos;)</string>
4318// CHECK-NEXT:     <key>message</key>
4319// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;__kindof NSArray&lt;NSString *&gt; *&apos; to &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos;)</string>
4320// CHECK-NEXT:    </dict>
4321// CHECK-NEXT:    <dict>
4322// CHECK-NEXT:     <key>kind</key><string>control</string>
4323// CHECK-NEXT:     <key>edges</key>
4324// CHECK-NEXT:      <array>
4325// CHECK-NEXT:       <dict>
4326// CHECK-NEXT:        <key>start</key>
4327// CHECK-NEXT:         <array>
4328// CHECK-NEXT:          <dict>
4329// CHECK-NEXT:           <key>line</key><integer>224</integer>
4330// CHECK-NEXT:           <key>col</key><integer>3</integer>
4331// CHECK-NEXT:           <key>file</key><integer>0</integer>
4332// CHECK-NEXT:          </dict>
4333// CHECK-NEXT:          <dict>
4334// CHECK-NEXT:           <key>line</key><integer>224</integer>
4335// CHECK-NEXT:           <key>col</key><integer>19</integer>
4336// CHECK-NEXT:           <key>file</key><integer>0</integer>
4337// CHECK-NEXT:          </dict>
4338// CHECK-NEXT:         </array>
4339// CHECK-NEXT:        <key>end</key>
4340// CHECK-NEXT:         <array>
4341// CHECK-NEXT:          <dict>
4342// CHECK-NEXT:           <key>line</key><integer>225</integer>
4343// CHECK-NEXT:           <key>col</key><integer>3</integer>
4344// CHECK-NEXT:           <key>file</key><integer>0</integer>
4345// CHECK-NEXT:          </dict>
4346// CHECK-NEXT:          <dict>
4347// CHECK-NEXT:           <key>line</key><integer>225</integer>
4348// CHECK-NEXT:           <key>col</key><integer>18</integer>
4349// CHECK-NEXT:           <key>file</key><integer>0</integer>
4350// CHECK-NEXT:          </dict>
4351// CHECK-NEXT:         </array>
4352// CHECK-NEXT:       </dict>
4353// CHECK-NEXT:      </array>
4354// CHECK-NEXT:    </dict>
4355// CHECK-NEXT:    <dict>
4356// CHECK-NEXT:     <key>kind</key><string>event</string>
4357// CHECK-NEXT:     <key>location</key>
4358// CHECK-NEXT:     <dict>
4359// CHECK-NEXT:      <key>line</key><integer>225</integer>
4360// CHECK-NEXT:      <key>col</key><integer>20</integer>
4361// CHECK-NEXT:      <key>file</key><integer>0</integer>
4362// CHECK-NEXT:     </dict>
4363// CHECK-NEXT:     <key>ranges</key>
4364// CHECK-NEXT:     <array>
4365// CHECK-NEXT:       <array>
4366// CHECK-NEXT:        <dict>
4367// CHECK-NEXT:         <key>line</key><integer>225</integer>
4368// CHECK-NEXT:         <key>col</key><integer>20</integer>
4369// CHECK-NEXT:         <key>file</key><integer>0</integer>
4370// CHECK-NEXT:        </dict>
4371// CHECK-NEXT:        <dict>
4372// CHECK-NEXT:         <key>line</key><integer>225</integer>
4373// CHECK-NEXT:         <key>col</key><integer>20</integer>
4374// CHECK-NEXT:         <key>file</key><integer>0</integer>
4375// CHECK-NEXT:        </dict>
4376// CHECK-NEXT:       </array>
4377// CHECK-NEXT:     </array>
4378// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4379// CHECK-NEXT:     <key>extended_message</key>
4380// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
4381// CHECK-NEXT:     <key>message</key>
4382// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSString *&gt; *&apos;)</string>
4383// CHECK-NEXT:    </dict>
4384// CHECK-NEXT:    <dict>
4385// CHECK-NEXT:     <key>kind</key><string>control</string>
4386// CHECK-NEXT:     <key>edges</key>
4387// CHECK-NEXT:      <array>
4388// CHECK-NEXT:       <dict>
4389// CHECK-NEXT:        <key>start</key>
4390// CHECK-NEXT:         <array>
4391// CHECK-NEXT:          <dict>
4392// CHECK-NEXT:           <key>line</key><integer>225</integer>
4393// CHECK-NEXT:           <key>col</key><integer>3</integer>
4394// CHECK-NEXT:           <key>file</key><integer>0</integer>
4395// CHECK-NEXT:          </dict>
4396// CHECK-NEXT:          <dict>
4397// CHECK-NEXT:           <key>line</key><integer>225</integer>
4398// CHECK-NEXT:           <key>col</key><integer>18</integer>
4399// CHECK-NEXT:           <key>file</key><integer>0</integer>
4400// CHECK-NEXT:          </dict>
4401// CHECK-NEXT:         </array>
4402// CHECK-NEXT:        <key>end</key>
4403// CHECK-NEXT:         <array>
4404// CHECK-NEXT:          <dict>
4405// CHECK-NEXT:           <key>line</key><integer>226</integer>
4406// CHECK-NEXT:           <key>col</key><integer>3</integer>
4407// CHECK-NEXT:           <key>file</key><integer>0</integer>
4408// CHECK-NEXT:          </dict>
4409// CHECK-NEXT:          <dict>
4410// CHECK-NEXT:           <key>line</key><integer>226</integer>
4411// CHECK-NEXT:           <key>col</key><integer>25</integer>
4412// CHECK-NEXT:           <key>file</key><integer>0</integer>
4413// CHECK-NEXT:          </dict>
4414// CHECK-NEXT:         </array>
4415// CHECK-NEXT:       </dict>
4416// CHECK-NEXT:      </array>
4417// CHECK-NEXT:    </dict>
4418// CHECK-NEXT:    <dict>
4419// CHECK-NEXT:     <key>kind</key><string>control</string>
4420// CHECK-NEXT:     <key>edges</key>
4421// CHECK-NEXT:      <array>
4422// CHECK-NEXT:       <dict>
4423// CHECK-NEXT:        <key>start</key>
4424// CHECK-NEXT:         <array>
4425// CHECK-NEXT:          <dict>
4426// CHECK-NEXT:           <key>line</key><integer>226</integer>
4427// CHECK-NEXT:           <key>col</key><integer>3</integer>
4428// CHECK-NEXT:           <key>file</key><integer>0</integer>
4429// CHECK-NEXT:          </dict>
4430// CHECK-NEXT:          <dict>
4431// CHECK-NEXT:           <key>line</key><integer>226</integer>
4432// CHECK-NEXT:           <key>col</key><integer>25</integer>
4433// CHECK-NEXT:           <key>file</key><integer>0</integer>
4434// CHECK-NEXT:          </dict>
4435// CHECK-NEXT:         </array>
4436// CHECK-NEXT:        <key>end</key>
4437// CHECK-NEXT:         <array>
4438// CHECK-NEXT:          <dict>
4439// CHECK-NEXT:           <key>line</key><integer>226</integer>
4440// CHECK-NEXT:           <key>col</key><integer>27</integer>
4441// CHECK-NEXT:           <key>file</key><integer>0</integer>
4442// CHECK-NEXT:          </dict>
4443// CHECK-NEXT:          <dict>
4444// CHECK-NEXT:           <key>line</key><integer>226</integer>
4445// CHECK-NEXT:           <key>col</key><integer>27</integer>
4446// CHECK-NEXT:           <key>file</key><integer>0</integer>
4447// CHECK-NEXT:          </dict>
4448// CHECK-NEXT:         </array>
4449// CHECK-NEXT:       </dict>
4450// CHECK-NEXT:      </array>
4451// CHECK-NEXT:    </dict>
4452// CHECK-NEXT:    <dict>
4453// CHECK-NEXT:     <key>kind</key><string>event</string>
4454// CHECK-NEXT:     <key>location</key>
4455// CHECK-NEXT:     <dict>
4456// CHECK-NEXT:      <key>line</key><integer>226</integer>
4457// CHECK-NEXT:      <key>col</key><integer>27</integer>
4458// CHECK-NEXT:      <key>file</key><integer>0</integer>
4459// CHECK-NEXT:     </dict>
4460// CHECK-NEXT:     <key>ranges</key>
4461// CHECK-NEXT:     <array>
4462// CHECK-NEXT:       <array>
4463// CHECK-NEXT:        <dict>
4464// CHECK-NEXT:         <key>line</key><integer>226</integer>
4465// CHECK-NEXT:         <key>col</key><integer>27</integer>
4466// CHECK-NEXT:         <key>file</key><integer>0</integer>
4467// CHECK-NEXT:        </dict>
4468// CHECK-NEXT:        <dict>
4469// CHECK-NEXT:         <key>line</key><integer>226</integer>
4470// CHECK-NEXT:         <key>col</key><integer>27</integer>
4471// CHECK-NEXT:         <key>file</key><integer>0</integer>
4472// CHECK-NEXT:        </dict>
4473// CHECK-NEXT:       </array>
4474// CHECK-NEXT:     </array>
4475// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4476// CHECK-NEXT:     <key>extended_message</key>
4477// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4478// CHECK-NEXT:     <key>message</key>
4479// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4480// CHECK-NEXT:    </dict>
4481// CHECK-NEXT:   </array>
4482// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4483// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
4484// CHECK-NEXT:   <key>type</key><string>Generics</string>
4485// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
4486// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4487// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>fb867af384c612fe5c09f821127eeaf0</string>
4488// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4489// CHECK-NEXT:  <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes4</string>
4490// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
4491// CHECK-NEXT:  <key>location</key>
4492// CHECK-NEXT:  <dict>
4493// CHECK-NEXT:   <key>line</key><integer>226</integer>
4494// CHECK-NEXT:   <key>col</key><integer>27</integer>
4495// CHECK-NEXT:   <key>file</key><integer>0</integer>
4496// CHECK-NEXT:  </dict>
4497// CHECK-NEXT:  </dict>
4498// CHECK-NEXT:  <dict>
4499// CHECK-NEXT:   <key>path</key>
4500// CHECK-NEXT:   <array>
4501// CHECK-NEXT:    <dict>
4502// CHECK-NEXT:     <key>kind</key><string>control</string>
4503// CHECK-NEXT:     <key>edges</key>
4504// CHECK-NEXT:      <array>
4505// CHECK-NEXT:       <dict>
4506// CHECK-NEXT:        <key>start</key>
4507// CHECK-NEXT:         <array>
4508// CHECK-NEXT:          <dict>
4509// CHECK-NEXT:           <key>line</key><integer>238</integer>
4510// CHECK-NEXT:           <key>col</key><integer>3</integer>
4511// CHECK-NEXT:           <key>file</key><integer>0</integer>
4512// CHECK-NEXT:          </dict>
4513// CHECK-NEXT:          <dict>
4514// CHECK-NEXT:           <key>line</key><integer>238</integer>
4515// CHECK-NEXT:           <key>col</key><integer>9</integer>
4516// CHECK-NEXT:           <key>file</key><integer>0</integer>
4517// CHECK-NEXT:          </dict>
4518// CHECK-NEXT:         </array>
4519// CHECK-NEXT:        <key>end</key>
4520// CHECK-NEXT:         <array>
4521// CHECK-NEXT:          <dict>
4522// CHECK-NEXT:           <key>line</key><integer>239</integer>
4523// CHECK-NEXT:           <key>col</key><integer>3</integer>
4524// CHECK-NEXT:           <key>file</key><integer>0</integer>
4525// CHECK-NEXT:          </dict>
4526// CHECK-NEXT:          <dict>
4527// CHECK-NEXT:           <key>line</key><integer>239</integer>
4528// CHECK-NEXT:           <key>col</key><integer>10</integer>
4529// CHECK-NEXT:           <key>file</key><integer>0</integer>
4530// CHECK-NEXT:          </dict>
4531// CHECK-NEXT:         </array>
4532// CHECK-NEXT:       </dict>
4533// CHECK-NEXT:      </array>
4534// CHECK-NEXT:    </dict>
4535// CHECK-NEXT:    <dict>
4536// CHECK-NEXT:     <key>kind</key><string>control</string>
4537// CHECK-NEXT:     <key>edges</key>
4538// CHECK-NEXT:      <array>
4539// CHECK-NEXT:       <dict>
4540// CHECK-NEXT:        <key>start</key>
4541// CHECK-NEXT:         <array>
4542// CHECK-NEXT:          <dict>
4543// CHECK-NEXT:           <key>line</key><integer>239</integer>
4544// CHECK-NEXT:           <key>col</key><integer>3</integer>
4545// CHECK-NEXT:           <key>file</key><integer>0</integer>
4546// CHECK-NEXT:          </dict>
4547// CHECK-NEXT:          <dict>
4548// CHECK-NEXT:           <key>line</key><integer>239</integer>
4549// CHECK-NEXT:           <key>col</key><integer>10</integer>
4550// CHECK-NEXT:           <key>file</key><integer>0</integer>
4551// CHECK-NEXT:          </dict>
4552// CHECK-NEXT:         </array>
4553// CHECK-NEXT:        <key>end</key>
4554// CHECK-NEXT:         <array>
4555// CHECK-NEXT:          <dict>
4556// CHECK-NEXT:           <key>line</key><integer>239</integer>
4557// CHECK-NEXT:           <key>col</key><integer>19</integer>
4558// CHECK-NEXT:           <key>file</key><integer>0</integer>
4559// CHECK-NEXT:          </dict>
4560// CHECK-NEXT:          <dict>
4561// CHECK-NEXT:           <key>line</key><integer>239</integer>
4562// CHECK-NEXT:           <key>col</key><integer>19</integer>
4563// CHECK-NEXT:           <key>file</key><integer>0</integer>
4564// CHECK-NEXT:          </dict>
4565// CHECK-NEXT:         </array>
4566// CHECK-NEXT:       </dict>
4567// CHECK-NEXT:      </array>
4568// CHECK-NEXT:    </dict>
4569// CHECK-NEXT:    <dict>
4570// CHECK-NEXT:     <key>kind</key><string>event</string>
4571// CHECK-NEXT:     <key>location</key>
4572// CHECK-NEXT:     <dict>
4573// CHECK-NEXT:      <key>line</key><integer>239</integer>
4574// CHECK-NEXT:      <key>col</key><integer>19</integer>
4575// CHECK-NEXT:      <key>file</key><integer>0</integer>
4576// CHECK-NEXT:     </dict>
4577// CHECK-NEXT:     <key>ranges</key>
4578// CHECK-NEXT:     <array>
4579// CHECK-NEXT:       <array>
4580// CHECK-NEXT:        <dict>
4581// CHECK-NEXT:         <key>line</key><integer>239</integer>
4582// CHECK-NEXT:         <key>col</key><integer>19</integer>
4583// CHECK-NEXT:         <key>file</key><integer>0</integer>
4584// CHECK-NEXT:        </dict>
4585// CHECK-NEXT:        <dict>
4586// CHECK-NEXT:         <key>line</key><integer>239</integer>
4587// CHECK-NEXT:         <key>col</key><integer>38</integer>
4588// CHECK-NEXT:         <key>file</key><integer>0</integer>
4589// CHECK-NEXT:        </dict>
4590// CHECK-NEXT:       </array>
4591// CHECK-NEXT:     </array>
4592// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4593// CHECK-NEXT:     <key>extended_message</key>
4594// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4595// CHECK-NEXT:     <key>message</key>
4596// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4597// CHECK-NEXT:    </dict>
4598// CHECK-NEXT:    <dict>
4599// CHECK-NEXT:     <key>kind</key><string>event</string>
4600// CHECK-NEXT:     <key>location</key>
4601// CHECK-NEXT:     <dict>
4602// CHECK-NEXT:      <key>line</key><integer>239</integer>
4603// CHECK-NEXT:      <key>col</key><integer>19</integer>
4604// CHECK-NEXT:      <key>file</key><integer>0</integer>
4605// CHECK-NEXT:     </dict>
4606// CHECK-NEXT:     <key>ranges</key>
4607// CHECK-NEXT:     <array>
4608// CHECK-NEXT:       <array>
4609// CHECK-NEXT:        <dict>
4610// CHECK-NEXT:         <key>line</key><integer>239</integer>
4611// CHECK-NEXT:         <key>col</key><integer>19</integer>
4612// CHECK-NEXT:         <key>file</key><integer>0</integer>
4613// CHECK-NEXT:        </dict>
4614// CHECK-NEXT:        <dict>
4615// CHECK-NEXT:         <key>line</key><integer>239</integer>
4616// CHECK-NEXT:         <key>col</key><integer>38</integer>
4617// CHECK-NEXT:         <key>file</key><integer>0</integer>
4618// CHECK-NEXT:        </dict>
4619// CHECK-NEXT:       </array>
4620// CHECK-NEXT:     </array>
4621// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4622// CHECK-NEXT:     <key>extended_message</key>
4623// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4624// CHECK-NEXT:     <key>message</key>
4625// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4626// CHECK-NEXT:    </dict>
4627// CHECK-NEXT:   </array>
4628// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4629// CHECK-NEXT:   <key>category</key><string>Type Error</string>
4630// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
4631// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4632// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4633// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>2e9f738345d9fa7dae2324ff7accd1ae</string>
4634// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4635// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
4636// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
4637// CHECK-NEXT:  <key>location</key>
4638// CHECK-NEXT:  <dict>
4639// CHECK-NEXT:   <key>line</key><integer>239</integer>
4640// CHECK-NEXT:   <key>col</key><integer>19</integer>
4641// CHECK-NEXT:   <key>file</key><integer>0</integer>
4642// CHECK-NEXT:  </dict>
4643// CHECK-NEXT:  </dict>
4644// CHECK-NEXT:  <dict>
4645// CHECK-NEXT:   <key>path</key>
4646// CHECK-NEXT:   <array>
4647// CHECK-NEXT:    <dict>
4648// CHECK-NEXT:     <key>kind</key><string>control</string>
4649// CHECK-NEXT:     <key>edges</key>
4650// CHECK-NEXT:      <array>
4651// CHECK-NEXT:       <dict>
4652// CHECK-NEXT:        <key>start</key>
4653// CHECK-NEXT:         <array>
4654// CHECK-NEXT:          <dict>
4655// CHECK-NEXT:           <key>line</key><integer>238</integer>
4656// CHECK-NEXT:           <key>col</key><integer>3</integer>
4657// CHECK-NEXT:           <key>file</key><integer>0</integer>
4658// CHECK-NEXT:          </dict>
4659// CHECK-NEXT:          <dict>
4660// CHECK-NEXT:           <key>line</key><integer>238</integer>
4661// CHECK-NEXT:           <key>col</key><integer>9</integer>
4662// CHECK-NEXT:           <key>file</key><integer>0</integer>
4663// CHECK-NEXT:          </dict>
4664// CHECK-NEXT:         </array>
4665// CHECK-NEXT:        <key>end</key>
4666// CHECK-NEXT:         <array>
4667// CHECK-NEXT:          <dict>
4668// CHECK-NEXT:           <key>line</key><integer>241</integer>
4669// CHECK-NEXT:           <key>col</key><integer>3</integer>
4670// CHECK-NEXT:           <key>file</key><integer>0</integer>
4671// CHECK-NEXT:          </dict>
4672// CHECK-NEXT:          <dict>
4673// CHECK-NEXT:           <key>line</key><integer>241</integer>
4674// CHECK-NEXT:           <key>col</key><integer>5</integer>
4675// CHECK-NEXT:           <key>file</key><integer>0</integer>
4676// CHECK-NEXT:          </dict>
4677// CHECK-NEXT:         </array>
4678// CHECK-NEXT:       </dict>
4679// CHECK-NEXT:      </array>
4680// CHECK-NEXT:    </dict>
4681// CHECK-NEXT:    <dict>
4682// CHECK-NEXT:     <key>kind</key><string>control</string>
4683// CHECK-NEXT:     <key>edges</key>
4684// CHECK-NEXT:      <array>
4685// CHECK-NEXT:       <dict>
4686// CHECK-NEXT:        <key>start</key>
4687// CHECK-NEXT:         <array>
4688// CHECK-NEXT:          <dict>
4689// CHECK-NEXT:           <key>line</key><integer>241</integer>
4690// CHECK-NEXT:           <key>col</key><integer>3</integer>
4691// CHECK-NEXT:           <key>file</key><integer>0</integer>
4692// CHECK-NEXT:          </dict>
4693// CHECK-NEXT:          <dict>
4694// CHECK-NEXT:           <key>line</key><integer>241</integer>
4695// CHECK-NEXT:           <key>col</key><integer>5</integer>
4696// CHECK-NEXT:           <key>file</key><integer>0</integer>
4697// CHECK-NEXT:          </dict>
4698// CHECK-NEXT:         </array>
4699// CHECK-NEXT:        <key>end</key>
4700// CHECK-NEXT:         <array>
4701// CHECK-NEXT:          <dict>
4702// CHECK-NEXT:           <key>line</key><integer>241</integer>
4703// CHECK-NEXT:           <key>col</key><integer>9</integer>
4704// CHECK-NEXT:           <key>file</key><integer>0</integer>
4705// CHECK-NEXT:          </dict>
4706// CHECK-NEXT:          <dict>
4707// CHECK-NEXT:           <key>line</key><integer>241</integer>
4708// CHECK-NEXT:           <key>col</key><integer>9</integer>
4709// CHECK-NEXT:           <key>file</key><integer>0</integer>
4710// CHECK-NEXT:          </dict>
4711// CHECK-NEXT:         </array>
4712// CHECK-NEXT:       </dict>
4713// CHECK-NEXT:      </array>
4714// CHECK-NEXT:    </dict>
4715// CHECK-NEXT:    <dict>
4716// CHECK-NEXT:     <key>kind</key><string>event</string>
4717// CHECK-NEXT:     <key>location</key>
4718// CHECK-NEXT:     <dict>
4719// CHECK-NEXT:      <key>line</key><integer>241</integer>
4720// CHECK-NEXT:      <key>col</key><integer>9</integer>
4721// CHECK-NEXT:      <key>file</key><integer>0</integer>
4722// CHECK-NEXT:     </dict>
4723// CHECK-NEXT:     <key>ranges</key>
4724// CHECK-NEXT:     <array>
4725// CHECK-NEXT:       <array>
4726// CHECK-NEXT:        <dict>
4727// CHECK-NEXT:         <key>line</key><integer>241</integer>
4728// CHECK-NEXT:         <key>col</key><integer>9</integer>
4729// CHECK-NEXT:         <key>file</key><integer>0</integer>
4730// CHECK-NEXT:        </dict>
4731// CHECK-NEXT:        <dict>
4732// CHECK-NEXT:         <key>line</key><integer>241</integer>
4733// CHECK-NEXT:         <key>col</key><integer>23</integer>
4734// CHECK-NEXT:         <key>file</key><integer>0</integer>
4735// CHECK-NEXT:        </dict>
4736// CHECK-NEXT:       </array>
4737// CHECK-NEXT:     </array>
4738// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4739// CHECK-NEXT:     <key>extended_message</key>
4740// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4741// CHECK-NEXT:     <key>message</key>
4742// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4743// CHECK-NEXT:    </dict>
4744// CHECK-NEXT:    <dict>
4745// CHECK-NEXT:     <key>kind</key><string>event</string>
4746// CHECK-NEXT:     <key>location</key>
4747// CHECK-NEXT:     <dict>
4748// CHECK-NEXT:      <key>line</key><integer>241</integer>
4749// CHECK-NEXT:      <key>col</key><integer>9</integer>
4750// CHECK-NEXT:      <key>file</key><integer>0</integer>
4751// CHECK-NEXT:     </dict>
4752// CHECK-NEXT:     <key>ranges</key>
4753// CHECK-NEXT:     <array>
4754// CHECK-NEXT:       <array>
4755// CHECK-NEXT:        <dict>
4756// CHECK-NEXT:         <key>line</key><integer>241</integer>
4757// CHECK-NEXT:         <key>col</key><integer>9</integer>
4758// CHECK-NEXT:         <key>file</key><integer>0</integer>
4759// CHECK-NEXT:        </dict>
4760// CHECK-NEXT:        <dict>
4761// CHECK-NEXT:         <key>line</key><integer>241</integer>
4762// CHECK-NEXT:         <key>col</key><integer>23</integer>
4763// CHECK-NEXT:         <key>file</key><integer>0</integer>
4764// CHECK-NEXT:        </dict>
4765// CHECK-NEXT:       </array>
4766// CHECK-NEXT:     </array>
4767// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4768// CHECK-NEXT:     <key>extended_message</key>
4769// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4770// CHECK-NEXT:     <key>message</key>
4771// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4772// CHECK-NEXT:    </dict>
4773// CHECK-NEXT:   </array>
4774// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4775// CHECK-NEXT:   <key>category</key><string>Type Error</string>
4776// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
4777// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4778// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4779// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>d85392b4efadf710b8da65a043a65e24</string>
4780// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4781// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
4782// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
4783// CHECK-NEXT:  <key>location</key>
4784// CHECK-NEXT:  <dict>
4785// CHECK-NEXT:   <key>line</key><integer>241</integer>
4786// CHECK-NEXT:   <key>col</key><integer>9</integer>
4787// CHECK-NEXT:   <key>file</key><integer>0</integer>
4788// CHECK-NEXT:  </dict>
4789// CHECK-NEXT:  </dict>
4790// CHECK-NEXT:  <dict>
4791// CHECK-NEXT:   <key>path</key>
4792// CHECK-NEXT:   <array>
4793// CHECK-NEXT:    <dict>
4794// CHECK-NEXT:     <key>kind</key><string>control</string>
4795// CHECK-NEXT:     <key>edges</key>
4796// CHECK-NEXT:      <array>
4797// CHECK-NEXT:       <dict>
4798// CHECK-NEXT:        <key>start</key>
4799// CHECK-NEXT:         <array>
4800// CHECK-NEXT:          <dict>
4801// CHECK-NEXT:           <key>line</key><integer>238</integer>
4802// CHECK-NEXT:           <key>col</key><integer>3</integer>
4803// CHECK-NEXT:           <key>file</key><integer>0</integer>
4804// CHECK-NEXT:          </dict>
4805// CHECK-NEXT:          <dict>
4806// CHECK-NEXT:           <key>line</key><integer>238</integer>
4807// CHECK-NEXT:           <key>col</key><integer>9</integer>
4808// CHECK-NEXT:           <key>file</key><integer>0</integer>
4809// CHECK-NEXT:          </dict>
4810// CHECK-NEXT:         </array>
4811// CHECK-NEXT:        <key>end</key>
4812// CHECK-NEXT:         <array>
4813// CHECK-NEXT:          <dict>
4814// CHECK-NEXT:           <key>line</key><integer>243</integer>
4815// CHECK-NEXT:           <key>col</key><integer>3</integer>
4816// CHECK-NEXT:           <key>file</key><integer>0</integer>
4817// CHECK-NEXT:          </dict>
4818// CHECK-NEXT:          <dict>
4819// CHECK-NEXT:           <key>line</key><integer>243</integer>
4820// CHECK-NEXT:           <key>col</key><integer>5</integer>
4821// CHECK-NEXT:           <key>file</key><integer>0</integer>
4822// CHECK-NEXT:          </dict>
4823// CHECK-NEXT:         </array>
4824// CHECK-NEXT:       </dict>
4825// CHECK-NEXT:      </array>
4826// CHECK-NEXT:    </dict>
4827// CHECK-NEXT:    <dict>
4828// CHECK-NEXT:     <key>kind</key><string>control</string>
4829// CHECK-NEXT:     <key>edges</key>
4830// CHECK-NEXT:      <array>
4831// CHECK-NEXT:       <dict>
4832// CHECK-NEXT:        <key>start</key>
4833// CHECK-NEXT:         <array>
4834// CHECK-NEXT:          <dict>
4835// CHECK-NEXT:           <key>line</key><integer>243</integer>
4836// CHECK-NEXT:           <key>col</key><integer>3</integer>
4837// CHECK-NEXT:           <key>file</key><integer>0</integer>
4838// CHECK-NEXT:          </dict>
4839// CHECK-NEXT:          <dict>
4840// CHECK-NEXT:           <key>line</key><integer>243</integer>
4841// CHECK-NEXT:           <key>col</key><integer>5</integer>
4842// CHECK-NEXT:           <key>file</key><integer>0</integer>
4843// CHECK-NEXT:          </dict>
4844// CHECK-NEXT:         </array>
4845// CHECK-NEXT:        <key>end</key>
4846// CHECK-NEXT:         <array>
4847// CHECK-NEXT:          <dict>
4848// CHECK-NEXT:           <key>line</key><integer>243</integer>
4849// CHECK-NEXT:           <key>col</key><integer>11</integer>
4850// CHECK-NEXT:           <key>file</key><integer>0</integer>
4851// CHECK-NEXT:          </dict>
4852// CHECK-NEXT:          <dict>
4853// CHECK-NEXT:           <key>line</key><integer>243</integer>
4854// CHECK-NEXT:           <key>col</key><integer>21</integer>
4855// CHECK-NEXT:           <key>file</key><integer>0</integer>
4856// CHECK-NEXT:          </dict>
4857// CHECK-NEXT:         </array>
4858// CHECK-NEXT:       </dict>
4859// CHECK-NEXT:      </array>
4860// CHECK-NEXT:    </dict>
4861// CHECK-NEXT:    <dict>
4862// CHECK-NEXT:     <key>kind</key><string>event</string>
4863// CHECK-NEXT:     <key>location</key>
4864// CHECK-NEXT:     <dict>
4865// CHECK-NEXT:      <key>line</key><integer>243</integer>
4866// CHECK-NEXT:      <key>col</key><integer>11</integer>
4867// CHECK-NEXT:      <key>file</key><integer>0</integer>
4868// CHECK-NEXT:     </dict>
4869// CHECK-NEXT:     <key>ranges</key>
4870// CHECK-NEXT:     <array>
4871// CHECK-NEXT:       <array>
4872// CHECK-NEXT:        <dict>
4873// CHECK-NEXT:         <key>line</key><integer>243</integer>
4874// CHECK-NEXT:         <key>col</key><integer>11</integer>
4875// CHECK-NEXT:         <key>file</key><integer>0</integer>
4876// CHECK-NEXT:        </dict>
4877// CHECK-NEXT:        <dict>
4878// CHECK-NEXT:         <key>line</key><integer>243</integer>
4879// CHECK-NEXT:         <key>col</key><integer>21</integer>
4880// CHECK-NEXT:         <key>file</key><integer>0</integer>
4881// CHECK-NEXT:        </dict>
4882// CHECK-NEXT:       </array>
4883// CHECK-NEXT:     </array>
4884// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4885// CHECK-NEXT:     <key>extended_message</key>
4886// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4887// CHECK-NEXT:     <key>message</key>
4888// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4889// CHECK-NEXT:    </dict>
4890// CHECK-NEXT:    <dict>
4891// CHECK-NEXT:     <key>kind</key><string>event</string>
4892// CHECK-NEXT:     <key>location</key>
4893// CHECK-NEXT:     <dict>
4894// CHECK-NEXT:      <key>line</key><integer>243</integer>
4895// CHECK-NEXT:      <key>col</key><integer>9</integer>
4896// CHECK-NEXT:      <key>file</key><integer>0</integer>
4897// CHECK-NEXT:     </dict>
4898// CHECK-NEXT:     <key>ranges</key>
4899// CHECK-NEXT:     <array>
4900// CHECK-NEXT:       <array>
4901// CHECK-NEXT:        <dict>
4902// CHECK-NEXT:         <key>line</key><integer>243</integer>
4903// CHECK-NEXT:         <key>col</key><integer>9</integer>
4904// CHECK-NEXT:         <key>file</key><integer>0</integer>
4905// CHECK-NEXT:        </dict>
4906// CHECK-NEXT:        <dict>
4907// CHECK-NEXT:         <key>line</key><integer>243</integer>
4908// CHECK-NEXT:         <key>col</key><integer>21</integer>
4909// CHECK-NEXT:         <key>file</key><integer>0</integer>
4910// CHECK-NEXT:        </dict>
4911// CHECK-NEXT:       </array>
4912// CHECK-NEXT:     </array>
4913// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4914// CHECK-NEXT:     <key>extended_message</key>
4915// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4916// CHECK-NEXT:     <key>message</key>
4917// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4918// CHECK-NEXT:    </dict>
4919// CHECK-NEXT:   </array>
4920// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4921// CHECK-NEXT:   <key>category</key><string>Type Error</string>
4922// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
4923// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4924// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4925// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>456c6227549a5e577088c9dce4cea452</string>
4926// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4927// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
4928// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>6</string>
4929// CHECK-NEXT:  <key>location</key>
4930// CHECK-NEXT:  <dict>
4931// CHECK-NEXT:   <key>line</key><integer>243</integer>
4932// CHECK-NEXT:   <key>col</key><integer>9</integer>
4933// CHECK-NEXT:   <key>file</key><integer>0</integer>
4934// CHECK-NEXT:  </dict>
4935// CHECK-NEXT:  </dict>
4936// CHECK-NEXT:  <dict>
4937// CHECK-NEXT:   <key>path</key>
4938// CHECK-NEXT:   <array>
4939// CHECK-NEXT:    <dict>
4940// CHECK-NEXT:     <key>kind</key><string>control</string>
4941// CHECK-NEXT:     <key>edges</key>
4942// CHECK-NEXT:      <array>
4943// CHECK-NEXT:       <dict>
4944// CHECK-NEXT:        <key>start</key>
4945// CHECK-NEXT:         <array>
4946// CHECK-NEXT:          <dict>
4947// CHECK-NEXT:           <key>line</key><integer>238</integer>
4948// CHECK-NEXT:           <key>col</key><integer>3</integer>
4949// CHECK-NEXT:           <key>file</key><integer>0</integer>
4950// CHECK-NEXT:          </dict>
4951// CHECK-NEXT:          <dict>
4952// CHECK-NEXT:           <key>line</key><integer>238</integer>
4953// CHECK-NEXT:           <key>col</key><integer>9</integer>
4954// CHECK-NEXT:           <key>file</key><integer>0</integer>
4955// CHECK-NEXT:          </dict>
4956// CHECK-NEXT:         </array>
4957// CHECK-NEXT:        <key>end</key>
4958// CHECK-NEXT:         <array>
4959// CHECK-NEXT:          <dict>
4960// CHECK-NEXT:           <key>line</key><integer>245</integer>
4961// CHECK-NEXT:           <key>col</key><integer>3</integer>
4962// CHECK-NEXT:           <key>file</key><integer>0</integer>
4963// CHECK-NEXT:          </dict>
4964// CHECK-NEXT:          <dict>
4965// CHECK-NEXT:           <key>line</key><integer>245</integer>
4966// CHECK-NEXT:           <key>col</key><integer>5</integer>
4967// CHECK-NEXT:           <key>file</key><integer>0</integer>
4968// CHECK-NEXT:          </dict>
4969// CHECK-NEXT:         </array>
4970// CHECK-NEXT:       </dict>
4971// CHECK-NEXT:      </array>
4972// CHECK-NEXT:    </dict>
4973// CHECK-NEXT:    <dict>
4974// CHECK-NEXT:     <key>kind</key><string>control</string>
4975// CHECK-NEXT:     <key>edges</key>
4976// CHECK-NEXT:      <array>
4977// CHECK-NEXT:       <dict>
4978// CHECK-NEXT:        <key>start</key>
4979// CHECK-NEXT:         <array>
4980// CHECK-NEXT:          <dict>
4981// CHECK-NEXT:           <key>line</key><integer>245</integer>
4982// CHECK-NEXT:           <key>col</key><integer>3</integer>
4983// CHECK-NEXT:           <key>file</key><integer>0</integer>
4984// CHECK-NEXT:          </dict>
4985// CHECK-NEXT:          <dict>
4986// CHECK-NEXT:           <key>line</key><integer>245</integer>
4987// CHECK-NEXT:           <key>col</key><integer>5</integer>
4988// CHECK-NEXT:           <key>file</key><integer>0</integer>
4989// CHECK-NEXT:          </dict>
4990// CHECK-NEXT:         </array>
4991// CHECK-NEXT:        <key>end</key>
4992// CHECK-NEXT:         <array>
4993// CHECK-NEXT:          <dict>
4994// CHECK-NEXT:           <key>line</key><integer>245</integer>
4995// CHECK-NEXT:           <key>col</key><integer>9</integer>
4996// CHECK-NEXT:           <key>file</key><integer>0</integer>
4997// CHECK-NEXT:          </dict>
4998// CHECK-NEXT:          <dict>
4999// CHECK-NEXT:           <key>line</key><integer>245</integer>
5000// CHECK-NEXT:           <key>col</key><integer>9</integer>
5001// CHECK-NEXT:           <key>file</key><integer>0</integer>
5002// CHECK-NEXT:          </dict>
5003// CHECK-NEXT:         </array>
5004// CHECK-NEXT:       </dict>
5005// CHECK-NEXT:      </array>
5006// CHECK-NEXT:    </dict>
5007// CHECK-NEXT:    <dict>
5008// CHECK-NEXT:     <key>kind</key><string>event</string>
5009// CHECK-NEXT:     <key>location</key>
5010// CHECK-NEXT:     <dict>
5011// CHECK-NEXT:      <key>line</key><integer>245</integer>
5012// CHECK-NEXT:      <key>col</key><integer>9</integer>
5013// CHECK-NEXT:      <key>file</key><integer>0</integer>
5014// CHECK-NEXT:     </dict>
5015// CHECK-NEXT:     <key>ranges</key>
5016// CHECK-NEXT:     <array>
5017// CHECK-NEXT:       <array>
5018// CHECK-NEXT:        <dict>
5019// CHECK-NEXT:         <key>line</key><integer>245</integer>
5020// CHECK-NEXT:         <key>col</key><integer>9</integer>
5021// CHECK-NEXT:         <key>file</key><integer>0</integer>
5022// CHECK-NEXT:        </dict>
5023// CHECK-NEXT:        <dict>
5024// CHECK-NEXT:         <key>line</key><integer>245</integer>
5025// CHECK-NEXT:         <key>col</key><integer>9</integer>
5026// CHECK-NEXT:         <key>file</key><integer>0</integer>
5027// CHECK-NEXT:        </dict>
5028// CHECK-NEXT:       </array>
5029// CHECK-NEXT:     </array>
5030// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5031// CHECK-NEXT:     <key>extended_message</key>
5032// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5033// CHECK-NEXT:     <key>message</key>
5034// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5035// CHECK-NEXT:    </dict>
5036// CHECK-NEXT:    <dict>
5037// CHECK-NEXT:     <key>kind</key><string>event</string>
5038// CHECK-NEXT:     <key>location</key>
5039// CHECK-NEXT:     <dict>
5040// CHECK-NEXT:      <key>line</key><integer>245</integer>
5041// CHECK-NEXT:      <key>col</key><integer>9</integer>
5042// CHECK-NEXT:      <key>file</key><integer>0</integer>
5043// CHECK-NEXT:     </dict>
5044// CHECK-NEXT:     <key>ranges</key>
5045// CHECK-NEXT:     <array>
5046// CHECK-NEXT:       <array>
5047// CHECK-NEXT:        <dict>
5048// CHECK-NEXT:         <key>line</key><integer>245</integer>
5049// CHECK-NEXT:         <key>col</key><integer>9</integer>
5050// CHECK-NEXT:         <key>file</key><integer>0</integer>
5051// CHECK-NEXT:        </dict>
5052// CHECK-NEXT:        <dict>
5053// CHECK-NEXT:         <key>line</key><integer>245</integer>
5054// CHECK-NEXT:         <key>col</key><integer>12</integer>
5055// CHECK-NEXT:         <key>file</key><integer>0</integer>
5056// CHECK-NEXT:        </dict>
5057// CHECK-NEXT:       </array>
5058// CHECK-NEXT:     </array>
5059// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5060// CHECK-NEXT:     <key>extended_message</key>
5061// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5062// CHECK-NEXT:     <key>message</key>
5063// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5064// CHECK-NEXT:    </dict>
5065// CHECK-NEXT:   </array>
5066// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5067// CHECK-NEXT:   <key>category</key><string>Type Error</string>
5068// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
5069// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
5070// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5071// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>df7f090d2b72ac07bc2351177ed6552d</string>
5072// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5073// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
5074// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>8</string>
5075// CHECK-NEXT:  <key>location</key>
5076// CHECK-NEXT:  <dict>
5077// CHECK-NEXT:   <key>line</key><integer>245</integer>
5078// CHECK-NEXT:   <key>col</key><integer>9</integer>
5079// CHECK-NEXT:   <key>file</key><integer>0</integer>
5080// CHECK-NEXT:  </dict>
5081// CHECK-NEXT:  </dict>
5082// CHECK-NEXT:  <dict>
5083// CHECK-NEXT:   <key>path</key>
5084// CHECK-NEXT:   <array>
5085// CHECK-NEXT:    <dict>
5086// CHECK-NEXT:     <key>kind</key><string>event</string>
5087// CHECK-NEXT:     <key>location</key>
5088// CHECK-NEXT:     <dict>
5089// CHECK-NEXT:      <key>line</key><integer>251</integer>
5090// CHECK-NEXT:      <key>col</key><integer>7</integer>
5091// CHECK-NEXT:      <key>file</key><integer>0</integer>
5092// CHECK-NEXT:     </dict>
5093// CHECK-NEXT:     <key>ranges</key>
5094// CHECK-NEXT:     <array>
5095// CHECK-NEXT:       <array>
5096// CHECK-NEXT:        <dict>
5097// CHECK-NEXT:         <key>line</key><integer>251</integer>
5098// CHECK-NEXT:         <key>col</key><integer>7</integer>
5099// CHECK-NEXT:         <key>file</key><integer>0</integer>
5100// CHECK-NEXT:        </dict>
5101// CHECK-NEXT:        <dict>
5102// CHECK-NEXT:         <key>line</key><integer>251</integer>
5103// CHECK-NEXT:         <key>col</key><integer>7</integer>
5104// CHECK-NEXT:         <key>file</key><integer>0</integer>
5105// CHECK-NEXT:        </dict>
5106// CHECK-NEXT:       </array>
5107// CHECK-NEXT:     </array>
5108// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5109// CHECK-NEXT:     <key>extended_message</key>
5110// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;NSArray&lt;NSMutableString *&gt; *&apos;)</string>
5111// CHECK-NEXT:     <key>message</key>
5112// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;NSArray&lt;NSMutableString *&gt; *&apos;)</string>
5113// CHECK-NEXT:    </dict>
5114// CHECK-NEXT:    <dict>
5115// CHECK-NEXT:     <key>kind</key><string>control</string>
5116// CHECK-NEXT:     <key>edges</key>
5117// CHECK-NEXT:      <array>
5118// CHECK-NEXT:       <dict>
5119// CHECK-NEXT:        <key>start</key>
5120// CHECK-NEXT:         <array>
5121// CHECK-NEXT:          <dict>
5122// CHECK-NEXT:           <key>line</key><integer>251</integer>
5123// CHECK-NEXT:           <key>col</key><integer>3</integer>
5124// CHECK-NEXT:           <key>file</key><integer>0</integer>
5125// CHECK-NEXT:          </dict>
5126// CHECK-NEXT:          <dict>
5127// CHECK-NEXT:           <key>line</key><integer>251</integer>
5128// CHECK-NEXT:           <key>col</key><integer>3</integer>
5129// CHECK-NEXT:           <key>file</key><integer>0</integer>
5130// CHECK-NEXT:          </dict>
5131// CHECK-NEXT:         </array>
5132// CHECK-NEXT:        <key>end</key>
5133// CHECK-NEXT:         <array>
5134// CHECK-NEXT:          <dict>
5135// CHECK-NEXT:           <key>line</key><integer>252</integer>
5136// CHECK-NEXT:           <key>col</key><integer>3</integer>
5137// CHECK-NEXT:           <key>file</key><integer>0</integer>
5138// CHECK-NEXT:          </dict>
5139// CHECK-NEXT:          <dict>
5140// CHECK-NEXT:           <key>line</key><integer>252</integer>
5141// CHECK-NEXT:           <key>col</key><integer>4</integer>
5142// CHECK-NEXT:           <key>file</key><integer>0</integer>
5143// CHECK-NEXT:          </dict>
5144// CHECK-NEXT:         </array>
5145// CHECK-NEXT:       </dict>
5146// CHECK-NEXT:      </array>
5147// CHECK-NEXT:    </dict>
5148// CHECK-NEXT:    <dict>
5149// CHECK-NEXT:     <key>kind</key><string>control</string>
5150// CHECK-NEXT:     <key>edges</key>
5151// CHECK-NEXT:      <array>
5152// CHECK-NEXT:       <dict>
5153// CHECK-NEXT:        <key>start</key>
5154// CHECK-NEXT:         <array>
5155// CHECK-NEXT:          <dict>
5156// CHECK-NEXT:           <key>line</key><integer>252</integer>
5157// CHECK-NEXT:           <key>col</key><integer>3</integer>
5158// CHECK-NEXT:           <key>file</key><integer>0</integer>
5159// CHECK-NEXT:          </dict>
5160// CHECK-NEXT:          <dict>
5161// CHECK-NEXT:           <key>line</key><integer>252</integer>
5162// CHECK-NEXT:           <key>col</key><integer>4</integer>
5163// CHECK-NEXT:           <key>file</key><integer>0</integer>
5164// CHECK-NEXT:          </dict>
5165// CHECK-NEXT:         </array>
5166// CHECK-NEXT:        <key>end</key>
5167// CHECK-NEXT:         <array>
5168// CHECK-NEXT:          <dict>
5169// CHECK-NEXT:           <key>line</key><integer>253</integer>
5170// CHECK-NEXT:           <key>col</key><integer>5</integer>
5171// CHECK-NEXT:           <key>file</key><integer>0</integer>
5172// CHECK-NEXT:          </dict>
5173// CHECK-NEXT:          <dict>
5174// CHECK-NEXT:           <key>line</key><integer>253</integer>
5175// CHECK-NEXT:           <key>col</key><integer>5</integer>
5176// CHECK-NEXT:           <key>file</key><integer>0</integer>
5177// CHECK-NEXT:          </dict>
5178// CHECK-NEXT:         </array>
5179// CHECK-NEXT:       </dict>
5180// CHECK-NEXT:      </array>
5181// CHECK-NEXT:    </dict>
5182// CHECK-NEXT:    <dict>
5183// CHECK-NEXT:     <key>kind</key><string>control</string>
5184// CHECK-NEXT:     <key>edges</key>
5185// CHECK-NEXT:      <array>
5186// CHECK-NEXT:       <dict>
5187// CHECK-NEXT:        <key>start</key>
5188// CHECK-NEXT:         <array>
5189// CHECK-NEXT:          <dict>
5190// CHECK-NEXT:           <key>line</key><integer>253</integer>
5191// CHECK-NEXT:           <key>col</key><integer>5</integer>
5192// CHECK-NEXT:           <key>file</key><integer>0</integer>
5193// CHECK-NEXT:          </dict>
5194// CHECK-NEXT:          <dict>
5195// CHECK-NEXT:           <key>line</key><integer>253</integer>
5196// CHECK-NEXT:           <key>col</key><integer>5</integer>
5197// CHECK-NEXT:           <key>file</key><integer>0</integer>
5198// CHECK-NEXT:          </dict>
5199// CHECK-NEXT:         </array>
5200// CHECK-NEXT:        <key>end</key>
5201// CHECK-NEXT:         <array>
5202// CHECK-NEXT:          <dict>
5203// CHECK-NEXT:           <key>line</key><integer>254</integer>
5204// CHECK-NEXT:           <key>col</key><integer>5</integer>
5205// CHECK-NEXT:           <key>file</key><integer>0</integer>
5206// CHECK-NEXT:          </dict>
5207// CHECK-NEXT:          <dict>
5208// CHECK-NEXT:           <key>line</key><integer>254</integer>
5209// CHECK-NEXT:           <key>col</key><integer>5</integer>
5210// CHECK-NEXT:           <key>file</key><integer>0</integer>
5211// CHECK-NEXT:          </dict>
5212// CHECK-NEXT:         </array>
5213// CHECK-NEXT:       </dict>
5214// CHECK-NEXT:      </array>
5215// CHECK-NEXT:    </dict>
5216// CHECK-NEXT:    <dict>
5217// CHECK-NEXT:     <key>kind</key><string>event</string>
5218// CHECK-NEXT:     <key>location</key>
5219// CHECK-NEXT:     <dict>
5220// CHECK-NEXT:      <key>line</key><integer>254</integer>
5221// CHECK-NEXT:      <key>col</key><integer>5</integer>
5222// CHECK-NEXT:      <key>file</key><integer>0</integer>
5223// CHECK-NEXT:     </dict>
5224// CHECK-NEXT:     <key>ranges</key>
5225// CHECK-NEXT:     <array>
5226// CHECK-NEXT:       <array>
5227// CHECK-NEXT:        <dict>
5228// CHECK-NEXT:         <key>line</key><integer>254</integer>
5229// CHECK-NEXT:         <key>col</key><integer>19</integer>
5230// CHECK-NEXT:         <key>file</key><integer>0</integer>
5231// CHECK-NEXT:        </dict>
5232// CHECK-NEXT:        <dict>
5233// CHECK-NEXT:         <key>line</key><integer>254</integer>
5234// CHECK-NEXT:         <key>col</key><integer>41</integer>
5235// CHECK-NEXT:         <key>file</key><integer>0</integer>
5236// CHECK-NEXT:        </dict>
5237// CHECK-NEXT:       </array>
5238// CHECK-NEXT:     </array>
5239// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5240// CHECK-NEXT:     <key>extended_message</key>
5241// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5242// CHECK-NEXT:     <key>message</key>
5243// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5244// CHECK-NEXT:    </dict>
5245// CHECK-NEXT:   </array>
5246// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5247// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5248// CHECK-NEXT:   <key>type</key><string>Generics</string>
5249// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5250// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5251// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a0fa75143d7a7ac234292642a6d93360</string>
5252// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5253// CHECK-NEXT:  <key>issue_context</key><string>findMethodDeclInTrackedType</string>
5254// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
5255// CHECK-NEXT:  <key>location</key>
5256// CHECK-NEXT:  <dict>
5257// CHECK-NEXT:   <key>line</key><integer>254</integer>
5258// CHECK-NEXT:   <key>col</key><integer>5</integer>
5259// CHECK-NEXT:   <key>file</key><integer>0</integer>
5260// CHECK-NEXT:  </dict>
5261// CHECK-NEXT:  </dict>
5262// CHECK-NEXT:  <dict>
5263// CHECK-NEXT:   <key>path</key>
5264// CHECK-NEXT:   <array>
5265// CHECK-NEXT:    <dict>
5266// CHECK-NEXT:     <key>kind</key><string>event</string>
5267// CHECK-NEXT:     <key>location</key>
5268// CHECK-NEXT:     <dict>
5269// CHECK-NEXT:      <key>line</key><integer>263</integer>
5270// CHECK-NEXT:      <key>col</key><integer>7</integer>
5271// CHECK-NEXT:      <key>file</key><integer>0</integer>
5272// CHECK-NEXT:     </dict>
5273// CHECK-NEXT:     <key>ranges</key>
5274// CHECK-NEXT:     <array>
5275// CHECK-NEXT:       <array>
5276// CHECK-NEXT:        <dict>
5277// CHECK-NEXT:         <key>line</key><integer>263</integer>
5278// CHECK-NEXT:         <key>col</key><integer>7</integer>
5279// CHECK-NEXT:         <key>file</key><integer>0</integer>
5280// CHECK-NEXT:        </dict>
5281// CHECK-NEXT:        <dict>
5282// CHECK-NEXT:         <key>line</key><integer>263</integer>
5283// CHECK-NEXT:         <key>col</key><integer>7</integer>
5284// CHECK-NEXT:         <key>file</key><integer>0</integer>
5285// CHECK-NEXT:        </dict>
5286// CHECK-NEXT:       </array>
5287// CHECK-NEXT:     </array>
5288// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5289// CHECK-NEXT:     <key>extended_message</key>
5290// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;__kindof NSArray&lt;NSString *&gt; *&apos;)</string>
5291// CHECK-NEXT:     <key>message</key>
5292// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to &apos;__kindof NSArray&lt;NSString *&gt; *&apos;)</string>
5293// CHECK-NEXT:    </dict>
5294// CHECK-NEXT:    <dict>
5295// CHECK-NEXT:     <key>kind</key><string>control</string>
5296// CHECK-NEXT:     <key>edges</key>
5297// CHECK-NEXT:      <array>
5298// CHECK-NEXT:       <dict>
5299// CHECK-NEXT:        <key>start</key>
5300// CHECK-NEXT:         <array>
5301// CHECK-NEXT:          <dict>
5302// CHECK-NEXT:           <key>line</key><integer>263</integer>
5303// CHECK-NEXT:           <key>col</key><integer>3</integer>
5304// CHECK-NEXT:           <key>file</key><integer>0</integer>
5305// CHECK-NEXT:          </dict>
5306// CHECK-NEXT:          <dict>
5307// CHECK-NEXT:           <key>line</key><integer>263</integer>
5308// CHECK-NEXT:           <key>col</key><integer>3</integer>
5309// CHECK-NEXT:           <key>file</key><integer>0</integer>
5310// CHECK-NEXT:          </dict>
5311// CHECK-NEXT:         </array>
5312// CHECK-NEXT:        <key>end</key>
5313// CHECK-NEXT:         <array>
5314// CHECK-NEXT:          <dict>
5315// CHECK-NEXT:           <key>line</key><integer>264</integer>
5316// CHECK-NEXT:           <key>col</key><integer>3</integer>
5317// CHECK-NEXT:           <key>file</key><integer>0</integer>
5318// CHECK-NEXT:          </dict>
5319// CHECK-NEXT:          <dict>
5320// CHECK-NEXT:           <key>line</key><integer>264</integer>
5321// CHECK-NEXT:           <key>col</key><integer>4</integer>
5322// CHECK-NEXT:           <key>file</key><integer>0</integer>
5323// CHECK-NEXT:          </dict>
5324// CHECK-NEXT:         </array>
5325// CHECK-NEXT:       </dict>
5326// CHECK-NEXT:      </array>
5327// CHECK-NEXT:    </dict>
5328// CHECK-NEXT:    <dict>
5329// CHECK-NEXT:     <key>kind</key><string>control</string>
5330// CHECK-NEXT:     <key>edges</key>
5331// CHECK-NEXT:      <array>
5332// CHECK-NEXT:       <dict>
5333// CHECK-NEXT:        <key>start</key>
5334// CHECK-NEXT:         <array>
5335// CHECK-NEXT:          <dict>
5336// CHECK-NEXT:           <key>line</key><integer>264</integer>
5337// CHECK-NEXT:           <key>col</key><integer>3</integer>
5338// CHECK-NEXT:           <key>file</key><integer>0</integer>
5339// CHECK-NEXT:          </dict>
5340// CHECK-NEXT:          <dict>
5341// CHECK-NEXT:           <key>line</key><integer>264</integer>
5342// CHECK-NEXT:           <key>col</key><integer>4</integer>
5343// CHECK-NEXT:           <key>file</key><integer>0</integer>
5344// CHECK-NEXT:          </dict>
5345// CHECK-NEXT:         </array>
5346// CHECK-NEXT:        <key>end</key>
5347// CHECK-NEXT:         <array>
5348// CHECK-NEXT:          <dict>
5349// CHECK-NEXT:           <key>line</key><integer>265</integer>
5350// CHECK-NEXT:           <key>col</key><integer>5</integer>
5351// CHECK-NEXT:           <key>file</key><integer>0</integer>
5352// CHECK-NEXT:          </dict>
5353// CHECK-NEXT:          <dict>
5354// CHECK-NEXT:           <key>line</key><integer>265</integer>
5355// CHECK-NEXT:           <key>col</key><integer>5</integer>
5356// CHECK-NEXT:           <key>file</key><integer>0</integer>
5357// CHECK-NEXT:          </dict>
5358// CHECK-NEXT:         </array>
5359// CHECK-NEXT:       </dict>
5360// CHECK-NEXT:      </array>
5361// CHECK-NEXT:    </dict>
5362// CHECK-NEXT:    <dict>
5363// CHECK-NEXT:     <key>kind</key><string>event</string>
5364// CHECK-NEXT:     <key>location</key>
5365// CHECK-NEXT:     <dict>
5366// CHECK-NEXT:      <key>line</key><integer>265</integer>
5367// CHECK-NEXT:      <key>col</key><integer>5</integer>
5368// CHECK-NEXT:      <key>file</key><integer>0</integer>
5369// CHECK-NEXT:     </dict>
5370// CHECK-NEXT:     <key>ranges</key>
5371// CHECK-NEXT:     <array>
5372// CHECK-NEXT:       <array>
5373// CHECK-NEXT:        <dict>
5374// CHECK-NEXT:         <key>line</key><integer>265</integer>
5375// CHECK-NEXT:         <key>col</key><integer>19</integer>
5376// CHECK-NEXT:         <key>file</key><integer>0</integer>
5377// CHECK-NEXT:        </dict>
5378// CHECK-NEXT:        <dict>
5379// CHECK-NEXT:         <key>line</key><integer>265</integer>
5380// CHECK-NEXT:         <key>col</key><integer>41</integer>
5381// CHECK-NEXT:         <key>file</key><integer>0</integer>
5382// CHECK-NEXT:        </dict>
5383// CHECK-NEXT:       </array>
5384// CHECK-NEXT:     </array>
5385// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5386// CHECK-NEXT:     <key>extended_message</key>
5387// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5388// CHECK-NEXT:     <key>message</key>
5389// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5390// CHECK-NEXT:    </dict>
5391// CHECK-NEXT:   </array>
5392// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5393// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5394// CHECK-NEXT:   <key>type</key><string>Generics</string>
5395// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5396// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5397// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>d0b99c8523e81ec43ba4ea80aeedef1b</string>
5398// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5399// CHECK-NEXT:  <key>issue_context</key><string>findMethodDeclInTrackedType2</string>
5400// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
5401// CHECK-NEXT:  <key>location</key>
5402// CHECK-NEXT:  <dict>
5403// CHECK-NEXT:   <key>line</key><integer>265</integer>
5404// CHECK-NEXT:   <key>col</key><integer>5</integer>
5405// CHECK-NEXT:   <key>file</key><integer>0</integer>
5406// CHECK-NEXT:  </dict>
5407// CHECK-NEXT:  </dict>
5408// CHECK-NEXT:  <dict>
5409// CHECK-NEXT:   <key>path</key>
5410// CHECK-NEXT:   <array>
5411// CHECK-NEXT:    <dict>
5412// CHECK-NEXT:     <key>kind</key><string>event</string>
5413// CHECK-NEXT:     <key>location</key>
5414// CHECK-NEXT:     <dict>
5415// CHECK-NEXT:      <key>line</key><integer>278</integer>
5416// CHECK-NEXT:      <key>col</key><integer>30</integer>
5417// CHECK-NEXT:      <key>file</key><integer>0</integer>
5418// CHECK-NEXT:     </dict>
5419// CHECK-NEXT:     <key>ranges</key>
5420// CHECK-NEXT:     <array>
5421// CHECK-NEXT:       <array>
5422// CHECK-NEXT:        <dict>
5423// CHECK-NEXT:         <key>line</key><integer>278</integer>
5424// CHECK-NEXT:         <key>col</key><integer>30</integer>
5425// CHECK-NEXT:         <key>file</key><integer>0</integer>
5426// CHECK-NEXT:        </dict>
5427// CHECK-NEXT:        <dict>
5428// CHECK-NEXT:         <key>line</key><integer>278</integer>
5429// CHECK-NEXT:         <key>col</key><integer>42</integer>
5430// CHECK-NEXT:         <key>file</key><integer>0</integer>
5431// CHECK-NEXT:        </dict>
5432// CHECK-NEXT:       </array>
5433// CHECK-NEXT:     </array>
5434// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5435// CHECK-NEXT:     <key>extended_message</key>
5436// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
5437// CHECK-NEXT:     <key>message</key>
5438// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
5439// CHECK-NEXT:    </dict>
5440// CHECK-NEXT:    <dict>
5441// CHECK-NEXT:     <key>kind</key><string>control</string>
5442// CHECK-NEXT:     <key>edges</key>
5443// CHECK-NEXT:      <array>
5444// CHECK-NEXT:       <dict>
5445// CHECK-NEXT:        <key>start</key>
5446// CHECK-NEXT:         <array>
5447// CHECK-NEXT:          <dict>
5448// CHECK-NEXT:           <key>line</key><integer>278</integer>
5449// CHECK-NEXT:           <key>col</key><integer>3</integer>
5450// CHECK-NEXT:           <key>file</key><integer>0</integer>
5451// CHECK-NEXT:          </dict>
5452// CHECK-NEXT:          <dict>
5453// CHECK-NEXT:           <key>line</key><integer>278</integer>
5454// CHECK-NEXT:           <key>col</key><integer>9</integer>
5455// CHECK-NEXT:           <key>file</key><integer>0</integer>
5456// CHECK-NEXT:          </dict>
5457// CHECK-NEXT:         </array>
5458// CHECK-NEXT:        <key>end</key>
5459// CHECK-NEXT:         <array>
5460// CHECK-NEXT:          <dict>
5461// CHECK-NEXT:           <key>line</key><integer>280</integer>
5462// CHECK-NEXT:           <key>col</key><integer>3</integer>
5463// CHECK-NEXT:           <key>file</key><integer>0</integer>
5464// CHECK-NEXT:          </dict>
5465// CHECK-NEXT:          <dict>
5466// CHECK-NEXT:           <key>line</key><integer>280</integer>
5467// CHECK-NEXT:           <key>col</key><integer>3</integer>
5468// CHECK-NEXT:           <key>file</key><integer>0</integer>
5469// CHECK-NEXT:          </dict>
5470// CHECK-NEXT:         </array>
5471// CHECK-NEXT:       </dict>
5472// CHECK-NEXT:      </array>
5473// CHECK-NEXT:    </dict>
5474// CHECK-NEXT:    <dict>
5475// CHECK-NEXT:     <key>kind</key><string>event</string>
5476// CHECK-NEXT:     <key>location</key>
5477// CHECK-NEXT:     <dict>
5478// CHECK-NEXT:      <key>line</key><integer>280</integer>
5479// CHECK-NEXT:      <key>col</key><integer>3</integer>
5480// CHECK-NEXT:      <key>file</key><integer>0</integer>
5481// CHECK-NEXT:     </dict>
5482// CHECK-NEXT:     <key>ranges</key>
5483// CHECK-NEXT:     <array>
5484// CHECK-NEXT:       <array>
5485// CHECK-NEXT:        <dict>
5486// CHECK-NEXT:         <key>line</key><integer>280</integer>
5487// CHECK-NEXT:         <key>col</key><integer>19</integer>
5488// CHECK-NEXT:         <key>file</key><integer>0</integer>
5489// CHECK-NEXT:        </dict>
5490// CHECK-NEXT:        <dict>
5491// CHECK-NEXT:         <key>line</key><integer>280</integer>
5492// CHECK-NEXT:         <key>col</key><integer>41</integer>
5493// CHECK-NEXT:         <key>file</key><integer>0</integer>
5494// CHECK-NEXT:        </dict>
5495// CHECK-NEXT:       </array>
5496// CHECK-NEXT:     </array>
5497// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5498// CHECK-NEXT:     <key>extended_message</key>
5499// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
5500// CHECK-NEXT:     <key>message</key>
5501// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
5502// CHECK-NEXT:    </dict>
5503// CHECK-NEXT:   </array>
5504// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
5505// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5506// CHECK-NEXT:   <key>type</key><string>Generics</string>
5507// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5508// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5509// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>ed543d4961e934fb4ac8db00e885fc7f</string>
5510// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5511// CHECK-NEXT:  <key>issue_context</key><string>testAnnotatedLiterals</string>
5512// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
5513// CHECK-NEXT:  <key>location</key>
5514// CHECK-NEXT:  <dict>
5515// CHECK-NEXT:   <key>line</key><integer>280</integer>
5516// CHECK-NEXT:   <key>col</key><integer>3</integer>
5517// CHECK-NEXT:   <key>file</key><integer>0</integer>
5518// CHECK-NEXT:  </dict>
5519// CHECK-NEXT:  </dict>
5520// CHECK-NEXT:  <dict>
5521// CHECK-NEXT:   <key>path</key>
5522// CHECK-NEXT:   <array>
5523// CHECK-NEXT:    <dict>
5524// CHECK-NEXT:     <key>kind</key><string>control</string>
5525// CHECK-NEXT:     <key>edges</key>
5526// CHECK-NEXT:      <array>
5527// CHECK-NEXT:       <dict>
5528// CHECK-NEXT:        <key>start</key>
5529// CHECK-NEXT:         <array>
5530// CHECK-NEXT:          <dict>
5531// CHECK-NEXT:           <key>line</key><integer>289</integer>
5532// CHECK-NEXT:           <key>col</key><integer>3</integer>
5533// CHECK-NEXT:           <key>file</key><integer>0</integer>
5534// CHECK-NEXT:          </dict>
5535// CHECK-NEXT:          <dict>
5536// CHECK-NEXT:           <key>line</key><integer>289</integer>
5537// CHECK-NEXT:           <key>col</key><integer>7</integer>
5538// CHECK-NEXT:           <key>file</key><integer>0</integer>
5539// CHECK-NEXT:          </dict>
5540// CHECK-NEXT:         </array>
5541// CHECK-NEXT:        <key>end</key>
5542// CHECK-NEXT:         <array>
5543// CHECK-NEXT:          <dict>
5544// CHECK-NEXT:           <key>line</key><integer>290</integer>
5545// CHECK-NEXT:           <key>col</key><integer>3</integer>
5546// CHECK-NEXT:           <key>file</key><integer>0</integer>
5547// CHECK-NEXT:          </dict>
5548// CHECK-NEXT:          <dict>
5549// CHECK-NEXT:           <key>line</key><integer>290</integer>
5550// CHECK-NEXT:           <key>col</key><integer>9</integer>
5551// CHECK-NEXT:           <key>file</key><integer>0</integer>
5552// CHECK-NEXT:          </dict>
5553// CHECK-NEXT:         </array>
5554// CHECK-NEXT:       </dict>
5555// CHECK-NEXT:      </array>
5556// CHECK-NEXT:    </dict>
5557// CHECK-NEXT:    <dict>
5558// CHECK-NEXT:     <key>kind</key><string>control</string>
5559// CHECK-NEXT:     <key>edges</key>
5560// CHECK-NEXT:      <array>
5561// CHECK-NEXT:       <dict>
5562// CHECK-NEXT:        <key>start</key>
5563// CHECK-NEXT:         <array>
5564// CHECK-NEXT:          <dict>
5565// CHECK-NEXT:           <key>line</key><integer>290</integer>
5566// CHECK-NEXT:           <key>col</key><integer>3</integer>
5567// CHECK-NEXT:           <key>file</key><integer>0</integer>
5568// CHECK-NEXT:          </dict>
5569// CHECK-NEXT:          <dict>
5570// CHECK-NEXT:           <key>line</key><integer>290</integer>
5571// CHECK-NEXT:           <key>col</key><integer>9</integer>
5572// CHECK-NEXT:           <key>file</key><integer>0</integer>
5573// CHECK-NEXT:          </dict>
5574// CHECK-NEXT:         </array>
5575// CHECK-NEXT:        <key>end</key>
5576// CHECK-NEXT:         <array>
5577// CHECK-NEXT:          <dict>
5578// CHECK-NEXT:           <key>line</key><integer>290</integer>
5579// CHECK-NEXT:           <key>col</key><integer>28</integer>
5580// CHECK-NEXT:           <key>file</key><integer>0</integer>
5581// CHECK-NEXT:          </dict>
5582// CHECK-NEXT:          <dict>
5583// CHECK-NEXT:           <key>line</key><integer>290</integer>
5584// CHECK-NEXT:           <key>col</key><integer>28</integer>
5585// CHECK-NEXT:           <key>file</key><integer>0</integer>
5586// CHECK-NEXT:          </dict>
5587// CHECK-NEXT:         </array>
5588// CHECK-NEXT:       </dict>
5589// CHECK-NEXT:      </array>
5590// CHECK-NEXT:    </dict>
5591// CHECK-NEXT:    <dict>
5592// CHECK-NEXT:     <key>kind</key><string>event</string>
5593// CHECK-NEXT:     <key>location</key>
5594// CHECK-NEXT:     <dict>
5595// CHECK-NEXT:      <key>line</key><integer>290</integer>
5596// CHECK-NEXT:      <key>col</key><integer>28</integer>
5597// CHECK-NEXT:      <key>file</key><integer>0</integer>
5598// CHECK-NEXT:     </dict>
5599// CHECK-NEXT:     <key>ranges</key>
5600// CHECK-NEXT:     <array>
5601// CHECK-NEXT:       <array>
5602// CHECK-NEXT:        <dict>
5603// CHECK-NEXT:         <key>line</key><integer>290</integer>
5604// CHECK-NEXT:         <key>col</key><integer>28</integer>
5605// CHECK-NEXT:         <key>file</key><integer>0</integer>
5606// CHECK-NEXT:        </dict>
5607// CHECK-NEXT:        <dict>
5608// CHECK-NEXT:         <key>line</key><integer>290</integer>
5609// CHECK-NEXT:         <key>col</key><integer>39</integer>
5610// CHECK-NEXT:         <key>file</key><integer>0</integer>
5611// CHECK-NEXT:        </dict>
5612// CHECK-NEXT:       </array>
5613// CHECK-NEXT:     </array>
5614// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5615// CHECK-NEXT:     <key>extended_message</key>
5616// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5617// CHECK-NEXT:     <key>message</key>
5618// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5619// CHECK-NEXT:    </dict>
5620// CHECK-NEXT:    <dict>
5621// CHECK-NEXT:     <key>kind</key><string>event</string>
5622// CHECK-NEXT:     <key>location</key>
5623// CHECK-NEXT:     <dict>
5624// CHECK-NEXT:      <key>line</key><integer>290</integer>
5625// CHECK-NEXT:      <key>col</key><integer>28</integer>
5626// CHECK-NEXT:      <key>file</key><integer>0</integer>
5627// CHECK-NEXT:     </dict>
5628// CHECK-NEXT:     <key>ranges</key>
5629// CHECK-NEXT:     <array>
5630// CHECK-NEXT:       <array>
5631// CHECK-NEXT:        <dict>
5632// CHECK-NEXT:         <key>line</key><integer>290</integer>
5633// CHECK-NEXT:         <key>col</key><integer>28</integer>
5634// CHECK-NEXT:         <key>file</key><integer>0</integer>
5635// CHECK-NEXT:        </dict>
5636// CHECK-NEXT:        <dict>
5637// CHECK-NEXT:         <key>line</key><integer>290</integer>
5638// CHECK-NEXT:         <key>col</key><integer>39</integer>
5639// CHECK-NEXT:         <key>file</key><integer>0</integer>
5640// CHECK-NEXT:        </dict>
5641// CHECK-NEXT:       </array>
5642// CHECK-NEXT:     </array>
5643// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5644// CHECK-NEXT:     <key>extended_message</key>
5645// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5646// CHECK-NEXT:     <key>message</key>
5647// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5648// CHECK-NEXT:    </dict>
5649// CHECK-NEXT:   </array>
5650// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5651// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5652// CHECK-NEXT:   <key>type</key><string>Generics</string>
5653// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5654// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5655// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>46aa94b866747bcbe1ded581da7a2633</string>
5656// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5657// CHECK-NEXT:  <key>issue_context</key><string>trackedClassVariables</string>
5658// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
5659// CHECK-NEXT:  <key>location</key>
5660// CHECK-NEXT:  <dict>
5661// CHECK-NEXT:   <key>line</key><integer>290</integer>
5662// CHECK-NEXT:   <key>col</key><integer>28</integer>
5663// CHECK-NEXT:   <key>file</key><integer>0</integer>
5664// CHECK-NEXT:  </dict>
5665// CHECK-NEXT:  </dict>
5666// CHECK-NEXT:  <dict>
5667// CHECK-NEXT:   <key>path</key>
5668// CHECK-NEXT:   <array>
5669// CHECK-NEXT:    <dict>
5670// CHECK-NEXT:     <key>kind</key><string>control</string>
5671// CHECK-NEXT:     <key>edges</key>
5672// CHECK-NEXT:      <array>
5673// CHECK-NEXT:       <dict>
5674// CHECK-NEXT:        <key>start</key>
5675// CHECK-NEXT:         <array>
5676// CHECK-NEXT:          <dict>
5677// CHECK-NEXT:           <key>line</key><integer>289</integer>
5678// CHECK-NEXT:           <key>col</key><integer>3</integer>
5679// CHECK-NEXT:           <key>file</key><integer>0</integer>
5680// CHECK-NEXT:          </dict>
5681// CHECK-NEXT:          <dict>
5682// CHECK-NEXT:           <key>line</key><integer>289</integer>
5683// CHECK-NEXT:           <key>col</key><integer>7</integer>
5684// CHECK-NEXT:           <key>file</key><integer>0</integer>
5685// CHECK-NEXT:          </dict>
5686// CHECK-NEXT:         </array>
5687// CHECK-NEXT:        <key>end</key>
5688// CHECK-NEXT:         <array>
5689// CHECK-NEXT:          <dict>
5690// CHECK-NEXT:           <key>line</key><integer>291</integer>
5691// CHECK-NEXT:           <key>col</key><integer>3</integer>
5692// CHECK-NEXT:           <key>file</key><integer>0</integer>
5693// CHECK-NEXT:          </dict>
5694// CHECK-NEXT:          <dict>
5695// CHECK-NEXT:           <key>line</key><integer>291</integer>
5696// CHECK-NEXT:           <key>col</key><integer>3</integer>
5697// CHECK-NEXT:           <key>file</key><integer>0</integer>
5698// CHECK-NEXT:          </dict>
5699// CHECK-NEXT:         </array>
5700// CHECK-NEXT:       </dict>
5701// CHECK-NEXT:      </array>
5702// CHECK-NEXT:    </dict>
5703// CHECK-NEXT:    <dict>
5704// CHECK-NEXT:     <key>kind</key><string>control</string>
5705// CHECK-NEXT:     <key>edges</key>
5706// CHECK-NEXT:      <array>
5707// CHECK-NEXT:       <dict>
5708// CHECK-NEXT:        <key>start</key>
5709// CHECK-NEXT:         <array>
5710// CHECK-NEXT:          <dict>
5711// CHECK-NEXT:           <key>line</key><integer>291</integer>
5712// CHECK-NEXT:           <key>col</key><integer>3</integer>
5713// CHECK-NEXT:           <key>file</key><integer>0</integer>
5714// CHECK-NEXT:          </dict>
5715// CHECK-NEXT:          <dict>
5716// CHECK-NEXT:           <key>line</key><integer>291</integer>
5717// CHECK-NEXT:           <key>col</key><integer>3</integer>
5718// CHECK-NEXT:           <key>file</key><integer>0</integer>
5719// CHECK-NEXT:          </dict>
5720// CHECK-NEXT:         </array>
5721// CHECK-NEXT:        <key>end</key>
5722// CHECK-NEXT:         <array>
5723// CHECK-NEXT:          <dict>
5724// CHECK-NEXT:           <key>line</key><integer>291</integer>
5725// CHECK-NEXT:           <key>col</key><integer>7</integer>
5726// CHECK-NEXT:           <key>file</key><integer>0</integer>
5727// CHECK-NEXT:          </dict>
5728// CHECK-NEXT:          <dict>
5729// CHECK-NEXT:           <key>line</key><integer>291</integer>
5730// CHECK-NEXT:           <key>col</key><integer>7</integer>
5731// CHECK-NEXT:           <key>file</key><integer>0</integer>
5732// CHECK-NEXT:          </dict>
5733// CHECK-NEXT:         </array>
5734// CHECK-NEXT:       </dict>
5735// CHECK-NEXT:      </array>
5736// CHECK-NEXT:    </dict>
5737// CHECK-NEXT:    <dict>
5738// CHECK-NEXT:     <key>kind</key><string>event</string>
5739// CHECK-NEXT:     <key>location</key>
5740// CHECK-NEXT:     <dict>
5741// CHECK-NEXT:      <key>line</key><integer>291</integer>
5742// CHECK-NEXT:      <key>col</key><integer>7</integer>
5743// CHECK-NEXT:      <key>file</key><integer>0</integer>
5744// CHECK-NEXT:     </dict>
5745// CHECK-NEXT:     <key>ranges</key>
5746// CHECK-NEXT:     <array>
5747// CHECK-NEXT:       <array>
5748// CHECK-NEXT:        <dict>
5749// CHECK-NEXT:         <key>line</key><integer>291</integer>
5750// CHECK-NEXT:         <key>col</key><integer>7</integer>
5751// CHECK-NEXT:         <key>file</key><integer>0</integer>
5752// CHECK-NEXT:        </dict>
5753// CHECK-NEXT:        <dict>
5754// CHECK-NEXT:         <key>line</key><integer>291</integer>
5755// CHECK-NEXT:         <key>col</key><integer>19</integer>
5756// CHECK-NEXT:         <key>file</key><integer>0</integer>
5757// CHECK-NEXT:        </dict>
5758// CHECK-NEXT:       </array>
5759// CHECK-NEXT:     </array>
5760// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5761// CHECK-NEXT:     <key>extended_message</key>
5762// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5763// CHECK-NEXT:     <key>message</key>
5764// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5765// CHECK-NEXT:    </dict>
5766// CHECK-NEXT:    <dict>
5767// CHECK-NEXT:     <key>kind</key><string>event</string>
5768// CHECK-NEXT:     <key>location</key>
5769// CHECK-NEXT:     <dict>
5770// CHECK-NEXT:      <key>line</key><integer>291</integer>
5771// CHECK-NEXT:      <key>col</key><integer>7</integer>
5772// CHECK-NEXT:      <key>file</key><integer>0</integer>
5773// CHECK-NEXT:     </dict>
5774// CHECK-NEXT:     <key>ranges</key>
5775// CHECK-NEXT:     <array>
5776// CHECK-NEXT:       <array>
5777// CHECK-NEXT:        <dict>
5778// CHECK-NEXT:         <key>line</key><integer>291</integer>
5779// CHECK-NEXT:         <key>col</key><integer>7</integer>
5780// CHECK-NEXT:         <key>file</key><integer>0</integer>
5781// CHECK-NEXT:        </dict>
5782// CHECK-NEXT:        <dict>
5783// CHECK-NEXT:         <key>line</key><integer>291</integer>
5784// CHECK-NEXT:         <key>col</key><integer>19</integer>
5785// CHECK-NEXT:         <key>file</key><integer>0</integer>
5786// CHECK-NEXT:        </dict>
5787// CHECK-NEXT:       </array>
5788// CHECK-NEXT:     </array>
5789// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5790// CHECK-NEXT:     <key>extended_message</key>
5791// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5792// CHECK-NEXT:     <key>message</key>
5793// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5794// CHECK-NEXT:    </dict>
5795// CHECK-NEXT:   </array>
5796// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5797// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5798// CHECK-NEXT:   <key>type</key><string>Generics</string>
5799// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5800// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5801// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a759006d1ce88e15fcd6de6a29e2579c</string>
5802// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5803// CHECK-NEXT:  <key>issue_context</key><string>trackedClassVariables</string>
5804// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
5805// CHECK-NEXT:  <key>location</key>
5806// CHECK-NEXT:  <dict>
5807// CHECK-NEXT:   <key>line</key><integer>291</integer>
5808// CHECK-NEXT:   <key>col</key><integer>7</integer>
5809// CHECK-NEXT:   <key>file</key><integer>0</integer>
5810// CHECK-NEXT:  </dict>
5811// CHECK-NEXT:  </dict>
5812// CHECK-NEXT:  <dict>
5813// CHECK-NEXT:   <key>path</key>
5814// CHECK-NEXT:   <array>
5815// CHECK-NEXT:    <dict>
5816// CHECK-NEXT:     <key>kind</key><string>event</string>
5817// CHECK-NEXT:     <key>location</key>
5818// CHECK-NEXT:     <dict>
5819// CHECK-NEXT:      <key>line</key><integer>295</integer>
5820// CHECK-NEXT:      <key>col</key><integer>13</integer>
5821// CHECK-NEXT:      <key>file</key><integer>0</integer>
5822// CHECK-NEXT:     </dict>
5823// CHECK-NEXT:     <key>ranges</key>
5824// CHECK-NEXT:     <array>
5825// CHECK-NEXT:       <array>
5826// CHECK-NEXT:        <dict>
5827// CHECK-NEXT:         <key>line</key><integer>295</integer>
5828// CHECK-NEXT:         <key>col</key><integer>13</integer>
5829// CHECK-NEXT:         <key>file</key><integer>0</integer>
5830// CHECK-NEXT:        </dict>
5831// CHECK-NEXT:        <dict>
5832// CHECK-NEXT:         <key>line</key><integer>295</integer>
5833// CHECK-NEXT:         <key>col</key><integer>15</integer>
5834// CHECK-NEXT:         <key>file</key><integer>0</integer>
5835// CHECK-NEXT:        </dict>
5836// CHECK-NEXT:       </array>
5837// CHECK-NEXT:     </array>
5838// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5839// CHECK-NEXT:     <key>extended_message</key>
5840// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
5841// CHECK-NEXT:     <key>message</key>
5842// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
5843// CHECK-NEXT:    </dict>
5844// CHECK-NEXT:    <dict>
5845// CHECK-NEXT:     <key>kind</key><string>control</string>
5846// CHECK-NEXT:     <key>edges</key>
5847// CHECK-NEXT:      <array>
5848// CHECK-NEXT:       <dict>
5849// CHECK-NEXT:        <key>start</key>
5850// CHECK-NEXT:         <array>
5851// CHECK-NEXT:          <dict>
5852// CHECK-NEXT:           <key>line</key><integer>295</integer>
5853// CHECK-NEXT:           <key>col</key><integer>3</integer>
5854// CHECK-NEXT:           <key>file</key><integer>0</integer>
5855// CHECK-NEXT:          </dict>
5856// CHECK-NEXT:          <dict>
5857// CHECK-NEXT:           <key>line</key><integer>295</integer>
5858// CHECK-NEXT:           <key>col</key><integer>4</integer>
5859// CHECK-NEXT:           <key>file</key><integer>0</integer>
5860// CHECK-NEXT:          </dict>
5861// CHECK-NEXT:         </array>
5862// CHECK-NEXT:        <key>end</key>
5863// CHECK-NEXT:         <array>
5864// CHECK-NEXT:          <dict>
5865// CHECK-NEXT:           <key>line</key><integer>296</integer>
5866// CHECK-NEXT:           <key>col</key><integer>3</integer>
5867// CHECK-NEXT:           <key>file</key><integer>0</integer>
5868// CHECK-NEXT:          </dict>
5869// CHECK-NEXT:          <dict>
5870// CHECK-NEXT:           <key>line</key><integer>296</integer>
5871// CHECK-NEXT:           <key>col</key><integer>3</integer>
5872// CHECK-NEXT:           <key>file</key><integer>0</integer>
5873// CHECK-NEXT:          </dict>
5874// CHECK-NEXT:         </array>
5875// CHECK-NEXT:       </dict>
5876// CHECK-NEXT:      </array>
5877// CHECK-NEXT:    </dict>
5878// CHECK-NEXT:    <dict>
5879// CHECK-NEXT:     <key>kind</key><string>control</string>
5880// CHECK-NEXT:     <key>edges</key>
5881// CHECK-NEXT:      <array>
5882// CHECK-NEXT:       <dict>
5883// CHECK-NEXT:        <key>start</key>
5884// CHECK-NEXT:         <array>
5885// CHECK-NEXT:          <dict>
5886// CHECK-NEXT:           <key>line</key><integer>296</integer>
5887// CHECK-NEXT:           <key>col</key><integer>3</integer>
5888// CHECK-NEXT:           <key>file</key><integer>0</integer>
5889// CHECK-NEXT:          </dict>
5890// CHECK-NEXT:          <dict>
5891// CHECK-NEXT:           <key>line</key><integer>296</integer>
5892// CHECK-NEXT:           <key>col</key><integer>3</integer>
5893// CHECK-NEXT:           <key>file</key><integer>0</integer>
5894// CHECK-NEXT:          </dict>
5895// CHECK-NEXT:         </array>
5896// CHECK-NEXT:        <key>end</key>
5897// CHECK-NEXT:         <array>
5898// CHECK-NEXT:          <dict>
5899// CHECK-NEXT:           <key>line</key><integer>296</integer>
5900// CHECK-NEXT:           <key>col</key><integer>18</integer>
5901// CHECK-NEXT:           <key>file</key><integer>0</integer>
5902// CHECK-NEXT:          </dict>
5903// CHECK-NEXT:          <dict>
5904// CHECK-NEXT:           <key>line</key><integer>296</integer>
5905// CHECK-NEXT:           <key>col</key><integer>21</integer>
5906// CHECK-NEXT:           <key>file</key><integer>0</integer>
5907// CHECK-NEXT:          </dict>
5908// CHECK-NEXT:         </array>
5909// CHECK-NEXT:       </dict>
5910// CHECK-NEXT:      </array>
5911// CHECK-NEXT:    </dict>
5912// CHECK-NEXT:    <dict>
5913// CHECK-NEXT:     <key>kind</key><string>event</string>
5914// CHECK-NEXT:     <key>location</key>
5915// CHECK-NEXT:     <dict>
5916// CHECK-NEXT:      <key>line</key><integer>296</integer>
5917// CHECK-NEXT:      <key>col</key><integer>18</integer>
5918// CHECK-NEXT:      <key>file</key><integer>0</integer>
5919// CHECK-NEXT:     </dict>
5920// CHECK-NEXT:     <key>ranges</key>
5921// CHECK-NEXT:     <array>
5922// CHECK-NEXT:       <array>
5923// CHECK-NEXT:        <dict>
5924// CHECK-NEXT:         <key>line</key><integer>296</integer>
5925// CHECK-NEXT:         <key>col</key><integer>18</integer>
5926// CHECK-NEXT:         <key>file</key><integer>0</integer>
5927// CHECK-NEXT:        </dict>
5928// CHECK-NEXT:        <dict>
5929// CHECK-NEXT:         <key>line</key><integer>296</integer>
5930// CHECK-NEXT:         <key>col</key><integer>21</integer>
5931// CHECK-NEXT:         <key>file</key><integer>0</integer>
5932// CHECK-NEXT:        </dict>
5933// CHECK-NEXT:       </array>
5934// CHECK-NEXT:     </array>
5935// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5936// CHECK-NEXT:     <key>extended_message</key>
5937// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5938// CHECK-NEXT:     <key>message</key>
5939// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5940// CHECK-NEXT:    </dict>
5941// CHECK-NEXT:   </array>
5942// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5943// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5944// CHECK-NEXT:   <key>type</key><string>Generics</string>
5945// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5946// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5947// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>4bb1729ff86647750b458e6f8d883f08</string>
5948// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5949// CHECK-NEXT:  <key>issue_context</key><string>nestedCollections</string>
5950// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
5951// CHECK-NEXT:  <key>location</key>
5952// CHECK-NEXT:  <dict>
5953// CHECK-NEXT:   <key>line</key><integer>296</integer>
5954// CHECK-NEXT:   <key>col</key><integer>18</integer>
5955// CHECK-NEXT:   <key>file</key><integer>0</integer>
5956// CHECK-NEXT:  </dict>
5957// CHECK-NEXT:  </dict>
5958// CHECK-NEXT:  <dict>
5959// CHECK-NEXT:   <key>path</key>
5960// CHECK-NEXT:   <array>
5961// CHECK-NEXT:    <dict>
5962// CHECK-NEXT:     <key>kind</key><string>control</string>
5963// CHECK-NEXT:     <key>edges</key>
5964// CHECK-NEXT:      <array>
5965// CHECK-NEXT:       <dict>
5966// CHECK-NEXT:        <key>start</key>
5967// CHECK-NEXT:         <array>
5968// CHECK-NEXT:          <dict>
5969// CHECK-NEXT:           <key>line</key><integer>308</integer>
5970// CHECK-NEXT:           <key>col</key><integer>3</integer>
5971// CHECK-NEXT:           <key>file</key><integer>0</integer>
5972// CHECK-NEXT:          </dict>
5973// CHECK-NEXT:          <dict>
5974// CHECK-NEXT:           <key>line</key><integer>308</integer>
5975// CHECK-NEXT:           <key>col</key><integer>9</integer>
5976// CHECK-NEXT:           <key>file</key><integer>0</integer>
5977// CHECK-NEXT:          </dict>
5978// CHECK-NEXT:         </array>
5979// CHECK-NEXT:        <key>end</key>
5980// CHECK-NEXT:         <array>
5981// CHECK-NEXT:          <dict>
5982// CHECK-NEXT:           <key>line</key><integer>309</integer>
5983// CHECK-NEXT:           <key>col</key><integer>3</integer>
5984// CHECK-NEXT:           <key>file</key><integer>0</integer>
5985// CHECK-NEXT:          </dict>
5986// CHECK-NEXT:          <dict>
5987// CHECK-NEXT:           <key>line</key><integer>309</integer>
5988// CHECK-NEXT:           <key>col</key><integer>4</integer>
5989// CHECK-NEXT:           <key>file</key><integer>0</integer>
5990// CHECK-NEXT:          </dict>
5991// CHECK-NEXT:         </array>
5992// CHECK-NEXT:       </dict>
5993// CHECK-NEXT:      </array>
5994// CHECK-NEXT:    </dict>
5995// CHECK-NEXT:    <dict>
5996// CHECK-NEXT:     <key>kind</key><string>event</string>
5997// CHECK-NEXT:     <key>location</key>
5998// CHECK-NEXT:     <dict>
5999// CHECK-NEXT:      <key>line</key><integer>309</integer>
6000// CHECK-NEXT:      <key>col</key><integer>10</integer>
6001// CHECK-NEXT:      <key>file</key><integer>0</integer>
6002// CHECK-NEXT:     </dict>
6003// CHECK-NEXT:     <key>ranges</key>
6004// CHECK-NEXT:     <array>
6005// CHECK-NEXT:       <array>
6006// CHECK-NEXT:        <dict>
6007// CHECK-NEXT:         <key>line</key><integer>309</integer>
6008// CHECK-NEXT:         <key>col</key><integer>10</integer>
6009// CHECK-NEXT:         <key>file</key><integer>0</integer>
6010// CHECK-NEXT:        </dict>
6011// CHECK-NEXT:        <dict>
6012// CHECK-NEXT:         <key>line</key><integer>309</integer>
6013// CHECK-NEXT:         <key>col</key><integer>29</integer>
6014// CHECK-NEXT:         <key>file</key><integer>0</integer>
6015// CHECK-NEXT:        </dict>
6016// CHECK-NEXT:       </array>
6017// CHECK-NEXT:     </array>
6018// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6019// CHECK-NEXT:     <key>extended_message</key>
6020// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6021// CHECK-NEXT:     <key>message</key>
6022// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6023// CHECK-NEXT:    </dict>
6024// CHECK-NEXT:    <dict>
6025// CHECK-NEXT:     <key>kind</key><string>control</string>
6026// CHECK-NEXT:     <key>edges</key>
6027// CHECK-NEXT:      <array>
6028// CHECK-NEXT:       <dict>
6029// CHECK-NEXT:        <key>start</key>
6030// CHECK-NEXT:         <array>
6031// CHECK-NEXT:          <dict>
6032// CHECK-NEXT:           <key>line</key><integer>309</integer>
6033// CHECK-NEXT:           <key>col</key><integer>3</integer>
6034// CHECK-NEXT:           <key>file</key><integer>0</integer>
6035// CHECK-NEXT:          </dict>
6036// CHECK-NEXT:          <dict>
6037// CHECK-NEXT:           <key>line</key><integer>309</integer>
6038// CHECK-NEXT:           <key>col</key><integer>4</integer>
6039// CHECK-NEXT:           <key>file</key><integer>0</integer>
6040// CHECK-NEXT:          </dict>
6041// CHECK-NEXT:         </array>
6042// CHECK-NEXT:        <key>end</key>
6043// CHECK-NEXT:         <array>
6044// CHECK-NEXT:          <dict>
6045// CHECK-NEXT:           <key>line</key><integer>310</integer>
6046// CHECK-NEXT:           <key>col</key><integer>3</integer>
6047// CHECK-NEXT:           <key>file</key><integer>0</integer>
6048// CHECK-NEXT:          </dict>
6049// CHECK-NEXT:          <dict>
6050// CHECK-NEXT:           <key>line</key><integer>310</integer>
6051// CHECK-NEXT:           <key>col</key><integer>9</integer>
6052// CHECK-NEXT:           <key>file</key><integer>0</integer>
6053// CHECK-NEXT:          </dict>
6054// CHECK-NEXT:         </array>
6055// CHECK-NEXT:       </dict>
6056// CHECK-NEXT:      </array>
6057// CHECK-NEXT:    </dict>
6058// CHECK-NEXT:    <dict>
6059// CHECK-NEXT:     <key>kind</key><string>control</string>
6060// CHECK-NEXT:     <key>edges</key>
6061// CHECK-NEXT:      <array>
6062// CHECK-NEXT:       <dict>
6063// CHECK-NEXT:        <key>start</key>
6064// CHECK-NEXT:         <array>
6065// CHECK-NEXT:          <dict>
6066// CHECK-NEXT:           <key>line</key><integer>310</integer>
6067// CHECK-NEXT:           <key>col</key><integer>3</integer>
6068// CHECK-NEXT:           <key>file</key><integer>0</integer>
6069// CHECK-NEXT:          </dict>
6070// CHECK-NEXT:          <dict>
6071// CHECK-NEXT:           <key>line</key><integer>310</integer>
6072// CHECK-NEXT:           <key>col</key><integer>9</integer>
6073// CHECK-NEXT:           <key>file</key><integer>0</integer>
6074// CHECK-NEXT:          </dict>
6075// CHECK-NEXT:         </array>
6076// CHECK-NEXT:        <key>end</key>
6077// CHECK-NEXT:         <array>
6078// CHECK-NEXT:          <dict>
6079// CHECK-NEXT:           <key>line</key><integer>310</integer>
6080// CHECK-NEXT:           <key>col</key><integer>30</integer>
6081// CHECK-NEXT:           <key>file</key><integer>0</integer>
6082// CHECK-NEXT:          </dict>
6083// CHECK-NEXT:          <dict>
6084// CHECK-NEXT:           <key>line</key><integer>310</integer>
6085// CHECK-NEXT:           <key>col</key><integer>30</integer>
6086// CHECK-NEXT:           <key>file</key><integer>0</integer>
6087// CHECK-NEXT:          </dict>
6088// CHECK-NEXT:         </array>
6089// CHECK-NEXT:       </dict>
6090// CHECK-NEXT:      </array>
6091// CHECK-NEXT:    </dict>
6092// CHECK-NEXT:    <dict>
6093// CHECK-NEXT:     <key>kind</key><string>event</string>
6094// CHECK-NEXT:     <key>location</key>
6095// CHECK-NEXT:     <dict>
6096// CHECK-NEXT:      <key>line</key><integer>310</integer>
6097// CHECK-NEXT:      <key>col</key><integer>30</integer>
6098// CHECK-NEXT:      <key>file</key><integer>0</integer>
6099// CHECK-NEXT:     </dict>
6100// CHECK-NEXT:     <key>ranges</key>
6101// CHECK-NEXT:     <array>
6102// CHECK-NEXT:       <array>
6103// CHECK-NEXT:        <dict>
6104// CHECK-NEXT:         <key>line</key><integer>310</integer>
6105// CHECK-NEXT:         <key>col</key><integer>30</integer>
6106// CHECK-NEXT:         <key>file</key><integer>0</integer>
6107// CHECK-NEXT:        </dict>
6108// CHECK-NEXT:        <dict>
6109// CHECK-NEXT:         <key>line</key><integer>310</integer>
6110// CHECK-NEXT:         <key>col</key><integer>30</integer>
6111// CHECK-NEXT:         <key>file</key><integer>0</integer>
6112// CHECK-NEXT:        </dict>
6113// CHECK-NEXT:       </array>
6114// CHECK-NEXT:     </array>
6115// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6116// CHECK-NEXT:     <key>extended_message</key>
6117// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6118// CHECK-NEXT:     <key>message</key>
6119// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6120// CHECK-NEXT:    </dict>
6121// CHECK-NEXT:   </array>
6122// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6123// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
6124// CHECK-NEXT:   <key>type</key><string>Generics</string>
6125// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
6126// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6127// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>38831553eaecfb6c02b51e71d21ec6ea</string>
6128// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6129// CHECK-NEXT:  <key>issue_context</key><string>returnCollectionToIdVariable</string>
6130// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
6131// CHECK-NEXT:  <key>location</key>
6132// CHECK-NEXT:  <dict>
6133// CHECK-NEXT:   <key>line</key><integer>310</integer>
6134// CHECK-NEXT:   <key>col</key><integer>30</integer>
6135// CHECK-NEXT:   <key>file</key><integer>0</integer>
6136// CHECK-NEXT:  </dict>
6137// CHECK-NEXT:  </dict>
6138// CHECK-NEXT:  <dict>
6139// CHECK-NEXT:   <key>path</key>
6140// CHECK-NEXT:   <array>
6141// CHECK-NEXT:    <dict>
6142// CHECK-NEXT:     <key>kind</key><string>control</string>
6143// CHECK-NEXT:     <key>edges</key>
6144// CHECK-NEXT:      <array>
6145// CHECK-NEXT:       <dict>
6146// CHECK-NEXT:        <key>start</key>
6147// CHECK-NEXT:         <array>
6148// CHECK-NEXT:          <dict>
6149// CHECK-NEXT:           <key>line</key><integer>314</integer>
6150// CHECK-NEXT:           <key>col</key><integer>3</integer>
6151// CHECK-NEXT:           <key>file</key><integer>0</integer>
6152// CHECK-NEXT:          </dict>
6153// CHECK-NEXT:          <dict>
6154// CHECK-NEXT:           <key>line</key><integer>314</integer>
6155// CHECK-NEXT:           <key>col</key><integer>9</integer>
6156// CHECK-NEXT:           <key>file</key><integer>0</integer>
6157// CHECK-NEXT:          </dict>
6158// CHECK-NEXT:         </array>
6159// CHECK-NEXT:        <key>end</key>
6160// CHECK-NEXT:         <array>
6161// CHECK-NEXT:          <dict>
6162// CHECK-NEXT:           <key>line</key><integer>315</integer>
6163// CHECK-NEXT:           <key>col</key><integer>3</integer>
6164// CHECK-NEXT:           <key>file</key><integer>0</integer>
6165// CHECK-NEXT:          </dict>
6166// CHECK-NEXT:          <dict>
6167// CHECK-NEXT:           <key>line</key><integer>315</integer>
6168// CHECK-NEXT:           <key>col</key><integer>9</integer>
6169// CHECK-NEXT:           <key>file</key><integer>0</integer>
6170// CHECK-NEXT:          </dict>
6171// CHECK-NEXT:         </array>
6172// CHECK-NEXT:       </dict>
6173// CHECK-NEXT:      </array>
6174// CHECK-NEXT:    </dict>
6175// CHECK-NEXT:    <dict>
6176// CHECK-NEXT:     <key>kind</key><string>event</string>
6177// CHECK-NEXT:     <key>location</key>
6178// CHECK-NEXT:     <dict>
6179// CHECK-NEXT:      <key>line</key><integer>315</integer>
6180// CHECK-NEXT:      <key>col</key><integer>16</integer>
6181// CHECK-NEXT:      <key>file</key><integer>0</integer>
6182// CHECK-NEXT:     </dict>
6183// CHECK-NEXT:     <key>ranges</key>
6184// CHECK-NEXT:     <array>
6185// CHECK-NEXT:       <array>
6186// CHECK-NEXT:        <dict>
6187// CHECK-NEXT:         <key>line</key><integer>315</integer>
6188// CHECK-NEXT:         <key>col</key><integer>16</integer>
6189// CHECK-NEXT:         <key>file</key><integer>0</integer>
6190// CHECK-NEXT:        </dict>
6191// CHECK-NEXT:        <dict>
6192// CHECK-NEXT:         <key>line</key><integer>315</integer>
6193// CHECK-NEXT:         <key>col</key><integer>35</integer>
6194// CHECK-NEXT:         <key>file</key><integer>0</integer>
6195// CHECK-NEXT:        </dict>
6196// CHECK-NEXT:       </array>
6197// CHECK-NEXT:     </array>
6198// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6199// CHECK-NEXT:     <key>extended_message</key>
6200// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6201// CHECK-NEXT:     <key>message</key>
6202// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6203// CHECK-NEXT:    </dict>
6204// CHECK-NEXT:    <dict>
6205// CHECK-NEXT:     <key>kind</key><string>control</string>
6206// CHECK-NEXT:     <key>edges</key>
6207// CHECK-NEXT:      <array>
6208// CHECK-NEXT:       <dict>
6209// CHECK-NEXT:        <key>start</key>
6210// CHECK-NEXT:         <array>
6211// CHECK-NEXT:          <dict>
6212// CHECK-NEXT:           <key>line</key><integer>315</integer>
6213// CHECK-NEXT:           <key>col</key><integer>3</integer>
6214// CHECK-NEXT:           <key>file</key><integer>0</integer>
6215// CHECK-NEXT:          </dict>
6216// CHECK-NEXT:          <dict>
6217// CHECK-NEXT:           <key>line</key><integer>315</integer>
6218// CHECK-NEXT:           <key>col</key><integer>9</integer>
6219// CHECK-NEXT:           <key>file</key><integer>0</integer>
6220// CHECK-NEXT:          </dict>
6221// CHECK-NEXT:         </array>
6222// CHECK-NEXT:        <key>end</key>
6223// CHECK-NEXT:         <array>
6224// CHECK-NEXT:          <dict>
6225// CHECK-NEXT:           <key>line</key><integer>316</integer>
6226// CHECK-NEXT:           <key>col</key><integer>3</integer>
6227// CHECK-NEXT:           <key>file</key><integer>0</integer>
6228// CHECK-NEXT:          </dict>
6229// CHECK-NEXT:          <dict>
6230// CHECK-NEXT:           <key>line</key><integer>316</integer>
6231// CHECK-NEXT:           <key>col</key><integer>9</integer>
6232// CHECK-NEXT:           <key>file</key><integer>0</integer>
6233// CHECK-NEXT:          </dict>
6234// CHECK-NEXT:         </array>
6235// CHECK-NEXT:       </dict>
6236// CHECK-NEXT:      </array>
6237// CHECK-NEXT:    </dict>
6238// CHECK-NEXT:    <dict>
6239// CHECK-NEXT:     <key>kind</key><string>control</string>
6240// CHECK-NEXT:     <key>edges</key>
6241// CHECK-NEXT:      <array>
6242// CHECK-NEXT:       <dict>
6243// CHECK-NEXT:        <key>start</key>
6244// CHECK-NEXT:         <array>
6245// CHECK-NEXT:          <dict>
6246// CHECK-NEXT:           <key>line</key><integer>316</integer>
6247// CHECK-NEXT:           <key>col</key><integer>3</integer>
6248// CHECK-NEXT:           <key>file</key><integer>0</integer>
6249// CHECK-NEXT:          </dict>
6250// CHECK-NEXT:          <dict>
6251// CHECK-NEXT:           <key>line</key><integer>316</integer>
6252// CHECK-NEXT:           <key>col</key><integer>9</integer>
6253// CHECK-NEXT:           <key>file</key><integer>0</integer>
6254// CHECK-NEXT:          </dict>
6255// CHECK-NEXT:         </array>
6256// CHECK-NEXT:        <key>end</key>
6257// CHECK-NEXT:         <array>
6258// CHECK-NEXT:          <dict>
6259// CHECK-NEXT:           <key>line</key><integer>316</integer>
6260// CHECK-NEXT:           <key>col</key><integer>30</integer>
6261// CHECK-NEXT:           <key>file</key><integer>0</integer>
6262// CHECK-NEXT:          </dict>
6263// CHECK-NEXT:          <dict>
6264// CHECK-NEXT:           <key>line</key><integer>316</integer>
6265// CHECK-NEXT:           <key>col</key><integer>30</integer>
6266// CHECK-NEXT:           <key>file</key><integer>0</integer>
6267// CHECK-NEXT:          </dict>
6268// CHECK-NEXT:         </array>
6269// CHECK-NEXT:       </dict>
6270// CHECK-NEXT:      </array>
6271// CHECK-NEXT:    </dict>
6272// CHECK-NEXT:    <dict>
6273// CHECK-NEXT:     <key>kind</key><string>event</string>
6274// CHECK-NEXT:     <key>location</key>
6275// CHECK-NEXT:     <dict>
6276// CHECK-NEXT:      <key>line</key><integer>316</integer>
6277// CHECK-NEXT:      <key>col</key><integer>30</integer>
6278// CHECK-NEXT:      <key>file</key><integer>0</integer>
6279// CHECK-NEXT:     </dict>
6280// CHECK-NEXT:     <key>ranges</key>
6281// CHECK-NEXT:     <array>
6282// CHECK-NEXT:       <array>
6283// CHECK-NEXT:        <dict>
6284// CHECK-NEXT:         <key>line</key><integer>316</integer>
6285// CHECK-NEXT:         <key>col</key><integer>30</integer>
6286// CHECK-NEXT:         <key>file</key><integer>0</integer>
6287// CHECK-NEXT:        </dict>
6288// CHECK-NEXT:        <dict>
6289// CHECK-NEXT:         <key>line</key><integer>316</integer>
6290// CHECK-NEXT:         <key>col</key><integer>30</integer>
6291// CHECK-NEXT:         <key>file</key><integer>0</integer>
6292// CHECK-NEXT:        </dict>
6293// CHECK-NEXT:       </array>
6294// CHECK-NEXT:     </array>
6295// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6296// CHECK-NEXT:     <key>extended_message</key>
6297// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6298// CHECK-NEXT:     <key>message</key>
6299// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6300// CHECK-NEXT:    </dict>
6301// CHECK-NEXT:   </array>
6302// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6303// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
6304// CHECK-NEXT:   <key>type</key><string>Generics</string>
6305// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
6306// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6307// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>9fcbd4dcf212f004877292aa5085322b</string>
6308// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6309// CHECK-NEXT:  <key>issue_context</key><string>eraseSpecialization</string>
6310// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
6311// CHECK-NEXT:  <key>location</key>
6312// CHECK-NEXT:  <dict>
6313// CHECK-NEXT:   <key>line</key><integer>316</integer>
6314// CHECK-NEXT:   <key>col</key><integer>30</integer>
6315// CHECK-NEXT:   <key>file</key><integer>0</integer>
6316// CHECK-NEXT:  </dict>
6317// CHECK-NEXT:  </dict>
6318// CHECK-NEXT:  <dict>
6319// CHECK-NEXT:   <key>path</key>
6320// CHECK-NEXT:   <array>
6321// CHECK-NEXT:    <dict>
6322// CHECK-NEXT:     <key>kind</key><string>control</string>
6323// CHECK-NEXT:     <key>edges</key>
6324// CHECK-NEXT:      <array>
6325// CHECK-NEXT:       <dict>
6326// CHECK-NEXT:        <key>start</key>
6327// CHECK-NEXT:         <array>
6328// CHECK-NEXT:          <dict>
6329// CHECK-NEXT:           <key>line</key><integer>320</integer>
6330// CHECK-NEXT:           <key>col</key><integer>3</integer>
6331// CHECK-NEXT:           <key>file</key><integer>0</integer>
6332// CHECK-NEXT:          </dict>
6333// CHECK-NEXT:          <dict>
6334// CHECK-NEXT:           <key>line</key><integer>320</integer>
6335// CHECK-NEXT:           <key>col</key><integer>9</integer>
6336// CHECK-NEXT:           <key>file</key><integer>0</integer>
6337// CHECK-NEXT:          </dict>
6338// CHECK-NEXT:         </array>
6339// CHECK-NEXT:        <key>end</key>
6340// CHECK-NEXT:         <array>
6341// CHECK-NEXT:          <dict>
6342// CHECK-NEXT:           <key>line</key><integer>321</integer>
6343// CHECK-NEXT:           <key>col</key><integer>3</integer>
6344// CHECK-NEXT:           <key>file</key><integer>0</integer>
6345// CHECK-NEXT:          </dict>
6346// CHECK-NEXT:          <dict>
6347// CHECK-NEXT:           <key>line</key><integer>321</integer>
6348// CHECK-NEXT:           <key>col</key><integer>7</integer>
6349// CHECK-NEXT:           <key>file</key><integer>0</integer>
6350// CHECK-NEXT:          </dict>
6351// CHECK-NEXT:         </array>
6352// CHECK-NEXT:       </dict>
6353// CHECK-NEXT:      </array>
6354// CHECK-NEXT:    </dict>
6355// CHECK-NEXT:    <dict>
6356// CHECK-NEXT:     <key>kind</key><string>control</string>
6357// CHECK-NEXT:     <key>edges</key>
6358// CHECK-NEXT:      <array>
6359// CHECK-NEXT:       <dict>
6360// CHECK-NEXT:        <key>start</key>
6361// CHECK-NEXT:         <array>
6362// CHECK-NEXT:          <dict>
6363// CHECK-NEXT:           <key>line</key><integer>321</integer>
6364// CHECK-NEXT:           <key>col</key><integer>3</integer>
6365// CHECK-NEXT:           <key>file</key><integer>0</integer>
6366// CHECK-NEXT:          </dict>
6367// CHECK-NEXT:          <dict>
6368// CHECK-NEXT:           <key>line</key><integer>321</integer>
6369// CHECK-NEXT:           <key>col</key><integer>7</integer>
6370// CHECK-NEXT:           <key>file</key><integer>0</integer>
6371// CHECK-NEXT:          </dict>
6372// CHECK-NEXT:         </array>
6373// CHECK-NEXT:        <key>end</key>
6374// CHECK-NEXT:         <array>
6375// CHECK-NEXT:          <dict>
6376// CHECK-NEXT:           <key>line</key><integer>321</integer>
6377// CHECK-NEXT:           <key>col</key><integer>14</integer>
6378// CHECK-NEXT:           <key>file</key><integer>0</integer>
6379// CHECK-NEXT:          </dict>
6380// CHECK-NEXT:          <dict>
6381// CHECK-NEXT:           <key>line</key><integer>321</integer>
6382// CHECK-NEXT:           <key>col</key><integer>14</integer>
6383// CHECK-NEXT:           <key>file</key><integer>0</integer>
6384// CHECK-NEXT:          </dict>
6385// CHECK-NEXT:         </array>
6386// CHECK-NEXT:       </dict>
6387// CHECK-NEXT:      </array>
6388// CHECK-NEXT:    </dict>
6389// CHECK-NEXT:    <dict>
6390// CHECK-NEXT:     <key>kind</key><string>event</string>
6391// CHECK-NEXT:     <key>location</key>
6392// CHECK-NEXT:     <dict>
6393// CHECK-NEXT:      <key>line</key><integer>321</integer>
6394// CHECK-NEXT:      <key>col</key><integer>14</integer>
6395// CHECK-NEXT:      <key>file</key><integer>0</integer>
6396// CHECK-NEXT:     </dict>
6397// CHECK-NEXT:     <key>ranges</key>
6398// CHECK-NEXT:     <array>
6399// CHECK-NEXT:       <array>
6400// CHECK-NEXT:        <dict>
6401// CHECK-NEXT:         <key>line</key><integer>321</integer>
6402// CHECK-NEXT:         <key>col</key><integer>14</integer>
6403// CHECK-NEXT:         <key>file</key><integer>0</integer>
6404// CHECK-NEXT:        </dict>
6405// CHECK-NEXT:        <dict>
6406// CHECK-NEXT:         <key>line</key><integer>321</integer>
6407// CHECK-NEXT:         <key>col</key><integer>33</integer>
6408// CHECK-NEXT:         <key>file</key><integer>0</integer>
6409// CHECK-NEXT:        </dict>
6410// CHECK-NEXT:       </array>
6411// CHECK-NEXT:     </array>
6412// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6413// CHECK-NEXT:     <key>extended_message</key>
6414// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6415// CHECK-NEXT:     <key>message</key>
6416// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6417// CHECK-NEXT:    </dict>
6418// CHECK-NEXT:    <dict>
6419// CHECK-NEXT:     <key>kind</key><string>event</string>
6420// CHECK-NEXT:     <key>location</key>
6421// CHECK-NEXT:     <dict>
6422// CHECK-NEXT:      <key>line</key><integer>321</integer>
6423// CHECK-NEXT:      <key>col</key><integer>14</integer>
6424// CHECK-NEXT:      <key>file</key><integer>0</integer>
6425// CHECK-NEXT:     </dict>
6426// CHECK-NEXT:     <key>ranges</key>
6427// CHECK-NEXT:     <array>
6428// CHECK-NEXT:       <array>
6429// CHECK-NEXT:        <dict>
6430// CHECK-NEXT:         <key>line</key><integer>321</integer>
6431// CHECK-NEXT:         <key>col</key><integer>14</integer>
6432// CHECK-NEXT:         <key>file</key><integer>0</integer>
6433// CHECK-NEXT:        </dict>
6434// CHECK-NEXT:        <dict>
6435// CHECK-NEXT:         <key>line</key><integer>321</integer>
6436// CHECK-NEXT:         <key>col</key><integer>33</integer>
6437// CHECK-NEXT:         <key>file</key><integer>0</integer>
6438// CHECK-NEXT:        </dict>
6439// CHECK-NEXT:       </array>
6440// CHECK-NEXT:     </array>
6441// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6442// CHECK-NEXT:     <key>extended_message</key>
6443// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6444// CHECK-NEXT:     <key>message</key>
6445// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6446// CHECK-NEXT:    </dict>
6447// CHECK-NEXT:   </array>
6448// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6449// CHECK-NEXT:   <key>category</key><string>Type Error</string>
6450// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
6451// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6452// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6453// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>be6714fed24af6e7ac522b87a5098de0</string>
6454// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6455// CHECK-NEXT:  <key>issue_context</key><string>returnToUnrelatedType</string>
6456// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
6457// CHECK-NEXT:  <key>location</key>
6458// CHECK-NEXT:  <dict>
6459// CHECK-NEXT:   <key>line</key><integer>321</integer>
6460// CHECK-NEXT:   <key>col</key><integer>14</integer>
6461// CHECK-NEXT:   <key>file</key><integer>0</integer>
6462// CHECK-NEXT:  </dict>
6463// CHECK-NEXT:  </dict>
6464// CHECK-NEXT:  <dict>
6465// CHECK-NEXT:   <key>path</key>
6466// CHECK-NEXT:   <array>
6467// CHECK-NEXT:    <dict>
6468// CHECK-NEXT:     <key>kind</key><string>control</string>
6469// CHECK-NEXT:     <key>edges</key>
6470// CHECK-NEXT:      <array>
6471// CHECK-NEXT:       <dict>
6472// CHECK-NEXT:        <key>start</key>
6473// CHECK-NEXT:         <array>
6474// CHECK-NEXT:          <dict>
6475// CHECK-NEXT:           <key>line</key><integer>326</integer>
6476// CHECK-NEXT:           <key>col</key><integer>3</integer>
6477// CHECK-NEXT:           <key>file</key><integer>0</integer>
6478// CHECK-NEXT:          </dict>
6479// CHECK-NEXT:          <dict>
6480// CHECK-NEXT:           <key>line</key><integer>326</integer>
6481// CHECK-NEXT:           <key>col</key><integer>9</integer>
6482// CHECK-NEXT:           <key>file</key><integer>0</integer>
6483// CHECK-NEXT:          </dict>
6484// CHECK-NEXT:         </array>
6485// CHECK-NEXT:        <key>end</key>
6486// CHECK-NEXT:         <array>
6487// CHECK-NEXT:          <dict>
6488// CHECK-NEXT:           <key>line</key><integer>327</integer>
6489// CHECK-NEXT:           <key>col</key><integer>3</integer>
6490// CHECK-NEXT:           <key>file</key><integer>0</integer>
6491// CHECK-NEXT:          </dict>
6492// CHECK-NEXT:          <dict>
6493// CHECK-NEXT:           <key>line</key><integer>327</integer>
6494// CHECK-NEXT:           <key>col</key><integer>4</integer>
6495// CHECK-NEXT:           <key>file</key><integer>0</integer>
6496// CHECK-NEXT:          </dict>
6497// CHECK-NEXT:         </array>
6498// CHECK-NEXT:       </dict>
6499// CHECK-NEXT:      </array>
6500// CHECK-NEXT:    </dict>
6501// CHECK-NEXT:    <dict>
6502// CHECK-NEXT:     <key>kind</key><string>event</string>
6503// CHECK-NEXT:     <key>location</key>
6504// CHECK-NEXT:     <dict>
6505// CHECK-NEXT:      <key>line</key><integer>327</integer>
6506// CHECK-NEXT:      <key>col</key><integer>10</integer>
6507// CHECK-NEXT:      <key>file</key><integer>0</integer>
6508// CHECK-NEXT:     </dict>
6509// CHECK-NEXT:     <key>ranges</key>
6510// CHECK-NEXT:     <array>
6511// CHECK-NEXT:       <array>
6512// CHECK-NEXT:        <dict>
6513// CHECK-NEXT:         <key>line</key><integer>327</integer>
6514// CHECK-NEXT:         <key>col</key><integer>10</integer>
6515// CHECK-NEXT:         <key>file</key><integer>0</integer>
6516// CHECK-NEXT:        </dict>
6517// CHECK-NEXT:        <dict>
6518// CHECK-NEXT:         <key>line</key><integer>327</integer>
6519// CHECK-NEXT:         <key>col</key><integer>29</integer>
6520// CHECK-NEXT:         <key>file</key><integer>0</integer>
6521// CHECK-NEXT:        </dict>
6522// CHECK-NEXT:       </array>
6523// CHECK-NEXT:     </array>
6524// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6525// CHECK-NEXT:     <key>extended_message</key>
6526// CHECK-NEXT:     <string>Type &apos;NSString *&apos; is inferred from this context</string>
6527// CHECK-NEXT:     <key>message</key>
6528// CHECK-NEXT:     <string>Type &apos;NSString *&apos; is inferred from this context</string>
6529// CHECK-NEXT:    </dict>
6530// CHECK-NEXT:    <dict>
6531// CHECK-NEXT:     <key>kind</key><string>control</string>
6532// CHECK-NEXT:     <key>edges</key>
6533// CHECK-NEXT:      <array>
6534// CHECK-NEXT:       <dict>
6535// CHECK-NEXT:        <key>start</key>
6536// CHECK-NEXT:         <array>
6537// CHECK-NEXT:          <dict>
6538// CHECK-NEXT:           <key>line</key><integer>327</integer>
6539// CHECK-NEXT:           <key>col</key><integer>3</integer>
6540// CHECK-NEXT:           <key>file</key><integer>0</integer>
6541// CHECK-NEXT:          </dict>
6542// CHECK-NEXT:          <dict>
6543// CHECK-NEXT:           <key>line</key><integer>327</integer>
6544// CHECK-NEXT:           <key>col</key><integer>4</integer>
6545// CHECK-NEXT:           <key>file</key><integer>0</integer>
6546// CHECK-NEXT:          </dict>
6547// CHECK-NEXT:         </array>
6548// CHECK-NEXT:        <key>end</key>
6549// CHECK-NEXT:         <array>
6550// CHECK-NEXT:          <dict>
6551// CHECK-NEXT:           <key>line</key><integer>328</integer>
6552// CHECK-NEXT:           <key>col</key><integer>3</integer>
6553// CHECK-NEXT:           <key>file</key><integer>0</integer>
6554// CHECK-NEXT:          </dict>
6555// CHECK-NEXT:          <dict>
6556// CHECK-NEXT:           <key>line</key><integer>328</integer>
6557// CHECK-NEXT:           <key>col</key><integer>10</integer>
6558// CHECK-NEXT:           <key>file</key><integer>0</integer>
6559// CHECK-NEXT:          </dict>
6560// CHECK-NEXT:         </array>
6561// CHECK-NEXT:       </dict>
6562// CHECK-NEXT:      </array>
6563// CHECK-NEXT:    </dict>
6564// CHECK-NEXT:    <dict>
6565// CHECK-NEXT:     <key>kind</key><string>control</string>
6566// CHECK-NEXT:     <key>edges</key>
6567// CHECK-NEXT:      <array>
6568// CHECK-NEXT:       <dict>
6569// CHECK-NEXT:        <key>start</key>
6570// CHECK-NEXT:         <array>
6571// CHECK-NEXT:          <dict>
6572// CHECK-NEXT:           <key>line</key><integer>328</integer>
6573// CHECK-NEXT:           <key>col</key><integer>3</integer>
6574// CHECK-NEXT:           <key>file</key><integer>0</integer>
6575// CHECK-NEXT:          </dict>
6576// CHECK-NEXT:          <dict>
6577// CHECK-NEXT:           <key>line</key><integer>328</integer>
6578// CHECK-NEXT:           <key>col</key><integer>10</integer>
6579// CHECK-NEXT:           <key>file</key><integer>0</integer>
6580// CHECK-NEXT:          </dict>
6581// CHECK-NEXT:         </array>
6582// CHECK-NEXT:        <key>end</key>
6583// CHECK-NEXT:         <array>
6584// CHECK-NEXT:          <dict>
6585// CHECK-NEXT:           <key>line</key><integer>328</integer>
6586// CHECK-NEXT:           <key>col</key><integer>19</integer>
6587// CHECK-NEXT:           <key>file</key><integer>0</integer>
6588// CHECK-NEXT:          </dict>
6589// CHECK-NEXT:          <dict>
6590// CHECK-NEXT:           <key>line</key><integer>328</integer>
6591// CHECK-NEXT:           <key>col</key><integer>19</integer>
6592// CHECK-NEXT:           <key>file</key><integer>0</integer>
6593// CHECK-NEXT:          </dict>
6594// CHECK-NEXT:         </array>
6595// CHECK-NEXT:       </dict>
6596// CHECK-NEXT:      </array>
6597// CHECK-NEXT:    </dict>
6598// CHECK-NEXT:    <dict>
6599// CHECK-NEXT:     <key>kind</key><string>event</string>
6600// CHECK-NEXT:     <key>location</key>
6601// CHECK-NEXT:     <dict>
6602// CHECK-NEXT:      <key>line</key><integer>328</integer>
6603// CHECK-NEXT:      <key>col</key><integer>19</integer>
6604// CHECK-NEXT:      <key>file</key><integer>0</integer>
6605// CHECK-NEXT:     </dict>
6606// CHECK-NEXT:     <key>ranges</key>
6607// CHECK-NEXT:     <array>
6608// CHECK-NEXT:       <array>
6609// CHECK-NEXT:        <dict>
6610// CHECK-NEXT:         <key>line</key><integer>328</integer>
6611// CHECK-NEXT:         <key>col</key><integer>19</integer>
6612// CHECK-NEXT:         <key>file</key><integer>0</integer>
6613// CHECK-NEXT:        </dict>
6614// CHECK-NEXT:        <dict>
6615// CHECK-NEXT:         <key>line</key><integer>328</integer>
6616// CHECK-NEXT:         <key>col</key><integer>19</integer>
6617// CHECK-NEXT:         <key>file</key><integer>0</integer>
6618// CHECK-NEXT:        </dict>
6619// CHECK-NEXT:       </array>
6620// CHECK-NEXT:     </array>
6621// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6622// CHECK-NEXT:     <key>extended_message</key>
6623// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6624// CHECK-NEXT:     <key>message</key>
6625// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6626// CHECK-NEXT:    </dict>
6627// CHECK-NEXT:   </array>
6628// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6629// CHECK-NEXT:   <key>category</key><string>Type Error</string>
6630// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
6631// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6632// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6633// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>5e96ef711c8f115bc64f69baa3f6ea7a</string>
6634// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6635// CHECK-NEXT:  <key>issue_context</key><string>returnToIdVariable</string>
6636// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
6637// CHECK-NEXT:  <key>location</key>
6638// CHECK-NEXT:  <dict>
6639// CHECK-NEXT:   <key>line</key><integer>328</integer>
6640// CHECK-NEXT:   <key>col</key><integer>19</integer>
6641// CHECK-NEXT:   <key>file</key><integer>0</integer>
6642// CHECK-NEXT:  </dict>
6643// CHECK-NEXT:  </dict>
6644// CHECK-NEXT:  <dict>
6645// CHECK-NEXT:   <key>path</key>
6646// CHECK-NEXT:   <array>
6647// CHECK-NEXT:    <dict>
6648// CHECK-NEXT:     <key>kind</key><string>event</string>
6649// CHECK-NEXT:     <key>location</key>
6650// CHECK-NEXT:     <dict>
6651// CHECK-NEXT:      <key>line</key><integer>337</integer>
6652// CHECK-NEXT:      <key>col</key><integer>12</integer>
6653// CHECK-NEXT:      <key>file</key><integer>0</integer>
6654// CHECK-NEXT:     </dict>
6655// CHECK-NEXT:     <key>ranges</key>
6656// CHECK-NEXT:     <array>
6657// CHECK-NEXT:       <array>
6658// CHECK-NEXT:        <dict>
6659// CHECK-NEXT:         <key>line</key><integer>337</integer>
6660// CHECK-NEXT:         <key>col</key><integer>12</integer>
6661// CHECK-NEXT:         <key>file</key><integer>0</integer>
6662// CHECK-NEXT:        </dict>
6663// CHECK-NEXT:        <dict>
6664// CHECK-NEXT:         <key>line</key><integer>337</integer>
6665// CHECK-NEXT:         <key>col</key><integer>12</integer>
6666// CHECK-NEXT:         <key>file</key><integer>0</integer>
6667// CHECK-NEXT:        </dict>
6668// CHECK-NEXT:       </array>
6669// CHECK-NEXT:     </array>
6670// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6671// CHECK-NEXT:     <key>extended_message</key>
6672// CHECK-NEXT:     <string>Type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
6673// CHECK-NEXT:     <key>message</key>
6674// CHECK-NEXT:     <string>Type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
6675// CHECK-NEXT:    </dict>
6676// CHECK-NEXT:    <dict>
6677// CHECK-NEXT:     <key>kind</key><string>control</string>
6678// CHECK-NEXT:     <key>edges</key>
6679// CHECK-NEXT:      <array>
6680// CHECK-NEXT:       <dict>
6681// CHECK-NEXT:        <key>start</key>
6682// CHECK-NEXT:         <array>
6683// CHECK-NEXT:          <dict>
6684// CHECK-NEXT:           <key>line</key><integer>337</integer>
6685// CHECK-NEXT:           <key>col</key><integer>3</integer>
6686// CHECK-NEXT:           <key>file</key><integer>0</integer>
6687// CHECK-NEXT:          </dict>
6688// CHECK-NEXT:          <dict>
6689// CHECK-NEXT:           <key>line</key><integer>337</integer>
6690// CHECK-NEXT:           <key>col</key><integer>4</integer>
6691// CHECK-NEXT:           <key>file</key><integer>0</integer>
6692// CHECK-NEXT:          </dict>
6693// CHECK-NEXT:         </array>
6694// CHECK-NEXT:        <key>end</key>
6695// CHECK-NEXT:         <array>
6696// CHECK-NEXT:          <dict>
6697// CHECK-NEXT:           <key>line</key><integer>338</integer>
6698// CHECK-NEXT:           <key>col</key><integer>3</integer>
6699// CHECK-NEXT:           <key>file</key><integer>0</integer>
6700// CHECK-NEXT:          </dict>
6701// CHECK-NEXT:          <dict>
6702// CHECK-NEXT:           <key>line</key><integer>338</integer>
6703// CHECK-NEXT:           <key>col</key><integer>3</integer>
6704// CHECK-NEXT:           <key>file</key><integer>0</integer>
6705// CHECK-NEXT:          </dict>
6706// CHECK-NEXT:         </array>
6707// CHECK-NEXT:       </dict>
6708// CHECK-NEXT:      </array>
6709// CHECK-NEXT:    </dict>
6710// CHECK-NEXT:    <dict>
6711// CHECK-NEXT:     <key>kind</key><string>control</string>
6712// CHECK-NEXT:     <key>edges</key>
6713// CHECK-NEXT:      <array>
6714// CHECK-NEXT:       <dict>
6715// CHECK-NEXT:        <key>start</key>
6716// CHECK-NEXT:         <array>
6717// CHECK-NEXT:          <dict>
6718// CHECK-NEXT:           <key>line</key><integer>338</integer>
6719// CHECK-NEXT:           <key>col</key><integer>3</integer>
6720// CHECK-NEXT:           <key>file</key><integer>0</integer>
6721// CHECK-NEXT:          </dict>
6722// CHECK-NEXT:          <dict>
6723// CHECK-NEXT:           <key>line</key><integer>338</integer>
6724// CHECK-NEXT:           <key>col</key><integer>3</integer>
6725// CHECK-NEXT:           <key>file</key><integer>0</integer>
6726// CHECK-NEXT:          </dict>
6727// CHECK-NEXT:         </array>
6728// CHECK-NEXT:        <key>end</key>
6729// CHECK-NEXT:         <array>
6730// CHECK-NEXT:          <dict>
6731// CHECK-NEXT:           <key>line</key><integer>338</integer>
6732// CHECK-NEXT:           <key>col</key><integer>7</integer>
6733// CHECK-NEXT:           <key>file</key><integer>0</integer>
6734// CHECK-NEXT:          </dict>
6735// CHECK-NEXT:          <dict>
6736// CHECK-NEXT:           <key>line</key><integer>338</integer>
6737// CHECK-NEXT:           <key>col</key><integer>9</integer>
6738// CHECK-NEXT:           <key>file</key><integer>0</integer>
6739// CHECK-NEXT:          </dict>
6740// CHECK-NEXT:         </array>
6741// CHECK-NEXT:       </dict>
6742// CHECK-NEXT:      </array>
6743// CHECK-NEXT:    </dict>
6744// CHECK-NEXT:    <dict>
6745// CHECK-NEXT:     <key>kind</key><string>event</string>
6746// CHECK-NEXT:     <key>location</key>
6747// CHECK-NEXT:     <dict>
6748// CHECK-NEXT:      <key>line</key><integer>338</integer>
6749// CHECK-NEXT:      <key>col</key><integer>7</integer>
6750// CHECK-NEXT:      <key>file</key><integer>0</integer>
6751// CHECK-NEXT:     </dict>
6752// CHECK-NEXT:     <key>ranges</key>
6753// CHECK-NEXT:     <array>
6754// CHECK-NEXT:       <array>
6755// CHECK-NEXT:        <dict>
6756// CHECK-NEXT:         <key>line</key><integer>338</integer>
6757// CHECK-NEXT:         <key>col</key><integer>7</integer>
6758// CHECK-NEXT:         <key>file</key><integer>0</integer>
6759// CHECK-NEXT:        </dict>
6760// CHECK-NEXT:        <dict>
6761// CHECK-NEXT:         <key>line</key><integer>338</integer>
6762// CHECK-NEXT:         <key>col</key><integer>9</integer>
6763// CHECK-NEXT:         <key>file</key><integer>0</integer>
6764// CHECK-NEXT:        </dict>
6765// CHECK-NEXT:       </array>
6766// CHECK-NEXT:     </array>
6767// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6768// CHECK-NEXT:     <key>extended_message</key>
6769// CHECK-NEXT:     <string>Conversion from value of type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
6770// CHECK-NEXT:     <key>message</key>
6771// CHECK-NEXT:     <string>Conversion from value of type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
6772// CHECK-NEXT:    </dict>
6773// CHECK-NEXT:   </array>
6774// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
6775// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
6776// CHECK-NEXT:   <key>type</key><string>Generics</string>
6777// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
6778// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6779// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>8347f65fb51a85ccd462d75ffd761078</string>
6780// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6781// CHECK-NEXT:  <key>issue_context</key><string>testGetMostInformativeDerivedForId</string>
6782// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
6783// CHECK-NEXT:  <key>location</key>
6784// CHECK-NEXT:  <dict>
6785// CHECK-NEXT:   <key>line</key><integer>338</integer>
6786// CHECK-NEXT:   <key>col</key><integer>7</integer>
6787// CHECK-NEXT:   <key>file</key><integer>0</integer>
6788// CHECK-NEXT:  </dict>
6789// CHECK-NEXT:  </dict>
6790// CHECK-NEXT:  <dict>
6791// CHECK-NEXT:   <key>path</key>
6792// CHECK-NEXT:   <array>
6793// CHECK-NEXT:    <dict>
6794// CHECK-NEXT:     <key>kind</key><string>event</string>
6795// CHECK-NEXT:     <key>location</key>
6796// CHECK-NEXT:     <dict>
6797// CHECK-NEXT:      <key>line</key><integer>337</integer>
6798// CHECK-NEXT:      <key>col</key><integer>12</integer>
6799// CHECK-NEXT:      <key>file</key><integer>0</integer>
6800// CHECK-NEXT:     </dict>
6801// CHECK-NEXT:     <key>ranges</key>
6802// CHECK-NEXT:     <array>
6803// CHECK-NEXT:       <array>
6804// CHECK-NEXT:        <dict>
6805// CHECK-NEXT:         <key>line</key><integer>337</integer>
6806// CHECK-NEXT:         <key>col</key><integer>12</integer>
6807// CHECK-NEXT:         <key>file</key><integer>0</integer>
6808// CHECK-NEXT:        </dict>
6809// CHECK-NEXT:        <dict>
6810// CHECK-NEXT:         <key>line</key><integer>337</integer>
6811// CHECK-NEXT:         <key>col</key><integer>12</integer>
6812// CHECK-NEXT:         <key>file</key><integer>0</integer>
6813// CHECK-NEXT:        </dict>
6814// CHECK-NEXT:       </array>
6815// CHECK-NEXT:     </array>
6816// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6817// CHECK-NEXT:     <key>extended_message</key>
6818// CHECK-NEXT:     <string>Type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
6819// CHECK-NEXT:     <key>message</key>
6820// CHECK-NEXT:     <string>Type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
6821// CHECK-NEXT:    </dict>
6822// CHECK-NEXT:    <dict>
6823// CHECK-NEXT:     <key>kind</key><string>control</string>
6824// CHECK-NEXT:     <key>edges</key>
6825// CHECK-NEXT:      <array>
6826// CHECK-NEXT:       <dict>
6827// CHECK-NEXT:        <key>start</key>
6828// CHECK-NEXT:         <array>
6829// CHECK-NEXT:          <dict>
6830// CHECK-NEXT:           <key>line</key><integer>337</integer>
6831// CHECK-NEXT:           <key>col</key><integer>3</integer>
6832// CHECK-NEXT:           <key>file</key><integer>0</integer>
6833// CHECK-NEXT:          </dict>
6834// CHECK-NEXT:          <dict>
6835// CHECK-NEXT:           <key>line</key><integer>337</integer>
6836// CHECK-NEXT:           <key>col</key><integer>4</integer>
6837// CHECK-NEXT:           <key>file</key><integer>0</integer>
6838// CHECK-NEXT:          </dict>
6839// CHECK-NEXT:         </array>
6840// CHECK-NEXT:        <key>end</key>
6841// CHECK-NEXT:         <array>
6842// CHECK-NEXT:          <dict>
6843// CHECK-NEXT:           <key>line</key><integer>343</integer>
6844// CHECK-NEXT:           <key>col</key><integer>3</integer>
6845// CHECK-NEXT:           <key>file</key><integer>0</integer>
6846// CHECK-NEXT:          </dict>
6847// CHECK-NEXT:          <dict>
6848// CHECK-NEXT:           <key>line</key><integer>343</integer>
6849// CHECK-NEXT:           <key>col</key><integer>3</integer>
6850// CHECK-NEXT:           <key>file</key><integer>0</integer>
6851// CHECK-NEXT:          </dict>
6852// CHECK-NEXT:         </array>
6853// CHECK-NEXT:       </dict>
6854// CHECK-NEXT:      </array>
6855// CHECK-NEXT:    </dict>
6856// CHECK-NEXT:    <dict>
6857// CHECK-NEXT:     <key>kind</key><string>event</string>
6858// CHECK-NEXT:     <key>location</key>
6859// CHECK-NEXT:     <dict>
6860// CHECK-NEXT:      <key>line</key><integer>343</integer>
6861// CHECK-NEXT:      <key>col</key><integer>3</integer>
6862// CHECK-NEXT:      <key>file</key><integer>0</integer>
6863// CHECK-NEXT:     </dict>
6864// CHECK-NEXT:     <key>ranges</key>
6865// CHECK-NEXT:     <array>
6866// CHECK-NEXT:       <array>
6867// CHECK-NEXT:        <dict>
6868// CHECK-NEXT:         <key>line</key><integer>343</integer>
6869// CHECK-NEXT:         <key>col</key><integer>16</integer>
6870// CHECK-NEXT:         <key>file</key><integer>0</integer>
6871// CHECK-NEXT:        </dict>
6872// CHECK-NEXT:        <dict>
6873// CHECK-NEXT:         <key>line</key><integer>343</integer>
6874// CHECK-NEXT:         <key>col</key><integer>38</integer>
6875// CHECK-NEXT:         <key>file</key><integer>0</integer>
6876// CHECK-NEXT:        </dict>
6877// CHECK-NEXT:       </array>
6878// CHECK-NEXT:     </array>
6879// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6880// CHECK-NEXT:     <key>extended_message</key>
6881// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
6882// CHECK-NEXT:     <key>message</key>
6883// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
6884// CHECK-NEXT:    </dict>
6885// CHECK-NEXT:   </array>
6886// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
6887// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
6888// CHECK-NEXT:   <key>type</key><string>Generics</string>
6889// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
6890// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6891// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>6528db66f562ac0c2a94933f3ca5f6a8</string>
6892// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6893// CHECK-NEXT:  <key>issue_context</key><string>testGetMostInformativeDerivedForId</string>
6894// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>7</string>
6895// CHECK-NEXT:  <key>location</key>
6896// CHECK-NEXT:  <dict>
6897// CHECK-NEXT:   <key>line</key><integer>343</integer>
6898// CHECK-NEXT:   <key>col</key><integer>3</integer>
6899// CHECK-NEXT:   <key>file</key><integer>0</integer>
6900// CHECK-NEXT:  </dict>
6901// CHECK-NEXT:  </dict>
6902// CHECK-NEXT: </array>
6903