]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/Analysis/generics.m
Vendor import of clang trunk r300422:
[FreeBSD/FreeBSD.git] / test / Analysis / generics.m
1 // RUN: %clang_analyze_cc1 -analyzer-checker=core,osx.cocoa.ObjCGenerics,alpha.core.DynamicTypeChecker -verify -Wno-objc-method-access %s
2 // RUN: %clang_analyze_cc1 -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
14 typedef unsigned long NSUInteger;
15 typedef 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 - (BOOL)containsObject:(ObjectType)anObject;
47 - (ObjectType)getObjAtIndex:(NSUInteger)idx;
48 - (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx;
49 - (NSArray<ObjectType> *)arrayByAddingObject:(ObjectType)anObject;
50 @property(readonly) ObjectType firstObject;
51 @end
52
53 @interface NSMutableArray<ObjectType> : NSArray<ObjectType>
54 - (void)addObject:(ObjectType)anObject;
55 - (instancetype)init;
56 @end
57
58 @interface MutableArray<ObjectType> : NSArray<ObjectType>
59 - (void)addObject:(ObjectType)anObject;
60 @end
61
62 @interface LegacyMutableArray : MutableArray
63 @end
64
65 @interface LegacySpecialMutableArray : LegacyMutableArray
66 @end
67
68 @interface BuggyMutableArray<T> : MutableArray
69 @end
70
71 @interface BuggySpecialMutableArray<T> : BuggyMutableArray<T>
72 @end
73
74 @interface MyMutableStringArray : MutableArray<NSString *>
75 @end
76
77 @interface ExceptionalArray<ExceptionType> : MutableArray<NSString *>
78 - (ExceptionType) getException;
79 @end
80
81 @interface UnrelatedType : NSObject<NSCopying>
82 @end
83
84 int getUnknown();
85 NSArray *getStuff();
86 NSArray *getTypedStuff() {
87   NSArray<NSNumber *> *c = getStuff();
88   return c;
89 }
90
91 void doStuff(NSArray<NSNumber *> *);
92 void withArrString(NSArray<NSString *> *);
93 void withArrMutableString(NSArray<NSMutableString *> *);
94 void withMutArrString(MutableArray<NSString *> *);
95 void withMutArrMutableString(MutableArray<NSMutableString *> *);
96
97 void incompatibleTypesErased(NSArray *a, NSMutableArray<NSString *> *b,
98                              NSArray<NSNumber *> *c,
99                              NSMutableArray *d) {
100   a = b;
101   c = a; // expected-warning  {{Conversion from value of type 'NSMutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'}}
102   [a contains: [[NSNumber alloc] init]];
103   [a contains: [[NSString alloc] init]];
104   doStuff(a); // expected-warning {{Conversion}}
105
106   d = b;
107   [d addObject: [[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
108 }
109
110 void crossProceduralErasedTypes() {
111   NSArray<NSString *> *a = getTypedStuff(); // expected-warning {{Conversion}}
112 }
113
114 void incompatibleTypesErasedReverseConversion(NSMutableArray *a,
115                                               NSMutableArray<NSString *> *b) {
116   b = a;
117   [a contains: [[NSNumber alloc] init]];
118   [a contains: [[NSString alloc] init]];
119   doStuff(a); // expected-warning {{Conversion}}
120
121   [a addObject: [[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
122 }
123
124 void idErasedIncompatibleTypesReverseConversion(id a, NSMutableArray<NSString *> *b) {
125   b = a;
126   [a contains: [[NSNumber alloc] init]];
127   [a contains: [[NSString alloc] init]];
128   doStuff(a); // expected-warning {{Conversion}}
129
130   [a addObject:[[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
131 }
132
133 void idErasedIncompatibleTypes(id a, NSMutableArray<NSString *> *b,
134                                NSArray<NSNumber *> *c) {
135   a = b;
136   c = a; // expected-warning {{Conversion}}
137   [a contains: [[NSNumber alloc] init]];
138   [a contains: [[NSString alloc] init]];
139   doStuff(a); // expected-warning {{Conversion}}
140
141   [a addObject:[[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
142 }
143
144 void pathSensitiveInference(MutableArray *m, MutableArray<NSString *> *a,
145                             MutableArray<NSMutableString *> *b) {
146   if (getUnknown() == 5) {
147     m = a;  
148     [m contains: [[NSString alloc] init]];
149   } else {
150     m = b;
151     [m contains: [[NSMutableString alloc] init]];
152   }
153   [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
154   [m addObject: [[NSMutableString alloc] init]];
155 }
156
157 void verifyAPIusage(id a, MutableArray<NSString *> *b) {
158   b = a;
159   doStuff(a); // expected-warning {{Conversion}}
160 }
161
162 void trustExplicitCasts(MutableArray *a,
163                         MutableArray<NSMutableString *> *b) {
164   b = (MutableArray<NSMutableString *> *)a;
165   [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
166 }
167
168 void subtypeOfGeneric(id d, MyMutableStringArray *a,
169                        MutableArray<NSString *> *b,
170                        MutableArray<NSNumber *> *c) {
171   d = a;
172   b = d;
173   c = d; // expected-warning {{Conversion}}
174 }
175
176 void genericSubtypeOfGeneric(id d, ExceptionalArray<NSString *> *a,
177                              MutableArray<NSString *> *b,
178                              MutableArray<NSNumber *> *c) {
179   d = a;
180   [d contains: [[NSString alloc] init]];
181   [d contains: [[NSNumber alloc] init]];
182   b = d;
183   c = d; // expected-warning {{Conversion}}
184
185   [d addObject: [[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
186 }
187
188 void genericSubtypeOfGenericReverse(id d, ExceptionalArray<NSString *> *a,
189                                     MutableArray<NSString *> *b,
190                                     MutableArray<NSNumber *> *c) {
191   a = d;
192   [d contains: [[NSString alloc] init]];
193   [d contains: [[NSNumber alloc] init]];
194   b = d;
195   c = d; // expected-warning {{Conversion}}
196
197  [d addObject: [[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
198 }
199
200 void inferenceFromAPI(id a) {
201   // Here the type parameter is invariant. There should be a warning every time
202   // when the type parameter changes during the conversions.
203   withMutArrString(a);
204   withMutArrMutableString(a); // expected-warning {{Conversion}}
205 }
206
207 void inferenceFromAPI2(id a) {
208   withMutArrMutableString(a);
209   withMutArrString(a); // expected-warning {{Conversion}}
210 }
211
212 void inferenceFromAPIWithLegacyTypes(LegacyMutableArray *a) {
213   withMutArrMutableString(a);
214   withMutArrString(a); // expected-warning {{Conversion}}
215 }
216
217 void inferenceFromAPIWithLegacyTypes2(LegacySpecialMutableArray *a) {
218   withMutArrString(a);
219   withMutArrMutableString(a); // expected-warning {{Conversion}}
220 }
221
222 void inferenceFromAPIWithLegacyTypes3(__kindof NSArray<NSString *> *a) {
223   LegacyMutableArray *b = a;
224   withMutArrString(b);
225   withMutArrMutableString(b); // expected-warning {{Conversion}}
226 }
227
228 void inferenceFromAPIWithBuggyTypes(BuggyMutableArray<NSMutableString *> *a) {
229   withMutArrString(a);
230   withMutArrMutableString(a); // expected-warning {{Conversion}}
231 }
232
233 void InferenceFromAPIWithBuggyTypes2(BuggySpecialMutableArray<NSMutableString *> *a) {
234   withMutArrMutableString(a);
235   withMutArrString(a); // expected-warning {{Conversion}}
236 }
237
238 void InferenceFromAPIWithBuggyTypes3(MutableArray<NSMutableString *> *a) {
239   id b = a;
240   withMutArrMutableString((BuggyMutableArray<NSMutableString *> *)b);
241   withMutArrString(b); // expected-warning {{Conversion}}
242 }
243
244 void InferenceFromAPIWithBuggyTypes4(__kindof NSArray<NSString *> *a) {
245   BuggyMutableArray<NSMutableString *> *b = a;
246   withMutArrString(b);
247   withMutArrMutableString(b); // expected-warning {{Conversion}}
248 }
249
250 NSArray<NSString *> *getStrings();
251 void enforceDynamicRulesInsteadOfStatic(NSArray<NSNumber *> *a) {
252   NSArray *b = a;
253   // Valid uses of NSArray of NSNumbers.
254   b = getStrings();
255   // Valid uses of NSArray of NSStrings.
256 }
257
258 void workWithProperties(NSArray<NSNumber *> *a) {
259   NSArray *b = a;
260   NSString *str = [b getObjAtIndex: 0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
261   NSNumber *num = [b getObjAtIndex: 0];
262   str = [b firstObject]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
263   num = [b firstObject];
264   str = b.firstObject; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
265   num = b.firstObject;
266   str = b[0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
267   num = b[0];
268 }
269
270 void findMethodDeclInTrackedType(id m, NSArray<NSMutableString *> *a,
271                                  MutableArray<NSMutableString *> *b) {
272   a = b;
273   if (getUnknown() == 5) {
274     m = a;  
275     [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
276   } else {
277     m = b;
278     [m addObject: [[NSMutableString alloc] init]];
279   }
280 }
281
282 void findMethodDeclInTrackedType2(__kindof NSArray<NSString *> *a,
283                                   MutableArray<NSMutableString *> *b) {
284   a = b;
285   if (getUnknown() == 5) {
286     [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
287   } else {
288     [a addObject: [[NSMutableString alloc] init]];
289   }
290 }
291
292 void testUnannotatedLiterals() {
293   // ObjCArrayLiterals are not specialized in the AST. 
294   NSArray *arr = @[@"A", @"B"];
295   [arr contains: [[NSNumber alloc] init]];
296 }
297
298 void testAnnotatedLiterals() {
299   NSArray<NSString *> *arr = @[@"A", @"B"];
300   NSArray *arr2 = arr;
301   [arr2 contains: [[NSNumber alloc] init]];
302 }
303
304 void nonExistentMethodDoesNotCrash(id a, MutableArray<NSMutableString *> *b) {
305   a = b;
306   [a nonExistentMethod];
307 }
308
309 void trackedClassVariables() {
310   Class c = [NSArray<NSString *> class];
311   NSArray<NSNumber *> *a = [c getEmpty]; // expected-warning {{Conversion}}
312   a = [c getEmpty2]; // expected-warning {{Conversion}}
313 }
314
315 void nestedCollections(NSArray<NSArray<NSNumber *> *> *mat, NSArray<NSString *> *row) {
316   id temp = row;
317   [mat contains: temp]; // expected-warning {{Conversion}}
318 }
319
320 void testMistmatchedTypeCast(MutableArray<NSMutableString *> *a) {
321   MutableArray *b = (MutableArray<NSNumber *> *)a;
322   [b addObject: [[NSNumber alloc] init]];
323   id c = (UnrelatedType *)a;
324   [c addObject: [[NSNumber alloc] init]];
325   [c addObject: [[NSString alloc] init]];
326 }
327
328 void returnCollectionToIdVariable(NSArray<NSArray<NSString *> *> *arr) {
329   NSArray *erased = arr;
330   id a = [erased firstObject];
331   NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
332 }
333
334 void eraseSpecialization(NSArray<NSArray<NSString *> *> *arr) {
335   NSArray *erased = arr;
336   NSArray* a = [erased firstObject];
337   NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
338 }
339
340 void returnToUnrelatedType(NSArray<NSArray<NSString *> *> *arr) {
341   NSArray *erased = arr;
342   NSSet* a = [erased firstObject]; // expected-warning {{Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'}}
343   (void)a;
344 }
345
346 void returnToIdVariable(NSArray<NSString *> *arr) {
347   NSArray *erased = arr;
348   id a = [erased firstObject];
349   NSNumber *res = a; // expected-warning {{Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'}}
350 }
351
352 @interface UnrelatedTypeGeneric<T> : NSObject<NSCopying>
353 - (void)takesType:(T)v;
354 @end
355
356 void testGetMostInformativeDerivedForId(NSArray<NSString *> *a,
357                                   UnrelatedTypeGeneric<NSString *> *b) {
358   id idB = b;
359   a = idB; // expected-warning {{Conversion from value of type 'UnrelatedTypeGeneric<NSString *> *' to incompatible type 'NSArray<NSString *> *'}}
360
361   // rdar://problem/26086914 crash here caused by symbolic type being unrelated
362   // to compile-time source type of cast.
363   id x = a; // Compile-time type is NSArray<>, Symbolic type is UnrelatedTypeGeneric<>.
364   [x takesType:[[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
365 }
366
367 void testArgumentAfterUpcastToRootWithCovariantTypeParameter(NSArray<NSString *> *allStrings, NSNumber *number) {
368   NSArray<NSObject *> *allObjects = allStrings; // no-warning
369   NSArray<NSObject *> *moreObjects = [allObjects arrayByAddingObject:number]; // no-warning
370 }
371
372 void testArgumentAfterUpcastWithCovariantTypeParameter(NSArray<NSMutableString *> *allMutableStrings, NSNumber *number) {
373   NSArray<NSString *> *allStrings = allMutableStrings; // no-warning
374   id numberAsId = number;
375   NSArray<NSString *> *moreStrings = [allStrings arrayByAddingObject:numberAsId]; // Sema: expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
376 }
377
378 void testArgumentAfterCastToUnspecializedWithCovariantTypeParameter(NSArray<NSMutableString *> *allMutableStrings, NSNumber *number) {
379   NSArray *allStrings = allMutableStrings; // no-warning
380   id numberAsId = number;
381
382   NSArray *moreStringsUnspecialized = [allStrings arrayByAddingObject:numberAsId]; // no-warning
383
384   // Ideally the analyzer would warn here.
385   NSArray<NSString *> *moreStringsSpecialized = [allStrings arrayByAddingObject:numberAsId];
386 }
387
388 void testCallToMethodWithCovariantParameterOnInstanceOfSubclassWithInvariantParameter(NSMutableArray<NSMutableString *> *mutableArrayOfMutableStrings, NSString *someString) {
389   NSArray<NSString *> *arrayOfStrings = mutableArrayOfMutableStrings;
390   [arrayOfStrings containsObject:someString]; // no-warning
391 }
392
393 // CHECK:  <key>diagnostics</key>
394 // CHECK-NEXT:  <array>
395 // CHECK-NEXT:   <dict>
396 // CHECK-NEXT:    <key>path</key>
397 // CHECK-NEXT:    <array>
398 // CHECK-NEXT:     <dict>
399 // CHECK-NEXT:      <key>kind</key><string>event</string>
400 // CHECK-NEXT:      <key>location</key>
401 // CHECK-NEXT:      <dict>
402 // CHECK-NEXT:       <key>line</key><integer>100</integer>
403 // CHECK-NEXT:       <key>col</key><integer>7</integer>
404 // CHECK-NEXT:       <key>file</key><integer>0</integer>
405 // CHECK-NEXT:      </dict>
406 // CHECK-NEXT:      <key>ranges</key>
407 // CHECK-NEXT:      <array>
408 // CHECK-NEXT:        <array>
409 // CHECK-NEXT:         <dict>
410 // CHECK-NEXT:          <key>line</key><integer>100</integer>
411 // CHECK-NEXT:          <key>col</key><integer>7</integer>
412 // CHECK-NEXT:          <key>file</key><integer>0</integer>
413 // CHECK-NEXT:         </dict>
414 // CHECK-NEXT:         <dict>
415 // CHECK-NEXT:          <key>line</key><integer>100</integer>
416 // CHECK-NEXT:          <key>col</key><integer>7</integer>
417 // CHECK-NEXT:          <key>file</key><integer>0</integer>
418 // CHECK-NEXT:         </dict>
419 // CHECK-NEXT:        </array>
420 // CHECK-NEXT:      </array>
421 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
422 // CHECK-NEXT:      <key>extended_message</key>
423 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
424 // CHECK-NEXT:      <key>message</key>
425 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
426 // CHECK-NEXT:     </dict>
427 // CHECK-NEXT:     <dict>
428 // CHECK-NEXT:      <key>kind</key><string>control</string>
429 // CHECK-NEXT:      <key>edges</key>
430 // CHECK-NEXT:       <array>
431 // CHECK-NEXT:        <dict>
432 // CHECK-NEXT:         <key>start</key>
433 // CHECK-NEXT:          <array>
434 // CHECK-NEXT:           <dict>
435 // CHECK-NEXT:            <key>line</key><integer>100</integer>
436 // CHECK-NEXT:            <key>col</key><integer>3</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>100</integer>
441 // CHECK-NEXT:            <key>col</key><integer>3</integer>
442 // CHECK-NEXT:            <key>file</key><integer>0</integer>
443 // CHECK-NEXT:           </dict>
444 // CHECK-NEXT:          </array>
445 // CHECK-NEXT:         <key>end</key>
446 // CHECK-NEXT:          <array>
447 // CHECK-NEXT:           <dict>
448 // CHECK-NEXT:            <key>line</key><integer>101</integer>
449 // CHECK-NEXT:            <key>col</key><integer>3</integer>
450 // CHECK-NEXT:            <key>file</key><integer>0</integer>
451 // CHECK-NEXT:           </dict>
452 // CHECK-NEXT:           <dict>
453 // CHECK-NEXT:            <key>line</key><integer>101</integer>
454 // CHECK-NEXT:            <key>col</key><integer>3</integer>
455 // CHECK-NEXT:            <key>file</key><integer>0</integer>
456 // CHECK-NEXT:           </dict>
457 // CHECK-NEXT:          </array>
458 // CHECK-NEXT:        </dict>
459 // CHECK-NEXT:       </array>
460 // CHECK-NEXT:     </dict>
461 // CHECK-NEXT:     <dict>
462 // CHECK-NEXT:      <key>kind</key><string>control</string>
463 // CHECK-NEXT:      <key>edges</key>
464 // CHECK-NEXT:       <array>
465 // CHECK-NEXT:        <dict>
466 // CHECK-NEXT:         <key>start</key>
467 // CHECK-NEXT:          <array>
468 // CHECK-NEXT:           <dict>
469 // CHECK-NEXT:            <key>line</key><integer>101</integer>
470 // CHECK-NEXT:            <key>col</key><integer>3</integer>
471 // CHECK-NEXT:            <key>file</key><integer>0</integer>
472 // CHECK-NEXT:           </dict>
473 // CHECK-NEXT:           <dict>
474 // CHECK-NEXT:            <key>line</key><integer>101</integer>
475 // CHECK-NEXT:            <key>col</key><integer>3</integer>
476 // CHECK-NEXT:            <key>file</key><integer>0</integer>
477 // CHECK-NEXT:           </dict>
478 // CHECK-NEXT:          </array>
479 // CHECK-NEXT:         <key>end</key>
480 // CHECK-NEXT:          <array>
481 // CHECK-NEXT:           <dict>
482 // CHECK-NEXT:            <key>line</key><integer>101</integer>
483 // CHECK-NEXT:            <key>col</key><integer>7</integer>
484 // CHECK-NEXT:            <key>file</key><integer>0</integer>
485 // CHECK-NEXT:           </dict>
486 // CHECK-NEXT:           <dict>
487 // CHECK-NEXT:            <key>line</key><integer>101</integer>
488 // CHECK-NEXT:            <key>col</key><integer>7</integer>
489 // CHECK-NEXT:            <key>file</key><integer>0</integer>
490 // CHECK-NEXT:           </dict>
491 // CHECK-NEXT:          </array>
492 // CHECK-NEXT:        </dict>
493 // CHECK-NEXT:       </array>
494 // CHECK-NEXT:     </dict>
495 // CHECK-NEXT:     <dict>
496 // CHECK-NEXT:      <key>kind</key><string>event</string>
497 // CHECK-NEXT:      <key>location</key>
498 // CHECK-NEXT:      <dict>
499 // CHECK-NEXT:       <key>line</key><integer>101</integer>
500 // CHECK-NEXT:       <key>col</key><integer>7</integer>
501 // CHECK-NEXT:       <key>file</key><integer>0</integer>
502 // CHECK-NEXT:      </dict>
503 // CHECK-NEXT:      <key>ranges</key>
504 // CHECK-NEXT:      <array>
505 // CHECK-NEXT:        <array>
506 // CHECK-NEXT:         <dict>
507 // CHECK-NEXT:          <key>line</key><integer>101</integer>
508 // CHECK-NEXT:          <key>col</key><integer>7</integer>
509 // CHECK-NEXT:          <key>file</key><integer>0</integer>
510 // CHECK-NEXT:         </dict>
511 // CHECK-NEXT:         <dict>
512 // CHECK-NEXT:          <key>line</key><integer>101</integer>
513 // CHECK-NEXT:          <key>col</key><integer>7</integer>
514 // CHECK-NEXT:          <key>file</key><integer>0</integer>
515 // CHECK-NEXT:         </dict>
516 // CHECK-NEXT:        </array>
517 // CHECK-NEXT:      </array>
518 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
519 // CHECK-NEXT:      <key>extended_message</key>
520 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
521 // CHECK-NEXT:      <key>message</key>
522 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
523 // CHECK-NEXT:     </dict>
524 // CHECK-NEXT:    </array>
525 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
526 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
527 // CHECK-NEXT:    <key>type</key><string>Generics</string>
528 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
529 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
530 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>33d4584e2bf66b029ab9d152cc9cd8f7</string>
531 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
532 // CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErased</string>
533 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
534 // CHECK-NEXT:   <key>location</key>
535 // CHECK-NEXT:   <dict>
536 // CHECK-NEXT:    <key>line</key><integer>101</integer>
537 // CHECK-NEXT:    <key>col</key><integer>7</integer>
538 // CHECK-NEXT:    <key>file</key><integer>0</integer>
539 // CHECK-NEXT:   </dict>
540 // CHECK-NEXT:   </dict>
541 // CHECK-NEXT:   <dict>
542 // CHECK-NEXT:    <key>path</key>
543 // CHECK-NEXT:    <array>
544 // CHECK-NEXT:     <dict>
545 // CHECK-NEXT:      <key>kind</key><string>event</string>
546 // CHECK-NEXT:      <key>location</key>
547 // CHECK-NEXT:      <dict>
548 // CHECK-NEXT:       <key>line</key><integer>100</integer>
549 // CHECK-NEXT:       <key>col</key><integer>7</integer>
550 // CHECK-NEXT:       <key>file</key><integer>0</integer>
551 // CHECK-NEXT:      </dict>
552 // CHECK-NEXT:      <key>ranges</key>
553 // CHECK-NEXT:      <array>
554 // CHECK-NEXT:        <array>
555 // CHECK-NEXT:         <dict>
556 // CHECK-NEXT:          <key>line</key><integer>100</integer>
557 // CHECK-NEXT:          <key>col</key><integer>7</integer>
558 // CHECK-NEXT:          <key>file</key><integer>0</integer>
559 // CHECK-NEXT:         </dict>
560 // CHECK-NEXT:         <dict>
561 // CHECK-NEXT:          <key>line</key><integer>100</integer>
562 // CHECK-NEXT:          <key>col</key><integer>7</integer>
563 // CHECK-NEXT:          <key>file</key><integer>0</integer>
564 // CHECK-NEXT:         </dict>
565 // CHECK-NEXT:        </array>
566 // CHECK-NEXT:      </array>
567 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
568 // CHECK-NEXT:      <key>extended_message</key>
569 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
570 // CHECK-NEXT:      <key>message</key>
571 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
572 // CHECK-NEXT:     </dict>
573 // CHECK-NEXT:     <dict>
574 // CHECK-NEXT:      <key>kind</key><string>control</string>
575 // CHECK-NEXT:      <key>edges</key>
576 // CHECK-NEXT:       <array>
577 // CHECK-NEXT:        <dict>
578 // CHECK-NEXT:         <key>start</key>
579 // CHECK-NEXT:          <array>
580 // CHECK-NEXT:           <dict>
581 // CHECK-NEXT:            <key>line</key><integer>100</integer>
582 // CHECK-NEXT:            <key>col</key><integer>3</integer>
583 // CHECK-NEXT:            <key>file</key><integer>0</integer>
584 // CHECK-NEXT:           </dict>
585 // CHECK-NEXT:           <dict>
586 // CHECK-NEXT:            <key>line</key><integer>100</integer>
587 // CHECK-NEXT:            <key>col</key><integer>3</integer>
588 // CHECK-NEXT:            <key>file</key><integer>0</integer>
589 // CHECK-NEXT:           </dict>
590 // CHECK-NEXT:          </array>
591 // CHECK-NEXT:         <key>end</key>
592 // CHECK-NEXT:          <array>
593 // CHECK-NEXT:           <dict>
594 // CHECK-NEXT:            <key>line</key><integer>104</integer>
595 // CHECK-NEXT:            <key>col</key><integer>3</integer>
596 // CHECK-NEXT:            <key>file</key><integer>0</integer>
597 // CHECK-NEXT:           </dict>
598 // CHECK-NEXT:           <dict>
599 // CHECK-NEXT:            <key>line</key><integer>104</integer>
600 // CHECK-NEXT:            <key>col</key><integer>9</integer>
601 // CHECK-NEXT:            <key>file</key><integer>0</integer>
602 // CHECK-NEXT:           </dict>
603 // CHECK-NEXT:          </array>
604 // CHECK-NEXT:        </dict>
605 // CHECK-NEXT:       </array>
606 // CHECK-NEXT:     </dict>
607 // CHECK-NEXT:     <dict>
608 // CHECK-NEXT:      <key>kind</key><string>control</string>
609 // CHECK-NEXT:      <key>edges</key>
610 // CHECK-NEXT:       <array>
611 // CHECK-NEXT:        <dict>
612 // CHECK-NEXT:         <key>start</key>
613 // CHECK-NEXT:          <array>
614 // CHECK-NEXT:           <dict>
615 // CHECK-NEXT:            <key>line</key><integer>104</integer>
616 // CHECK-NEXT:            <key>col</key><integer>3</integer>
617 // CHECK-NEXT:            <key>file</key><integer>0</integer>
618 // CHECK-NEXT:           </dict>
619 // CHECK-NEXT:           <dict>
620 // CHECK-NEXT:            <key>line</key><integer>104</integer>
621 // CHECK-NEXT:            <key>col</key><integer>9</integer>
622 // CHECK-NEXT:            <key>file</key><integer>0</integer>
623 // CHECK-NEXT:           </dict>
624 // CHECK-NEXT:          </array>
625 // CHECK-NEXT:         <key>end</key>
626 // CHECK-NEXT:          <array>
627 // CHECK-NEXT:           <dict>
628 // CHECK-NEXT:            <key>line</key><integer>104</integer>
629 // CHECK-NEXT:            <key>col</key><integer>11</integer>
630 // CHECK-NEXT:            <key>file</key><integer>0</integer>
631 // CHECK-NEXT:           </dict>
632 // CHECK-NEXT:           <dict>
633 // CHECK-NEXT:            <key>line</key><integer>104</integer>
634 // CHECK-NEXT:            <key>col</key><integer>11</integer>
635 // CHECK-NEXT:            <key>file</key><integer>0</integer>
636 // CHECK-NEXT:           </dict>
637 // CHECK-NEXT:          </array>
638 // CHECK-NEXT:        </dict>
639 // CHECK-NEXT:       </array>
640 // CHECK-NEXT:     </dict>
641 // CHECK-NEXT:     <dict>
642 // CHECK-NEXT:      <key>kind</key><string>event</string>
643 // CHECK-NEXT:      <key>location</key>
644 // CHECK-NEXT:      <dict>
645 // CHECK-NEXT:       <key>line</key><integer>104</integer>
646 // CHECK-NEXT:       <key>col</key><integer>11</integer>
647 // CHECK-NEXT:       <key>file</key><integer>0</integer>
648 // CHECK-NEXT:      </dict>
649 // CHECK-NEXT:      <key>ranges</key>
650 // CHECK-NEXT:      <array>
651 // CHECK-NEXT:        <array>
652 // CHECK-NEXT:         <dict>
653 // CHECK-NEXT:          <key>line</key><integer>104</integer>
654 // CHECK-NEXT:          <key>col</key><integer>11</integer>
655 // CHECK-NEXT:          <key>file</key><integer>0</integer>
656 // CHECK-NEXT:         </dict>
657 // CHECK-NEXT:         <dict>
658 // CHECK-NEXT:          <key>line</key><integer>104</integer>
659 // CHECK-NEXT:          <key>col</key><integer>11</integer>
660 // CHECK-NEXT:          <key>file</key><integer>0</integer>
661 // CHECK-NEXT:         </dict>
662 // CHECK-NEXT:        </array>
663 // CHECK-NEXT:      </array>
664 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
665 // CHECK-NEXT:      <key>extended_message</key>
666 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
667 // CHECK-NEXT:      <key>message</key>
668 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
669 // CHECK-NEXT:     </dict>
670 // CHECK-NEXT:    </array>
671 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
672 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
673 // CHECK-NEXT:    <key>type</key><string>Generics</string>
674 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
675 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
676 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6edc910aaa9dc1f2d823abc8cb75360f</string>
677 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
678 // CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErased</string>
679 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
680 // CHECK-NEXT:   <key>location</key>
681 // CHECK-NEXT:   <dict>
682 // CHECK-NEXT:    <key>line</key><integer>104</integer>
683 // CHECK-NEXT:    <key>col</key><integer>11</integer>
684 // CHECK-NEXT:    <key>file</key><integer>0</integer>
685 // CHECK-NEXT:   </dict>
686 // CHECK-NEXT:   </dict>
687 // CHECK-NEXT:   <dict>
688 // CHECK-NEXT:    <key>path</key>
689 // CHECK-NEXT:    <array>
690 // CHECK-NEXT:     <dict>
691 // CHECK-NEXT:      <key>kind</key><string>event</string>
692 // CHECK-NEXT:      <key>location</key>
693 // CHECK-NEXT:      <dict>
694 // CHECK-NEXT:       <key>line</key><integer>100</integer>
695 // CHECK-NEXT:       <key>col</key><integer>7</integer>
696 // CHECK-NEXT:       <key>file</key><integer>0</integer>
697 // CHECK-NEXT:      </dict>
698 // CHECK-NEXT:      <key>ranges</key>
699 // CHECK-NEXT:      <array>
700 // CHECK-NEXT:        <array>
701 // CHECK-NEXT:         <dict>
702 // CHECK-NEXT:          <key>line</key><integer>100</integer>
703 // CHECK-NEXT:          <key>col</key><integer>7</integer>
704 // CHECK-NEXT:          <key>file</key><integer>0</integer>
705 // CHECK-NEXT:         </dict>
706 // CHECK-NEXT:         <dict>
707 // CHECK-NEXT:          <key>line</key><integer>100</integer>
708 // CHECK-NEXT:          <key>col</key><integer>7</integer>
709 // CHECK-NEXT:          <key>file</key><integer>0</integer>
710 // CHECK-NEXT:         </dict>
711 // CHECK-NEXT:        </array>
712 // CHECK-NEXT:      </array>
713 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
714 // CHECK-NEXT:      <key>extended_message</key>
715 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
716 // CHECK-NEXT:      <key>message</key>
717 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
718 // CHECK-NEXT:     </dict>
719 // CHECK-NEXT:     <dict>
720 // CHECK-NEXT:      <key>kind</key><string>control</string>
721 // CHECK-NEXT:      <key>edges</key>
722 // CHECK-NEXT:       <array>
723 // CHECK-NEXT:        <dict>
724 // CHECK-NEXT:         <key>start</key>
725 // CHECK-NEXT:          <array>
726 // CHECK-NEXT:           <dict>
727 // CHECK-NEXT:            <key>line</key><integer>100</integer>
728 // CHECK-NEXT:            <key>col</key><integer>3</integer>
729 // CHECK-NEXT:            <key>file</key><integer>0</integer>
730 // CHECK-NEXT:           </dict>
731 // CHECK-NEXT:           <dict>
732 // CHECK-NEXT:            <key>line</key><integer>100</integer>
733 // CHECK-NEXT:            <key>col</key><integer>3</integer>
734 // CHECK-NEXT:            <key>file</key><integer>0</integer>
735 // CHECK-NEXT:           </dict>
736 // CHECK-NEXT:          </array>
737 // CHECK-NEXT:         <key>end</key>
738 // CHECK-NEXT:          <array>
739 // CHECK-NEXT:           <dict>
740 // CHECK-NEXT:            <key>line</key><integer>107</integer>
741 // CHECK-NEXT:            <key>col</key><integer>3</integer>
742 // CHECK-NEXT:            <key>file</key><integer>0</integer>
743 // CHECK-NEXT:           </dict>
744 // CHECK-NEXT:           <dict>
745 // CHECK-NEXT:            <key>line</key><integer>107</integer>
746 // CHECK-NEXT:            <key>col</key><integer>3</integer>
747 // CHECK-NEXT:            <key>file</key><integer>0</integer>
748 // CHECK-NEXT:           </dict>
749 // CHECK-NEXT:          </array>
750 // CHECK-NEXT:        </dict>
751 // CHECK-NEXT:       </array>
752 // CHECK-NEXT:     </dict>
753 // CHECK-NEXT:     <dict>
754 // CHECK-NEXT:      <key>kind</key><string>event</string>
755 // CHECK-NEXT:      <key>location</key>
756 // CHECK-NEXT:      <dict>
757 // CHECK-NEXT:       <key>line</key><integer>107</integer>
758 // CHECK-NEXT:       <key>col</key><integer>3</integer>
759 // CHECK-NEXT:       <key>file</key><integer>0</integer>
760 // CHECK-NEXT:      </dict>
761 // CHECK-NEXT:      <key>ranges</key>
762 // CHECK-NEXT:      <array>
763 // CHECK-NEXT:        <array>
764 // CHECK-NEXT:         <dict>
765 // CHECK-NEXT:          <key>line</key><integer>107</integer>
766 // CHECK-NEXT:          <key>col</key><integer>17</integer>
767 // CHECK-NEXT:          <key>file</key><integer>0</integer>
768 // CHECK-NEXT:         </dict>
769 // CHECK-NEXT:         <dict>
770 // CHECK-NEXT:          <key>line</key><integer>107</integer>
771 // CHECK-NEXT:          <key>col</key><integer>39</integer>
772 // CHECK-NEXT:          <key>file</key><integer>0</integer>
773 // CHECK-NEXT:         </dict>
774 // CHECK-NEXT:        </array>
775 // CHECK-NEXT:      </array>
776 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
777 // CHECK-NEXT:      <key>extended_message</key>
778 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
779 // CHECK-NEXT:      <key>message</key>
780 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
781 // CHECK-NEXT:     </dict>
782 // CHECK-NEXT:    </array>
783 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
784 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
785 // CHECK-NEXT:    <key>type</key><string>Generics</string>
786 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
787 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
788 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>73c71c858082f5d7a2258f707927da3c</string>
789 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
790 // CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErased</string>
791 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>8</string>
792 // CHECK-NEXT:   <key>location</key>
793 // CHECK-NEXT:   <dict>
794 // CHECK-NEXT:    <key>line</key><integer>107</integer>
795 // CHECK-NEXT:    <key>col</key><integer>3</integer>
796 // CHECK-NEXT:    <key>file</key><integer>0</integer>
797 // CHECK-NEXT:   </dict>
798 // CHECK-NEXT:   </dict>
799 // CHECK-NEXT:   <dict>
800 // CHECK-NEXT:    <key>path</key>
801 // CHECK-NEXT:    <array>
802 // CHECK-NEXT:     <dict>
803 // CHECK-NEXT:      <key>kind</key><string>control</string>
804 // CHECK-NEXT:      <key>edges</key>
805 // CHECK-NEXT:       <array>
806 // CHECK-NEXT:        <dict>
807 // CHECK-NEXT:         <key>start</key>
808 // CHECK-NEXT:          <array>
809 // CHECK-NEXT:           <dict>
810 // CHECK-NEXT:            <key>line</key><integer>111</integer>
811 // CHECK-NEXT:            <key>col</key><integer>3</integer>
812 // CHECK-NEXT:            <key>file</key><integer>0</integer>
813 // CHECK-NEXT:           </dict>
814 // CHECK-NEXT:           <dict>
815 // CHECK-NEXT:            <key>line</key><integer>111</integer>
816 // CHECK-NEXT:            <key>col</key><integer>9</integer>
817 // CHECK-NEXT:            <key>file</key><integer>0</integer>
818 // CHECK-NEXT:           </dict>
819 // CHECK-NEXT:          </array>
820 // CHECK-NEXT:         <key>end</key>
821 // CHECK-NEXT:          <array>
822 // CHECK-NEXT:           <dict>
823 // CHECK-NEXT:            <key>line</key><integer>111</integer>
824 // CHECK-NEXT:            <key>col</key><integer>28</integer>
825 // CHECK-NEXT:            <key>file</key><integer>0</integer>
826 // CHECK-NEXT:           </dict>
827 // CHECK-NEXT:           <dict>
828 // CHECK-NEXT:            <key>line</key><integer>111</integer>
829 // CHECK-NEXT:            <key>col</key><integer>40</integer>
830 // CHECK-NEXT:            <key>file</key><integer>0</integer>
831 // CHECK-NEXT:           </dict>
832 // CHECK-NEXT:          </array>
833 // CHECK-NEXT:        </dict>
834 // CHECK-NEXT:       </array>
835 // CHECK-NEXT:     </dict>
836 // CHECK-NEXT:     <dict>
837 // CHECK-NEXT:      <key>kind</key><string>event</string>
838 // CHECK-NEXT:      <key>location</key>
839 // CHECK-NEXT:      <dict>
840 // CHECK-NEXT:       <key>line</key><integer>111</integer>
841 // CHECK-NEXT:       <key>col</key><integer>28</integer>
842 // CHECK-NEXT:       <key>file</key><integer>0</integer>
843 // CHECK-NEXT:      </dict>
844 // CHECK-NEXT:      <key>ranges</key>
845 // CHECK-NEXT:      <array>
846 // CHECK-NEXT:        <array>
847 // CHECK-NEXT:         <dict>
848 // CHECK-NEXT:          <key>line</key><integer>111</integer>
849 // CHECK-NEXT:          <key>col</key><integer>28</integer>
850 // CHECK-NEXT:          <key>file</key><integer>0</integer>
851 // CHECK-NEXT:         </dict>
852 // CHECK-NEXT:         <dict>
853 // CHECK-NEXT:          <key>line</key><integer>111</integer>
854 // CHECK-NEXT:          <key>col</key><integer>42</integer>
855 // CHECK-NEXT:          <key>file</key><integer>0</integer>
856 // CHECK-NEXT:         </dict>
857 // CHECK-NEXT:        </array>
858 // CHECK-NEXT:      </array>
859 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
860 // CHECK-NEXT:      <key>extended_message</key>
861 // CHECK-NEXT:      <string>Calling &apos;getTypedStuff&apos;</string>
862 // CHECK-NEXT:      <key>message</key>
863 // CHECK-NEXT:      <string>Calling &apos;getTypedStuff&apos;</string>
864 // CHECK-NEXT:     </dict>
865 // CHECK-NEXT:     <dict>
866 // CHECK-NEXT:      <key>kind</key><string>event</string>
867 // CHECK-NEXT:      <key>location</key>
868 // CHECK-NEXT:      <dict>
869 // CHECK-NEXT:       <key>line</key><integer>86</integer>
870 // CHECK-NEXT:       <key>col</key><integer>1</integer>
871 // CHECK-NEXT:       <key>file</key><integer>0</integer>
872 // CHECK-NEXT:      </dict>
873 // CHECK-NEXT:      <key>depth</key><integer>1</integer>
874 // CHECK-NEXT:      <key>extended_message</key>
875 // CHECK-NEXT:      <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
876 // CHECK-NEXT:      <key>message</key>
877 // CHECK-NEXT:      <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
878 // CHECK-NEXT:     </dict>
879 // CHECK-NEXT:     <dict>
880 // CHECK-NEXT:      <key>kind</key><string>control</string>
881 // CHECK-NEXT:      <key>edges</key>
882 // CHECK-NEXT:       <array>
883 // CHECK-NEXT:        <dict>
884 // CHECK-NEXT:         <key>start</key>
885 // CHECK-NEXT:          <array>
886 // CHECK-NEXT:           <dict>
887 // CHECK-NEXT:            <key>line</key><integer>86</integer>
888 // CHECK-NEXT:            <key>col</key><integer>1</integer>
889 // CHECK-NEXT:            <key>file</key><integer>0</integer>
890 // CHECK-NEXT:           </dict>
891 // CHECK-NEXT:           <dict>
892 // CHECK-NEXT:            <key>line</key><integer>86</integer>
893 // CHECK-NEXT:            <key>col</key><integer>7</integer>
894 // CHECK-NEXT:            <key>file</key><integer>0</integer>
895 // CHECK-NEXT:           </dict>
896 // CHECK-NEXT:          </array>
897 // CHECK-NEXT:         <key>end</key>
898 // CHECK-NEXT:          <array>
899 // CHECK-NEXT:           <dict>
900 // CHECK-NEXT:            <key>line</key><integer>87</integer>
901 // CHECK-NEXT:            <key>col</key><integer>3</integer>
902 // CHECK-NEXT:            <key>file</key><integer>0</integer>
903 // CHECK-NEXT:           </dict>
904 // CHECK-NEXT:           <dict>
905 // CHECK-NEXT:            <key>line</key><integer>87</integer>
906 // CHECK-NEXT:            <key>col</key><integer>9</integer>
907 // CHECK-NEXT:            <key>file</key><integer>0</integer>
908 // CHECK-NEXT:           </dict>
909 // CHECK-NEXT:          </array>
910 // CHECK-NEXT:        </dict>
911 // CHECK-NEXT:       </array>
912 // CHECK-NEXT:     </dict>
913 // CHECK-NEXT:     <dict>
914 // CHECK-NEXT:      <key>kind</key><string>event</string>
915 // CHECK-NEXT:      <key>location</key>
916 // CHECK-NEXT:      <dict>
917 // CHECK-NEXT:       <key>line</key><integer>87</integer>
918 // CHECK-NEXT:       <key>col</key><integer>28</integer>
919 // CHECK-NEXT:       <key>file</key><integer>0</integer>
920 // CHECK-NEXT:      </dict>
921 // CHECK-NEXT:      <key>ranges</key>
922 // CHECK-NEXT:      <array>
923 // CHECK-NEXT:        <array>
924 // CHECK-NEXT:         <dict>
925 // CHECK-NEXT:          <key>line</key><integer>87</integer>
926 // CHECK-NEXT:          <key>col</key><integer>28</integer>
927 // CHECK-NEXT:          <key>file</key><integer>0</integer>
928 // CHECK-NEXT:         </dict>
929 // CHECK-NEXT:         <dict>
930 // CHECK-NEXT:          <key>line</key><integer>87</integer>
931 // CHECK-NEXT:          <key>col</key><integer>37</integer>
932 // CHECK-NEXT:          <key>file</key><integer>0</integer>
933 // CHECK-NEXT:         </dict>
934 // CHECK-NEXT:        </array>
935 // CHECK-NEXT:      </array>
936 // CHECK-NEXT:      <key>depth</key><integer>1</integer>
937 // CHECK-NEXT:      <key>extended_message</key>
938 // 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>
939 // CHECK-NEXT:      <key>message</key>
940 // 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>
941 // CHECK-NEXT:     </dict>
942 // CHECK-NEXT:     <dict>
943 // CHECK-NEXT:      <key>kind</key><string>control</string>
944 // CHECK-NEXT:      <key>edges</key>
945 // CHECK-NEXT:       <array>
946 // CHECK-NEXT:        <dict>
947 // CHECK-NEXT:         <key>start</key>
948 // CHECK-NEXT:          <array>
949 // CHECK-NEXT:           <dict>
950 // CHECK-NEXT:            <key>line</key><integer>87</integer>
951 // CHECK-NEXT:            <key>col</key><integer>3</integer>
952 // CHECK-NEXT:            <key>file</key><integer>0</integer>
953 // CHECK-NEXT:           </dict>
954 // CHECK-NEXT:           <dict>
955 // CHECK-NEXT:            <key>line</key><integer>87</integer>
956 // CHECK-NEXT:            <key>col</key><integer>9</integer>
957 // CHECK-NEXT:            <key>file</key><integer>0</integer>
958 // CHECK-NEXT:           </dict>
959 // CHECK-NEXT:          </array>
960 // CHECK-NEXT:         <key>end</key>
961 // CHECK-NEXT:          <array>
962 // CHECK-NEXT:           <dict>
963 // CHECK-NEXT:            <key>line</key><integer>88</integer>
964 // CHECK-NEXT:            <key>col</key><integer>3</integer>
965 // CHECK-NEXT:            <key>file</key><integer>0</integer>
966 // CHECK-NEXT:           </dict>
967 // CHECK-NEXT:           <dict>
968 // CHECK-NEXT:            <key>line</key><integer>88</integer>
969 // CHECK-NEXT:            <key>col</key><integer>8</integer>
970 // CHECK-NEXT:            <key>file</key><integer>0</integer>
971 // CHECK-NEXT:           </dict>
972 // CHECK-NEXT:          </array>
973 // CHECK-NEXT:        </dict>
974 // CHECK-NEXT:       </array>
975 // CHECK-NEXT:     </dict>
976 // CHECK-NEXT:     <dict>
977 // CHECK-NEXT:      <key>kind</key><string>event</string>
978 // CHECK-NEXT:      <key>location</key>
979 // CHECK-NEXT:      <dict>
980 // CHECK-NEXT:       <key>line</key><integer>111</integer>
981 // CHECK-NEXT:       <key>col</key><integer>28</integer>
982 // CHECK-NEXT:       <key>file</key><integer>0</integer>
983 // CHECK-NEXT:      </dict>
984 // CHECK-NEXT:      <key>ranges</key>
985 // CHECK-NEXT:      <array>
986 // CHECK-NEXT:        <array>
987 // CHECK-NEXT:         <dict>
988 // CHECK-NEXT:          <key>line</key><integer>111</integer>
989 // CHECK-NEXT:          <key>col</key><integer>28</integer>
990 // CHECK-NEXT:          <key>file</key><integer>0</integer>
991 // CHECK-NEXT:         </dict>
992 // CHECK-NEXT:         <dict>
993 // CHECK-NEXT:          <key>line</key><integer>111</integer>
994 // CHECK-NEXT:          <key>col</key><integer>42</integer>
995 // CHECK-NEXT:          <key>file</key><integer>0</integer>
996 // CHECK-NEXT:         </dict>
997 // CHECK-NEXT:        </array>
998 // CHECK-NEXT:      </array>
999 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1000 // CHECK-NEXT:      <key>extended_message</key>
1001 // CHECK-NEXT:      <string>Returning from &apos;getTypedStuff&apos;</string>
1002 // CHECK-NEXT:      <key>message</key>
1003 // CHECK-NEXT:      <string>Returning from &apos;getTypedStuff&apos;</string>
1004 // CHECK-NEXT:     </dict>
1005 // CHECK-NEXT:     <dict>
1006 // CHECK-NEXT:      <key>kind</key><string>event</string>
1007 // CHECK-NEXT:      <key>location</key>
1008 // CHECK-NEXT:      <dict>
1009 // CHECK-NEXT:       <key>line</key><integer>111</integer>
1010 // CHECK-NEXT:       <key>col</key><integer>28</integer>
1011 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1012 // CHECK-NEXT:      </dict>
1013 // CHECK-NEXT:      <key>ranges</key>
1014 // CHECK-NEXT:      <array>
1015 // CHECK-NEXT:        <array>
1016 // CHECK-NEXT:         <dict>
1017 // CHECK-NEXT:          <key>line</key><integer>111</integer>
1018 // CHECK-NEXT:          <key>col</key><integer>28</integer>
1019 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1020 // CHECK-NEXT:         </dict>
1021 // CHECK-NEXT:         <dict>
1022 // CHECK-NEXT:          <key>line</key><integer>111</integer>
1023 // CHECK-NEXT:          <key>col</key><integer>42</integer>
1024 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1025 // CHECK-NEXT:         </dict>
1026 // CHECK-NEXT:        </array>
1027 // CHECK-NEXT:      </array>
1028 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1029 // CHECK-NEXT:      <key>extended_message</key>
1030 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
1031 // CHECK-NEXT:      <key>message</key>
1032 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
1033 // CHECK-NEXT:     </dict>
1034 // CHECK-NEXT:    </array>
1035 // 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>
1036 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1037 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1038 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1039 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1040 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>82c378fdcfcc5c0318d2f3ca46420ec1</string>
1041 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1042 // CHECK-NEXT:   <key>issue_context</key><string>crossProceduralErasedTypes</string>
1043 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>1</string>
1044 // CHECK-NEXT:   <key>location</key>
1045 // CHECK-NEXT:   <dict>
1046 // CHECK-NEXT:    <key>line</key><integer>111</integer>
1047 // CHECK-NEXT:    <key>col</key><integer>28</integer>
1048 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1049 // CHECK-NEXT:   </dict>
1050 // CHECK-NEXT:   </dict>
1051 // CHECK-NEXT:   <dict>
1052 // CHECK-NEXT:    <key>path</key>
1053 // CHECK-NEXT:    <array>
1054 // CHECK-NEXT:     <dict>
1055 // CHECK-NEXT:      <key>kind</key><string>event</string>
1056 // CHECK-NEXT:      <key>location</key>
1057 // CHECK-NEXT:      <dict>
1058 // CHECK-NEXT:       <key>line</key><integer>116</integer>
1059 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1060 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1061 // CHECK-NEXT:      </dict>
1062 // CHECK-NEXT:      <key>ranges</key>
1063 // CHECK-NEXT:      <array>
1064 // CHECK-NEXT:        <array>
1065 // CHECK-NEXT:         <dict>
1066 // CHECK-NEXT:          <key>line</key><integer>116</integer>
1067 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1068 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1069 // CHECK-NEXT:         </dict>
1070 // CHECK-NEXT:         <dict>
1071 // CHECK-NEXT:          <key>line</key><integer>116</integer>
1072 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1073 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1074 // CHECK-NEXT:         </dict>
1075 // CHECK-NEXT:        </array>
1076 // CHECK-NEXT:      </array>
1077 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1078 // CHECK-NEXT:      <key>extended_message</key>
1079 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray *&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1080 // CHECK-NEXT:      <key>message</key>
1081 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray *&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1082 // CHECK-NEXT:     </dict>
1083 // CHECK-NEXT:     <dict>
1084 // CHECK-NEXT:      <key>kind</key><string>control</string>
1085 // CHECK-NEXT:      <key>edges</key>
1086 // CHECK-NEXT:       <array>
1087 // CHECK-NEXT:        <dict>
1088 // CHECK-NEXT:         <key>start</key>
1089 // CHECK-NEXT:          <array>
1090 // CHECK-NEXT:           <dict>
1091 // CHECK-NEXT:            <key>line</key><integer>116</integer>
1092 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1093 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1094 // CHECK-NEXT:           </dict>
1095 // CHECK-NEXT:           <dict>
1096 // CHECK-NEXT:            <key>line</key><integer>116</integer>
1097 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1098 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1099 // CHECK-NEXT:           </dict>
1100 // CHECK-NEXT:          </array>
1101 // CHECK-NEXT:         <key>end</key>
1102 // CHECK-NEXT:          <array>
1103 // CHECK-NEXT:           <dict>
1104 // CHECK-NEXT:            <key>line</key><integer>119</integer>
1105 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1106 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1107 // CHECK-NEXT:           </dict>
1108 // CHECK-NEXT:           <dict>
1109 // CHECK-NEXT:            <key>line</key><integer>119</integer>
1110 // CHECK-NEXT:            <key>col</key><integer>9</integer>
1111 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1112 // CHECK-NEXT:           </dict>
1113 // CHECK-NEXT:          </array>
1114 // CHECK-NEXT:        </dict>
1115 // CHECK-NEXT:       </array>
1116 // CHECK-NEXT:     </dict>
1117 // CHECK-NEXT:     <dict>
1118 // CHECK-NEXT:      <key>kind</key><string>control</string>
1119 // CHECK-NEXT:      <key>edges</key>
1120 // CHECK-NEXT:       <array>
1121 // CHECK-NEXT:        <dict>
1122 // CHECK-NEXT:         <key>start</key>
1123 // CHECK-NEXT:          <array>
1124 // CHECK-NEXT:           <dict>
1125 // CHECK-NEXT:            <key>line</key><integer>119</integer>
1126 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1127 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1128 // CHECK-NEXT:           </dict>
1129 // CHECK-NEXT:           <dict>
1130 // CHECK-NEXT:            <key>line</key><integer>119</integer>
1131 // CHECK-NEXT:            <key>col</key><integer>9</integer>
1132 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1133 // CHECK-NEXT:           </dict>
1134 // CHECK-NEXT:          </array>
1135 // CHECK-NEXT:         <key>end</key>
1136 // CHECK-NEXT:          <array>
1137 // CHECK-NEXT:           <dict>
1138 // CHECK-NEXT:            <key>line</key><integer>119</integer>
1139 // CHECK-NEXT:            <key>col</key><integer>11</integer>
1140 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1141 // CHECK-NEXT:           </dict>
1142 // CHECK-NEXT:           <dict>
1143 // CHECK-NEXT:            <key>line</key><integer>119</integer>
1144 // CHECK-NEXT:            <key>col</key><integer>11</integer>
1145 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1146 // CHECK-NEXT:           </dict>
1147 // CHECK-NEXT:          </array>
1148 // CHECK-NEXT:        </dict>
1149 // CHECK-NEXT:       </array>
1150 // CHECK-NEXT:     </dict>
1151 // CHECK-NEXT:     <dict>
1152 // CHECK-NEXT:      <key>kind</key><string>event</string>
1153 // CHECK-NEXT:      <key>location</key>
1154 // CHECK-NEXT:      <dict>
1155 // CHECK-NEXT:       <key>line</key><integer>119</integer>
1156 // CHECK-NEXT:       <key>col</key><integer>11</integer>
1157 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1158 // CHECK-NEXT:      </dict>
1159 // CHECK-NEXT:      <key>ranges</key>
1160 // CHECK-NEXT:      <array>
1161 // CHECK-NEXT:        <array>
1162 // CHECK-NEXT:         <dict>
1163 // CHECK-NEXT:          <key>line</key><integer>119</integer>
1164 // CHECK-NEXT:          <key>col</key><integer>11</integer>
1165 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1166 // CHECK-NEXT:         </dict>
1167 // CHECK-NEXT:         <dict>
1168 // CHECK-NEXT:          <key>line</key><integer>119</integer>
1169 // CHECK-NEXT:          <key>col</key><integer>11</integer>
1170 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1171 // CHECK-NEXT:         </dict>
1172 // CHECK-NEXT:        </array>
1173 // CHECK-NEXT:      </array>
1174 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1175 // CHECK-NEXT:      <key>extended_message</key>
1176 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1177 // CHECK-NEXT:      <key>message</key>
1178 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1179 // CHECK-NEXT:     </dict>
1180 // CHECK-NEXT:    </array>
1181 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1182 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1183 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1184 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1185 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1186 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>234e3c299ee75a4dd4563e0ea88b9ed9</string>
1187 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1188 // CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1189 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
1190 // CHECK-NEXT:   <key>location</key>
1191 // CHECK-NEXT:   <dict>
1192 // CHECK-NEXT:    <key>line</key><integer>119</integer>
1193 // CHECK-NEXT:    <key>col</key><integer>11</integer>
1194 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1195 // CHECK-NEXT:   </dict>
1196 // CHECK-NEXT:   </dict>
1197 // CHECK-NEXT:   <dict>
1198 // CHECK-NEXT:    <key>path</key>
1199 // CHECK-NEXT:    <array>
1200 // CHECK-NEXT:     <dict>
1201 // CHECK-NEXT:      <key>kind</key><string>event</string>
1202 // CHECK-NEXT:      <key>location</key>
1203 // CHECK-NEXT:      <dict>
1204 // CHECK-NEXT:       <key>line</key><integer>116</integer>
1205 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1206 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1207 // CHECK-NEXT:      </dict>
1208 // CHECK-NEXT:      <key>ranges</key>
1209 // CHECK-NEXT:      <array>
1210 // CHECK-NEXT:        <array>
1211 // CHECK-NEXT:         <dict>
1212 // CHECK-NEXT:          <key>line</key><integer>116</integer>
1213 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1214 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1215 // CHECK-NEXT:         </dict>
1216 // CHECK-NEXT:         <dict>
1217 // CHECK-NEXT:          <key>line</key><integer>116</integer>
1218 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1219 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1220 // CHECK-NEXT:         </dict>
1221 // CHECK-NEXT:        </array>
1222 // CHECK-NEXT:      </array>
1223 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1224 // CHECK-NEXT:      <key>extended_message</key>
1225 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray *&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1226 // CHECK-NEXT:      <key>message</key>
1227 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray *&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1228 // CHECK-NEXT:     </dict>
1229 // CHECK-NEXT:     <dict>
1230 // CHECK-NEXT:      <key>kind</key><string>control</string>
1231 // CHECK-NEXT:      <key>edges</key>
1232 // CHECK-NEXT:       <array>
1233 // CHECK-NEXT:        <dict>
1234 // CHECK-NEXT:         <key>start</key>
1235 // CHECK-NEXT:          <array>
1236 // CHECK-NEXT:           <dict>
1237 // CHECK-NEXT:            <key>line</key><integer>116</integer>
1238 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1239 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1240 // CHECK-NEXT:           </dict>
1241 // CHECK-NEXT:           <dict>
1242 // CHECK-NEXT:            <key>line</key><integer>116</integer>
1243 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1244 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1245 // CHECK-NEXT:           </dict>
1246 // CHECK-NEXT:          </array>
1247 // CHECK-NEXT:         <key>end</key>
1248 // CHECK-NEXT:          <array>
1249 // CHECK-NEXT:           <dict>
1250 // CHECK-NEXT:            <key>line</key><integer>121</integer>
1251 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1252 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1253 // CHECK-NEXT:           </dict>
1254 // CHECK-NEXT:           <dict>
1255 // CHECK-NEXT:            <key>line</key><integer>121</integer>
1256 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1257 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1258 // CHECK-NEXT:           </dict>
1259 // CHECK-NEXT:          </array>
1260 // CHECK-NEXT:        </dict>
1261 // CHECK-NEXT:       </array>
1262 // CHECK-NEXT:     </dict>
1263 // CHECK-NEXT:     <dict>
1264 // CHECK-NEXT:      <key>kind</key><string>event</string>
1265 // CHECK-NEXT:      <key>location</key>
1266 // CHECK-NEXT:      <dict>
1267 // CHECK-NEXT:       <key>line</key><integer>121</integer>
1268 // CHECK-NEXT:       <key>col</key><integer>3</integer>
1269 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1270 // CHECK-NEXT:      </dict>
1271 // CHECK-NEXT:      <key>ranges</key>
1272 // CHECK-NEXT:      <array>
1273 // CHECK-NEXT:        <array>
1274 // CHECK-NEXT:         <dict>
1275 // CHECK-NEXT:          <key>line</key><integer>121</integer>
1276 // CHECK-NEXT:          <key>col</key><integer>17</integer>
1277 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1278 // CHECK-NEXT:         </dict>
1279 // CHECK-NEXT:         <dict>
1280 // CHECK-NEXT:          <key>line</key><integer>121</integer>
1281 // CHECK-NEXT:          <key>col</key><integer>39</integer>
1282 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1283 // CHECK-NEXT:         </dict>
1284 // CHECK-NEXT:        </array>
1285 // CHECK-NEXT:      </array>
1286 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1287 // CHECK-NEXT:      <key>extended_message</key>
1288 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1289 // CHECK-NEXT:      <key>message</key>
1290 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1291 // CHECK-NEXT:     </dict>
1292 // CHECK-NEXT:    </array>
1293 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1294 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1295 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1296 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1297 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1298 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>e875afc5479fec33a693ce2b550a9573</string>
1299 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1300 // CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1301 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>6</string>
1302 // CHECK-NEXT:   <key>location</key>
1303 // CHECK-NEXT:   <dict>
1304 // CHECK-NEXT:    <key>line</key><integer>121</integer>
1305 // CHECK-NEXT:    <key>col</key><integer>3</integer>
1306 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1307 // CHECK-NEXT:   </dict>
1308 // CHECK-NEXT:   </dict>
1309 // CHECK-NEXT:   <dict>
1310 // CHECK-NEXT:    <key>path</key>
1311 // CHECK-NEXT:    <array>
1312 // CHECK-NEXT:     <dict>
1313 // CHECK-NEXT:      <key>kind</key><string>event</string>
1314 // CHECK-NEXT:      <key>location</key>
1315 // CHECK-NEXT:      <dict>
1316 // CHECK-NEXT:       <key>line</key><integer>125</integer>
1317 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1318 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1319 // CHECK-NEXT:      </dict>
1320 // CHECK-NEXT:      <key>ranges</key>
1321 // CHECK-NEXT:      <array>
1322 // CHECK-NEXT:        <array>
1323 // CHECK-NEXT:         <dict>
1324 // CHECK-NEXT:          <key>line</key><integer>125</integer>
1325 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1326 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1327 // CHECK-NEXT:         </dict>
1328 // CHECK-NEXT:         <dict>
1329 // CHECK-NEXT:          <key>line</key><integer>125</integer>
1330 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1331 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1332 // CHECK-NEXT:         </dict>
1333 // CHECK-NEXT:        </array>
1334 // CHECK-NEXT:      </array>
1335 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1336 // CHECK-NEXT:      <key>extended_message</key>
1337 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1338 // CHECK-NEXT:      <key>message</key>
1339 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1340 // CHECK-NEXT:     </dict>
1341 // CHECK-NEXT:     <dict>
1342 // CHECK-NEXT:      <key>kind</key><string>control</string>
1343 // CHECK-NEXT:      <key>edges</key>
1344 // CHECK-NEXT:       <array>
1345 // CHECK-NEXT:        <dict>
1346 // CHECK-NEXT:         <key>start</key>
1347 // CHECK-NEXT:          <array>
1348 // CHECK-NEXT:           <dict>
1349 // CHECK-NEXT:            <key>line</key><integer>125</integer>
1350 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1351 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1352 // CHECK-NEXT:           </dict>
1353 // CHECK-NEXT:           <dict>
1354 // CHECK-NEXT:            <key>line</key><integer>125</integer>
1355 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1356 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1357 // CHECK-NEXT:           </dict>
1358 // CHECK-NEXT:          </array>
1359 // CHECK-NEXT:         <key>end</key>
1360 // CHECK-NEXT:          <array>
1361 // CHECK-NEXT:           <dict>
1362 // CHECK-NEXT:            <key>line</key><integer>128</integer>
1363 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1364 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1365 // CHECK-NEXT:           </dict>
1366 // CHECK-NEXT:           <dict>
1367 // CHECK-NEXT:            <key>line</key><integer>128</integer>
1368 // CHECK-NEXT:            <key>col</key><integer>9</integer>
1369 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1370 // CHECK-NEXT:           </dict>
1371 // CHECK-NEXT:          </array>
1372 // CHECK-NEXT:        </dict>
1373 // CHECK-NEXT:       </array>
1374 // CHECK-NEXT:     </dict>
1375 // CHECK-NEXT:     <dict>
1376 // CHECK-NEXT:      <key>kind</key><string>control</string>
1377 // CHECK-NEXT:      <key>edges</key>
1378 // CHECK-NEXT:       <array>
1379 // CHECK-NEXT:        <dict>
1380 // CHECK-NEXT:         <key>start</key>
1381 // CHECK-NEXT:          <array>
1382 // CHECK-NEXT:           <dict>
1383 // CHECK-NEXT:            <key>line</key><integer>128</integer>
1384 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1385 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1386 // CHECK-NEXT:           </dict>
1387 // CHECK-NEXT:           <dict>
1388 // CHECK-NEXT:            <key>line</key><integer>128</integer>
1389 // CHECK-NEXT:            <key>col</key><integer>9</integer>
1390 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1391 // CHECK-NEXT:           </dict>
1392 // CHECK-NEXT:          </array>
1393 // CHECK-NEXT:         <key>end</key>
1394 // CHECK-NEXT:          <array>
1395 // CHECK-NEXT:           <dict>
1396 // CHECK-NEXT:            <key>line</key><integer>128</integer>
1397 // CHECK-NEXT:            <key>col</key><integer>11</integer>
1398 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1399 // CHECK-NEXT:           </dict>
1400 // CHECK-NEXT:           <dict>
1401 // CHECK-NEXT:            <key>line</key><integer>128</integer>
1402 // CHECK-NEXT:            <key>col</key><integer>11</integer>
1403 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1404 // CHECK-NEXT:           </dict>
1405 // CHECK-NEXT:          </array>
1406 // CHECK-NEXT:        </dict>
1407 // CHECK-NEXT:       </array>
1408 // CHECK-NEXT:     </dict>
1409 // CHECK-NEXT:     <dict>
1410 // CHECK-NEXT:      <key>kind</key><string>event</string>
1411 // CHECK-NEXT:      <key>location</key>
1412 // CHECK-NEXT:      <dict>
1413 // CHECK-NEXT:       <key>line</key><integer>128</integer>
1414 // CHECK-NEXT:       <key>col</key><integer>11</integer>
1415 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1416 // CHECK-NEXT:      </dict>
1417 // CHECK-NEXT:      <key>ranges</key>
1418 // CHECK-NEXT:      <array>
1419 // CHECK-NEXT:        <array>
1420 // CHECK-NEXT:         <dict>
1421 // CHECK-NEXT:          <key>line</key><integer>128</integer>
1422 // CHECK-NEXT:          <key>col</key><integer>11</integer>
1423 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1424 // CHECK-NEXT:         </dict>
1425 // CHECK-NEXT:         <dict>
1426 // CHECK-NEXT:          <key>line</key><integer>128</integer>
1427 // CHECK-NEXT:          <key>col</key><integer>11</integer>
1428 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1429 // CHECK-NEXT:         </dict>
1430 // CHECK-NEXT:        </array>
1431 // CHECK-NEXT:      </array>
1432 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1433 // CHECK-NEXT:      <key>extended_message</key>
1434 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1435 // CHECK-NEXT:      <key>message</key>
1436 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1437 // CHECK-NEXT:     </dict>
1438 // CHECK-NEXT:    </array>
1439 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1440 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1441 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1442 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1443 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1444 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d7fa9fa89fe860ed8f5d22631233a5fa</string>
1445 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1446 // CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1447 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
1448 // CHECK-NEXT:   <key>location</key>
1449 // CHECK-NEXT:   <dict>
1450 // CHECK-NEXT:    <key>line</key><integer>128</integer>
1451 // CHECK-NEXT:    <key>col</key><integer>11</integer>
1452 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1453 // CHECK-NEXT:   </dict>
1454 // CHECK-NEXT:   </dict>
1455 // CHECK-NEXT:   <dict>
1456 // CHECK-NEXT:    <key>path</key>
1457 // CHECK-NEXT:    <array>
1458 // CHECK-NEXT:     <dict>
1459 // CHECK-NEXT:      <key>kind</key><string>event</string>
1460 // CHECK-NEXT:      <key>location</key>
1461 // CHECK-NEXT:      <dict>
1462 // CHECK-NEXT:       <key>line</key><integer>125</integer>
1463 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1464 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1465 // CHECK-NEXT:      </dict>
1466 // CHECK-NEXT:      <key>ranges</key>
1467 // CHECK-NEXT:      <array>
1468 // CHECK-NEXT:        <array>
1469 // CHECK-NEXT:         <dict>
1470 // CHECK-NEXT:          <key>line</key><integer>125</integer>
1471 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1472 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1473 // CHECK-NEXT:         </dict>
1474 // CHECK-NEXT:         <dict>
1475 // CHECK-NEXT:          <key>line</key><integer>125</integer>
1476 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1477 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1478 // CHECK-NEXT:         </dict>
1479 // CHECK-NEXT:        </array>
1480 // CHECK-NEXT:      </array>
1481 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1482 // CHECK-NEXT:      <key>extended_message</key>
1483 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1484 // CHECK-NEXT:      <key>message</key>
1485 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1486 // CHECK-NEXT:     </dict>
1487 // CHECK-NEXT:     <dict>
1488 // CHECK-NEXT:      <key>kind</key><string>control</string>
1489 // CHECK-NEXT:      <key>edges</key>
1490 // CHECK-NEXT:       <array>
1491 // CHECK-NEXT:        <dict>
1492 // CHECK-NEXT:         <key>start</key>
1493 // CHECK-NEXT:          <array>
1494 // CHECK-NEXT:           <dict>
1495 // CHECK-NEXT:            <key>line</key><integer>125</integer>
1496 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1497 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1498 // CHECK-NEXT:           </dict>
1499 // CHECK-NEXT:           <dict>
1500 // CHECK-NEXT:            <key>line</key><integer>125</integer>
1501 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1502 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1503 // CHECK-NEXT:           </dict>
1504 // CHECK-NEXT:          </array>
1505 // CHECK-NEXT:         <key>end</key>
1506 // CHECK-NEXT:          <array>
1507 // CHECK-NEXT:           <dict>
1508 // CHECK-NEXT:            <key>line</key><integer>130</integer>
1509 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1510 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1511 // CHECK-NEXT:           </dict>
1512 // CHECK-NEXT:           <dict>
1513 // CHECK-NEXT:            <key>line</key><integer>130</integer>
1514 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1515 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1516 // CHECK-NEXT:           </dict>
1517 // CHECK-NEXT:          </array>
1518 // CHECK-NEXT:        </dict>
1519 // CHECK-NEXT:       </array>
1520 // CHECK-NEXT:     </dict>
1521 // CHECK-NEXT:     <dict>
1522 // CHECK-NEXT:      <key>kind</key><string>event</string>
1523 // CHECK-NEXT:      <key>location</key>
1524 // CHECK-NEXT:      <dict>
1525 // CHECK-NEXT:       <key>line</key><integer>130</integer>
1526 // CHECK-NEXT:       <key>col</key><integer>3</integer>
1527 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1528 // CHECK-NEXT:      </dict>
1529 // CHECK-NEXT:      <key>ranges</key>
1530 // CHECK-NEXT:      <array>
1531 // CHECK-NEXT:        <array>
1532 // CHECK-NEXT:         <dict>
1533 // CHECK-NEXT:          <key>line</key><integer>130</integer>
1534 // CHECK-NEXT:          <key>col</key><integer>16</integer>
1535 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1536 // CHECK-NEXT:         </dict>
1537 // CHECK-NEXT:         <dict>
1538 // CHECK-NEXT:          <key>line</key><integer>130</integer>
1539 // CHECK-NEXT:          <key>col</key><integer>38</integer>
1540 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1541 // CHECK-NEXT:         </dict>
1542 // CHECK-NEXT:        </array>
1543 // CHECK-NEXT:      </array>
1544 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1545 // CHECK-NEXT:      <key>extended_message</key>
1546 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1547 // CHECK-NEXT:      <key>message</key>
1548 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1549 // CHECK-NEXT:     </dict>
1550 // CHECK-NEXT:    </array>
1551 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1552 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1553 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1554 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1555 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1556 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>7de91182a5d6e40a85fa3b91cf3fd089</string>
1557 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1558 // CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1559 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>6</string>
1560 // CHECK-NEXT:   <key>location</key>
1561 // CHECK-NEXT:   <dict>
1562 // CHECK-NEXT:    <key>line</key><integer>130</integer>
1563 // CHECK-NEXT:    <key>col</key><integer>3</integer>
1564 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1565 // CHECK-NEXT:   </dict>
1566 // CHECK-NEXT:   </dict>
1567 // CHECK-NEXT:   <dict>
1568 // CHECK-NEXT:    <key>path</key>
1569 // CHECK-NEXT:    <array>
1570 // CHECK-NEXT:     <dict>
1571 // CHECK-NEXT:      <key>kind</key><string>event</string>
1572 // CHECK-NEXT:      <key>location</key>
1573 // CHECK-NEXT:      <dict>
1574 // CHECK-NEXT:       <key>line</key><integer>135</integer>
1575 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1576 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1577 // CHECK-NEXT:      </dict>
1578 // CHECK-NEXT:      <key>ranges</key>
1579 // CHECK-NEXT:      <array>
1580 // CHECK-NEXT:        <array>
1581 // CHECK-NEXT:         <dict>
1582 // CHECK-NEXT:          <key>line</key><integer>135</integer>
1583 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1584 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1585 // CHECK-NEXT:         </dict>
1586 // CHECK-NEXT:         <dict>
1587 // CHECK-NEXT:          <key>line</key><integer>135</integer>
1588 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1589 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1590 // CHECK-NEXT:         </dict>
1591 // CHECK-NEXT:        </array>
1592 // CHECK-NEXT:      </array>
1593 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1594 // CHECK-NEXT:      <key>extended_message</key>
1595 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1596 // CHECK-NEXT:      <key>message</key>
1597 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1598 // CHECK-NEXT:     </dict>
1599 // CHECK-NEXT:     <dict>
1600 // CHECK-NEXT:      <key>kind</key><string>control</string>
1601 // CHECK-NEXT:      <key>edges</key>
1602 // CHECK-NEXT:       <array>
1603 // CHECK-NEXT:        <dict>
1604 // CHECK-NEXT:         <key>start</key>
1605 // CHECK-NEXT:          <array>
1606 // CHECK-NEXT:           <dict>
1607 // CHECK-NEXT:            <key>line</key><integer>135</integer>
1608 // CHECK-NEXT:            <key>col</key><integer>3</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>135</integer>
1613 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1614 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1615 // CHECK-NEXT:           </dict>
1616 // CHECK-NEXT:          </array>
1617 // CHECK-NEXT:         <key>end</key>
1618 // CHECK-NEXT:          <array>
1619 // CHECK-NEXT:           <dict>
1620 // CHECK-NEXT:            <key>line</key><integer>136</integer>
1621 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1622 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1623 // CHECK-NEXT:           </dict>
1624 // CHECK-NEXT:           <dict>
1625 // CHECK-NEXT:            <key>line</key><integer>136</integer>
1626 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1627 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1628 // CHECK-NEXT:           </dict>
1629 // CHECK-NEXT:          </array>
1630 // CHECK-NEXT:        </dict>
1631 // CHECK-NEXT:       </array>
1632 // CHECK-NEXT:     </dict>
1633 // CHECK-NEXT:     <dict>
1634 // CHECK-NEXT:      <key>kind</key><string>control</string>
1635 // CHECK-NEXT:      <key>edges</key>
1636 // CHECK-NEXT:       <array>
1637 // CHECK-NEXT:        <dict>
1638 // CHECK-NEXT:         <key>start</key>
1639 // CHECK-NEXT:          <array>
1640 // CHECK-NEXT:           <dict>
1641 // CHECK-NEXT:            <key>line</key><integer>136</integer>
1642 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1643 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1644 // CHECK-NEXT:           </dict>
1645 // CHECK-NEXT:           <dict>
1646 // CHECK-NEXT:            <key>line</key><integer>136</integer>
1647 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1648 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1649 // CHECK-NEXT:           </dict>
1650 // CHECK-NEXT:          </array>
1651 // CHECK-NEXT:         <key>end</key>
1652 // CHECK-NEXT:          <array>
1653 // CHECK-NEXT:           <dict>
1654 // CHECK-NEXT:            <key>line</key><integer>136</integer>
1655 // CHECK-NEXT:            <key>col</key><integer>7</integer>
1656 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1657 // CHECK-NEXT:           </dict>
1658 // CHECK-NEXT:           <dict>
1659 // CHECK-NEXT:            <key>line</key><integer>136</integer>
1660 // CHECK-NEXT:            <key>col</key><integer>7</integer>
1661 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1662 // CHECK-NEXT:           </dict>
1663 // CHECK-NEXT:          </array>
1664 // CHECK-NEXT:        </dict>
1665 // CHECK-NEXT:       </array>
1666 // CHECK-NEXT:     </dict>
1667 // CHECK-NEXT:     <dict>
1668 // CHECK-NEXT:      <key>kind</key><string>event</string>
1669 // CHECK-NEXT:      <key>location</key>
1670 // CHECK-NEXT:      <dict>
1671 // CHECK-NEXT:       <key>line</key><integer>136</integer>
1672 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1673 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1674 // CHECK-NEXT:      </dict>
1675 // CHECK-NEXT:      <key>ranges</key>
1676 // CHECK-NEXT:      <array>
1677 // CHECK-NEXT:        <array>
1678 // CHECK-NEXT:         <dict>
1679 // CHECK-NEXT:          <key>line</key><integer>136</integer>
1680 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1681 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1682 // CHECK-NEXT:         </dict>
1683 // CHECK-NEXT:         <dict>
1684 // CHECK-NEXT:          <key>line</key><integer>136</integer>
1685 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1686 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1687 // CHECK-NEXT:         </dict>
1688 // CHECK-NEXT:        </array>
1689 // CHECK-NEXT:      </array>
1690 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1691 // CHECK-NEXT:      <key>extended_message</key>
1692 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1693 // CHECK-NEXT:      <key>message</key>
1694 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1695 // CHECK-NEXT:     </dict>
1696 // CHECK-NEXT:    </array>
1697 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1698 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1699 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1700 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1701 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1702 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>8960776d84319407ac2bf7a1531d19b0</string>
1703 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1704 // CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1705 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
1706 // CHECK-NEXT:   <key>location</key>
1707 // CHECK-NEXT:   <dict>
1708 // CHECK-NEXT:    <key>line</key><integer>136</integer>
1709 // CHECK-NEXT:    <key>col</key><integer>7</integer>
1710 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1711 // CHECK-NEXT:   </dict>
1712 // CHECK-NEXT:   </dict>
1713 // CHECK-NEXT:   <dict>
1714 // CHECK-NEXT:    <key>path</key>
1715 // CHECK-NEXT:    <array>
1716 // CHECK-NEXT:     <dict>
1717 // CHECK-NEXT:      <key>kind</key><string>event</string>
1718 // CHECK-NEXT:      <key>location</key>
1719 // CHECK-NEXT:      <dict>
1720 // CHECK-NEXT:       <key>line</key><integer>135</integer>
1721 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1722 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1723 // CHECK-NEXT:      </dict>
1724 // CHECK-NEXT:      <key>ranges</key>
1725 // CHECK-NEXT:      <array>
1726 // CHECK-NEXT:        <array>
1727 // CHECK-NEXT:         <dict>
1728 // CHECK-NEXT:          <key>line</key><integer>135</integer>
1729 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1730 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1731 // CHECK-NEXT:         </dict>
1732 // CHECK-NEXT:         <dict>
1733 // CHECK-NEXT:          <key>line</key><integer>135</integer>
1734 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1735 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1736 // CHECK-NEXT:         </dict>
1737 // CHECK-NEXT:        </array>
1738 // CHECK-NEXT:      </array>
1739 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1740 // CHECK-NEXT:      <key>extended_message</key>
1741 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1742 // CHECK-NEXT:      <key>message</key>
1743 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1744 // CHECK-NEXT:     </dict>
1745 // CHECK-NEXT:     <dict>
1746 // CHECK-NEXT:      <key>kind</key><string>control</string>
1747 // CHECK-NEXT:      <key>edges</key>
1748 // CHECK-NEXT:       <array>
1749 // CHECK-NEXT:        <dict>
1750 // CHECK-NEXT:         <key>start</key>
1751 // CHECK-NEXT:          <array>
1752 // CHECK-NEXT:           <dict>
1753 // CHECK-NEXT:            <key>line</key><integer>135</integer>
1754 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1755 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1756 // CHECK-NEXT:           </dict>
1757 // CHECK-NEXT:           <dict>
1758 // CHECK-NEXT:            <key>line</key><integer>135</integer>
1759 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1760 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1761 // CHECK-NEXT:           </dict>
1762 // CHECK-NEXT:          </array>
1763 // CHECK-NEXT:         <key>end</key>
1764 // CHECK-NEXT:          <array>
1765 // CHECK-NEXT:           <dict>
1766 // CHECK-NEXT:            <key>line</key><integer>139</integer>
1767 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1768 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1769 // CHECK-NEXT:           </dict>
1770 // CHECK-NEXT:           <dict>
1771 // CHECK-NEXT:            <key>line</key><integer>139</integer>
1772 // CHECK-NEXT:            <key>col</key><integer>9</integer>
1773 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1774 // CHECK-NEXT:           </dict>
1775 // CHECK-NEXT:          </array>
1776 // CHECK-NEXT:        </dict>
1777 // CHECK-NEXT:       </array>
1778 // CHECK-NEXT:     </dict>
1779 // CHECK-NEXT:     <dict>
1780 // CHECK-NEXT:      <key>kind</key><string>control</string>
1781 // CHECK-NEXT:      <key>edges</key>
1782 // CHECK-NEXT:       <array>
1783 // CHECK-NEXT:        <dict>
1784 // CHECK-NEXT:         <key>start</key>
1785 // CHECK-NEXT:          <array>
1786 // CHECK-NEXT:           <dict>
1787 // CHECK-NEXT:            <key>line</key><integer>139</integer>
1788 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1789 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1790 // CHECK-NEXT:           </dict>
1791 // CHECK-NEXT:           <dict>
1792 // CHECK-NEXT:            <key>line</key><integer>139</integer>
1793 // CHECK-NEXT:            <key>col</key><integer>9</integer>
1794 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1795 // CHECK-NEXT:           </dict>
1796 // CHECK-NEXT:          </array>
1797 // CHECK-NEXT:         <key>end</key>
1798 // CHECK-NEXT:          <array>
1799 // CHECK-NEXT:           <dict>
1800 // CHECK-NEXT:            <key>line</key><integer>139</integer>
1801 // CHECK-NEXT:            <key>col</key><integer>11</integer>
1802 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1803 // CHECK-NEXT:           </dict>
1804 // CHECK-NEXT:           <dict>
1805 // CHECK-NEXT:            <key>line</key><integer>139</integer>
1806 // CHECK-NEXT:            <key>col</key><integer>11</integer>
1807 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1808 // CHECK-NEXT:           </dict>
1809 // CHECK-NEXT:          </array>
1810 // CHECK-NEXT:        </dict>
1811 // CHECK-NEXT:       </array>
1812 // CHECK-NEXT:     </dict>
1813 // CHECK-NEXT:     <dict>
1814 // CHECK-NEXT:      <key>kind</key><string>event</string>
1815 // CHECK-NEXT:      <key>location</key>
1816 // CHECK-NEXT:      <dict>
1817 // CHECK-NEXT:       <key>line</key><integer>139</integer>
1818 // CHECK-NEXT:       <key>col</key><integer>11</integer>
1819 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1820 // CHECK-NEXT:      </dict>
1821 // CHECK-NEXT:      <key>ranges</key>
1822 // CHECK-NEXT:      <array>
1823 // CHECK-NEXT:        <array>
1824 // CHECK-NEXT:         <dict>
1825 // CHECK-NEXT:          <key>line</key><integer>139</integer>
1826 // CHECK-NEXT:          <key>col</key><integer>11</integer>
1827 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1828 // CHECK-NEXT:         </dict>
1829 // CHECK-NEXT:         <dict>
1830 // CHECK-NEXT:          <key>line</key><integer>139</integer>
1831 // CHECK-NEXT:          <key>col</key><integer>11</integer>
1832 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1833 // CHECK-NEXT:         </dict>
1834 // CHECK-NEXT:        </array>
1835 // CHECK-NEXT:      </array>
1836 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1837 // CHECK-NEXT:      <key>extended_message</key>
1838 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1839 // CHECK-NEXT:      <key>message</key>
1840 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1841 // CHECK-NEXT:     </dict>
1842 // CHECK-NEXT:    </array>
1843 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1844 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1845 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1846 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1847 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1848 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>93b114c7a385294dce5c25ed04a8b25a</string>
1849 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1850 // CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1851 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
1852 // CHECK-NEXT:   <key>location</key>
1853 // CHECK-NEXT:   <dict>
1854 // CHECK-NEXT:    <key>line</key><integer>139</integer>
1855 // CHECK-NEXT:    <key>col</key><integer>11</integer>
1856 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1857 // CHECK-NEXT:   </dict>
1858 // CHECK-NEXT:   </dict>
1859 // CHECK-NEXT:   <dict>
1860 // CHECK-NEXT:    <key>path</key>
1861 // CHECK-NEXT:    <array>
1862 // CHECK-NEXT:     <dict>
1863 // CHECK-NEXT:      <key>kind</key><string>event</string>
1864 // CHECK-NEXT:      <key>location</key>
1865 // CHECK-NEXT:      <dict>
1866 // CHECK-NEXT:       <key>line</key><integer>135</integer>
1867 // CHECK-NEXT:       <key>col</key><integer>7</integer>
1868 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1869 // CHECK-NEXT:      </dict>
1870 // CHECK-NEXT:      <key>ranges</key>
1871 // CHECK-NEXT:      <array>
1872 // CHECK-NEXT:        <array>
1873 // CHECK-NEXT:         <dict>
1874 // CHECK-NEXT:          <key>line</key><integer>135</integer>
1875 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1876 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1877 // CHECK-NEXT:         </dict>
1878 // CHECK-NEXT:         <dict>
1879 // CHECK-NEXT:          <key>line</key><integer>135</integer>
1880 // CHECK-NEXT:          <key>col</key><integer>7</integer>
1881 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1882 // CHECK-NEXT:         </dict>
1883 // CHECK-NEXT:        </array>
1884 // CHECK-NEXT:      </array>
1885 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1886 // CHECK-NEXT:      <key>extended_message</key>
1887 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1888 // CHECK-NEXT:      <key>message</key>
1889 // CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1890 // CHECK-NEXT:     </dict>
1891 // CHECK-NEXT:     <dict>
1892 // CHECK-NEXT:      <key>kind</key><string>control</string>
1893 // CHECK-NEXT:      <key>edges</key>
1894 // CHECK-NEXT:       <array>
1895 // CHECK-NEXT:        <dict>
1896 // CHECK-NEXT:         <key>start</key>
1897 // CHECK-NEXT:          <array>
1898 // CHECK-NEXT:           <dict>
1899 // CHECK-NEXT:            <key>line</key><integer>135</integer>
1900 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1901 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1902 // CHECK-NEXT:           </dict>
1903 // CHECK-NEXT:           <dict>
1904 // CHECK-NEXT:            <key>line</key><integer>135</integer>
1905 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1906 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1907 // CHECK-NEXT:           </dict>
1908 // CHECK-NEXT:          </array>
1909 // CHECK-NEXT:         <key>end</key>
1910 // CHECK-NEXT:          <array>
1911 // CHECK-NEXT:           <dict>
1912 // CHECK-NEXT:            <key>line</key><integer>141</integer>
1913 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1914 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1915 // CHECK-NEXT:           </dict>
1916 // CHECK-NEXT:           <dict>
1917 // CHECK-NEXT:            <key>line</key><integer>141</integer>
1918 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1919 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1920 // CHECK-NEXT:           </dict>
1921 // CHECK-NEXT:          </array>
1922 // CHECK-NEXT:        </dict>
1923 // CHECK-NEXT:       </array>
1924 // CHECK-NEXT:     </dict>
1925 // CHECK-NEXT:     <dict>
1926 // CHECK-NEXT:      <key>kind</key><string>event</string>
1927 // CHECK-NEXT:      <key>location</key>
1928 // CHECK-NEXT:      <dict>
1929 // CHECK-NEXT:       <key>line</key><integer>141</integer>
1930 // CHECK-NEXT:       <key>col</key><integer>3</integer>
1931 // CHECK-NEXT:       <key>file</key><integer>0</integer>
1932 // CHECK-NEXT:      </dict>
1933 // CHECK-NEXT:      <key>ranges</key>
1934 // CHECK-NEXT:      <array>
1935 // CHECK-NEXT:        <array>
1936 // CHECK-NEXT:         <dict>
1937 // CHECK-NEXT:          <key>line</key><integer>141</integer>
1938 // CHECK-NEXT:          <key>col</key><integer>16</integer>
1939 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1940 // CHECK-NEXT:         </dict>
1941 // CHECK-NEXT:         <dict>
1942 // CHECK-NEXT:          <key>line</key><integer>141</integer>
1943 // CHECK-NEXT:          <key>col</key><integer>38</integer>
1944 // CHECK-NEXT:          <key>file</key><integer>0</integer>
1945 // CHECK-NEXT:         </dict>
1946 // CHECK-NEXT:        </array>
1947 // CHECK-NEXT:      </array>
1948 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
1949 // CHECK-NEXT:      <key>extended_message</key>
1950 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1951 // CHECK-NEXT:      <key>message</key>
1952 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1953 // CHECK-NEXT:     </dict>
1954 // CHECK-NEXT:    </array>
1955 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1956 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1957 // CHECK-NEXT:    <key>type</key><string>Generics</string>
1958 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1959 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1960 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>4c17f22d7e977f3343d2e2129b9229c3</string>
1961 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1962 // CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1963 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
1964 // CHECK-NEXT:   <key>location</key>
1965 // CHECK-NEXT:   <dict>
1966 // CHECK-NEXT:    <key>line</key><integer>141</integer>
1967 // CHECK-NEXT:    <key>col</key><integer>3</integer>
1968 // CHECK-NEXT:    <key>file</key><integer>0</integer>
1969 // CHECK-NEXT:   </dict>
1970 // CHECK-NEXT:   </dict>
1971 // CHECK-NEXT:   <dict>
1972 // CHECK-NEXT:    <key>path</key>
1973 // CHECK-NEXT:    <array>
1974 // CHECK-NEXT:     <dict>
1975 // CHECK-NEXT:      <key>kind</key><string>control</string>
1976 // CHECK-NEXT:      <key>edges</key>
1977 // CHECK-NEXT:       <array>
1978 // CHECK-NEXT:        <dict>
1979 // CHECK-NEXT:         <key>start</key>
1980 // CHECK-NEXT:          <array>
1981 // CHECK-NEXT:           <dict>
1982 // CHECK-NEXT:            <key>line</key><integer>146</integer>
1983 // CHECK-NEXT:            <key>col</key><integer>3</integer>
1984 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1985 // CHECK-NEXT:           </dict>
1986 // CHECK-NEXT:           <dict>
1987 // CHECK-NEXT:            <key>line</key><integer>146</integer>
1988 // CHECK-NEXT:            <key>col</key><integer>4</integer>
1989 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1990 // CHECK-NEXT:           </dict>
1991 // CHECK-NEXT:          </array>
1992 // CHECK-NEXT:         <key>end</key>
1993 // CHECK-NEXT:          <array>
1994 // CHECK-NEXT:           <dict>
1995 // CHECK-NEXT:            <key>line</key><integer>146</integer>
1996 // CHECK-NEXT:            <key>col</key><integer>7</integer>
1997 // CHECK-NEXT:            <key>file</key><integer>0</integer>
1998 // CHECK-NEXT:           </dict>
1999 // CHECK-NEXT:           <dict>
2000 // CHECK-NEXT:            <key>line</key><integer>146</integer>
2001 // CHECK-NEXT:            <key>col</key><integer>16</integer>
2002 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2003 // CHECK-NEXT:           </dict>
2004 // CHECK-NEXT:          </array>
2005 // CHECK-NEXT:        </dict>
2006 // CHECK-NEXT:       </array>
2007 // CHECK-NEXT:     </dict>
2008 // CHECK-NEXT:     <dict>
2009 // CHECK-NEXT:      <key>kind</key><string>event</string>
2010 // CHECK-NEXT:      <key>location</key>
2011 // CHECK-NEXT:      <dict>
2012 // CHECK-NEXT:       <key>line</key><integer>146</integer>
2013 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2014 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2015 // CHECK-NEXT:      </dict>
2016 // CHECK-NEXT:      <key>ranges</key>
2017 // CHECK-NEXT:      <array>
2018 // CHECK-NEXT:        <array>
2019 // CHECK-NEXT:         <dict>
2020 // CHECK-NEXT:          <key>line</key><integer>146</integer>
2021 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2022 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2023 // CHECK-NEXT:         </dict>
2024 // CHECK-NEXT:         <dict>
2025 // CHECK-NEXT:          <key>line</key><integer>146</integer>
2026 // CHECK-NEXT:          <key>col</key><integer>23</integer>
2027 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2028 // CHECK-NEXT:         </dict>
2029 // CHECK-NEXT:        </array>
2030 // CHECK-NEXT:      </array>
2031 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2032 // CHECK-NEXT:      <key>extended_message</key>
2033 // CHECK-NEXT:      <string>Assuming the condition is false</string>
2034 // CHECK-NEXT:      <key>message</key>
2035 // CHECK-NEXT:      <string>Assuming the condition is false</string>
2036 // CHECK-NEXT:     </dict>
2037 // CHECK-NEXT:     <dict>
2038 // CHECK-NEXT:      <key>kind</key><string>control</string>
2039 // CHECK-NEXT:      <key>edges</key>
2040 // CHECK-NEXT:       <array>
2041 // CHECK-NEXT:        <dict>
2042 // CHECK-NEXT:         <key>start</key>
2043 // CHECK-NEXT:          <array>
2044 // CHECK-NEXT:           <dict>
2045 // CHECK-NEXT:            <key>line</key><integer>146</integer>
2046 // CHECK-NEXT:            <key>col</key><integer>7</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>146</integer>
2051 // CHECK-NEXT:            <key>col</key><integer>16</integer>
2052 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2053 // CHECK-NEXT:           </dict>
2054 // CHECK-NEXT:          </array>
2055 // CHECK-NEXT:         <key>end</key>
2056 // CHECK-NEXT:          <array>
2057 // CHECK-NEXT:           <dict>
2058 // CHECK-NEXT:            <key>line</key><integer>150</integer>
2059 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2060 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2061 // CHECK-NEXT:           </dict>
2062 // CHECK-NEXT:           <dict>
2063 // CHECK-NEXT:            <key>line</key><integer>150</integer>
2064 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2065 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2066 // CHECK-NEXT:           </dict>
2067 // CHECK-NEXT:          </array>
2068 // CHECK-NEXT:        </dict>
2069 // CHECK-NEXT:       </array>
2070 // CHECK-NEXT:     </dict>
2071 // CHECK-NEXT:     <dict>
2072 // CHECK-NEXT:      <key>kind</key><string>event</string>
2073 // CHECK-NEXT:      <key>location</key>
2074 // CHECK-NEXT:      <dict>
2075 // CHECK-NEXT:       <key>line</key><integer>150</integer>
2076 // CHECK-NEXT:       <key>col</key><integer>9</integer>
2077 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2078 // CHECK-NEXT:      </dict>
2079 // CHECK-NEXT:      <key>ranges</key>
2080 // CHECK-NEXT:      <array>
2081 // CHECK-NEXT:        <array>
2082 // CHECK-NEXT:         <dict>
2083 // CHECK-NEXT:          <key>line</key><integer>150</integer>
2084 // CHECK-NEXT:          <key>col</key><integer>9</integer>
2085 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2086 // CHECK-NEXT:         </dict>
2087 // CHECK-NEXT:         <dict>
2088 // CHECK-NEXT:          <key>line</key><integer>150</integer>
2089 // CHECK-NEXT:          <key>col</key><integer>9</integer>
2090 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2091 // CHECK-NEXT:         </dict>
2092 // CHECK-NEXT:        </array>
2093 // CHECK-NEXT:      </array>
2094 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2095 // CHECK-NEXT:      <key>extended_message</key>
2096 // 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>
2097 // CHECK-NEXT:      <key>message</key>
2098 // 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>
2099 // CHECK-NEXT:     </dict>
2100 // CHECK-NEXT:     <dict>
2101 // CHECK-NEXT:      <key>kind</key><string>control</string>
2102 // CHECK-NEXT:      <key>edges</key>
2103 // CHECK-NEXT:       <array>
2104 // CHECK-NEXT:        <dict>
2105 // CHECK-NEXT:         <key>start</key>
2106 // CHECK-NEXT:          <array>
2107 // CHECK-NEXT:           <dict>
2108 // CHECK-NEXT:            <key>line</key><integer>150</integer>
2109 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2110 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2111 // CHECK-NEXT:           </dict>
2112 // CHECK-NEXT:           <dict>
2113 // CHECK-NEXT:            <key>line</key><integer>150</integer>
2114 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2115 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2116 // CHECK-NEXT:           </dict>
2117 // CHECK-NEXT:          </array>
2118 // CHECK-NEXT:         <key>end</key>
2119 // CHECK-NEXT:          <array>
2120 // CHECK-NEXT:           <dict>
2121 // CHECK-NEXT:            <key>line</key><integer>151</integer>
2122 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2123 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2124 // CHECK-NEXT:           </dict>
2125 // CHECK-NEXT:           <dict>
2126 // CHECK-NEXT:            <key>line</key><integer>151</integer>
2127 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2128 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2129 // CHECK-NEXT:           </dict>
2130 // CHECK-NEXT:          </array>
2131 // CHECK-NEXT:        </dict>
2132 // CHECK-NEXT:       </array>
2133 // CHECK-NEXT:     </dict>
2134 // CHECK-NEXT:     <dict>
2135 // CHECK-NEXT:      <key>kind</key><string>control</string>
2136 // CHECK-NEXT:      <key>edges</key>
2137 // CHECK-NEXT:       <array>
2138 // CHECK-NEXT:        <dict>
2139 // CHECK-NEXT:         <key>start</key>
2140 // CHECK-NEXT:          <array>
2141 // CHECK-NEXT:           <dict>
2142 // CHECK-NEXT:            <key>line</key><integer>151</integer>
2143 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2144 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2145 // CHECK-NEXT:           </dict>
2146 // CHECK-NEXT:           <dict>
2147 // CHECK-NEXT:            <key>line</key><integer>151</integer>
2148 // CHECK-NEXT:            <key>col</key><integer>5</integer>
2149 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2150 // CHECK-NEXT:           </dict>
2151 // CHECK-NEXT:          </array>
2152 // CHECK-NEXT:         <key>end</key>
2153 // CHECK-NEXT:          <array>
2154 // CHECK-NEXT:           <dict>
2155 // CHECK-NEXT:            <key>line</key><integer>153</integer>
2156 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2157 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2158 // CHECK-NEXT:           </dict>
2159 // CHECK-NEXT:           <dict>
2160 // CHECK-NEXT:            <key>line</key><integer>153</integer>
2161 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2162 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2163 // CHECK-NEXT:           </dict>
2164 // CHECK-NEXT:          </array>
2165 // CHECK-NEXT:        </dict>
2166 // CHECK-NEXT:       </array>
2167 // CHECK-NEXT:     </dict>
2168 // CHECK-NEXT:     <dict>
2169 // CHECK-NEXT:      <key>kind</key><string>event</string>
2170 // CHECK-NEXT:      <key>location</key>
2171 // CHECK-NEXT:      <dict>
2172 // CHECK-NEXT:       <key>line</key><integer>153</integer>
2173 // CHECK-NEXT:       <key>col</key><integer>3</integer>
2174 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2175 // CHECK-NEXT:      </dict>
2176 // CHECK-NEXT:      <key>ranges</key>
2177 // CHECK-NEXT:      <array>
2178 // CHECK-NEXT:        <array>
2179 // CHECK-NEXT:         <dict>
2180 // CHECK-NEXT:          <key>line</key><integer>153</integer>
2181 // CHECK-NEXT:          <key>col</key><integer>17</integer>
2182 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2183 // CHECK-NEXT:         </dict>
2184 // CHECK-NEXT:         <dict>
2185 // CHECK-NEXT:          <key>line</key><integer>153</integer>
2186 // CHECK-NEXT:          <key>col</key><integer>39</integer>
2187 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2188 // CHECK-NEXT:         </dict>
2189 // CHECK-NEXT:        </array>
2190 // CHECK-NEXT:      </array>
2191 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2192 // CHECK-NEXT:      <key>extended_message</key>
2193 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2194 // CHECK-NEXT:      <key>message</key>
2195 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2196 // CHECK-NEXT:     </dict>
2197 // CHECK-NEXT:    </array>
2198 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2199 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2200 // CHECK-NEXT:    <key>type</key><string>Generics</string>
2201 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2202 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2203 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>24a08781e7d8971a7d8f8f607ce40074</string>
2204 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2205 // CHECK-NEXT:   <key>issue_context</key><string>pathSensitiveInference</string>
2206 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>8</string>
2207 // CHECK-NEXT:   <key>location</key>
2208 // CHECK-NEXT:   <dict>
2209 // CHECK-NEXT:    <key>line</key><integer>153</integer>
2210 // CHECK-NEXT:    <key>col</key><integer>3</integer>
2211 // CHECK-NEXT:    <key>file</key><integer>0</integer>
2212 // CHECK-NEXT:   </dict>
2213 // CHECK-NEXT:   </dict>
2214 // CHECK-NEXT:   <dict>
2215 // CHECK-NEXT:    <key>path</key>
2216 // CHECK-NEXT:    <array>
2217 // CHECK-NEXT:     <dict>
2218 // CHECK-NEXT:      <key>kind</key><string>event</string>
2219 // CHECK-NEXT:      <key>location</key>
2220 // CHECK-NEXT:      <dict>
2221 // CHECK-NEXT:       <key>line</key><integer>158</integer>
2222 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2223 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2224 // CHECK-NEXT:      </dict>
2225 // CHECK-NEXT:      <key>ranges</key>
2226 // CHECK-NEXT:      <array>
2227 // CHECK-NEXT:        <array>
2228 // CHECK-NEXT:         <dict>
2229 // CHECK-NEXT:          <key>line</key><integer>158</integer>
2230 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2231 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2232 // CHECK-NEXT:         </dict>
2233 // CHECK-NEXT:         <dict>
2234 // CHECK-NEXT:          <key>line</key><integer>158</integer>
2235 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2236 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2237 // CHECK-NEXT:         </dict>
2238 // CHECK-NEXT:        </array>
2239 // CHECK-NEXT:      </array>
2240 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2241 // CHECK-NEXT:      <key>extended_message</key>
2242 // 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>
2243 // CHECK-NEXT:      <key>message</key>
2244 // 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>
2245 // CHECK-NEXT:     </dict>
2246 // CHECK-NEXT:     <dict>
2247 // CHECK-NEXT:      <key>kind</key><string>control</string>
2248 // CHECK-NEXT:      <key>edges</key>
2249 // CHECK-NEXT:       <array>
2250 // CHECK-NEXT:        <dict>
2251 // CHECK-NEXT:         <key>start</key>
2252 // CHECK-NEXT:          <array>
2253 // CHECK-NEXT:           <dict>
2254 // CHECK-NEXT:            <key>line</key><integer>158</integer>
2255 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2256 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2257 // CHECK-NEXT:           </dict>
2258 // CHECK-NEXT:           <dict>
2259 // CHECK-NEXT:            <key>line</key><integer>158</integer>
2260 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2261 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2262 // CHECK-NEXT:           </dict>
2263 // CHECK-NEXT:          </array>
2264 // CHECK-NEXT:         <key>end</key>
2265 // CHECK-NEXT:          <array>
2266 // CHECK-NEXT:           <dict>
2267 // CHECK-NEXT:            <key>line</key><integer>159</integer>
2268 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2269 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2270 // CHECK-NEXT:           </dict>
2271 // CHECK-NEXT:           <dict>
2272 // CHECK-NEXT:            <key>line</key><integer>159</integer>
2273 // CHECK-NEXT:            <key>col</key><integer>9</integer>
2274 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2275 // CHECK-NEXT:           </dict>
2276 // CHECK-NEXT:          </array>
2277 // CHECK-NEXT:        </dict>
2278 // CHECK-NEXT:       </array>
2279 // CHECK-NEXT:     </dict>
2280 // CHECK-NEXT:     <dict>
2281 // CHECK-NEXT:      <key>kind</key><string>control</string>
2282 // CHECK-NEXT:      <key>edges</key>
2283 // CHECK-NEXT:       <array>
2284 // CHECK-NEXT:        <dict>
2285 // CHECK-NEXT:         <key>start</key>
2286 // CHECK-NEXT:          <array>
2287 // CHECK-NEXT:           <dict>
2288 // CHECK-NEXT:            <key>line</key><integer>159</integer>
2289 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2290 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2291 // CHECK-NEXT:           </dict>
2292 // CHECK-NEXT:           <dict>
2293 // CHECK-NEXT:            <key>line</key><integer>159</integer>
2294 // CHECK-NEXT:            <key>col</key><integer>9</integer>
2295 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2296 // CHECK-NEXT:           </dict>
2297 // CHECK-NEXT:          </array>
2298 // CHECK-NEXT:         <key>end</key>
2299 // CHECK-NEXT:          <array>
2300 // CHECK-NEXT:           <dict>
2301 // CHECK-NEXT:            <key>line</key><integer>159</integer>
2302 // CHECK-NEXT:            <key>col</key><integer>11</integer>
2303 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2304 // CHECK-NEXT:           </dict>
2305 // CHECK-NEXT:           <dict>
2306 // CHECK-NEXT:            <key>line</key><integer>159</integer>
2307 // CHECK-NEXT:            <key>col</key><integer>11</integer>
2308 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2309 // CHECK-NEXT:           </dict>
2310 // CHECK-NEXT:          </array>
2311 // CHECK-NEXT:        </dict>
2312 // CHECK-NEXT:       </array>
2313 // CHECK-NEXT:     </dict>
2314 // CHECK-NEXT:     <dict>
2315 // CHECK-NEXT:      <key>kind</key><string>event</string>
2316 // CHECK-NEXT:      <key>location</key>
2317 // CHECK-NEXT:      <dict>
2318 // CHECK-NEXT:       <key>line</key><integer>159</integer>
2319 // CHECK-NEXT:       <key>col</key><integer>11</integer>
2320 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2321 // CHECK-NEXT:      </dict>
2322 // CHECK-NEXT:      <key>ranges</key>
2323 // CHECK-NEXT:      <array>
2324 // CHECK-NEXT:        <array>
2325 // CHECK-NEXT:         <dict>
2326 // CHECK-NEXT:          <key>line</key><integer>159</integer>
2327 // CHECK-NEXT:          <key>col</key><integer>11</integer>
2328 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2329 // CHECK-NEXT:         </dict>
2330 // CHECK-NEXT:         <dict>
2331 // CHECK-NEXT:          <key>line</key><integer>159</integer>
2332 // CHECK-NEXT:          <key>col</key><integer>11</integer>
2333 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2334 // CHECK-NEXT:         </dict>
2335 // CHECK-NEXT:        </array>
2336 // CHECK-NEXT:      </array>
2337 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2338 // CHECK-NEXT:      <key>extended_message</key>
2339 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2340 // CHECK-NEXT:      <key>message</key>
2341 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2342 // CHECK-NEXT:     </dict>
2343 // CHECK-NEXT:    </array>
2344 // 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>
2345 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2346 // CHECK-NEXT:    <key>type</key><string>Generics</string>
2347 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2348 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2349 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>a8534f675404d57d833dc3c371d49845</string>
2350 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2351 // CHECK-NEXT:   <key>issue_context</key><string>verifyAPIusage</string>
2352 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
2353 // CHECK-NEXT:   <key>location</key>
2354 // CHECK-NEXT:   <dict>
2355 // CHECK-NEXT:    <key>line</key><integer>159</integer>
2356 // CHECK-NEXT:    <key>col</key><integer>11</integer>
2357 // CHECK-NEXT:    <key>file</key><integer>0</integer>
2358 // CHECK-NEXT:   </dict>
2359 // CHECK-NEXT:   </dict>
2360 // CHECK-NEXT:   <dict>
2361 // CHECK-NEXT:    <key>path</key>
2362 // CHECK-NEXT:    <array>
2363 // CHECK-NEXT:     <dict>
2364 // CHECK-NEXT:      <key>kind</key><string>event</string>
2365 // CHECK-NEXT:      <key>location</key>
2366 // CHECK-NEXT:      <dict>
2367 // CHECK-NEXT:       <key>line</key><integer>164</integer>
2368 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2369 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2370 // CHECK-NEXT:      </dict>
2371 // CHECK-NEXT:      <key>ranges</key>
2372 // CHECK-NEXT:      <array>
2373 // CHECK-NEXT:        <array>
2374 // CHECK-NEXT:         <dict>
2375 // CHECK-NEXT:          <key>line</key><integer>164</integer>
2376 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2377 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2378 // CHECK-NEXT:         </dict>
2379 // CHECK-NEXT:         <dict>
2380 // CHECK-NEXT:          <key>line</key><integer>164</integer>
2381 // CHECK-NEXT:          <key>col</key><integer>42</integer>
2382 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2383 // CHECK-NEXT:         </dict>
2384 // CHECK-NEXT:        </array>
2385 // CHECK-NEXT:      </array>
2386 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2387 // CHECK-NEXT:      <key>extended_message</key>
2388 // 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>
2389 // CHECK-NEXT:      <key>message</key>
2390 // 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>
2391 // CHECK-NEXT:     </dict>
2392 // CHECK-NEXT:     <dict>
2393 // CHECK-NEXT:      <key>kind</key><string>control</string>
2394 // CHECK-NEXT:      <key>edges</key>
2395 // CHECK-NEXT:       <array>
2396 // CHECK-NEXT:        <dict>
2397 // CHECK-NEXT:         <key>start</key>
2398 // CHECK-NEXT:          <array>
2399 // CHECK-NEXT:           <dict>
2400 // CHECK-NEXT:            <key>line</key><integer>164</integer>
2401 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2402 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2403 // CHECK-NEXT:           </dict>
2404 // CHECK-NEXT:           <dict>
2405 // CHECK-NEXT:            <key>line</key><integer>164</integer>
2406 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2407 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2408 // CHECK-NEXT:           </dict>
2409 // CHECK-NEXT:          </array>
2410 // CHECK-NEXT:         <key>end</key>
2411 // CHECK-NEXT:          <array>
2412 // CHECK-NEXT:           <dict>
2413 // CHECK-NEXT:            <key>line</key><integer>165</integer>
2414 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2415 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2416 // CHECK-NEXT:           </dict>
2417 // CHECK-NEXT:           <dict>
2418 // CHECK-NEXT:            <key>line</key><integer>165</integer>
2419 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2420 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2421 // CHECK-NEXT:           </dict>
2422 // CHECK-NEXT:          </array>
2423 // CHECK-NEXT:        </dict>
2424 // CHECK-NEXT:       </array>
2425 // CHECK-NEXT:     </dict>
2426 // CHECK-NEXT:     <dict>
2427 // CHECK-NEXT:      <key>kind</key><string>event</string>
2428 // CHECK-NEXT:      <key>location</key>
2429 // CHECK-NEXT:      <dict>
2430 // CHECK-NEXT:       <key>line</key><integer>165</integer>
2431 // CHECK-NEXT:       <key>col</key><integer>3</integer>
2432 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2433 // CHECK-NEXT:      </dict>
2434 // CHECK-NEXT:      <key>ranges</key>
2435 // CHECK-NEXT:      <array>
2436 // CHECK-NEXT:        <array>
2437 // CHECK-NEXT:         <dict>
2438 // CHECK-NEXT:          <key>line</key><integer>165</integer>
2439 // CHECK-NEXT:          <key>col</key><integer>17</integer>
2440 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2441 // CHECK-NEXT:         </dict>
2442 // CHECK-NEXT:         <dict>
2443 // CHECK-NEXT:          <key>line</key><integer>165</integer>
2444 // CHECK-NEXT:          <key>col</key><integer>39</integer>
2445 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2446 // CHECK-NEXT:         </dict>
2447 // CHECK-NEXT:        </array>
2448 // CHECK-NEXT:      </array>
2449 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2450 // CHECK-NEXT:      <key>extended_message</key>
2451 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2452 // CHECK-NEXT:      <key>message</key>
2453 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2454 // CHECK-NEXT:     </dict>
2455 // CHECK-NEXT:    </array>
2456 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2457 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2458 // CHECK-NEXT:    <key>type</key><string>Generics</string>
2459 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2460 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2461 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>0549631e5a7fa668375061b6c898e438</string>
2462 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2463 // CHECK-NEXT:   <key>issue_context</key><string>trustExplicitCasts</string>
2464 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
2465 // CHECK-NEXT:   <key>location</key>
2466 // CHECK-NEXT:   <dict>
2467 // CHECK-NEXT:    <key>line</key><integer>165</integer>
2468 // CHECK-NEXT:    <key>col</key><integer>3</integer>
2469 // CHECK-NEXT:    <key>file</key><integer>0</integer>
2470 // CHECK-NEXT:   </dict>
2471 // CHECK-NEXT:   </dict>
2472 // CHECK-NEXT:   <dict>
2473 // CHECK-NEXT:    <key>path</key>
2474 // CHECK-NEXT:    <array>
2475 // CHECK-NEXT:     <dict>
2476 // CHECK-NEXT:      <key>kind</key><string>control</string>
2477 // CHECK-NEXT:      <key>edges</key>
2478 // CHECK-NEXT:       <array>
2479 // CHECK-NEXT:        <dict>
2480 // CHECK-NEXT:         <key>start</key>
2481 // CHECK-NEXT:          <array>
2482 // CHECK-NEXT:           <dict>
2483 // CHECK-NEXT:            <key>line</key><integer>171</integer>
2484 // CHECK-NEXT:            <key>col</key><integer>3</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>171</integer>
2489 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2490 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2491 // CHECK-NEXT:           </dict>
2492 // CHECK-NEXT:          </array>
2493 // CHECK-NEXT:         <key>end</key>
2494 // CHECK-NEXT:          <array>
2495 // CHECK-NEXT:           <dict>
2496 // CHECK-NEXT:            <key>line</key><integer>172</integer>
2497 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2498 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2499 // CHECK-NEXT:           </dict>
2500 // CHECK-NEXT:           <dict>
2501 // CHECK-NEXT:            <key>line</key><integer>172</integer>
2502 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2503 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2504 // CHECK-NEXT:           </dict>
2505 // CHECK-NEXT:          </array>
2506 // CHECK-NEXT:        </dict>
2507 // CHECK-NEXT:       </array>
2508 // CHECK-NEXT:     </dict>
2509 // CHECK-NEXT:     <dict>
2510 // CHECK-NEXT:      <key>kind</key><string>event</string>
2511 // CHECK-NEXT:      <key>location</key>
2512 // CHECK-NEXT:      <dict>
2513 // CHECK-NEXT:       <key>line</key><integer>172</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:      <key>ranges</key>
2518 // CHECK-NEXT:      <array>
2519 // CHECK-NEXT:        <array>
2520 // CHECK-NEXT:         <dict>
2521 // CHECK-NEXT:          <key>line</key><integer>172</integer>
2522 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2523 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2524 // CHECK-NEXT:         </dict>
2525 // CHECK-NEXT:         <dict>
2526 // CHECK-NEXT:          <key>line</key><integer>172</integer>
2527 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2528 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2529 // CHECK-NEXT:         </dict>
2530 // CHECK-NEXT:        </array>
2531 // CHECK-NEXT:      </array>
2532 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2533 // CHECK-NEXT:      <key>extended_message</key>
2534 // 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>
2535 // CHECK-NEXT:      <key>message</key>
2536 // 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>
2537 // CHECK-NEXT:     </dict>
2538 // CHECK-NEXT:     <dict>
2539 // CHECK-NEXT:      <key>kind</key><string>control</string>
2540 // CHECK-NEXT:      <key>edges</key>
2541 // CHECK-NEXT:       <array>
2542 // CHECK-NEXT:        <dict>
2543 // CHECK-NEXT:         <key>start</key>
2544 // CHECK-NEXT:          <array>
2545 // CHECK-NEXT:           <dict>
2546 // CHECK-NEXT:            <key>line</key><integer>172</integer>
2547 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2548 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2549 // CHECK-NEXT:           </dict>
2550 // CHECK-NEXT:           <dict>
2551 // CHECK-NEXT:            <key>line</key><integer>172</integer>
2552 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2553 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2554 // CHECK-NEXT:           </dict>
2555 // CHECK-NEXT:          </array>
2556 // CHECK-NEXT:         <key>end</key>
2557 // CHECK-NEXT:          <array>
2558 // CHECK-NEXT:           <dict>
2559 // CHECK-NEXT:            <key>line</key><integer>173</integer>
2560 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2561 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2562 // CHECK-NEXT:           </dict>
2563 // CHECK-NEXT:           <dict>
2564 // CHECK-NEXT:            <key>line</key><integer>173</integer>
2565 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2566 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2567 // CHECK-NEXT:           </dict>
2568 // CHECK-NEXT:          </array>
2569 // CHECK-NEXT:        </dict>
2570 // CHECK-NEXT:       </array>
2571 // CHECK-NEXT:     </dict>
2572 // CHECK-NEXT:     <dict>
2573 // CHECK-NEXT:      <key>kind</key><string>control</string>
2574 // CHECK-NEXT:      <key>edges</key>
2575 // CHECK-NEXT:       <array>
2576 // CHECK-NEXT:        <dict>
2577 // CHECK-NEXT:         <key>start</key>
2578 // CHECK-NEXT:          <array>
2579 // CHECK-NEXT:           <dict>
2580 // CHECK-NEXT:            <key>line</key><integer>173</integer>
2581 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2582 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2583 // CHECK-NEXT:           </dict>
2584 // CHECK-NEXT:           <dict>
2585 // CHECK-NEXT:            <key>line</key><integer>173</integer>
2586 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2587 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2588 // CHECK-NEXT:           </dict>
2589 // CHECK-NEXT:          </array>
2590 // CHECK-NEXT:         <key>end</key>
2591 // CHECK-NEXT:          <array>
2592 // CHECK-NEXT:           <dict>
2593 // CHECK-NEXT:            <key>line</key><integer>173</integer>
2594 // CHECK-NEXT:            <key>col</key><integer>7</integer>
2595 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2596 // CHECK-NEXT:           </dict>
2597 // CHECK-NEXT:           <dict>
2598 // CHECK-NEXT:            <key>line</key><integer>173</integer>
2599 // CHECK-NEXT:            <key>col</key><integer>7</integer>
2600 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2601 // CHECK-NEXT:           </dict>
2602 // CHECK-NEXT:          </array>
2603 // CHECK-NEXT:        </dict>
2604 // CHECK-NEXT:       </array>
2605 // CHECK-NEXT:     </dict>
2606 // CHECK-NEXT:     <dict>
2607 // CHECK-NEXT:      <key>kind</key><string>event</string>
2608 // CHECK-NEXT:      <key>location</key>
2609 // CHECK-NEXT:      <dict>
2610 // CHECK-NEXT:       <key>line</key><integer>173</integer>
2611 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2612 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2613 // CHECK-NEXT:      </dict>
2614 // CHECK-NEXT:      <key>ranges</key>
2615 // CHECK-NEXT:      <array>
2616 // CHECK-NEXT:        <array>
2617 // CHECK-NEXT:         <dict>
2618 // CHECK-NEXT:          <key>line</key><integer>173</integer>
2619 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2620 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2621 // CHECK-NEXT:         </dict>
2622 // CHECK-NEXT:         <dict>
2623 // CHECK-NEXT:          <key>line</key><integer>173</integer>
2624 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2625 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2626 // CHECK-NEXT:         </dict>
2627 // CHECK-NEXT:        </array>
2628 // CHECK-NEXT:      </array>
2629 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2630 // CHECK-NEXT:      <key>extended_message</key>
2631 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2632 // CHECK-NEXT:      <key>message</key>
2633 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2634 // CHECK-NEXT:     </dict>
2635 // CHECK-NEXT:    </array>
2636 // 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>
2637 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2638 // CHECK-NEXT:    <key>type</key><string>Generics</string>
2639 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2640 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2641 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d113e22b9ee9ded1cd94750c3557eff4</string>
2642 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2643 // CHECK-NEXT:   <key>issue_context</key><string>subtypeOfGeneric</string>
2644 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
2645 // CHECK-NEXT:   <key>location</key>
2646 // CHECK-NEXT:   <dict>
2647 // CHECK-NEXT:    <key>line</key><integer>173</integer>
2648 // CHECK-NEXT:    <key>col</key><integer>7</integer>
2649 // CHECK-NEXT:    <key>file</key><integer>0</integer>
2650 // CHECK-NEXT:   </dict>
2651 // CHECK-NEXT:   </dict>
2652 // CHECK-NEXT:   <dict>
2653 // CHECK-NEXT:    <key>path</key>
2654 // CHECK-NEXT:    <array>
2655 // CHECK-NEXT:     <dict>
2656 // CHECK-NEXT:      <key>kind</key><string>event</string>
2657 // CHECK-NEXT:      <key>location</key>
2658 // CHECK-NEXT:      <dict>
2659 // CHECK-NEXT:       <key>line</key><integer>179</integer>
2660 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2661 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2662 // CHECK-NEXT:      </dict>
2663 // CHECK-NEXT:      <key>ranges</key>
2664 // CHECK-NEXT:      <array>
2665 // CHECK-NEXT:        <array>
2666 // CHECK-NEXT:         <dict>
2667 // CHECK-NEXT:          <key>line</key><integer>179</integer>
2668 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2669 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2670 // CHECK-NEXT:         </dict>
2671 // CHECK-NEXT:         <dict>
2672 // CHECK-NEXT:          <key>line</key><integer>179</integer>
2673 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2674 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2675 // CHECK-NEXT:         </dict>
2676 // CHECK-NEXT:        </array>
2677 // CHECK-NEXT:      </array>
2678 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2679 // CHECK-NEXT:      <key>extended_message</key>
2680 // 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>
2681 // CHECK-NEXT:      <key>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:     </dict>
2684 // CHECK-NEXT:     <dict>
2685 // CHECK-NEXT:      <key>kind</key><string>control</string>
2686 // CHECK-NEXT:      <key>edges</key>
2687 // CHECK-NEXT:       <array>
2688 // CHECK-NEXT:        <dict>
2689 // CHECK-NEXT:         <key>start</key>
2690 // CHECK-NEXT:          <array>
2691 // CHECK-NEXT:           <dict>
2692 // CHECK-NEXT:            <key>line</key><integer>179</integer>
2693 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2694 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2695 // CHECK-NEXT:           </dict>
2696 // CHECK-NEXT:           <dict>
2697 // CHECK-NEXT:            <key>line</key><integer>179</integer>
2698 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2699 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2700 // CHECK-NEXT:           </dict>
2701 // CHECK-NEXT:          </array>
2702 // CHECK-NEXT:         <key>end</key>
2703 // CHECK-NEXT:          <array>
2704 // CHECK-NEXT:           <dict>
2705 // CHECK-NEXT:            <key>line</key><integer>183</integer>
2706 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2707 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2708 // CHECK-NEXT:           </dict>
2709 // CHECK-NEXT:           <dict>
2710 // CHECK-NEXT:            <key>line</key><integer>183</integer>
2711 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2712 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2713 // CHECK-NEXT:           </dict>
2714 // CHECK-NEXT:          </array>
2715 // CHECK-NEXT:        </dict>
2716 // CHECK-NEXT:       </array>
2717 // CHECK-NEXT:     </dict>
2718 // CHECK-NEXT:     <dict>
2719 // CHECK-NEXT:      <key>kind</key><string>control</string>
2720 // CHECK-NEXT:      <key>edges</key>
2721 // CHECK-NEXT:       <array>
2722 // CHECK-NEXT:        <dict>
2723 // CHECK-NEXT:         <key>start</key>
2724 // CHECK-NEXT:          <array>
2725 // CHECK-NEXT:           <dict>
2726 // CHECK-NEXT:            <key>line</key><integer>183</integer>
2727 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2728 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2729 // CHECK-NEXT:           </dict>
2730 // CHECK-NEXT:           <dict>
2731 // CHECK-NEXT:            <key>line</key><integer>183</integer>
2732 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2733 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2734 // CHECK-NEXT:           </dict>
2735 // CHECK-NEXT:          </array>
2736 // CHECK-NEXT:         <key>end</key>
2737 // CHECK-NEXT:          <array>
2738 // CHECK-NEXT:           <dict>
2739 // CHECK-NEXT:            <key>line</key><integer>183</integer>
2740 // CHECK-NEXT:            <key>col</key><integer>7</integer>
2741 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2742 // CHECK-NEXT:           </dict>
2743 // CHECK-NEXT:           <dict>
2744 // CHECK-NEXT:            <key>line</key><integer>183</integer>
2745 // CHECK-NEXT:            <key>col</key><integer>7</integer>
2746 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2747 // CHECK-NEXT:           </dict>
2748 // CHECK-NEXT:          </array>
2749 // CHECK-NEXT:        </dict>
2750 // CHECK-NEXT:       </array>
2751 // CHECK-NEXT:     </dict>
2752 // CHECK-NEXT:     <dict>
2753 // CHECK-NEXT:      <key>kind</key><string>event</string>
2754 // CHECK-NEXT:      <key>location</key>
2755 // CHECK-NEXT:      <dict>
2756 // CHECK-NEXT:       <key>line</key><integer>183</integer>
2757 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2758 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2759 // CHECK-NEXT:      </dict>
2760 // CHECK-NEXT:      <key>ranges</key>
2761 // CHECK-NEXT:      <array>
2762 // CHECK-NEXT:        <array>
2763 // CHECK-NEXT:         <dict>
2764 // CHECK-NEXT:          <key>line</key><integer>183</integer>
2765 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2766 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2767 // CHECK-NEXT:         </dict>
2768 // CHECK-NEXT:         <dict>
2769 // CHECK-NEXT:          <key>line</key><integer>183</integer>
2770 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2771 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2772 // CHECK-NEXT:         </dict>
2773 // CHECK-NEXT:        </array>
2774 // CHECK-NEXT:      </array>
2775 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2776 // CHECK-NEXT:      <key>extended_message</key>
2777 // CHECK-NEXT:      <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2778 // CHECK-NEXT:      <key>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:     </dict>
2781 // CHECK-NEXT:    </array>
2782 // 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>
2783 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2784 // CHECK-NEXT:    <key>type</key><string>Generics</string>
2785 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2786 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2787 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>f1b900572a63726a729714a765595c38</string>
2788 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2789 // CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2790 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
2791 // CHECK-NEXT:   <key>location</key>
2792 // CHECK-NEXT:   <dict>
2793 // CHECK-NEXT:    <key>line</key><integer>183</integer>
2794 // CHECK-NEXT:    <key>col</key><integer>7</integer>
2795 // CHECK-NEXT:    <key>file</key><integer>0</integer>
2796 // CHECK-NEXT:   </dict>
2797 // CHECK-NEXT:   </dict>
2798 // CHECK-NEXT:   <dict>
2799 // CHECK-NEXT:    <key>path</key>
2800 // CHECK-NEXT:    <array>
2801 // CHECK-NEXT:     <dict>
2802 // CHECK-NEXT:      <key>kind</key><string>event</string>
2803 // CHECK-NEXT:      <key>location</key>
2804 // CHECK-NEXT:      <dict>
2805 // CHECK-NEXT:       <key>line</key><integer>179</integer>
2806 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2807 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2808 // CHECK-NEXT:      </dict>
2809 // CHECK-NEXT:      <key>ranges</key>
2810 // CHECK-NEXT:      <array>
2811 // CHECK-NEXT:        <array>
2812 // CHECK-NEXT:         <dict>
2813 // CHECK-NEXT:          <key>line</key><integer>179</integer>
2814 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2815 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2816 // CHECK-NEXT:         </dict>
2817 // CHECK-NEXT:         <dict>
2818 // CHECK-NEXT:          <key>line</key><integer>179</integer>
2819 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2820 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2821 // CHECK-NEXT:         </dict>
2822 // CHECK-NEXT:        </array>
2823 // CHECK-NEXT:      </array>
2824 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2825 // CHECK-NEXT:      <key>extended_message</key>
2826 // 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>
2827 // CHECK-NEXT:      <key>message</key>
2828 // 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>
2829 // CHECK-NEXT:     </dict>
2830 // CHECK-NEXT:     <dict>
2831 // CHECK-NEXT:      <key>kind</key><string>control</string>
2832 // CHECK-NEXT:      <key>edges</key>
2833 // CHECK-NEXT:       <array>
2834 // CHECK-NEXT:        <dict>
2835 // CHECK-NEXT:         <key>start</key>
2836 // CHECK-NEXT:          <array>
2837 // CHECK-NEXT:           <dict>
2838 // CHECK-NEXT:            <key>line</key><integer>179</integer>
2839 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2840 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2841 // CHECK-NEXT:           </dict>
2842 // CHECK-NEXT:           <dict>
2843 // CHECK-NEXT:            <key>line</key><integer>179</integer>
2844 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2845 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2846 // CHECK-NEXT:           </dict>
2847 // CHECK-NEXT:          </array>
2848 // CHECK-NEXT:         <key>end</key>
2849 // CHECK-NEXT:          <array>
2850 // CHECK-NEXT:           <dict>
2851 // CHECK-NEXT:            <key>line</key><integer>185</integer>
2852 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2853 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2854 // CHECK-NEXT:           </dict>
2855 // CHECK-NEXT:           <dict>
2856 // CHECK-NEXT:            <key>line</key><integer>185</integer>
2857 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2858 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2859 // CHECK-NEXT:           </dict>
2860 // CHECK-NEXT:          </array>
2861 // CHECK-NEXT:        </dict>
2862 // CHECK-NEXT:       </array>
2863 // CHECK-NEXT:     </dict>
2864 // CHECK-NEXT:     <dict>
2865 // CHECK-NEXT:      <key>kind</key><string>event</string>
2866 // CHECK-NEXT:      <key>location</key>
2867 // CHECK-NEXT:      <dict>
2868 // CHECK-NEXT:       <key>line</key><integer>185</integer>
2869 // CHECK-NEXT:       <key>col</key><integer>3</integer>
2870 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2871 // CHECK-NEXT:      </dict>
2872 // CHECK-NEXT:      <key>ranges</key>
2873 // CHECK-NEXT:      <array>
2874 // CHECK-NEXT:        <array>
2875 // CHECK-NEXT:         <dict>
2876 // CHECK-NEXT:          <key>line</key><integer>185</integer>
2877 // CHECK-NEXT:          <key>col</key><integer>17</integer>
2878 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2879 // CHECK-NEXT:         </dict>
2880 // CHECK-NEXT:         <dict>
2881 // CHECK-NEXT:          <key>line</key><integer>185</integer>
2882 // CHECK-NEXT:          <key>col</key><integer>39</integer>
2883 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2884 // CHECK-NEXT:         </dict>
2885 // CHECK-NEXT:        </array>
2886 // CHECK-NEXT:      </array>
2887 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2888 // CHECK-NEXT:      <key>extended_message</key>
2889 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2890 // CHECK-NEXT:      <key>message</key>
2891 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2892 // CHECK-NEXT:     </dict>
2893 // CHECK-NEXT:    </array>
2894 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2895 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2896 // CHECK-NEXT:    <key>type</key><string>Generics</string>
2897 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2898 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2899 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>cbb926c9de226a3eac85fb961a93f39a</string>
2900 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2901 // CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2902 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
2903 // CHECK-NEXT:   <key>location</key>
2904 // CHECK-NEXT:   <dict>
2905 // CHECK-NEXT:    <key>line</key><integer>185</integer>
2906 // CHECK-NEXT:    <key>col</key><integer>3</integer>
2907 // CHECK-NEXT:    <key>file</key><integer>0</integer>
2908 // CHECK-NEXT:   </dict>
2909 // CHECK-NEXT:   </dict>
2910 // CHECK-NEXT:   <dict>
2911 // CHECK-NEXT:    <key>path</key>
2912 // CHECK-NEXT:    <array>
2913 // CHECK-NEXT:     <dict>
2914 // CHECK-NEXT:      <key>kind</key><string>event</string>
2915 // CHECK-NEXT:      <key>location</key>
2916 // CHECK-NEXT:      <dict>
2917 // CHECK-NEXT:       <key>line</key><integer>191</integer>
2918 // CHECK-NEXT:       <key>col</key><integer>7</integer>
2919 // CHECK-NEXT:       <key>file</key><integer>0</integer>
2920 // CHECK-NEXT:      </dict>
2921 // CHECK-NEXT:      <key>ranges</key>
2922 // CHECK-NEXT:      <array>
2923 // CHECK-NEXT:        <array>
2924 // CHECK-NEXT:         <dict>
2925 // CHECK-NEXT:          <key>line</key><integer>191</integer>
2926 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2927 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2928 // CHECK-NEXT:         </dict>
2929 // CHECK-NEXT:         <dict>
2930 // CHECK-NEXT:          <key>line</key><integer>191</integer>
2931 // CHECK-NEXT:          <key>col</key><integer>7</integer>
2932 // CHECK-NEXT:          <key>file</key><integer>0</integer>
2933 // CHECK-NEXT:         </dict>
2934 // CHECK-NEXT:        </array>
2935 // CHECK-NEXT:      </array>
2936 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
2937 // CHECK-NEXT:      <key>extended_message</key>
2938 // 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>
2939 // CHECK-NEXT:      <key>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:     </dict>
2942 // CHECK-NEXT:     <dict>
2943 // CHECK-NEXT:      <key>kind</key><string>control</string>
2944 // CHECK-NEXT:      <key>edges</key>
2945 // CHECK-NEXT:       <array>
2946 // CHECK-NEXT:        <dict>
2947 // CHECK-NEXT:         <key>start</key>
2948 // CHECK-NEXT:          <array>
2949 // CHECK-NEXT:           <dict>
2950 // CHECK-NEXT:            <key>line</key><integer>191</integer>
2951 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2952 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2953 // CHECK-NEXT:           </dict>
2954 // CHECK-NEXT:           <dict>
2955 // CHECK-NEXT:            <key>line</key><integer>191</integer>
2956 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2957 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2958 // CHECK-NEXT:           </dict>
2959 // CHECK-NEXT:          </array>
2960 // CHECK-NEXT:         <key>end</key>
2961 // CHECK-NEXT:          <array>
2962 // CHECK-NEXT:           <dict>
2963 // CHECK-NEXT:            <key>line</key><integer>195</integer>
2964 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2965 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2966 // CHECK-NEXT:           </dict>
2967 // CHECK-NEXT:           <dict>
2968 // CHECK-NEXT:            <key>line</key><integer>195</integer>
2969 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2970 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2971 // CHECK-NEXT:           </dict>
2972 // CHECK-NEXT:          </array>
2973 // CHECK-NEXT:        </dict>
2974 // CHECK-NEXT:       </array>
2975 // CHECK-NEXT:     </dict>
2976 // CHECK-NEXT:     <dict>
2977 // CHECK-NEXT:      <key>kind</key><string>control</string>
2978 // CHECK-NEXT:      <key>edges</key>
2979 // CHECK-NEXT:       <array>
2980 // CHECK-NEXT:        <dict>
2981 // CHECK-NEXT:         <key>start</key>
2982 // CHECK-NEXT:          <array>
2983 // CHECK-NEXT:           <dict>
2984 // CHECK-NEXT:            <key>line</key><integer>195</integer>
2985 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2986 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2987 // CHECK-NEXT:           </dict>
2988 // CHECK-NEXT:           <dict>
2989 // CHECK-NEXT:            <key>line</key><integer>195</integer>
2990 // CHECK-NEXT:            <key>col</key><integer>3</integer>
2991 // CHECK-NEXT:            <key>file</key><integer>0</integer>
2992 // CHECK-NEXT:           </dict>
2993 // CHECK-NEXT:          </array>
2994 // CHECK-NEXT:         <key>end</key>
2995 // CHECK-NEXT:          <array>
2996 // CHECK-NEXT:           <dict>
2997 // CHECK-NEXT:            <key>line</key><integer>195</integer>
2998 // CHECK-NEXT:            <key>col</key><integer>7</integer>
2999 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3000 // CHECK-NEXT:           </dict>
3001 // CHECK-NEXT:           <dict>
3002 // CHECK-NEXT:            <key>line</key><integer>195</integer>
3003 // CHECK-NEXT:            <key>col</key><integer>7</integer>
3004 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3005 // CHECK-NEXT:           </dict>
3006 // CHECK-NEXT:          </array>
3007 // CHECK-NEXT:        </dict>
3008 // CHECK-NEXT:       </array>
3009 // CHECK-NEXT:     </dict>
3010 // CHECK-NEXT:     <dict>
3011 // CHECK-NEXT:      <key>kind</key><string>event</string>
3012 // CHECK-NEXT:      <key>location</key>
3013 // CHECK-NEXT:      <dict>
3014 // CHECK-NEXT:       <key>line</key><integer>195</integer>
3015 // CHECK-NEXT:       <key>col</key><integer>7</integer>
3016 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3017 // CHECK-NEXT:      </dict>
3018 // CHECK-NEXT:      <key>ranges</key>
3019 // CHECK-NEXT:      <array>
3020 // CHECK-NEXT:        <array>
3021 // CHECK-NEXT:         <dict>
3022 // CHECK-NEXT:          <key>line</key><integer>195</integer>
3023 // CHECK-NEXT:          <key>col</key><integer>7</integer>
3024 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3025 // CHECK-NEXT:         </dict>
3026 // CHECK-NEXT:         <dict>
3027 // CHECK-NEXT:          <key>line</key><integer>195</integer>
3028 // CHECK-NEXT:          <key>col</key><integer>7</integer>
3029 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3030 // CHECK-NEXT:         </dict>
3031 // CHECK-NEXT:        </array>
3032 // CHECK-NEXT:      </array>
3033 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3034 // CHECK-NEXT:      <key>extended_message</key>
3035 // CHECK-NEXT:      <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
3036 // CHECK-NEXT:      <key>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:     </dict>
3039 // CHECK-NEXT:    </array>
3040 // 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>
3041 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3042 // CHECK-NEXT:    <key>type</key><string>Generics</string>
3043 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3044 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3045 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>b6ee3b22fbad45f213b4bf14bec7eeaf</string>
3046 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3047 // CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
3048 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
3049 // CHECK-NEXT:   <key>location</key>
3050 // CHECK-NEXT:   <dict>
3051 // CHECK-NEXT:    <key>line</key><integer>195</integer>
3052 // CHECK-NEXT:    <key>col</key><integer>7</integer>
3053 // CHECK-NEXT:    <key>file</key><integer>0</integer>
3054 // CHECK-NEXT:   </dict>
3055 // CHECK-NEXT:   </dict>
3056 // CHECK-NEXT:   <dict>
3057 // CHECK-NEXT:    <key>path</key>
3058 // CHECK-NEXT:    <array>
3059 // CHECK-NEXT:     <dict>
3060 // CHECK-NEXT:      <key>kind</key><string>event</string>
3061 // CHECK-NEXT:      <key>location</key>
3062 // CHECK-NEXT:      <dict>
3063 // CHECK-NEXT:       <key>line</key><integer>191</integer>
3064 // CHECK-NEXT:       <key>col</key><integer>7</integer>
3065 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3066 // CHECK-NEXT:      </dict>
3067 // CHECK-NEXT:      <key>ranges</key>
3068 // CHECK-NEXT:      <array>
3069 // CHECK-NEXT:        <array>
3070 // CHECK-NEXT:         <dict>
3071 // CHECK-NEXT:          <key>line</key><integer>191</integer>
3072 // CHECK-NEXT:          <key>col</key><integer>7</integer>
3073 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3074 // CHECK-NEXT:         </dict>
3075 // CHECK-NEXT:         <dict>
3076 // CHECK-NEXT:          <key>line</key><integer>191</integer>
3077 // CHECK-NEXT:          <key>col</key><integer>7</integer>
3078 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3079 // CHECK-NEXT:         </dict>
3080 // CHECK-NEXT:        </array>
3081 // CHECK-NEXT:      </array>
3082 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3083 // CHECK-NEXT:      <key>extended_message</key>
3084 // 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>
3085 // CHECK-NEXT:      <key>message</key>
3086 // 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>
3087 // CHECK-NEXT:     </dict>
3088 // CHECK-NEXT:     <dict>
3089 // CHECK-NEXT:      <key>kind</key><string>control</string>
3090 // CHECK-NEXT:      <key>edges</key>
3091 // CHECK-NEXT:       <array>
3092 // CHECK-NEXT:        <dict>
3093 // CHECK-NEXT:         <key>start</key>
3094 // CHECK-NEXT:          <array>
3095 // CHECK-NEXT:           <dict>
3096 // CHECK-NEXT:            <key>line</key><integer>191</integer>
3097 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3098 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3099 // CHECK-NEXT:           </dict>
3100 // CHECK-NEXT:           <dict>
3101 // CHECK-NEXT:            <key>line</key><integer>191</integer>
3102 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3103 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3104 // CHECK-NEXT:           </dict>
3105 // CHECK-NEXT:          </array>
3106 // CHECK-NEXT:         <key>end</key>
3107 // CHECK-NEXT:          <array>
3108 // CHECK-NEXT:           <dict>
3109 // CHECK-NEXT:            <key>line</key><integer>197</integer>
3110 // CHECK-NEXT:            <key>col</key><integer>2</integer>
3111 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3112 // CHECK-NEXT:           </dict>
3113 // CHECK-NEXT:           <dict>
3114 // CHECK-NEXT:            <key>line</key><integer>197</integer>
3115 // CHECK-NEXT:            <key>col</key><integer>2</integer>
3116 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3117 // CHECK-NEXT:           </dict>
3118 // CHECK-NEXT:          </array>
3119 // CHECK-NEXT:        </dict>
3120 // CHECK-NEXT:       </array>
3121 // CHECK-NEXT:     </dict>
3122 // CHECK-NEXT:     <dict>
3123 // CHECK-NEXT:      <key>kind</key><string>event</string>
3124 // CHECK-NEXT:      <key>location</key>
3125 // CHECK-NEXT:      <dict>
3126 // CHECK-NEXT:       <key>line</key><integer>197</integer>
3127 // CHECK-NEXT:       <key>col</key><integer>2</integer>
3128 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3129 // CHECK-NEXT:      </dict>
3130 // CHECK-NEXT:      <key>ranges</key>
3131 // CHECK-NEXT:      <array>
3132 // CHECK-NEXT:        <array>
3133 // CHECK-NEXT:         <dict>
3134 // CHECK-NEXT:          <key>line</key><integer>197</integer>
3135 // CHECK-NEXT:          <key>col</key><integer>16</integer>
3136 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3137 // CHECK-NEXT:         </dict>
3138 // CHECK-NEXT:         <dict>
3139 // CHECK-NEXT:          <key>line</key><integer>197</integer>
3140 // CHECK-NEXT:          <key>col</key><integer>38</integer>
3141 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3142 // CHECK-NEXT:         </dict>
3143 // CHECK-NEXT:        </array>
3144 // CHECK-NEXT:      </array>
3145 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3146 // CHECK-NEXT:      <key>extended_message</key>
3147 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
3148 // CHECK-NEXT:      <key>message</key>
3149 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
3150 // CHECK-NEXT:     </dict>
3151 // CHECK-NEXT:    </array>
3152 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
3153 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3154 // CHECK-NEXT:    <key>type</key><string>Generics</string>
3155 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3156 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3157 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6561f05506a8ceca3afc79fc59912b94</string>
3158 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3159 // CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
3160 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
3161 // CHECK-NEXT:   <key>location</key>
3162 // CHECK-NEXT:   <dict>
3163 // CHECK-NEXT:    <key>line</key><integer>197</integer>
3164 // CHECK-NEXT:    <key>col</key><integer>2</integer>
3165 // CHECK-NEXT:    <key>file</key><integer>0</integer>
3166 // CHECK-NEXT:   </dict>
3167 // CHECK-NEXT:   </dict>
3168 // CHECK-NEXT:   <dict>
3169 // CHECK-NEXT:    <key>path</key>
3170 // CHECK-NEXT:    <array>
3171 // CHECK-NEXT:     <dict>
3172 // CHECK-NEXT:      <key>kind</key><string>event</string>
3173 // CHECK-NEXT:      <key>location</key>
3174 // CHECK-NEXT:      <dict>
3175 // CHECK-NEXT:       <key>line</key><integer>203</integer>
3176 // CHECK-NEXT:       <key>col</key><integer>20</integer>
3177 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3178 // CHECK-NEXT:      </dict>
3179 // CHECK-NEXT:      <key>ranges</key>
3180 // CHECK-NEXT:      <array>
3181 // CHECK-NEXT:        <array>
3182 // CHECK-NEXT:         <dict>
3183 // CHECK-NEXT:          <key>line</key><integer>203</integer>
3184 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3185 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3186 // CHECK-NEXT:         </dict>
3187 // CHECK-NEXT:         <dict>
3188 // CHECK-NEXT:          <key>line</key><integer>203</integer>
3189 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3190 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3191 // CHECK-NEXT:         </dict>
3192 // CHECK-NEXT:        </array>
3193 // CHECK-NEXT:      </array>
3194 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3195 // CHECK-NEXT:      <key>extended_message</key>
3196 // 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>
3197 // CHECK-NEXT:      <key>message</key>
3198 // 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>
3199 // CHECK-NEXT:     </dict>
3200 // CHECK-NEXT:     <dict>
3201 // CHECK-NEXT:      <key>kind</key><string>control</string>
3202 // CHECK-NEXT:      <key>edges</key>
3203 // CHECK-NEXT:       <array>
3204 // CHECK-NEXT:        <dict>
3205 // CHECK-NEXT:         <key>start</key>
3206 // CHECK-NEXT:          <array>
3207 // CHECK-NEXT:           <dict>
3208 // CHECK-NEXT:            <key>line</key><integer>203</integer>
3209 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3210 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3211 // CHECK-NEXT:           </dict>
3212 // CHECK-NEXT:           <dict>
3213 // CHECK-NEXT:            <key>line</key><integer>203</integer>
3214 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3215 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3216 // CHECK-NEXT:           </dict>
3217 // CHECK-NEXT:          </array>
3218 // CHECK-NEXT:         <key>end</key>
3219 // CHECK-NEXT:          <array>
3220 // CHECK-NEXT:           <dict>
3221 // CHECK-NEXT:            <key>line</key><integer>204</integer>
3222 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3223 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3224 // CHECK-NEXT:           </dict>
3225 // CHECK-NEXT:           <dict>
3226 // CHECK-NEXT:            <key>line</key><integer>204</integer>
3227 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3228 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3229 // CHECK-NEXT:           </dict>
3230 // CHECK-NEXT:          </array>
3231 // CHECK-NEXT:        </dict>
3232 // CHECK-NEXT:       </array>
3233 // CHECK-NEXT:     </dict>
3234 // CHECK-NEXT:     <dict>
3235 // CHECK-NEXT:      <key>kind</key><string>control</string>
3236 // CHECK-NEXT:      <key>edges</key>
3237 // CHECK-NEXT:       <array>
3238 // CHECK-NEXT:        <dict>
3239 // CHECK-NEXT:         <key>start</key>
3240 // CHECK-NEXT:          <array>
3241 // CHECK-NEXT:           <dict>
3242 // CHECK-NEXT:            <key>line</key><integer>204</integer>
3243 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3244 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3245 // CHECK-NEXT:           </dict>
3246 // CHECK-NEXT:           <dict>
3247 // CHECK-NEXT:            <key>line</key><integer>204</integer>
3248 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3249 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3250 // CHECK-NEXT:           </dict>
3251 // CHECK-NEXT:          </array>
3252 // CHECK-NEXT:         <key>end</key>
3253 // CHECK-NEXT:          <array>
3254 // CHECK-NEXT:           <dict>
3255 // CHECK-NEXT:            <key>line</key><integer>204</integer>
3256 // CHECK-NEXT:            <key>col</key><integer>27</integer>
3257 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3258 // CHECK-NEXT:           </dict>
3259 // CHECK-NEXT:           <dict>
3260 // CHECK-NEXT:            <key>line</key><integer>204</integer>
3261 // CHECK-NEXT:            <key>col</key><integer>27</integer>
3262 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3263 // CHECK-NEXT:           </dict>
3264 // CHECK-NEXT:          </array>
3265 // CHECK-NEXT:        </dict>
3266 // CHECK-NEXT:       </array>
3267 // CHECK-NEXT:     </dict>
3268 // CHECK-NEXT:     <dict>
3269 // CHECK-NEXT:      <key>kind</key><string>event</string>
3270 // CHECK-NEXT:      <key>location</key>
3271 // CHECK-NEXT:      <dict>
3272 // CHECK-NEXT:       <key>line</key><integer>204</integer>
3273 // CHECK-NEXT:       <key>col</key><integer>27</integer>
3274 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3275 // CHECK-NEXT:      </dict>
3276 // CHECK-NEXT:      <key>ranges</key>
3277 // CHECK-NEXT:      <array>
3278 // CHECK-NEXT:        <array>
3279 // CHECK-NEXT:         <dict>
3280 // CHECK-NEXT:          <key>line</key><integer>204</integer>
3281 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3282 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3283 // CHECK-NEXT:         </dict>
3284 // CHECK-NEXT:         <dict>
3285 // CHECK-NEXT:          <key>line</key><integer>204</integer>
3286 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3287 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3288 // CHECK-NEXT:         </dict>
3289 // CHECK-NEXT:        </array>
3290 // CHECK-NEXT:      </array>
3291 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3292 // CHECK-NEXT:      <key>extended_message</key>
3293 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3294 // CHECK-NEXT:      <key>message</key>
3295 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3296 // CHECK-NEXT:     </dict>
3297 // CHECK-NEXT:    </array>
3298 // 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>
3299 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3300 // CHECK-NEXT:    <key>type</key><string>Generics</string>
3301 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3302 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3303 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6aab15d40b39ec0a6b749e561d486e6a</string>
3304 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3305 // CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPI</string>
3306 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
3307 // CHECK-NEXT:   <key>location</key>
3308 // CHECK-NEXT:   <dict>
3309 // CHECK-NEXT:    <key>line</key><integer>204</integer>
3310 // CHECK-NEXT:    <key>col</key><integer>27</integer>
3311 // CHECK-NEXT:    <key>file</key><integer>0</integer>
3312 // CHECK-NEXT:   </dict>
3313 // CHECK-NEXT:   </dict>
3314 // CHECK-NEXT:   <dict>
3315 // CHECK-NEXT:    <key>path</key>
3316 // CHECK-NEXT:    <array>
3317 // CHECK-NEXT:     <dict>
3318 // CHECK-NEXT:      <key>kind</key><string>event</string>
3319 // CHECK-NEXT:      <key>location</key>
3320 // CHECK-NEXT:      <dict>
3321 // CHECK-NEXT:       <key>line</key><integer>208</integer>
3322 // CHECK-NEXT:       <key>col</key><integer>27</integer>
3323 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3324 // CHECK-NEXT:      </dict>
3325 // CHECK-NEXT:      <key>ranges</key>
3326 // CHECK-NEXT:      <array>
3327 // CHECK-NEXT:        <array>
3328 // CHECK-NEXT:         <dict>
3329 // CHECK-NEXT:          <key>line</key><integer>208</integer>
3330 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3331 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3332 // CHECK-NEXT:         </dict>
3333 // CHECK-NEXT:         <dict>
3334 // CHECK-NEXT:          <key>line</key><integer>208</integer>
3335 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3336 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3337 // CHECK-NEXT:         </dict>
3338 // CHECK-NEXT:        </array>
3339 // CHECK-NEXT:      </array>
3340 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3341 // CHECK-NEXT:      <key>extended_message</key>
3342 // 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>
3343 // CHECK-NEXT:      <key>message</key>
3344 // 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>
3345 // CHECK-NEXT:     </dict>
3346 // CHECK-NEXT:     <dict>
3347 // CHECK-NEXT:      <key>kind</key><string>control</string>
3348 // CHECK-NEXT:      <key>edges</key>
3349 // CHECK-NEXT:       <array>
3350 // CHECK-NEXT:        <dict>
3351 // CHECK-NEXT:         <key>start</key>
3352 // CHECK-NEXT:          <array>
3353 // CHECK-NEXT:           <dict>
3354 // CHECK-NEXT:            <key>line</key><integer>208</integer>
3355 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3356 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3357 // CHECK-NEXT:           </dict>
3358 // CHECK-NEXT:           <dict>
3359 // CHECK-NEXT:            <key>line</key><integer>208</integer>
3360 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3361 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3362 // CHECK-NEXT:           </dict>
3363 // CHECK-NEXT:          </array>
3364 // CHECK-NEXT:         <key>end</key>
3365 // CHECK-NEXT:          <array>
3366 // CHECK-NEXT:           <dict>
3367 // CHECK-NEXT:            <key>line</key><integer>209</integer>
3368 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3369 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3370 // CHECK-NEXT:           </dict>
3371 // CHECK-NEXT:           <dict>
3372 // CHECK-NEXT:            <key>line</key><integer>209</integer>
3373 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3374 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3375 // CHECK-NEXT:           </dict>
3376 // CHECK-NEXT:          </array>
3377 // CHECK-NEXT:        </dict>
3378 // CHECK-NEXT:       </array>
3379 // CHECK-NEXT:     </dict>
3380 // CHECK-NEXT:     <dict>
3381 // CHECK-NEXT:      <key>kind</key><string>control</string>
3382 // CHECK-NEXT:      <key>edges</key>
3383 // CHECK-NEXT:       <array>
3384 // CHECK-NEXT:        <dict>
3385 // CHECK-NEXT:         <key>start</key>
3386 // CHECK-NEXT:          <array>
3387 // CHECK-NEXT:           <dict>
3388 // CHECK-NEXT:            <key>line</key><integer>209</integer>
3389 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3390 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3391 // CHECK-NEXT:           </dict>
3392 // CHECK-NEXT:           <dict>
3393 // CHECK-NEXT:            <key>line</key><integer>209</integer>
3394 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3395 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3396 // CHECK-NEXT:           </dict>
3397 // CHECK-NEXT:          </array>
3398 // CHECK-NEXT:         <key>end</key>
3399 // CHECK-NEXT:          <array>
3400 // CHECK-NEXT:           <dict>
3401 // CHECK-NEXT:            <key>line</key><integer>209</integer>
3402 // CHECK-NEXT:            <key>col</key><integer>20</integer>
3403 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3404 // CHECK-NEXT:           </dict>
3405 // CHECK-NEXT:           <dict>
3406 // CHECK-NEXT:            <key>line</key><integer>209</integer>
3407 // CHECK-NEXT:            <key>col</key><integer>20</integer>
3408 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3409 // CHECK-NEXT:           </dict>
3410 // CHECK-NEXT:          </array>
3411 // CHECK-NEXT:        </dict>
3412 // CHECK-NEXT:       </array>
3413 // CHECK-NEXT:     </dict>
3414 // CHECK-NEXT:     <dict>
3415 // CHECK-NEXT:      <key>kind</key><string>event</string>
3416 // CHECK-NEXT:      <key>location</key>
3417 // CHECK-NEXT:      <dict>
3418 // CHECK-NEXT:       <key>line</key><integer>209</integer>
3419 // CHECK-NEXT:       <key>col</key><integer>20</integer>
3420 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3421 // CHECK-NEXT:      </dict>
3422 // CHECK-NEXT:      <key>ranges</key>
3423 // CHECK-NEXT:      <array>
3424 // CHECK-NEXT:        <array>
3425 // CHECK-NEXT:         <dict>
3426 // CHECK-NEXT:          <key>line</key><integer>209</integer>
3427 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3428 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3429 // CHECK-NEXT:         </dict>
3430 // CHECK-NEXT:         <dict>
3431 // CHECK-NEXT:          <key>line</key><integer>209</integer>
3432 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3433 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3434 // CHECK-NEXT:         </dict>
3435 // CHECK-NEXT:        </array>
3436 // CHECK-NEXT:      </array>
3437 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3438 // CHECK-NEXT:      <key>extended_message</key>
3439 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3440 // CHECK-NEXT:      <key>message</key>
3441 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3442 // CHECK-NEXT:     </dict>
3443 // CHECK-NEXT:    </array>
3444 // 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>
3445 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3446 // CHECK-NEXT:    <key>type</key><string>Generics</string>
3447 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3448 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3449 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>bd1da1b7775323773555e5d5c122661f</string>
3450 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3451 // CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPI2</string>
3452 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
3453 // CHECK-NEXT:   <key>location</key>
3454 // CHECK-NEXT:   <dict>
3455 // CHECK-NEXT:    <key>line</key><integer>209</integer>
3456 // CHECK-NEXT:    <key>col</key><integer>20</integer>
3457 // CHECK-NEXT:    <key>file</key><integer>0</integer>
3458 // CHECK-NEXT:   </dict>
3459 // CHECK-NEXT:   </dict>
3460 // CHECK-NEXT:   <dict>
3461 // CHECK-NEXT:    <key>path</key>
3462 // CHECK-NEXT:    <array>
3463 // CHECK-NEXT:     <dict>
3464 // CHECK-NEXT:      <key>kind</key><string>event</string>
3465 // CHECK-NEXT:      <key>location</key>
3466 // CHECK-NEXT:      <dict>
3467 // CHECK-NEXT:       <key>line</key><integer>213</integer>
3468 // CHECK-NEXT:       <key>col</key><integer>27</integer>
3469 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3470 // CHECK-NEXT:      </dict>
3471 // CHECK-NEXT:      <key>ranges</key>
3472 // CHECK-NEXT:      <array>
3473 // CHECK-NEXT:        <array>
3474 // CHECK-NEXT:         <dict>
3475 // CHECK-NEXT:          <key>line</key><integer>213</integer>
3476 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3477 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3478 // CHECK-NEXT:         </dict>
3479 // CHECK-NEXT:         <dict>
3480 // CHECK-NEXT:          <key>line</key><integer>213</integer>
3481 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3482 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3483 // CHECK-NEXT:         </dict>
3484 // CHECK-NEXT:        </array>
3485 // CHECK-NEXT:      </array>
3486 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3487 // CHECK-NEXT:      <key>extended_message</key>
3488 // 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>
3489 // CHECK-NEXT:      <key>message</key>
3490 // 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>
3491 // CHECK-NEXT:     </dict>
3492 // CHECK-NEXT:     <dict>
3493 // CHECK-NEXT:      <key>kind</key><string>control</string>
3494 // CHECK-NEXT:      <key>edges</key>
3495 // CHECK-NEXT:       <array>
3496 // CHECK-NEXT:        <dict>
3497 // CHECK-NEXT:         <key>start</key>
3498 // CHECK-NEXT:          <array>
3499 // CHECK-NEXT:           <dict>
3500 // CHECK-NEXT:            <key>line</key><integer>213</integer>
3501 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3502 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3503 // CHECK-NEXT:           </dict>
3504 // CHECK-NEXT:           <dict>
3505 // CHECK-NEXT:            <key>line</key><integer>213</integer>
3506 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3507 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3508 // CHECK-NEXT:           </dict>
3509 // CHECK-NEXT:          </array>
3510 // CHECK-NEXT:         <key>end</key>
3511 // CHECK-NEXT:          <array>
3512 // CHECK-NEXT:           <dict>
3513 // CHECK-NEXT:            <key>line</key><integer>214</integer>
3514 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3515 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3516 // CHECK-NEXT:           </dict>
3517 // CHECK-NEXT:           <dict>
3518 // CHECK-NEXT:            <key>line</key><integer>214</integer>
3519 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3520 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3521 // CHECK-NEXT:           </dict>
3522 // CHECK-NEXT:          </array>
3523 // CHECK-NEXT:        </dict>
3524 // CHECK-NEXT:       </array>
3525 // CHECK-NEXT:     </dict>
3526 // CHECK-NEXT:     <dict>
3527 // CHECK-NEXT:      <key>kind</key><string>control</string>
3528 // CHECK-NEXT:      <key>edges</key>
3529 // CHECK-NEXT:       <array>
3530 // CHECK-NEXT:        <dict>
3531 // CHECK-NEXT:         <key>start</key>
3532 // CHECK-NEXT:          <array>
3533 // CHECK-NEXT:           <dict>
3534 // CHECK-NEXT:            <key>line</key><integer>214</integer>
3535 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3536 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3537 // CHECK-NEXT:           </dict>
3538 // CHECK-NEXT:           <dict>
3539 // CHECK-NEXT:            <key>line</key><integer>214</integer>
3540 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3541 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3542 // CHECK-NEXT:           </dict>
3543 // CHECK-NEXT:          </array>
3544 // CHECK-NEXT:         <key>end</key>
3545 // CHECK-NEXT:          <array>
3546 // CHECK-NEXT:           <dict>
3547 // CHECK-NEXT:            <key>line</key><integer>214</integer>
3548 // CHECK-NEXT:            <key>col</key><integer>20</integer>
3549 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3550 // CHECK-NEXT:           </dict>
3551 // CHECK-NEXT:           <dict>
3552 // CHECK-NEXT:            <key>line</key><integer>214</integer>
3553 // CHECK-NEXT:            <key>col</key><integer>20</integer>
3554 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3555 // CHECK-NEXT:           </dict>
3556 // CHECK-NEXT:          </array>
3557 // CHECK-NEXT:        </dict>
3558 // CHECK-NEXT:       </array>
3559 // CHECK-NEXT:     </dict>
3560 // CHECK-NEXT:     <dict>
3561 // CHECK-NEXT:      <key>kind</key><string>event</string>
3562 // CHECK-NEXT:      <key>location</key>
3563 // CHECK-NEXT:      <dict>
3564 // CHECK-NEXT:       <key>line</key><integer>214</integer>
3565 // CHECK-NEXT:       <key>col</key><integer>20</integer>
3566 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3567 // CHECK-NEXT:      </dict>
3568 // CHECK-NEXT:      <key>ranges</key>
3569 // CHECK-NEXT:      <array>
3570 // CHECK-NEXT:        <array>
3571 // CHECK-NEXT:         <dict>
3572 // CHECK-NEXT:          <key>line</key><integer>214</integer>
3573 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3574 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3575 // CHECK-NEXT:         </dict>
3576 // CHECK-NEXT:         <dict>
3577 // CHECK-NEXT:          <key>line</key><integer>214</integer>
3578 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3579 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3580 // CHECK-NEXT:         </dict>
3581 // CHECK-NEXT:        </array>
3582 // CHECK-NEXT:      </array>
3583 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3584 // CHECK-NEXT:      <key>extended_message</key>
3585 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3586 // CHECK-NEXT:      <key>message</key>
3587 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3588 // CHECK-NEXT:     </dict>
3589 // CHECK-NEXT:    </array>
3590 // 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>
3591 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3592 // CHECK-NEXT:    <key>type</key><string>Generics</string>
3593 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3594 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3595 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>3f2abd3c0b4b4a80a71bcbb668124ffb</string>
3596 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3597 // CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes</string>
3598 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
3599 // CHECK-NEXT:   <key>location</key>
3600 // CHECK-NEXT:   <dict>
3601 // CHECK-NEXT:    <key>line</key><integer>214</integer>
3602 // CHECK-NEXT:    <key>col</key><integer>20</integer>
3603 // CHECK-NEXT:    <key>file</key><integer>0</integer>
3604 // CHECK-NEXT:   </dict>
3605 // CHECK-NEXT:   </dict>
3606 // CHECK-NEXT:   <dict>
3607 // CHECK-NEXT:    <key>path</key>
3608 // CHECK-NEXT:    <array>
3609 // CHECK-NEXT:     <dict>
3610 // CHECK-NEXT:      <key>kind</key><string>event</string>
3611 // CHECK-NEXT:      <key>location</key>
3612 // CHECK-NEXT:      <dict>
3613 // CHECK-NEXT:       <key>line</key><integer>218</integer>
3614 // CHECK-NEXT:       <key>col</key><integer>20</integer>
3615 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3616 // CHECK-NEXT:      </dict>
3617 // CHECK-NEXT:      <key>ranges</key>
3618 // CHECK-NEXT:      <array>
3619 // CHECK-NEXT:        <array>
3620 // CHECK-NEXT:         <dict>
3621 // CHECK-NEXT:          <key>line</key><integer>218</integer>
3622 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3623 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3624 // CHECK-NEXT:         </dict>
3625 // CHECK-NEXT:         <dict>
3626 // CHECK-NEXT:          <key>line</key><integer>218</integer>
3627 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3628 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3629 // CHECK-NEXT:         </dict>
3630 // CHECK-NEXT:        </array>
3631 // CHECK-NEXT:      </array>
3632 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3633 // CHECK-NEXT:      <key>extended_message</key>
3634 // 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>
3635 // CHECK-NEXT:      <key>message</key>
3636 // 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>
3637 // CHECK-NEXT:     </dict>
3638 // CHECK-NEXT:     <dict>
3639 // CHECK-NEXT:      <key>kind</key><string>control</string>
3640 // CHECK-NEXT:      <key>edges</key>
3641 // CHECK-NEXT:       <array>
3642 // CHECK-NEXT:        <dict>
3643 // CHECK-NEXT:         <key>start</key>
3644 // CHECK-NEXT:          <array>
3645 // CHECK-NEXT:           <dict>
3646 // CHECK-NEXT:            <key>line</key><integer>218</integer>
3647 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3648 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3649 // CHECK-NEXT:           </dict>
3650 // CHECK-NEXT:           <dict>
3651 // CHECK-NEXT:            <key>line</key><integer>218</integer>
3652 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3653 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3654 // CHECK-NEXT:           </dict>
3655 // CHECK-NEXT:          </array>
3656 // CHECK-NEXT:         <key>end</key>
3657 // CHECK-NEXT:          <array>
3658 // CHECK-NEXT:           <dict>
3659 // CHECK-NEXT:            <key>line</key><integer>219</integer>
3660 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3661 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3662 // CHECK-NEXT:           </dict>
3663 // CHECK-NEXT:           <dict>
3664 // CHECK-NEXT:            <key>line</key><integer>219</integer>
3665 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3666 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3667 // CHECK-NEXT:           </dict>
3668 // CHECK-NEXT:          </array>
3669 // CHECK-NEXT:        </dict>
3670 // CHECK-NEXT:       </array>
3671 // CHECK-NEXT:     </dict>
3672 // CHECK-NEXT:     <dict>
3673 // CHECK-NEXT:      <key>kind</key><string>control</string>
3674 // CHECK-NEXT:      <key>edges</key>
3675 // CHECK-NEXT:       <array>
3676 // CHECK-NEXT:        <dict>
3677 // CHECK-NEXT:         <key>start</key>
3678 // CHECK-NEXT:          <array>
3679 // CHECK-NEXT:           <dict>
3680 // CHECK-NEXT:            <key>line</key><integer>219</integer>
3681 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3682 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3683 // CHECK-NEXT:           </dict>
3684 // CHECK-NEXT:           <dict>
3685 // CHECK-NEXT:            <key>line</key><integer>219</integer>
3686 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3687 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3688 // CHECK-NEXT:           </dict>
3689 // CHECK-NEXT:          </array>
3690 // CHECK-NEXT:         <key>end</key>
3691 // CHECK-NEXT:          <array>
3692 // CHECK-NEXT:           <dict>
3693 // CHECK-NEXT:            <key>line</key><integer>219</integer>
3694 // CHECK-NEXT:            <key>col</key><integer>27</integer>
3695 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3696 // CHECK-NEXT:           </dict>
3697 // CHECK-NEXT:           <dict>
3698 // CHECK-NEXT:            <key>line</key><integer>219</integer>
3699 // CHECK-NEXT:            <key>col</key><integer>27</integer>
3700 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3701 // CHECK-NEXT:           </dict>
3702 // CHECK-NEXT:          </array>
3703 // CHECK-NEXT:        </dict>
3704 // CHECK-NEXT:       </array>
3705 // CHECK-NEXT:     </dict>
3706 // CHECK-NEXT:     <dict>
3707 // CHECK-NEXT:      <key>kind</key><string>event</string>
3708 // CHECK-NEXT:      <key>location</key>
3709 // CHECK-NEXT:      <dict>
3710 // CHECK-NEXT:       <key>line</key><integer>219</integer>
3711 // CHECK-NEXT:       <key>col</key><integer>27</integer>
3712 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3713 // CHECK-NEXT:      </dict>
3714 // CHECK-NEXT:      <key>ranges</key>
3715 // CHECK-NEXT:      <array>
3716 // CHECK-NEXT:        <array>
3717 // CHECK-NEXT:         <dict>
3718 // CHECK-NEXT:          <key>line</key><integer>219</integer>
3719 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3720 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3721 // CHECK-NEXT:         </dict>
3722 // CHECK-NEXT:         <dict>
3723 // CHECK-NEXT:          <key>line</key><integer>219</integer>
3724 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3725 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3726 // CHECK-NEXT:         </dict>
3727 // CHECK-NEXT:        </array>
3728 // CHECK-NEXT:      </array>
3729 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3730 // CHECK-NEXT:      <key>extended_message</key>
3731 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3732 // CHECK-NEXT:      <key>message</key>
3733 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3734 // CHECK-NEXT:     </dict>
3735 // CHECK-NEXT:    </array>
3736 // 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>
3737 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3738 // CHECK-NEXT:    <key>type</key><string>Generics</string>
3739 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3740 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3741 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>73a50f2592e8b3c9af898749f24176f7</string>
3742 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3743 // CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes2</string>
3744 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
3745 // CHECK-NEXT:   <key>location</key>
3746 // CHECK-NEXT:   <dict>
3747 // CHECK-NEXT:    <key>line</key><integer>219</integer>
3748 // CHECK-NEXT:    <key>col</key><integer>27</integer>
3749 // CHECK-NEXT:    <key>file</key><integer>0</integer>
3750 // CHECK-NEXT:   </dict>
3751 // CHECK-NEXT:   </dict>
3752 // CHECK-NEXT:   <dict>
3753 // CHECK-NEXT:    <key>path</key>
3754 // CHECK-NEXT:    <array>
3755 // CHECK-NEXT:     <dict>
3756 // CHECK-NEXT:      <key>kind</key><string>event</string>
3757 // CHECK-NEXT:      <key>location</key>
3758 // CHECK-NEXT:      <dict>
3759 // CHECK-NEXT:       <key>line</key><integer>223</integer>
3760 // CHECK-NEXT:       <key>col</key><integer>27</integer>
3761 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3762 // CHECK-NEXT:      </dict>
3763 // CHECK-NEXT:      <key>ranges</key>
3764 // CHECK-NEXT:      <array>
3765 // CHECK-NEXT:        <array>
3766 // CHECK-NEXT:         <dict>
3767 // CHECK-NEXT:          <key>line</key><integer>223</integer>
3768 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3769 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3770 // CHECK-NEXT:         </dict>
3771 // CHECK-NEXT:         <dict>
3772 // CHECK-NEXT:          <key>line</key><integer>223</integer>
3773 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3774 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3775 // CHECK-NEXT:         </dict>
3776 // CHECK-NEXT:        </array>
3777 // CHECK-NEXT:      </array>
3778 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3779 // CHECK-NEXT:      <key>extended_message</key>
3780 // 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>
3781 // CHECK-NEXT:      <key>message</key>
3782 // 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>
3783 // CHECK-NEXT:     </dict>
3784 // CHECK-NEXT:     <dict>
3785 // CHECK-NEXT:      <key>kind</key><string>control</string>
3786 // CHECK-NEXT:      <key>edges</key>
3787 // CHECK-NEXT:       <array>
3788 // CHECK-NEXT:        <dict>
3789 // CHECK-NEXT:         <key>start</key>
3790 // CHECK-NEXT:          <array>
3791 // CHECK-NEXT:           <dict>
3792 // CHECK-NEXT:            <key>line</key><integer>223</integer>
3793 // CHECK-NEXT:            <key>col</key><integer>3</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>223</integer>
3798 // CHECK-NEXT:            <key>col</key><integer>20</integer>
3799 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3800 // CHECK-NEXT:           </dict>
3801 // CHECK-NEXT:          </array>
3802 // CHECK-NEXT:         <key>end</key>
3803 // CHECK-NEXT:          <array>
3804 // CHECK-NEXT:           <dict>
3805 // CHECK-NEXT:            <key>line</key><integer>224</integer>
3806 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3807 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3808 // CHECK-NEXT:           </dict>
3809 // CHECK-NEXT:           <dict>
3810 // CHECK-NEXT:            <key>line</key><integer>224</integer>
3811 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3812 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3813 // CHECK-NEXT:           </dict>
3814 // CHECK-NEXT:          </array>
3815 // CHECK-NEXT:        </dict>
3816 // CHECK-NEXT:       </array>
3817 // CHECK-NEXT:     </dict>
3818 // CHECK-NEXT:     <dict>
3819 // CHECK-NEXT:      <key>kind</key><string>event</string>
3820 // CHECK-NEXT:      <key>location</key>
3821 // CHECK-NEXT:      <dict>
3822 // CHECK-NEXT:       <key>line</key><integer>224</integer>
3823 // CHECK-NEXT:       <key>col</key><integer>20</integer>
3824 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3825 // CHECK-NEXT:      </dict>
3826 // CHECK-NEXT:      <key>ranges</key>
3827 // CHECK-NEXT:      <array>
3828 // CHECK-NEXT:        <array>
3829 // CHECK-NEXT:         <dict>
3830 // CHECK-NEXT:          <key>line</key><integer>224</integer>
3831 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3832 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3833 // CHECK-NEXT:         </dict>
3834 // CHECK-NEXT:         <dict>
3835 // CHECK-NEXT:          <key>line</key><integer>224</integer>
3836 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3837 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3838 // CHECK-NEXT:         </dict>
3839 // CHECK-NEXT:        </array>
3840 // CHECK-NEXT:      </array>
3841 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3842 // CHECK-NEXT:      <key>extended_message</key>
3843 // 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>
3844 // CHECK-NEXT:      <key>message</key>
3845 // 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>
3846 // CHECK-NEXT:     </dict>
3847 // CHECK-NEXT:     <dict>
3848 // CHECK-NEXT:      <key>kind</key><string>control</string>
3849 // CHECK-NEXT:      <key>edges</key>
3850 // CHECK-NEXT:       <array>
3851 // CHECK-NEXT:        <dict>
3852 // CHECK-NEXT:         <key>start</key>
3853 // CHECK-NEXT:          <array>
3854 // CHECK-NEXT:           <dict>
3855 // CHECK-NEXT:            <key>line</key><integer>224</integer>
3856 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3857 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3858 // CHECK-NEXT:           </dict>
3859 // CHECK-NEXT:           <dict>
3860 // CHECK-NEXT:            <key>line</key><integer>224</integer>
3861 // CHECK-NEXT:            <key>col</key><integer>18</integer>
3862 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3863 // CHECK-NEXT:           </dict>
3864 // CHECK-NEXT:          </array>
3865 // CHECK-NEXT:         <key>end</key>
3866 // CHECK-NEXT:          <array>
3867 // CHECK-NEXT:           <dict>
3868 // CHECK-NEXT:            <key>line</key><integer>225</integer>
3869 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3870 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3871 // CHECK-NEXT:           </dict>
3872 // CHECK-NEXT:           <dict>
3873 // CHECK-NEXT:            <key>line</key><integer>225</integer>
3874 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3875 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3876 // CHECK-NEXT:           </dict>
3877 // CHECK-NEXT:          </array>
3878 // CHECK-NEXT:        </dict>
3879 // CHECK-NEXT:       </array>
3880 // CHECK-NEXT:     </dict>
3881 // CHECK-NEXT:     <dict>
3882 // CHECK-NEXT:      <key>kind</key><string>control</string>
3883 // CHECK-NEXT:      <key>edges</key>
3884 // CHECK-NEXT:       <array>
3885 // CHECK-NEXT:        <dict>
3886 // CHECK-NEXT:         <key>start</key>
3887 // CHECK-NEXT:          <array>
3888 // CHECK-NEXT:           <dict>
3889 // CHECK-NEXT:            <key>line</key><integer>225</integer>
3890 // CHECK-NEXT:            <key>col</key><integer>3</integer>
3891 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3892 // CHECK-NEXT:           </dict>
3893 // CHECK-NEXT:           <dict>
3894 // CHECK-NEXT:            <key>line</key><integer>225</integer>
3895 // CHECK-NEXT:            <key>col</key><integer>25</integer>
3896 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3897 // CHECK-NEXT:           </dict>
3898 // CHECK-NEXT:          </array>
3899 // CHECK-NEXT:         <key>end</key>
3900 // CHECK-NEXT:          <array>
3901 // CHECK-NEXT:           <dict>
3902 // CHECK-NEXT:            <key>line</key><integer>225</integer>
3903 // CHECK-NEXT:            <key>col</key><integer>27</integer>
3904 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3905 // CHECK-NEXT:           </dict>
3906 // CHECK-NEXT:           <dict>
3907 // CHECK-NEXT:            <key>line</key><integer>225</integer>
3908 // CHECK-NEXT:            <key>col</key><integer>27</integer>
3909 // CHECK-NEXT:            <key>file</key><integer>0</integer>
3910 // CHECK-NEXT:           </dict>
3911 // CHECK-NEXT:          </array>
3912 // CHECK-NEXT:        </dict>
3913 // CHECK-NEXT:       </array>
3914 // CHECK-NEXT:     </dict>
3915 // CHECK-NEXT:     <dict>
3916 // CHECK-NEXT:      <key>kind</key><string>event</string>
3917 // CHECK-NEXT:      <key>location</key>
3918 // CHECK-NEXT:      <dict>
3919 // CHECK-NEXT:       <key>line</key><integer>225</integer>
3920 // CHECK-NEXT:       <key>col</key><integer>27</integer>
3921 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3922 // CHECK-NEXT:      </dict>
3923 // CHECK-NEXT:      <key>ranges</key>
3924 // CHECK-NEXT:      <array>
3925 // CHECK-NEXT:        <array>
3926 // CHECK-NEXT:         <dict>
3927 // CHECK-NEXT:          <key>line</key><integer>225</integer>
3928 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3929 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3930 // CHECK-NEXT:         </dict>
3931 // CHECK-NEXT:         <dict>
3932 // CHECK-NEXT:          <key>line</key><integer>225</integer>
3933 // CHECK-NEXT:          <key>col</key><integer>27</integer>
3934 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3935 // CHECK-NEXT:         </dict>
3936 // CHECK-NEXT:        </array>
3937 // CHECK-NEXT:      </array>
3938 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3939 // CHECK-NEXT:      <key>extended_message</key>
3940 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3941 // CHECK-NEXT:      <key>message</key>
3942 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3943 // CHECK-NEXT:     </dict>
3944 // CHECK-NEXT:    </array>
3945 // 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>
3946 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3947 // CHECK-NEXT:    <key>type</key><string>Generics</string>
3948 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3949 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3950 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>23ca540c8961ab9a362a194e1e895f86</string>
3951 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3952 // CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes3</string>
3953 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
3954 // CHECK-NEXT:   <key>location</key>
3955 // CHECK-NEXT:   <dict>
3956 // CHECK-NEXT:    <key>line</key><integer>225</integer>
3957 // CHECK-NEXT:    <key>col</key><integer>27</integer>
3958 // CHECK-NEXT:    <key>file</key><integer>0</integer>
3959 // CHECK-NEXT:   </dict>
3960 // CHECK-NEXT:   </dict>
3961 // CHECK-NEXT:   <dict>
3962 // CHECK-NEXT:    <key>path</key>
3963 // CHECK-NEXT:    <array>
3964 // CHECK-NEXT:     <dict>
3965 // CHECK-NEXT:      <key>kind</key><string>event</string>
3966 // CHECK-NEXT:      <key>location</key>
3967 // CHECK-NEXT:      <dict>
3968 // CHECK-NEXT:       <key>line</key><integer>229</integer>
3969 // CHECK-NEXT:       <key>col</key><integer>20</integer>
3970 // CHECK-NEXT:       <key>file</key><integer>0</integer>
3971 // CHECK-NEXT:      </dict>
3972 // CHECK-NEXT:      <key>ranges</key>
3973 // CHECK-NEXT:      <array>
3974 // CHECK-NEXT:        <array>
3975 // CHECK-NEXT:         <dict>
3976 // CHECK-NEXT:          <key>line</key><integer>229</integer>
3977 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3978 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3979 // CHECK-NEXT:         </dict>
3980 // CHECK-NEXT:         <dict>
3981 // CHECK-NEXT:          <key>line</key><integer>229</integer>
3982 // CHECK-NEXT:          <key>col</key><integer>20</integer>
3983 // CHECK-NEXT:          <key>file</key><integer>0</integer>
3984 // CHECK-NEXT:         </dict>
3985 // CHECK-NEXT:        </array>
3986 // CHECK-NEXT:      </array>
3987 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
3988 // CHECK-NEXT:      <key>extended_message</key>
3989 // 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>
3990 // CHECK-NEXT:      <key>message</key>
3991 // 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>
3992 // CHECK-NEXT:     </dict>
3993 // CHECK-NEXT:     <dict>
3994 // CHECK-NEXT:      <key>kind</key><string>control</string>
3995 // CHECK-NEXT:      <key>edges</key>
3996 // CHECK-NEXT:       <array>
3997 // CHECK-NEXT:        <dict>
3998 // CHECK-NEXT:         <key>start</key>
3999 // CHECK-NEXT:          <array>
4000 // CHECK-NEXT:           <dict>
4001 // CHECK-NEXT:            <key>line</key><integer>229</integer>
4002 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4003 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4004 // CHECK-NEXT:           </dict>
4005 // CHECK-NEXT:           <dict>
4006 // CHECK-NEXT:            <key>line</key><integer>229</integer>
4007 // CHECK-NEXT:            <key>col</key><integer>18</integer>
4008 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4009 // CHECK-NEXT:           </dict>
4010 // CHECK-NEXT:          </array>
4011 // CHECK-NEXT:         <key>end</key>
4012 // CHECK-NEXT:          <array>
4013 // CHECK-NEXT:           <dict>
4014 // CHECK-NEXT:            <key>line</key><integer>230</integer>
4015 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4016 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4017 // CHECK-NEXT:           </dict>
4018 // CHECK-NEXT:           <dict>
4019 // CHECK-NEXT:            <key>line</key><integer>230</integer>
4020 // CHECK-NEXT:            <key>col</key><integer>25</integer>
4021 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4022 // CHECK-NEXT:           </dict>
4023 // CHECK-NEXT:          </array>
4024 // CHECK-NEXT:        </dict>
4025 // CHECK-NEXT:       </array>
4026 // CHECK-NEXT:     </dict>
4027 // CHECK-NEXT:     <dict>
4028 // CHECK-NEXT:      <key>kind</key><string>control</string>
4029 // CHECK-NEXT:      <key>edges</key>
4030 // CHECK-NEXT:       <array>
4031 // CHECK-NEXT:        <dict>
4032 // CHECK-NEXT:         <key>start</key>
4033 // CHECK-NEXT:          <array>
4034 // CHECK-NEXT:           <dict>
4035 // CHECK-NEXT:            <key>line</key><integer>230</integer>
4036 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4037 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4038 // CHECK-NEXT:           </dict>
4039 // CHECK-NEXT:           <dict>
4040 // CHECK-NEXT:            <key>line</key><integer>230</integer>
4041 // CHECK-NEXT:            <key>col</key><integer>25</integer>
4042 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4043 // CHECK-NEXT:           </dict>
4044 // CHECK-NEXT:          </array>
4045 // CHECK-NEXT:         <key>end</key>
4046 // CHECK-NEXT:          <array>
4047 // CHECK-NEXT:           <dict>
4048 // CHECK-NEXT:            <key>line</key><integer>230</integer>
4049 // CHECK-NEXT:            <key>col</key><integer>27</integer>
4050 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4051 // CHECK-NEXT:           </dict>
4052 // CHECK-NEXT:           <dict>
4053 // CHECK-NEXT:            <key>line</key><integer>230</integer>
4054 // CHECK-NEXT:            <key>col</key><integer>27</integer>
4055 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4056 // CHECK-NEXT:           </dict>
4057 // CHECK-NEXT:          </array>
4058 // CHECK-NEXT:        </dict>
4059 // CHECK-NEXT:       </array>
4060 // CHECK-NEXT:     </dict>
4061 // CHECK-NEXT:     <dict>
4062 // CHECK-NEXT:      <key>kind</key><string>event</string>
4063 // CHECK-NEXT:      <key>location</key>
4064 // CHECK-NEXT:      <dict>
4065 // CHECK-NEXT:       <key>line</key><integer>230</integer>
4066 // CHECK-NEXT:       <key>col</key><integer>27</integer>
4067 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4068 // CHECK-NEXT:      </dict>
4069 // CHECK-NEXT:      <key>ranges</key>
4070 // CHECK-NEXT:      <array>
4071 // CHECK-NEXT:        <array>
4072 // CHECK-NEXT:         <dict>
4073 // CHECK-NEXT:          <key>line</key><integer>230</integer>
4074 // CHECK-NEXT:          <key>col</key><integer>27</integer>
4075 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4076 // CHECK-NEXT:         </dict>
4077 // CHECK-NEXT:         <dict>
4078 // CHECK-NEXT:          <key>line</key><integer>230</integer>
4079 // CHECK-NEXT:          <key>col</key><integer>27</integer>
4080 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4081 // CHECK-NEXT:         </dict>
4082 // CHECK-NEXT:        </array>
4083 // CHECK-NEXT:      </array>
4084 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4085 // CHECK-NEXT:      <key>extended_message</key>
4086 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4087 // CHECK-NEXT:      <key>message</key>
4088 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4089 // CHECK-NEXT:     </dict>
4090 // CHECK-NEXT:    </array>
4091 // 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>
4092 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
4093 // CHECK-NEXT:    <key>type</key><string>Generics</string>
4094 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
4095 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4096 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>be7e9426f827314f05fd4e15b25909df</string>
4097 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4098 // CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithBuggyTypes</string>
4099 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
4100 // CHECK-NEXT:   <key>location</key>
4101 // CHECK-NEXT:   <dict>
4102 // CHECK-NEXT:    <key>line</key><integer>230</integer>
4103 // CHECK-NEXT:    <key>col</key><integer>27</integer>
4104 // CHECK-NEXT:    <key>file</key><integer>0</integer>
4105 // CHECK-NEXT:   </dict>
4106 // CHECK-NEXT:   </dict>
4107 // CHECK-NEXT:   <dict>
4108 // CHECK-NEXT:    <key>path</key>
4109 // CHECK-NEXT:    <array>
4110 // CHECK-NEXT:     <dict>
4111 // CHECK-NEXT:      <key>kind</key><string>event</string>
4112 // CHECK-NEXT:      <key>location</key>
4113 // CHECK-NEXT:      <dict>
4114 // CHECK-NEXT:       <key>line</key><integer>234</integer>
4115 // CHECK-NEXT:       <key>col</key><integer>27</integer>
4116 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4117 // CHECK-NEXT:      </dict>
4118 // CHECK-NEXT:      <key>ranges</key>
4119 // CHECK-NEXT:      <array>
4120 // CHECK-NEXT:        <array>
4121 // CHECK-NEXT:         <dict>
4122 // CHECK-NEXT:          <key>line</key><integer>234</integer>
4123 // CHECK-NEXT:          <key>col</key><integer>27</integer>
4124 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4125 // CHECK-NEXT:         </dict>
4126 // CHECK-NEXT:         <dict>
4127 // CHECK-NEXT:          <key>line</key><integer>234</integer>
4128 // CHECK-NEXT:          <key>col</key><integer>27</integer>
4129 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4130 // CHECK-NEXT:         </dict>
4131 // CHECK-NEXT:        </array>
4132 // CHECK-NEXT:      </array>
4133 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4134 // CHECK-NEXT:      <key>extended_message</key>
4135 // 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>
4136 // CHECK-NEXT:      <key>message</key>
4137 // 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>
4138 // CHECK-NEXT:     </dict>
4139 // CHECK-NEXT:     <dict>
4140 // CHECK-NEXT:      <key>kind</key><string>control</string>
4141 // CHECK-NEXT:      <key>edges</key>
4142 // CHECK-NEXT:       <array>
4143 // CHECK-NEXT:        <dict>
4144 // CHECK-NEXT:         <key>start</key>
4145 // CHECK-NEXT:          <array>
4146 // CHECK-NEXT:           <dict>
4147 // CHECK-NEXT:            <key>line</key><integer>234</integer>
4148 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4149 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4150 // CHECK-NEXT:           </dict>
4151 // CHECK-NEXT:           <dict>
4152 // CHECK-NEXT:            <key>line</key><integer>234</integer>
4153 // CHECK-NEXT:            <key>col</key><integer>25</integer>
4154 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4155 // CHECK-NEXT:           </dict>
4156 // CHECK-NEXT:          </array>
4157 // CHECK-NEXT:         <key>end</key>
4158 // CHECK-NEXT:          <array>
4159 // CHECK-NEXT:           <dict>
4160 // CHECK-NEXT:            <key>line</key><integer>235</integer>
4161 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4162 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4163 // CHECK-NEXT:           </dict>
4164 // CHECK-NEXT:           <dict>
4165 // CHECK-NEXT:            <key>line</key><integer>235</integer>
4166 // CHECK-NEXT:            <key>col</key><integer>18</integer>
4167 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4168 // CHECK-NEXT:           </dict>
4169 // CHECK-NEXT:          </array>
4170 // CHECK-NEXT:        </dict>
4171 // CHECK-NEXT:       </array>
4172 // CHECK-NEXT:     </dict>
4173 // CHECK-NEXT:     <dict>
4174 // CHECK-NEXT:      <key>kind</key><string>control</string>
4175 // CHECK-NEXT:      <key>edges</key>
4176 // CHECK-NEXT:       <array>
4177 // CHECK-NEXT:        <dict>
4178 // CHECK-NEXT:         <key>start</key>
4179 // CHECK-NEXT:          <array>
4180 // CHECK-NEXT:           <dict>
4181 // CHECK-NEXT:            <key>line</key><integer>235</integer>
4182 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4183 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4184 // CHECK-NEXT:           </dict>
4185 // CHECK-NEXT:           <dict>
4186 // CHECK-NEXT:            <key>line</key><integer>235</integer>
4187 // CHECK-NEXT:            <key>col</key><integer>18</integer>
4188 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4189 // CHECK-NEXT:           </dict>
4190 // CHECK-NEXT:          </array>
4191 // CHECK-NEXT:         <key>end</key>
4192 // CHECK-NEXT:          <array>
4193 // CHECK-NEXT:           <dict>
4194 // CHECK-NEXT:            <key>line</key><integer>235</integer>
4195 // CHECK-NEXT:            <key>col</key><integer>20</integer>
4196 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4197 // CHECK-NEXT:           </dict>
4198 // CHECK-NEXT:           <dict>
4199 // CHECK-NEXT:            <key>line</key><integer>235</integer>
4200 // CHECK-NEXT:            <key>col</key><integer>20</integer>
4201 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4202 // CHECK-NEXT:           </dict>
4203 // CHECK-NEXT:          </array>
4204 // CHECK-NEXT:        </dict>
4205 // CHECK-NEXT:       </array>
4206 // CHECK-NEXT:     </dict>
4207 // CHECK-NEXT:     <dict>
4208 // CHECK-NEXT:      <key>kind</key><string>event</string>
4209 // CHECK-NEXT:      <key>location</key>
4210 // CHECK-NEXT:      <dict>
4211 // CHECK-NEXT:       <key>line</key><integer>235</integer>
4212 // CHECK-NEXT:       <key>col</key><integer>20</integer>
4213 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4214 // CHECK-NEXT:      </dict>
4215 // CHECK-NEXT:      <key>ranges</key>
4216 // CHECK-NEXT:      <array>
4217 // CHECK-NEXT:        <array>
4218 // CHECK-NEXT:         <dict>
4219 // CHECK-NEXT:          <key>line</key><integer>235</integer>
4220 // CHECK-NEXT:          <key>col</key><integer>20</integer>
4221 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4222 // CHECK-NEXT:         </dict>
4223 // CHECK-NEXT:         <dict>
4224 // CHECK-NEXT:          <key>line</key><integer>235</integer>
4225 // CHECK-NEXT:          <key>col</key><integer>20</integer>
4226 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4227 // CHECK-NEXT:         </dict>
4228 // CHECK-NEXT:        </array>
4229 // CHECK-NEXT:      </array>
4230 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4231 // CHECK-NEXT:      <key>extended_message</key>
4232 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4233 // CHECK-NEXT:      <key>message</key>
4234 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4235 // CHECK-NEXT:     </dict>
4236 // CHECK-NEXT:    </array>
4237 // 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>
4238 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
4239 // CHECK-NEXT:    <key>type</key><string>Generics</string>
4240 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
4241 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4242 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>0f97a618ccac913d7c8631b5b86a133e</string>
4243 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4244 // CHECK-NEXT:   <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes2</string>
4245 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
4246 // CHECK-NEXT:   <key>location</key>
4247 // CHECK-NEXT:   <dict>
4248 // CHECK-NEXT:    <key>line</key><integer>235</integer>
4249 // CHECK-NEXT:    <key>col</key><integer>20</integer>
4250 // CHECK-NEXT:    <key>file</key><integer>0</integer>
4251 // CHECK-NEXT:   </dict>
4252 // CHECK-NEXT:   </dict>
4253 // CHECK-NEXT:   <dict>
4254 // CHECK-NEXT:    <key>path</key>
4255 // CHECK-NEXT:    <array>
4256 // CHECK-NEXT:     <dict>
4257 // CHECK-NEXT:      <key>kind</key><string>event</string>
4258 // CHECK-NEXT:      <key>location</key>
4259 // CHECK-NEXT:      <dict>
4260 // CHECK-NEXT:       <key>line</key><integer>239</integer>
4261 // CHECK-NEXT:       <key>col</key><integer>10</integer>
4262 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4263 // CHECK-NEXT:      </dict>
4264 // CHECK-NEXT:      <key>ranges</key>
4265 // CHECK-NEXT:      <array>
4266 // CHECK-NEXT:        <array>
4267 // CHECK-NEXT:         <dict>
4268 // CHECK-NEXT:          <key>line</key><integer>239</integer>
4269 // CHECK-NEXT:          <key>col</key><integer>10</integer>
4270 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4271 // CHECK-NEXT:         </dict>
4272 // CHECK-NEXT:         <dict>
4273 // CHECK-NEXT:          <key>line</key><integer>239</integer>
4274 // CHECK-NEXT:          <key>col</key><integer>10</integer>
4275 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4276 // CHECK-NEXT:         </dict>
4277 // CHECK-NEXT:        </array>
4278 // CHECK-NEXT:      </array>
4279 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4280 // CHECK-NEXT:      <key>extended_message</key>
4281 // 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>
4282 // CHECK-NEXT:      <key>message</key>
4283 // 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>
4284 // CHECK-NEXT:     </dict>
4285 // CHECK-NEXT:     <dict>
4286 // CHECK-NEXT:      <key>kind</key><string>control</string>
4287 // CHECK-NEXT:      <key>edges</key>
4288 // CHECK-NEXT:       <array>
4289 // CHECK-NEXT:        <dict>
4290 // CHECK-NEXT:         <key>start</key>
4291 // CHECK-NEXT:          <array>
4292 // CHECK-NEXT:           <dict>
4293 // CHECK-NEXT:            <key>line</key><integer>239</integer>
4294 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4295 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4296 // CHECK-NEXT:           </dict>
4297 // CHECK-NEXT:           <dict>
4298 // CHECK-NEXT:            <key>line</key><integer>239</integer>
4299 // CHECK-NEXT:            <key>col</key><integer>4</integer>
4300 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4301 // CHECK-NEXT:           </dict>
4302 // CHECK-NEXT:          </array>
4303 // CHECK-NEXT:         <key>end</key>
4304 // CHECK-NEXT:          <array>
4305 // CHECK-NEXT:           <dict>
4306 // CHECK-NEXT:            <key>line</key><integer>241</integer>
4307 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4308 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4309 // CHECK-NEXT:           </dict>
4310 // CHECK-NEXT:           <dict>
4311 // CHECK-NEXT:            <key>line</key><integer>241</integer>
4312 // CHECK-NEXT:            <key>col</key><integer>18</integer>
4313 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4314 // CHECK-NEXT:           </dict>
4315 // CHECK-NEXT:          </array>
4316 // CHECK-NEXT:        </dict>
4317 // CHECK-NEXT:       </array>
4318 // CHECK-NEXT:     </dict>
4319 // CHECK-NEXT:     <dict>
4320 // CHECK-NEXT:      <key>kind</key><string>control</string>
4321 // CHECK-NEXT:      <key>edges</key>
4322 // CHECK-NEXT:       <array>
4323 // CHECK-NEXT:        <dict>
4324 // CHECK-NEXT:         <key>start</key>
4325 // CHECK-NEXT:          <array>
4326 // CHECK-NEXT:           <dict>
4327 // CHECK-NEXT:            <key>line</key><integer>241</integer>
4328 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4329 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4330 // CHECK-NEXT:           </dict>
4331 // CHECK-NEXT:           <dict>
4332 // CHECK-NEXT:            <key>line</key><integer>241</integer>
4333 // CHECK-NEXT:            <key>col</key><integer>18</integer>
4334 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4335 // CHECK-NEXT:           </dict>
4336 // CHECK-NEXT:          </array>
4337 // CHECK-NEXT:         <key>end</key>
4338 // CHECK-NEXT:          <array>
4339 // CHECK-NEXT:           <dict>
4340 // CHECK-NEXT:            <key>line</key><integer>241</integer>
4341 // CHECK-NEXT:            <key>col</key><integer>20</integer>
4342 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4343 // CHECK-NEXT:           </dict>
4344 // CHECK-NEXT:           <dict>
4345 // CHECK-NEXT:            <key>line</key><integer>241</integer>
4346 // CHECK-NEXT:            <key>col</key><integer>20</integer>
4347 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4348 // CHECK-NEXT:           </dict>
4349 // CHECK-NEXT:          </array>
4350 // CHECK-NEXT:        </dict>
4351 // CHECK-NEXT:       </array>
4352 // CHECK-NEXT:     </dict>
4353 // CHECK-NEXT:     <dict>
4354 // CHECK-NEXT:      <key>kind</key><string>event</string>
4355 // CHECK-NEXT:      <key>location</key>
4356 // CHECK-NEXT:      <dict>
4357 // CHECK-NEXT:       <key>line</key><integer>241</integer>
4358 // CHECK-NEXT:       <key>col</key><integer>20</integer>
4359 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4360 // CHECK-NEXT:      </dict>
4361 // CHECK-NEXT:      <key>ranges</key>
4362 // CHECK-NEXT:      <array>
4363 // CHECK-NEXT:        <array>
4364 // CHECK-NEXT:         <dict>
4365 // CHECK-NEXT:          <key>line</key><integer>241</integer>
4366 // CHECK-NEXT:          <key>col</key><integer>20</integer>
4367 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4368 // CHECK-NEXT:         </dict>
4369 // CHECK-NEXT:         <dict>
4370 // CHECK-NEXT:          <key>line</key><integer>241</integer>
4371 // CHECK-NEXT:          <key>col</key><integer>20</integer>
4372 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4373 // CHECK-NEXT:         </dict>
4374 // CHECK-NEXT:        </array>
4375 // CHECK-NEXT:      </array>
4376 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4377 // CHECK-NEXT:      <key>extended_message</key>
4378 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4379 // CHECK-NEXT:      <key>message</key>
4380 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4381 // CHECK-NEXT:     </dict>
4382 // CHECK-NEXT:    </array>
4383 // 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>
4384 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
4385 // CHECK-NEXT:    <key>type</key><string>Generics</string>
4386 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
4387 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4388 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>725c54c88bb271138b1de545ee59a8aa</string>
4389 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4390 // CHECK-NEXT:   <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes3</string>
4391 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
4392 // CHECK-NEXT:   <key>location</key>
4393 // CHECK-NEXT:   <dict>
4394 // CHECK-NEXT:    <key>line</key><integer>241</integer>
4395 // CHECK-NEXT:    <key>col</key><integer>20</integer>
4396 // CHECK-NEXT:    <key>file</key><integer>0</integer>
4397 // CHECK-NEXT:   </dict>
4398 // CHECK-NEXT:   </dict>
4399 // CHECK-NEXT:   <dict>
4400 // CHECK-NEXT:    <key>path</key>
4401 // CHECK-NEXT:    <array>
4402 // CHECK-NEXT:     <dict>
4403 // CHECK-NEXT:      <key>kind</key><string>event</string>
4404 // CHECK-NEXT:      <key>location</key>
4405 // CHECK-NEXT:      <dict>
4406 // CHECK-NEXT:       <key>line</key><integer>245</integer>
4407 // CHECK-NEXT:       <key>col</key><integer>45</integer>
4408 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4409 // CHECK-NEXT:      </dict>
4410 // CHECK-NEXT:      <key>ranges</key>
4411 // CHECK-NEXT:      <array>
4412 // CHECK-NEXT:        <array>
4413 // CHECK-NEXT:         <dict>
4414 // CHECK-NEXT:          <key>line</key><integer>245</integer>
4415 // CHECK-NEXT:          <key>col</key><integer>45</integer>
4416 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4417 // CHECK-NEXT:         </dict>
4418 // CHECK-NEXT:         <dict>
4419 // CHECK-NEXT:          <key>line</key><integer>245</integer>
4420 // CHECK-NEXT:          <key>col</key><integer>45</integer>
4421 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4422 // CHECK-NEXT:         </dict>
4423 // CHECK-NEXT:        </array>
4424 // CHECK-NEXT:      </array>
4425 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4426 // CHECK-NEXT:      <key>extended_message</key>
4427 // 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>
4428 // CHECK-NEXT:      <key>message</key>
4429 // 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>
4430 // CHECK-NEXT:     </dict>
4431 // CHECK-NEXT:     <dict>
4432 // CHECK-NEXT:      <key>kind</key><string>control</string>
4433 // CHECK-NEXT:      <key>edges</key>
4434 // CHECK-NEXT:       <array>
4435 // CHECK-NEXT:        <dict>
4436 // CHECK-NEXT:         <key>start</key>
4437 // CHECK-NEXT:          <array>
4438 // CHECK-NEXT:           <dict>
4439 // CHECK-NEXT:            <key>line</key><integer>245</integer>
4440 // CHECK-NEXT:            <key>col</key><integer>3</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>245</integer>
4445 // CHECK-NEXT:            <key>col</key><integer>19</integer>
4446 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4447 // CHECK-NEXT:           </dict>
4448 // CHECK-NEXT:          </array>
4449 // CHECK-NEXT:         <key>end</key>
4450 // CHECK-NEXT:          <array>
4451 // CHECK-NEXT:           <dict>
4452 // CHECK-NEXT:            <key>line</key><integer>246</integer>
4453 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4454 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4455 // CHECK-NEXT:           </dict>
4456 // CHECK-NEXT:           <dict>
4457 // CHECK-NEXT:            <key>line</key><integer>246</integer>
4458 // CHECK-NEXT:            <key>col</key><integer>18</integer>
4459 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4460 // CHECK-NEXT:           </dict>
4461 // CHECK-NEXT:          </array>
4462 // CHECK-NEXT:        </dict>
4463 // CHECK-NEXT:       </array>
4464 // CHECK-NEXT:     </dict>
4465 // CHECK-NEXT:     <dict>
4466 // CHECK-NEXT:      <key>kind</key><string>event</string>
4467 // CHECK-NEXT:      <key>location</key>
4468 // CHECK-NEXT:      <dict>
4469 // CHECK-NEXT:       <key>line</key><integer>246</integer>
4470 // CHECK-NEXT:       <key>col</key><integer>20</integer>
4471 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4472 // CHECK-NEXT:      </dict>
4473 // CHECK-NEXT:      <key>ranges</key>
4474 // CHECK-NEXT:      <array>
4475 // CHECK-NEXT:        <array>
4476 // CHECK-NEXT:         <dict>
4477 // CHECK-NEXT:          <key>line</key><integer>246</integer>
4478 // CHECK-NEXT:          <key>col</key><integer>20</integer>
4479 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4480 // CHECK-NEXT:         </dict>
4481 // CHECK-NEXT:         <dict>
4482 // CHECK-NEXT:          <key>line</key><integer>246</integer>
4483 // CHECK-NEXT:          <key>col</key><integer>20</integer>
4484 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4485 // CHECK-NEXT:         </dict>
4486 // CHECK-NEXT:        </array>
4487 // CHECK-NEXT:      </array>
4488 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4489 // CHECK-NEXT:      <key>extended_message</key>
4490 // 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>
4491 // CHECK-NEXT:      <key>message</key>
4492 // 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>
4493 // CHECK-NEXT:     </dict>
4494 // CHECK-NEXT:     <dict>
4495 // CHECK-NEXT:      <key>kind</key><string>control</string>
4496 // CHECK-NEXT:      <key>edges</key>
4497 // CHECK-NEXT:       <array>
4498 // CHECK-NEXT:        <dict>
4499 // CHECK-NEXT:         <key>start</key>
4500 // CHECK-NEXT:          <array>
4501 // CHECK-NEXT:           <dict>
4502 // CHECK-NEXT:            <key>line</key><integer>246</integer>
4503 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4504 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4505 // CHECK-NEXT:           </dict>
4506 // CHECK-NEXT:           <dict>
4507 // CHECK-NEXT:            <key>line</key><integer>246</integer>
4508 // CHECK-NEXT:            <key>col</key><integer>18</integer>
4509 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4510 // CHECK-NEXT:           </dict>
4511 // CHECK-NEXT:          </array>
4512 // CHECK-NEXT:         <key>end</key>
4513 // CHECK-NEXT:          <array>
4514 // CHECK-NEXT:           <dict>
4515 // CHECK-NEXT:            <key>line</key><integer>247</integer>
4516 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4517 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4518 // CHECK-NEXT:           </dict>
4519 // CHECK-NEXT:           <dict>
4520 // CHECK-NEXT:            <key>line</key><integer>247</integer>
4521 // CHECK-NEXT:            <key>col</key><integer>25</integer>
4522 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4523 // CHECK-NEXT:           </dict>
4524 // CHECK-NEXT:          </array>
4525 // CHECK-NEXT:        </dict>
4526 // CHECK-NEXT:       </array>
4527 // CHECK-NEXT:     </dict>
4528 // CHECK-NEXT:     <dict>
4529 // CHECK-NEXT:      <key>kind</key><string>control</string>
4530 // CHECK-NEXT:      <key>edges</key>
4531 // CHECK-NEXT:       <array>
4532 // CHECK-NEXT:        <dict>
4533 // CHECK-NEXT:         <key>start</key>
4534 // CHECK-NEXT:          <array>
4535 // CHECK-NEXT:           <dict>
4536 // CHECK-NEXT:            <key>line</key><integer>247</integer>
4537 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4538 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4539 // CHECK-NEXT:           </dict>
4540 // CHECK-NEXT:           <dict>
4541 // CHECK-NEXT:            <key>line</key><integer>247</integer>
4542 // CHECK-NEXT:            <key>col</key><integer>25</integer>
4543 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4544 // CHECK-NEXT:           </dict>
4545 // CHECK-NEXT:          </array>
4546 // CHECK-NEXT:         <key>end</key>
4547 // CHECK-NEXT:          <array>
4548 // CHECK-NEXT:           <dict>
4549 // CHECK-NEXT:            <key>line</key><integer>247</integer>
4550 // CHECK-NEXT:            <key>col</key><integer>27</integer>
4551 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4552 // CHECK-NEXT:           </dict>
4553 // CHECK-NEXT:           <dict>
4554 // CHECK-NEXT:            <key>line</key><integer>247</integer>
4555 // CHECK-NEXT:            <key>col</key><integer>27</integer>
4556 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4557 // CHECK-NEXT:           </dict>
4558 // CHECK-NEXT:          </array>
4559 // CHECK-NEXT:        </dict>
4560 // CHECK-NEXT:       </array>
4561 // CHECK-NEXT:     </dict>
4562 // CHECK-NEXT:     <dict>
4563 // CHECK-NEXT:      <key>kind</key><string>event</string>
4564 // CHECK-NEXT:      <key>location</key>
4565 // CHECK-NEXT:      <dict>
4566 // CHECK-NEXT:       <key>line</key><integer>247</integer>
4567 // CHECK-NEXT:       <key>col</key><integer>27</integer>
4568 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4569 // CHECK-NEXT:      </dict>
4570 // CHECK-NEXT:      <key>ranges</key>
4571 // CHECK-NEXT:      <array>
4572 // CHECK-NEXT:        <array>
4573 // CHECK-NEXT:         <dict>
4574 // CHECK-NEXT:          <key>line</key><integer>247</integer>
4575 // CHECK-NEXT:          <key>col</key><integer>27</integer>
4576 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4577 // CHECK-NEXT:         </dict>
4578 // CHECK-NEXT:         <dict>
4579 // CHECK-NEXT:          <key>line</key><integer>247</integer>
4580 // CHECK-NEXT:          <key>col</key><integer>27</integer>
4581 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4582 // CHECK-NEXT:         </dict>
4583 // CHECK-NEXT:        </array>
4584 // CHECK-NEXT:      </array>
4585 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4586 // CHECK-NEXT:      <key>extended_message</key>
4587 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4588 // CHECK-NEXT:      <key>message</key>
4589 // CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4590 // CHECK-NEXT:     </dict>
4591 // CHECK-NEXT:    </array>
4592 // 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>
4593 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
4594 // CHECK-NEXT:    <key>type</key><string>Generics</string>
4595 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
4596 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4597 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>fb867af384c612fe5c09f821127eeaf0</string>
4598 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4599 // CHECK-NEXT:   <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes4</string>
4600 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
4601 // CHECK-NEXT:   <key>location</key>
4602 // CHECK-NEXT:   <dict>
4603 // CHECK-NEXT:    <key>line</key><integer>247</integer>
4604 // CHECK-NEXT:    <key>col</key><integer>27</integer>
4605 // CHECK-NEXT:    <key>file</key><integer>0</integer>
4606 // CHECK-NEXT:   </dict>
4607 // CHECK-NEXT:   </dict>
4608 // CHECK-NEXT:   <dict>
4609 // CHECK-NEXT:    <key>path</key>
4610 // CHECK-NEXT:    <array>
4611 // CHECK-NEXT:     <dict>
4612 // CHECK-NEXT:      <key>kind</key><string>control</string>
4613 // CHECK-NEXT:      <key>edges</key>
4614 // CHECK-NEXT:       <array>
4615 // CHECK-NEXT:        <dict>
4616 // CHECK-NEXT:         <key>start</key>
4617 // CHECK-NEXT:          <array>
4618 // CHECK-NEXT:           <dict>
4619 // CHECK-NEXT:            <key>line</key><integer>259</integer>
4620 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4621 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4622 // CHECK-NEXT:           </dict>
4623 // CHECK-NEXT:           <dict>
4624 // CHECK-NEXT:            <key>line</key><integer>259</integer>
4625 // CHECK-NEXT:            <key>col</key><integer>9</integer>
4626 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4627 // CHECK-NEXT:           </dict>
4628 // CHECK-NEXT:          </array>
4629 // CHECK-NEXT:         <key>end</key>
4630 // CHECK-NEXT:          <array>
4631 // CHECK-NEXT:           <dict>
4632 // CHECK-NEXT:            <key>line</key><integer>260</integer>
4633 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4634 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4635 // CHECK-NEXT:           </dict>
4636 // CHECK-NEXT:           <dict>
4637 // CHECK-NEXT:            <key>line</key><integer>260</integer>
4638 // CHECK-NEXT:            <key>col</key><integer>10</integer>
4639 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4640 // CHECK-NEXT:           </dict>
4641 // CHECK-NEXT:          </array>
4642 // CHECK-NEXT:        </dict>
4643 // CHECK-NEXT:       </array>
4644 // CHECK-NEXT:     </dict>
4645 // CHECK-NEXT:     <dict>
4646 // CHECK-NEXT:      <key>kind</key><string>control</string>
4647 // CHECK-NEXT:      <key>edges</key>
4648 // CHECK-NEXT:       <array>
4649 // CHECK-NEXT:        <dict>
4650 // CHECK-NEXT:         <key>start</key>
4651 // CHECK-NEXT:          <array>
4652 // CHECK-NEXT:           <dict>
4653 // CHECK-NEXT:            <key>line</key><integer>260</integer>
4654 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4655 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4656 // CHECK-NEXT:           </dict>
4657 // CHECK-NEXT:           <dict>
4658 // CHECK-NEXT:            <key>line</key><integer>260</integer>
4659 // CHECK-NEXT:            <key>col</key><integer>10</integer>
4660 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4661 // CHECK-NEXT:           </dict>
4662 // CHECK-NEXT:          </array>
4663 // CHECK-NEXT:         <key>end</key>
4664 // CHECK-NEXT:          <array>
4665 // CHECK-NEXT:           <dict>
4666 // CHECK-NEXT:            <key>line</key><integer>260</integer>
4667 // CHECK-NEXT:            <key>col</key><integer>19</integer>
4668 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4669 // CHECK-NEXT:           </dict>
4670 // CHECK-NEXT:           <dict>
4671 // CHECK-NEXT:            <key>line</key><integer>260</integer>
4672 // CHECK-NEXT:            <key>col</key><integer>19</integer>
4673 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4674 // CHECK-NEXT:           </dict>
4675 // CHECK-NEXT:          </array>
4676 // CHECK-NEXT:        </dict>
4677 // CHECK-NEXT:       </array>
4678 // CHECK-NEXT:     </dict>
4679 // CHECK-NEXT:     <dict>
4680 // CHECK-NEXT:      <key>kind</key><string>event</string>
4681 // CHECK-NEXT:      <key>location</key>
4682 // CHECK-NEXT:      <dict>
4683 // CHECK-NEXT:       <key>line</key><integer>260</integer>
4684 // CHECK-NEXT:       <key>col</key><integer>19</integer>
4685 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4686 // CHECK-NEXT:      </dict>
4687 // CHECK-NEXT:      <key>ranges</key>
4688 // CHECK-NEXT:      <array>
4689 // CHECK-NEXT:        <array>
4690 // CHECK-NEXT:         <dict>
4691 // CHECK-NEXT:          <key>line</key><integer>260</integer>
4692 // CHECK-NEXT:          <key>col</key><integer>19</integer>
4693 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4694 // CHECK-NEXT:         </dict>
4695 // CHECK-NEXT:         <dict>
4696 // CHECK-NEXT:          <key>line</key><integer>260</integer>
4697 // CHECK-NEXT:          <key>col</key><integer>38</integer>
4698 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4699 // CHECK-NEXT:         </dict>
4700 // CHECK-NEXT:        </array>
4701 // CHECK-NEXT:      </array>
4702 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4703 // CHECK-NEXT:      <key>extended_message</key>
4704 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4705 // CHECK-NEXT:      <key>message</key>
4706 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4707 // CHECK-NEXT:     </dict>
4708 // CHECK-NEXT:     <dict>
4709 // CHECK-NEXT:      <key>kind</key><string>event</string>
4710 // CHECK-NEXT:      <key>location</key>
4711 // CHECK-NEXT:      <dict>
4712 // CHECK-NEXT:       <key>line</key><integer>260</integer>
4713 // CHECK-NEXT:       <key>col</key><integer>19</integer>
4714 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4715 // CHECK-NEXT:      </dict>
4716 // CHECK-NEXT:      <key>ranges</key>
4717 // CHECK-NEXT:      <array>
4718 // CHECK-NEXT:        <array>
4719 // CHECK-NEXT:         <dict>
4720 // CHECK-NEXT:          <key>line</key><integer>260</integer>
4721 // CHECK-NEXT:          <key>col</key><integer>19</integer>
4722 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4723 // CHECK-NEXT:         </dict>
4724 // CHECK-NEXT:         <dict>
4725 // CHECK-NEXT:          <key>line</key><integer>260</integer>
4726 // CHECK-NEXT:          <key>col</key><integer>38</integer>
4727 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4728 // CHECK-NEXT:         </dict>
4729 // CHECK-NEXT:        </array>
4730 // CHECK-NEXT:      </array>
4731 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4732 // CHECK-NEXT:      <key>extended_message</key>
4733 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4734 // CHECK-NEXT:      <key>message</key>
4735 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4736 // CHECK-NEXT:     </dict>
4737 // CHECK-NEXT:    </array>
4738 // CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4739 // CHECK-NEXT:    <key>category</key><string>Type Error</string>
4740 // CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
4741 // CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4742 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4743 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>2e9f738345d9fa7dae2324ff7accd1ae</string>
4744 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4745 // CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
4746 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
4747 // CHECK-NEXT:   <key>location</key>
4748 // CHECK-NEXT:   <dict>
4749 // CHECK-NEXT:    <key>line</key><integer>260</integer>
4750 // CHECK-NEXT:    <key>col</key><integer>19</integer>
4751 // CHECK-NEXT:    <key>file</key><integer>0</integer>
4752 // CHECK-NEXT:   </dict>
4753 // CHECK-NEXT:   </dict>
4754 // CHECK-NEXT:   <dict>
4755 // CHECK-NEXT:    <key>path</key>
4756 // CHECK-NEXT:    <array>
4757 // CHECK-NEXT:     <dict>
4758 // CHECK-NEXT:      <key>kind</key><string>control</string>
4759 // CHECK-NEXT:      <key>edges</key>
4760 // CHECK-NEXT:       <array>
4761 // CHECK-NEXT:        <dict>
4762 // CHECK-NEXT:         <key>start</key>
4763 // CHECK-NEXT:          <array>
4764 // CHECK-NEXT:           <dict>
4765 // CHECK-NEXT:            <key>line</key><integer>259</integer>
4766 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4767 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4768 // CHECK-NEXT:           </dict>
4769 // CHECK-NEXT:           <dict>
4770 // CHECK-NEXT:            <key>line</key><integer>259</integer>
4771 // CHECK-NEXT:            <key>col</key><integer>9</integer>
4772 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4773 // CHECK-NEXT:           </dict>
4774 // CHECK-NEXT:          </array>
4775 // CHECK-NEXT:         <key>end</key>
4776 // CHECK-NEXT:          <array>
4777 // CHECK-NEXT:           <dict>
4778 // CHECK-NEXT:            <key>line</key><integer>262</integer>
4779 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4780 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4781 // CHECK-NEXT:           </dict>
4782 // CHECK-NEXT:           <dict>
4783 // CHECK-NEXT:            <key>line</key><integer>262</integer>
4784 // CHECK-NEXT:            <key>col</key><integer>5</integer>
4785 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4786 // CHECK-NEXT:           </dict>
4787 // CHECK-NEXT:          </array>
4788 // CHECK-NEXT:        </dict>
4789 // CHECK-NEXT:       </array>
4790 // CHECK-NEXT:     </dict>
4791 // CHECK-NEXT:     <dict>
4792 // CHECK-NEXT:      <key>kind</key><string>control</string>
4793 // CHECK-NEXT:      <key>edges</key>
4794 // CHECK-NEXT:       <array>
4795 // CHECK-NEXT:        <dict>
4796 // CHECK-NEXT:         <key>start</key>
4797 // CHECK-NEXT:          <array>
4798 // CHECK-NEXT:           <dict>
4799 // CHECK-NEXT:            <key>line</key><integer>262</integer>
4800 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4801 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4802 // CHECK-NEXT:           </dict>
4803 // CHECK-NEXT:           <dict>
4804 // CHECK-NEXT:            <key>line</key><integer>262</integer>
4805 // CHECK-NEXT:            <key>col</key><integer>5</integer>
4806 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4807 // CHECK-NEXT:           </dict>
4808 // CHECK-NEXT:          </array>
4809 // CHECK-NEXT:         <key>end</key>
4810 // CHECK-NEXT:          <array>
4811 // CHECK-NEXT:           <dict>
4812 // CHECK-NEXT:            <key>line</key><integer>262</integer>
4813 // CHECK-NEXT:            <key>col</key><integer>9</integer>
4814 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4815 // CHECK-NEXT:           </dict>
4816 // CHECK-NEXT:           <dict>
4817 // CHECK-NEXT:            <key>line</key><integer>262</integer>
4818 // CHECK-NEXT:            <key>col</key><integer>9</integer>
4819 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4820 // CHECK-NEXT:           </dict>
4821 // CHECK-NEXT:          </array>
4822 // CHECK-NEXT:        </dict>
4823 // CHECK-NEXT:       </array>
4824 // CHECK-NEXT:     </dict>
4825 // CHECK-NEXT:     <dict>
4826 // CHECK-NEXT:      <key>kind</key><string>event</string>
4827 // CHECK-NEXT:      <key>location</key>
4828 // CHECK-NEXT:      <dict>
4829 // CHECK-NEXT:       <key>line</key><integer>262</integer>
4830 // CHECK-NEXT:       <key>col</key><integer>9</integer>
4831 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4832 // CHECK-NEXT:      </dict>
4833 // CHECK-NEXT:      <key>ranges</key>
4834 // CHECK-NEXT:      <array>
4835 // CHECK-NEXT:        <array>
4836 // CHECK-NEXT:         <dict>
4837 // CHECK-NEXT:          <key>line</key><integer>262</integer>
4838 // CHECK-NEXT:          <key>col</key><integer>9</integer>
4839 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4840 // CHECK-NEXT:         </dict>
4841 // CHECK-NEXT:         <dict>
4842 // CHECK-NEXT:          <key>line</key><integer>262</integer>
4843 // CHECK-NEXT:          <key>col</key><integer>23</integer>
4844 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4845 // CHECK-NEXT:         </dict>
4846 // CHECK-NEXT:        </array>
4847 // CHECK-NEXT:      </array>
4848 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4849 // CHECK-NEXT:      <key>extended_message</key>
4850 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4851 // CHECK-NEXT:      <key>message</key>
4852 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4853 // CHECK-NEXT:     </dict>
4854 // CHECK-NEXT:     <dict>
4855 // CHECK-NEXT:      <key>kind</key><string>event</string>
4856 // CHECK-NEXT:      <key>location</key>
4857 // CHECK-NEXT:      <dict>
4858 // CHECK-NEXT:       <key>line</key><integer>262</integer>
4859 // CHECK-NEXT:       <key>col</key><integer>9</integer>
4860 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4861 // CHECK-NEXT:      </dict>
4862 // CHECK-NEXT:      <key>ranges</key>
4863 // CHECK-NEXT:      <array>
4864 // CHECK-NEXT:        <array>
4865 // CHECK-NEXT:         <dict>
4866 // CHECK-NEXT:          <key>line</key><integer>262</integer>
4867 // CHECK-NEXT:          <key>col</key><integer>9</integer>
4868 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4869 // CHECK-NEXT:         </dict>
4870 // CHECK-NEXT:         <dict>
4871 // CHECK-NEXT:          <key>line</key><integer>262</integer>
4872 // CHECK-NEXT:          <key>col</key><integer>23</integer>
4873 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4874 // CHECK-NEXT:         </dict>
4875 // CHECK-NEXT:        </array>
4876 // CHECK-NEXT:      </array>
4877 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4878 // CHECK-NEXT:      <key>extended_message</key>
4879 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4880 // CHECK-NEXT:      <key>message</key>
4881 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4882 // CHECK-NEXT:     </dict>
4883 // CHECK-NEXT:    </array>
4884 // CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4885 // CHECK-NEXT:    <key>category</key><string>Type Error</string>
4886 // CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
4887 // CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4888 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4889 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d85392b4efadf710b8da65a043a65e24</string>
4890 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4891 // CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
4892 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
4893 // CHECK-NEXT:   <key>location</key>
4894 // CHECK-NEXT:   <dict>
4895 // CHECK-NEXT:    <key>line</key><integer>262</integer>
4896 // CHECK-NEXT:    <key>col</key><integer>9</integer>
4897 // CHECK-NEXT:    <key>file</key><integer>0</integer>
4898 // CHECK-NEXT:   </dict>
4899 // CHECK-NEXT:   </dict>
4900 // CHECK-NEXT:   <dict>
4901 // CHECK-NEXT:    <key>path</key>
4902 // CHECK-NEXT:    <array>
4903 // CHECK-NEXT:     <dict>
4904 // CHECK-NEXT:      <key>kind</key><string>control</string>
4905 // CHECK-NEXT:      <key>edges</key>
4906 // CHECK-NEXT:       <array>
4907 // CHECK-NEXT:        <dict>
4908 // CHECK-NEXT:         <key>start</key>
4909 // CHECK-NEXT:          <array>
4910 // CHECK-NEXT:           <dict>
4911 // CHECK-NEXT:            <key>line</key><integer>259</integer>
4912 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4913 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4914 // CHECK-NEXT:           </dict>
4915 // CHECK-NEXT:           <dict>
4916 // CHECK-NEXT:            <key>line</key><integer>259</integer>
4917 // CHECK-NEXT:            <key>col</key><integer>9</integer>
4918 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4919 // CHECK-NEXT:           </dict>
4920 // CHECK-NEXT:          </array>
4921 // CHECK-NEXT:         <key>end</key>
4922 // CHECK-NEXT:          <array>
4923 // CHECK-NEXT:           <dict>
4924 // CHECK-NEXT:            <key>line</key><integer>264</integer>
4925 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4926 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4927 // CHECK-NEXT:           </dict>
4928 // CHECK-NEXT:           <dict>
4929 // CHECK-NEXT:            <key>line</key><integer>264</integer>
4930 // CHECK-NEXT:            <key>col</key><integer>5</integer>
4931 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4932 // CHECK-NEXT:           </dict>
4933 // CHECK-NEXT:          </array>
4934 // CHECK-NEXT:        </dict>
4935 // CHECK-NEXT:       </array>
4936 // CHECK-NEXT:     </dict>
4937 // CHECK-NEXT:     <dict>
4938 // CHECK-NEXT:      <key>kind</key><string>control</string>
4939 // CHECK-NEXT:      <key>edges</key>
4940 // CHECK-NEXT:       <array>
4941 // CHECK-NEXT:        <dict>
4942 // CHECK-NEXT:         <key>start</key>
4943 // CHECK-NEXT:          <array>
4944 // CHECK-NEXT:           <dict>
4945 // CHECK-NEXT:            <key>line</key><integer>264</integer>
4946 // CHECK-NEXT:            <key>col</key><integer>3</integer>
4947 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4948 // CHECK-NEXT:           </dict>
4949 // CHECK-NEXT:           <dict>
4950 // CHECK-NEXT:            <key>line</key><integer>264</integer>
4951 // CHECK-NEXT:            <key>col</key><integer>5</integer>
4952 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4953 // CHECK-NEXT:           </dict>
4954 // CHECK-NEXT:          </array>
4955 // CHECK-NEXT:         <key>end</key>
4956 // CHECK-NEXT:          <array>
4957 // CHECK-NEXT:           <dict>
4958 // CHECK-NEXT:            <key>line</key><integer>264</integer>
4959 // CHECK-NEXT:            <key>col</key><integer>11</integer>
4960 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4961 // CHECK-NEXT:           </dict>
4962 // CHECK-NEXT:           <dict>
4963 // CHECK-NEXT:            <key>line</key><integer>264</integer>
4964 // CHECK-NEXT:            <key>col</key><integer>21</integer>
4965 // CHECK-NEXT:            <key>file</key><integer>0</integer>
4966 // CHECK-NEXT:           </dict>
4967 // CHECK-NEXT:          </array>
4968 // CHECK-NEXT:        </dict>
4969 // CHECK-NEXT:       </array>
4970 // CHECK-NEXT:     </dict>
4971 // CHECK-NEXT:     <dict>
4972 // CHECK-NEXT:      <key>kind</key><string>event</string>
4973 // CHECK-NEXT:      <key>location</key>
4974 // CHECK-NEXT:      <dict>
4975 // CHECK-NEXT:       <key>line</key><integer>264</integer>
4976 // CHECK-NEXT:       <key>col</key><integer>11</integer>
4977 // CHECK-NEXT:       <key>file</key><integer>0</integer>
4978 // CHECK-NEXT:      </dict>
4979 // CHECK-NEXT:      <key>ranges</key>
4980 // CHECK-NEXT:      <array>
4981 // CHECK-NEXT:        <array>
4982 // CHECK-NEXT:         <dict>
4983 // CHECK-NEXT:          <key>line</key><integer>264</integer>
4984 // CHECK-NEXT:          <key>col</key><integer>11</integer>
4985 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4986 // CHECK-NEXT:         </dict>
4987 // CHECK-NEXT:         <dict>
4988 // CHECK-NEXT:          <key>line</key><integer>264</integer>
4989 // CHECK-NEXT:          <key>col</key><integer>21</integer>
4990 // CHECK-NEXT:          <key>file</key><integer>0</integer>
4991 // CHECK-NEXT:         </dict>
4992 // CHECK-NEXT:        </array>
4993 // CHECK-NEXT:      </array>
4994 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
4995 // CHECK-NEXT:      <key>extended_message</key>
4996 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4997 // CHECK-NEXT:      <key>message</key>
4998 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4999 // CHECK-NEXT:     </dict>
5000 // CHECK-NEXT:     <dict>
5001 // CHECK-NEXT:      <key>kind</key><string>event</string>
5002 // CHECK-NEXT:      <key>location</key>
5003 // CHECK-NEXT:      <dict>
5004 // CHECK-NEXT:       <key>line</key><integer>264</integer>
5005 // CHECK-NEXT:       <key>col</key><integer>9</integer>
5006 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5007 // CHECK-NEXT:      </dict>
5008 // CHECK-NEXT:      <key>ranges</key>
5009 // CHECK-NEXT:      <array>
5010 // CHECK-NEXT:        <array>
5011 // CHECK-NEXT:         <dict>
5012 // CHECK-NEXT:          <key>line</key><integer>264</integer>
5013 // CHECK-NEXT:          <key>col</key><integer>9</integer>
5014 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5015 // CHECK-NEXT:         </dict>
5016 // CHECK-NEXT:         <dict>
5017 // CHECK-NEXT:          <key>line</key><integer>264</integer>
5018 // CHECK-NEXT:          <key>col</key><integer>21</integer>
5019 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5020 // CHECK-NEXT:         </dict>
5021 // CHECK-NEXT:        </array>
5022 // CHECK-NEXT:      </array>
5023 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5024 // CHECK-NEXT:      <key>extended_message</key>
5025 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5026 // CHECK-NEXT:      <key>message</key>
5027 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5028 // CHECK-NEXT:     </dict>
5029 // CHECK-NEXT:    </array>
5030 // CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5031 // CHECK-NEXT:    <key>category</key><string>Type Error</string>
5032 // CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
5033 // CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
5034 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5035 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>456c6227549a5e577088c9dce4cea452</string>
5036 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5037 // CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
5038 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>6</string>
5039 // CHECK-NEXT:   <key>location</key>
5040 // CHECK-NEXT:   <dict>
5041 // CHECK-NEXT:    <key>line</key><integer>264</integer>
5042 // CHECK-NEXT:    <key>col</key><integer>9</integer>
5043 // CHECK-NEXT:    <key>file</key><integer>0</integer>
5044 // CHECK-NEXT:   </dict>
5045 // CHECK-NEXT:   </dict>
5046 // CHECK-NEXT:   <dict>
5047 // CHECK-NEXT:    <key>path</key>
5048 // CHECK-NEXT:    <array>
5049 // CHECK-NEXT:     <dict>
5050 // CHECK-NEXT:      <key>kind</key><string>control</string>
5051 // CHECK-NEXT:      <key>edges</key>
5052 // CHECK-NEXT:       <array>
5053 // CHECK-NEXT:        <dict>
5054 // CHECK-NEXT:         <key>start</key>
5055 // CHECK-NEXT:          <array>
5056 // CHECK-NEXT:           <dict>
5057 // CHECK-NEXT:            <key>line</key><integer>259</integer>
5058 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5059 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5060 // CHECK-NEXT:           </dict>
5061 // CHECK-NEXT:           <dict>
5062 // CHECK-NEXT:            <key>line</key><integer>259</integer>
5063 // CHECK-NEXT:            <key>col</key><integer>9</integer>
5064 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5065 // CHECK-NEXT:           </dict>
5066 // CHECK-NEXT:          </array>
5067 // CHECK-NEXT:         <key>end</key>
5068 // CHECK-NEXT:          <array>
5069 // CHECK-NEXT:           <dict>
5070 // CHECK-NEXT:            <key>line</key><integer>266</integer>
5071 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5072 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5073 // CHECK-NEXT:           </dict>
5074 // CHECK-NEXT:           <dict>
5075 // CHECK-NEXT:            <key>line</key><integer>266</integer>
5076 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5077 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5078 // CHECK-NEXT:           </dict>
5079 // CHECK-NEXT:          </array>
5080 // CHECK-NEXT:        </dict>
5081 // CHECK-NEXT:       </array>
5082 // CHECK-NEXT:     </dict>
5083 // CHECK-NEXT:     <dict>
5084 // CHECK-NEXT:      <key>kind</key><string>control</string>
5085 // CHECK-NEXT:      <key>edges</key>
5086 // CHECK-NEXT:       <array>
5087 // CHECK-NEXT:        <dict>
5088 // CHECK-NEXT:         <key>start</key>
5089 // CHECK-NEXT:          <array>
5090 // CHECK-NEXT:           <dict>
5091 // CHECK-NEXT:            <key>line</key><integer>266</integer>
5092 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5093 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5094 // CHECK-NEXT:           </dict>
5095 // CHECK-NEXT:           <dict>
5096 // CHECK-NEXT:            <key>line</key><integer>266</integer>
5097 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5098 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5099 // CHECK-NEXT:           </dict>
5100 // CHECK-NEXT:          </array>
5101 // CHECK-NEXT:         <key>end</key>
5102 // CHECK-NEXT:          <array>
5103 // CHECK-NEXT:           <dict>
5104 // CHECK-NEXT:            <key>line</key><integer>266</integer>
5105 // CHECK-NEXT:            <key>col</key><integer>9</integer>
5106 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5107 // CHECK-NEXT:           </dict>
5108 // CHECK-NEXT:           <dict>
5109 // CHECK-NEXT:            <key>line</key><integer>266</integer>
5110 // CHECK-NEXT:            <key>col</key><integer>9</integer>
5111 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5112 // CHECK-NEXT:           </dict>
5113 // CHECK-NEXT:          </array>
5114 // CHECK-NEXT:        </dict>
5115 // CHECK-NEXT:       </array>
5116 // CHECK-NEXT:     </dict>
5117 // CHECK-NEXT:     <dict>
5118 // CHECK-NEXT:      <key>kind</key><string>event</string>
5119 // CHECK-NEXT:      <key>location</key>
5120 // CHECK-NEXT:      <dict>
5121 // CHECK-NEXT:       <key>line</key><integer>266</integer>
5122 // CHECK-NEXT:       <key>col</key><integer>9</integer>
5123 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5124 // CHECK-NEXT:      </dict>
5125 // CHECK-NEXT:      <key>ranges</key>
5126 // CHECK-NEXT:      <array>
5127 // CHECK-NEXT:        <array>
5128 // CHECK-NEXT:         <dict>
5129 // CHECK-NEXT:          <key>line</key><integer>266</integer>
5130 // CHECK-NEXT:          <key>col</key><integer>9</integer>
5131 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5132 // CHECK-NEXT:         </dict>
5133 // CHECK-NEXT:         <dict>
5134 // CHECK-NEXT:          <key>line</key><integer>266</integer>
5135 // CHECK-NEXT:          <key>col</key><integer>9</integer>
5136 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5137 // CHECK-NEXT:         </dict>
5138 // CHECK-NEXT:        </array>
5139 // CHECK-NEXT:      </array>
5140 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5141 // CHECK-NEXT:      <key>extended_message</key>
5142 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5143 // CHECK-NEXT:      <key>message</key>
5144 // CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5145 // CHECK-NEXT:     </dict>
5146 // CHECK-NEXT:     <dict>
5147 // CHECK-NEXT:      <key>kind</key><string>event</string>
5148 // CHECK-NEXT:      <key>location</key>
5149 // CHECK-NEXT:      <dict>
5150 // CHECK-NEXT:       <key>line</key><integer>266</integer>
5151 // CHECK-NEXT:       <key>col</key><integer>9</integer>
5152 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5153 // CHECK-NEXT:      </dict>
5154 // CHECK-NEXT:      <key>ranges</key>
5155 // CHECK-NEXT:      <array>
5156 // CHECK-NEXT:        <array>
5157 // CHECK-NEXT:         <dict>
5158 // CHECK-NEXT:          <key>line</key><integer>266</integer>
5159 // CHECK-NEXT:          <key>col</key><integer>9</integer>
5160 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5161 // CHECK-NEXT:         </dict>
5162 // CHECK-NEXT:         <dict>
5163 // CHECK-NEXT:          <key>line</key><integer>266</integer>
5164 // CHECK-NEXT:          <key>col</key><integer>12</integer>
5165 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5166 // CHECK-NEXT:         </dict>
5167 // CHECK-NEXT:        </array>
5168 // CHECK-NEXT:      </array>
5169 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5170 // CHECK-NEXT:      <key>extended_message</key>
5171 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5172 // CHECK-NEXT:      <key>message</key>
5173 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5174 // CHECK-NEXT:     </dict>
5175 // CHECK-NEXT:    </array>
5176 // CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5177 // CHECK-NEXT:    <key>category</key><string>Type Error</string>
5178 // CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
5179 // CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
5180 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5181 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>df7f090d2b72ac07bc2351177ed6552d</string>
5182 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5183 // CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
5184 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>8</string>
5185 // CHECK-NEXT:   <key>location</key>
5186 // CHECK-NEXT:   <dict>
5187 // CHECK-NEXT:    <key>line</key><integer>266</integer>
5188 // CHECK-NEXT:    <key>col</key><integer>9</integer>
5189 // CHECK-NEXT:    <key>file</key><integer>0</integer>
5190 // CHECK-NEXT:   </dict>
5191 // CHECK-NEXT:   </dict>
5192 // CHECK-NEXT:   <dict>
5193 // CHECK-NEXT:    <key>path</key>
5194 // CHECK-NEXT:    <array>
5195 // CHECK-NEXT:     <dict>
5196 // CHECK-NEXT:      <key>kind</key><string>event</string>
5197 // CHECK-NEXT:      <key>location</key>
5198 // CHECK-NEXT:      <dict>
5199 // CHECK-NEXT:       <key>line</key><integer>272</integer>
5200 // CHECK-NEXT:       <key>col</key><integer>7</integer>
5201 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5202 // CHECK-NEXT:      </dict>
5203 // CHECK-NEXT:      <key>ranges</key>
5204 // CHECK-NEXT:      <array>
5205 // CHECK-NEXT:        <array>
5206 // CHECK-NEXT:         <dict>
5207 // CHECK-NEXT:          <key>line</key><integer>272</integer>
5208 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5209 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5210 // CHECK-NEXT:         </dict>
5211 // CHECK-NEXT:         <dict>
5212 // CHECK-NEXT:          <key>line</key><integer>272</integer>
5213 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5214 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5215 // CHECK-NEXT:         </dict>
5216 // CHECK-NEXT:        </array>
5217 // CHECK-NEXT:      </array>
5218 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5219 // CHECK-NEXT:      <key>extended_message</key>
5220 // 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>
5221 // CHECK-NEXT:      <key>message</key>
5222 // 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>
5223 // CHECK-NEXT:     </dict>
5224 // CHECK-NEXT:     <dict>
5225 // CHECK-NEXT:      <key>kind</key><string>control</string>
5226 // CHECK-NEXT:      <key>edges</key>
5227 // CHECK-NEXT:       <array>
5228 // CHECK-NEXT:        <dict>
5229 // CHECK-NEXT:         <key>start</key>
5230 // CHECK-NEXT:          <array>
5231 // CHECK-NEXT:           <dict>
5232 // CHECK-NEXT:            <key>line</key><integer>272</integer>
5233 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5234 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5235 // CHECK-NEXT:           </dict>
5236 // CHECK-NEXT:           <dict>
5237 // CHECK-NEXT:            <key>line</key><integer>272</integer>
5238 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5239 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5240 // CHECK-NEXT:           </dict>
5241 // CHECK-NEXT:          </array>
5242 // CHECK-NEXT:         <key>end</key>
5243 // CHECK-NEXT:          <array>
5244 // CHECK-NEXT:           <dict>
5245 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5246 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5247 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5248 // CHECK-NEXT:           </dict>
5249 // CHECK-NEXT:           <dict>
5250 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5251 // CHECK-NEXT:            <key>col</key><integer>4</integer>
5252 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5253 // CHECK-NEXT:           </dict>
5254 // CHECK-NEXT:          </array>
5255 // CHECK-NEXT:        </dict>
5256 // CHECK-NEXT:       </array>
5257 // CHECK-NEXT:     </dict>
5258 // CHECK-NEXT:     <dict>
5259 // CHECK-NEXT:      <key>kind</key><string>control</string>
5260 // CHECK-NEXT:      <key>edges</key>
5261 // CHECK-NEXT:       <array>
5262 // CHECK-NEXT:        <dict>
5263 // CHECK-NEXT:         <key>start</key>
5264 // CHECK-NEXT:          <array>
5265 // CHECK-NEXT:           <dict>
5266 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5267 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5268 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5269 // CHECK-NEXT:           </dict>
5270 // CHECK-NEXT:           <dict>
5271 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5272 // CHECK-NEXT:            <key>col</key><integer>4</integer>
5273 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5274 // CHECK-NEXT:           </dict>
5275 // CHECK-NEXT:          </array>
5276 // CHECK-NEXT:         <key>end</key>
5277 // CHECK-NEXT:          <array>
5278 // CHECK-NEXT:           <dict>
5279 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5280 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5281 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5282 // CHECK-NEXT:           </dict>
5283 // CHECK-NEXT:           <dict>
5284 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5285 // CHECK-NEXT:            <key>col</key><integer>16</integer>
5286 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5287 // CHECK-NEXT:           </dict>
5288 // CHECK-NEXT:          </array>
5289 // CHECK-NEXT:        </dict>
5290 // CHECK-NEXT:       </array>
5291 // CHECK-NEXT:     </dict>
5292 // CHECK-NEXT:     <dict>
5293 // CHECK-NEXT:      <key>kind</key><string>event</string>
5294 // CHECK-NEXT:      <key>location</key>
5295 // CHECK-NEXT:      <dict>
5296 // CHECK-NEXT:       <key>line</key><integer>273</integer>
5297 // CHECK-NEXT:       <key>col</key><integer>7</integer>
5298 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5299 // CHECK-NEXT:      </dict>
5300 // CHECK-NEXT:      <key>ranges</key>
5301 // CHECK-NEXT:      <array>
5302 // CHECK-NEXT:        <array>
5303 // CHECK-NEXT:         <dict>
5304 // CHECK-NEXT:          <key>line</key><integer>273</integer>
5305 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5306 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5307 // CHECK-NEXT:         </dict>
5308 // CHECK-NEXT:         <dict>
5309 // CHECK-NEXT:          <key>line</key><integer>273</integer>
5310 // CHECK-NEXT:          <key>col</key><integer>23</integer>
5311 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5312 // CHECK-NEXT:         </dict>
5313 // CHECK-NEXT:        </array>
5314 // CHECK-NEXT:      </array>
5315 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5316 // CHECK-NEXT:      <key>extended_message</key>
5317 // CHECK-NEXT:      <string>Assuming the condition is true</string>
5318 // CHECK-NEXT:      <key>message</key>
5319 // CHECK-NEXT:      <string>Assuming the condition is true</string>
5320 // CHECK-NEXT:     </dict>
5321 // CHECK-NEXT:     <dict>
5322 // CHECK-NEXT:      <key>kind</key><string>control</string>
5323 // CHECK-NEXT:      <key>edges</key>
5324 // CHECK-NEXT:       <array>
5325 // CHECK-NEXT:        <dict>
5326 // CHECK-NEXT:         <key>start</key>
5327 // CHECK-NEXT:          <array>
5328 // CHECK-NEXT:           <dict>
5329 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5330 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5331 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5332 // CHECK-NEXT:           </dict>
5333 // CHECK-NEXT:           <dict>
5334 // CHECK-NEXT:            <key>line</key><integer>273</integer>
5335 // CHECK-NEXT:            <key>col</key><integer>16</integer>
5336 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5337 // CHECK-NEXT:           </dict>
5338 // CHECK-NEXT:          </array>
5339 // CHECK-NEXT:         <key>end</key>
5340 // CHECK-NEXT:          <array>
5341 // CHECK-NEXT:           <dict>
5342 // CHECK-NEXT:            <key>line</key><integer>274</integer>
5343 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5344 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5345 // CHECK-NEXT:           </dict>
5346 // CHECK-NEXT:           <dict>
5347 // CHECK-NEXT:            <key>line</key><integer>274</integer>
5348 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5349 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5350 // CHECK-NEXT:           </dict>
5351 // CHECK-NEXT:          </array>
5352 // CHECK-NEXT:        </dict>
5353 // CHECK-NEXT:       </array>
5354 // CHECK-NEXT:     </dict>
5355 // CHECK-NEXT:     <dict>
5356 // CHECK-NEXT:      <key>kind</key><string>control</string>
5357 // CHECK-NEXT:      <key>edges</key>
5358 // CHECK-NEXT:       <array>
5359 // CHECK-NEXT:        <dict>
5360 // CHECK-NEXT:         <key>start</key>
5361 // CHECK-NEXT:          <array>
5362 // CHECK-NEXT:           <dict>
5363 // CHECK-NEXT:            <key>line</key><integer>274</integer>
5364 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5365 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5366 // CHECK-NEXT:           </dict>
5367 // CHECK-NEXT:           <dict>
5368 // CHECK-NEXT:            <key>line</key><integer>274</integer>
5369 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5370 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5371 // CHECK-NEXT:           </dict>
5372 // CHECK-NEXT:          </array>
5373 // CHECK-NEXT:         <key>end</key>
5374 // CHECK-NEXT:          <array>
5375 // CHECK-NEXT:           <dict>
5376 // CHECK-NEXT:            <key>line</key><integer>275</integer>
5377 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5378 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5379 // CHECK-NEXT:           </dict>
5380 // CHECK-NEXT:           <dict>
5381 // CHECK-NEXT:            <key>line</key><integer>275</integer>
5382 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5383 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5384 // CHECK-NEXT:           </dict>
5385 // CHECK-NEXT:          </array>
5386 // CHECK-NEXT:        </dict>
5387 // CHECK-NEXT:       </array>
5388 // CHECK-NEXT:     </dict>
5389 // CHECK-NEXT:     <dict>
5390 // CHECK-NEXT:      <key>kind</key><string>event</string>
5391 // CHECK-NEXT:      <key>location</key>
5392 // CHECK-NEXT:      <dict>
5393 // CHECK-NEXT:       <key>line</key><integer>275</integer>
5394 // CHECK-NEXT:       <key>col</key><integer>5</integer>
5395 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5396 // CHECK-NEXT:      </dict>
5397 // CHECK-NEXT:      <key>ranges</key>
5398 // CHECK-NEXT:      <array>
5399 // CHECK-NEXT:        <array>
5400 // CHECK-NEXT:         <dict>
5401 // CHECK-NEXT:          <key>line</key><integer>275</integer>
5402 // CHECK-NEXT:          <key>col</key><integer>19</integer>
5403 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5404 // CHECK-NEXT:         </dict>
5405 // CHECK-NEXT:         <dict>
5406 // CHECK-NEXT:          <key>line</key><integer>275</integer>
5407 // CHECK-NEXT:          <key>col</key><integer>41</integer>
5408 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5409 // CHECK-NEXT:         </dict>
5410 // CHECK-NEXT:        </array>
5411 // CHECK-NEXT:      </array>
5412 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5413 // CHECK-NEXT:      <key>extended_message</key>
5414 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5415 // CHECK-NEXT:      <key>message</key>
5416 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5417 // CHECK-NEXT:     </dict>
5418 // CHECK-NEXT:    </array>
5419 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5420 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5421 // CHECK-NEXT:    <key>type</key><string>Generics</string>
5422 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5423 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5424 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>a0fa75143d7a7ac234292642a6d93360</string>
5425 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5426 // CHECK-NEXT:   <key>issue_context</key><string>findMethodDeclInTrackedType</string>
5427 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
5428 // CHECK-NEXT:   <key>location</key>
5429 // CHECK-NEXT:   <dict>
5430 // CHECK-NEXT:    <key>line</key><integer>275</integer>
5431 // CHECK-NEXT:    <key>col</key><integer>5</integer>
5432 // CHECK-NEXT:    <key>file</key><integer>0</integer>
5433 // CHECK-NEXT:   </dict>
5434 // CHECK-NEXT:   </dict>
5435 // CHECK-NEXT:   <dict>
5436 // CHECK-NEXT:    <key>path</key>
5437 // CHECK-NEXT:    <array>
5438 // CHECK-NEXT:     <dict>
5439 // CHECK-NEXT:      <key>kind</key><string>event</string>
5440 // CHECK-NEXT:      <key>location</key>
5441 // CHECK-NEXT:      <dict>
5442 // CHECK-NEXT:       <key>line</key><integer>284</integer>
5443 // CHECK-NEXT:       <key>col</key><integer>7</integer>
5444 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5445 // CHECK-NEXT:      </dict>
5446 // CHECK-NEXT:      <key>ranges</key>
5447 // CHECK-NEXT:      <array>
5448 // CHECK-NEXT:        <array>
5449 // CHECK-NEXT:         <dict>
5450 // CHECK-NEXT:          <key>line</key><integer>284</integer>
5451 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5452 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5453 // CHECK-NEXT:         </dict>
5454 // CHECK-NEXT:         <dict>
5455 // CHECK-NEXT:          <key>line</key><integer>284</integer>
5456 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5457 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5458 // CHECK-NEXT:         </dict>
5459 // CHECK-NEXT:        </array>
5460 // CHECK-NEXT:      </array>
5461 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5462 // CHECK-NEXT:      <key>extended_message</key>
5463 // 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>
5464 // CHECK-NEXT:      <key>message</key>
5465 // 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>
5466 // CHECK-NEXT:     </dict>
5467 // CHECK-NEXT:     <dict>
5468 // CHECK-NEXT:      <key>kind</key><string>control</string>
5469 // CHECK-NEXT:      <key>edges</key>
5470 // CHECK-NEXT:       <array>
5471 // CHECK-NEXT:        <dict>
5472 // CHECK-NEXT:         <key>start</key>
5473 // CHECK-NEXT:          <array>
5474 // CHECK-NEXT:           <dict>
5475 // CHECK-NEXT:            <key>line</key><integer>284</integer>
5476 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5477 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5478 // CHECK-NEXT:           </dict>
5479 // CHECK-NEXT:           <dict>
5480 // CHECK-NEXT:            <key>line</key><integer>284</integer>
5481 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5482 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5483 // CHECK-NEXT:           </dict>
5484 // CHECK-NEXT:          </array>
5485 // CHECK-NEXT:         <key>end</key>
5486 // CHECK-NEXT:          <array>
5487 // CHECK-NEXT:           <dict>
5488 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5489 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5490 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5491 // CHECK-NEXT:           </dict>
5492 // CHECK-NEXT:           <dict>
5493 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5494 // CHECK-NEXT:            <key>col</key><integer>4</integer>
5495 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5496 // CHECK-NEXT:           </dict>
5497 // CHECK-NEXT:          </array>
5498 // CHECK-NEXT:        </dict>
5499 // CHECK-NEXT:       </array>
5500 // CHECK-NEXT:     </dict>
5501 // CHECK-NEXT:     <dict>
5502 // CHECK-NEXT:      <key>kind</key><string>control</string>
5503 // CHECK-NEXT:      <key>edges</key>
5504 // CHECK-NEXT:       <array>
5505 // CHECK-NEXT:        <dict>
5506 // CHECK-NEXT:         <key>start</key>
5507 // CHECK-NEXT:          <array>
5508 // CHECK-NEXT:           <dict>
5509 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5510 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5511 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5512 // CHECK-NEXT:           </dict>
5513 // CHECK-NEXT:           <dict>
5514 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5515 // CHECK-NEXT:            <key>col</key><integer>4</integer>
5516 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5517 // CHECK-NEXT:           </dict>
5518 // CHECK-NEXT:          </array>
5519 // CHECK-NEXT:         <key>end</key>
5520 // CHECK-NEXT:          <array>
5521 // CHECK-NEXT:           <dict>
5522 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5523 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5524 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5525 // CHECK-NEXT:           </dict>
5526 // CHECK-NEXT:           <dict>
5527 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5528 // CHECK-NEXT:            <key>col</key><integer>16</integer>
5529 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5530 // CHECK-NEXT:           </dict>
5531 // CHECK-NEXT:          </array>
5532 // CHECK-NEXT:        </dict>
5533 // CHECK-NEXT:       </array>
5534 // CHECK-NEXT:     </dict>
5535 // CHECK-NEXT:     <dict>
5536 // CHECK-NEXT:      <key>kind</key><string>event</string>
5537 // CHECK-NEXT:      <key>location</key>
5538 // CHECK-NEXT:      <dict>
5539 // CHECK-NEXT:       <key>line</key><integer>285</integer>
5540 // CHECK-NEXT:       <key>col</key><integer>7</integer>
5541 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5542 // CHECK-NEXT:      </dict>
5543 // CHECK-NEXT:      <key>ranges</key>
5544 // CHECK-NEXT:      <array>
5545 // CHECK-NEXT:        <array>
5546 // CHECK-NEXT:         <dict>
5547 // CHECK-NEXT:          <key>line</key><integer>285</integer>
5548 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5549 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5550 // CHECK-NEXT:         </dict>
5551 // CHECK-NEXT:         <dict>
5552 // CHECK-NEXT:          <key>line</key><integer>285</integer>
5553 // CHECK-NEXT:          <key>col</key><integer>23</integer>
5554 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5555 // CHECK-NEXT:         </dict>
5556 // CHECK-NEXT:        </array>
5557 // CHECK-NEXT:      </array>
5558 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5559 // CHECK-NEXT:      <key>extended_message</key>
5560 // CHECK-NEXT:      <string>Assuming the condition is true</string>
5561 // CHECK-NEXT:      <key>message</key>
5562 // CHECK-NEXT:      <string>Assuming the condition is true</string>
5563 // CHECK-NEXT:     </dict>
5564 // CHECK-NEXT:     <dict>
5565 // CHECK-NEXT:      <key>kind</key><string>control</string>
5566 // CHECK-NEXT:      <key>edges</key>
5567 // CHECK-NEXT:       <array>
5568 // CHECK-NEXT:        <dict>
5569 // CHECK-NEXT:         <key>start</key>
5570 // CHECK-NEXT:          <array>
5571 // CHECK-NEXT:           <dict>
5572 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5573 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5574 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5575 // CHECK-NEXT:           </dict>
5576 // CHECK-NEXT:           <dict>
5577 // CHECK-NEXT:            <key>line</key><integer>285</integer>
5578 // CHECK-NEXT:            <key>col</key><integer>16</integer>
5579 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5580 // CHECK-NEXT:           </dict>
5581 // CHECK-NEXT:          </array>
5582 // CHECK-NEXT:         <key>end</key>
5583 // CHECK-NEXT:          <array>
5584 // CHECK-NEXT:           <dict>
5585 // CHECK-NEXT:            <key>line</key><integer>286</integer>
5586 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5587 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5588 // CHECK-NEXT:           </dict>
5589 // CHECK-NEXT:           <dict>
5590 // CHECK-NEXT:            <key>line</key><integer>286</integer>
5591 // CHECK-NEXT:            <key>col</key><integer>5</integer>
5592 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5593 // CHECK-NEXT:           </dict>
5594 // CHECK-NEXT:          </array>
5595 // CHECK-NEXT:        </dict>
5596 // CHECK-NEXT:       </array>
5597 // CHECK-NEXT:     </dict>
5598 // CHECK-NEXT:     <dict>
5599 // CHECK-NEXT:      <key>kind</key><string>event</string>
5600 // CHECK-NEXT:      <key>location</key>
5601 // CHECK-NEXT:      <dict>
5602 // CHECK-NEXT:       <key>line</key><integer>286</integer>
5603 // CHECK-NEXT:       <key>col</key><integer>5</integer>
5604 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5605 // CHECK-NEXT:      </dict>
5606 // CHECK-NEXT:      <key>ranges</key>
5607 // CHECK-NEXT:      <array>
5608 // CHECK-NEXT:        <array>
5609 // CHECK-NEXT:         <dict>
5610 // CHECK-NEXT:          <key>line</key><integer>286</integer>
5611 // CHECK-NEXT:          <key>col</key><integer>19</integer>
5612 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5613 // CHECK-NEXT:         </dict>
5614 // CHECK-NEXT:         <dict>
5615 // CHECK-NEXT:          <key>line</key><integer>286</integer>
5616 // CHECK-NEXT:          <key>col</key><integer>41</integer>
5617 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5618 // CHECK-NEXT:         </dict>
5619 // CHECK-NEXT:        </array>
5620 // CHECK-NEXT:      </array>
5621 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5622 // CHECK-NEXT:      <key>extended_message</key>
5623 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5624 // CHECK-NEXT:      <key>message</key>
5625 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5626 // CHECK-NEXT:     </dict>
5627 // CHECK-NEXT:    </array>
5628 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5629 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5630 // CHECK-NEXT:    <key>type</key><string>Generics</string>
5631 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5632 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5633 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d0b99c8523e81ec43ba4ea80aeedef1b</string>
5634 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5635 // CHECK-NEXT:   <key>issue_context</key><string>findMethodDeclInTrackedType2</string>
5636 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
5637 // CHECK-NEXT:   <key>location</key>
5638 // CHECK-NEXT:   <dict>
5639 // CHECK-NEXT:    <key>line</key><integer>286</integer>
5640 // CHECK-NEXT:    <key>col</key><integer>5</integer>
5641 // CHECK-NEXT:    <key>file</key><integer>0</integer>
5642 // CHECK-NEXT:   </dict>
5643 // CHECK-NEXT:   </dict>
5644 // CHECK-NEXT:   <dict>
5645 // CHECK-NEXT:    <key>path</key>
5646 // CHECK-NEXT:    <array>
5647 // CHECK-NEXT:     <dict>
5648 // CHECK-NEXT:      <key>kind</key><string>control</string>
5649 // CHECK-NEXT:      <key>edges</key>
5650 // CHECK-NEXT:       <array>
5651 // CHECK-NEXT:        <dict>
5652 // CHECK-NEXT:         <key>start</key>
5653 // CHECK-NEXT:          <array>
5654 // CHECK-NEXT:           <dict>
5655 // CHECK-NEXT:            <key>line</key><integer>310</integer>
5656 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5657 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5658 // CHECK-NEXT:           </dict>
5659 // CHECK-NEXT:           <dict>
5660 // CHECK-NEXT:            <key>line</key><integer>310</integer>
5661 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5662 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5663 // CHECK-NEXT:           </dict>
5664 // CHECK-NEXT:          </array>
5665 // CHECK-NEXT:         <key>end</key>
5666 // CHECK-NEXT:          <array>
5667 // CHECK-NEXT:           <dict>
5668 // CHECK-NEXT:            <key>line</key><integer>311</integer>
5669 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5670 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5671 // CHECK-NEXT:           </dict>
5672 // CHECK-NEXT:           <dict>
5673 // CHECK-NEXT:            <key>line</key><integer>311</integer>
5674 // CHECK-NEXT:            <key>col</key><integer>9</integer>
5675 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5676 // CHECK-NEXT:           </dict>
5677 // CHECK-NEXT:          </array>
5678 // CHECK-NEXT:        </dict>
5679 // CHECK-NEXT:       </array>
5680 // CHECK-NEXT:     </dict>
5681 // CHECK-NEXT:     <dict>
5682 // CHECK-NEXT:      <key>kind</key><string>control</string>
5683 // CHECK-NEXT:      <key>edges</key>
5684 // CHECK-NEXT:       <array>
5685 // CHECK-NEXT:        <dict>
5686 // CHECK-NEXT:         <key>start</key>
5687 // CHECK-NEXT:          <array>
5688 // CHECK-NEXT:           <dict>
5689 // CHECK-NEXT:            <key>line</key><integer>311</integer>
5690 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5691 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5692 // CHECK-NEXT:           </dict>
5693 // CHECK-NEXT:           <dict>
5694 // CHECK-NEXT:            <key>line</key><integer>311</integer>
5695 // CHECK-NEXT:            <key>col</key><integer>9</integer>
5696 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5697 // CHECK-NEXT:           </dict>
5698 // CHECK-NEXT:          </array>
5699 // CHECK-NEXT:         <key>end</key>
5700 // CHECK-NEXT:          <array>
5701 // CHECK-NEXT:           <dict>
5702 // CHECK-NEXT:            <key>line</key><integer>311</integer>
5703 // CHECK-NEXT:            <key>col</key><integer>28</integer>
5704 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5705 // CHECK-NEXT:           </dict>
5706 // CHECK-NEXT:           <dict>
5707 // CHECK-NEXT:            <key>line</key><integer>311</integer>
5708 // CHECK-NEXT:            <key>col</key><integer>28</integer>
5709 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5710 // CHECK-NEXT:           </dict>
5711 // CHECK-NEXT:          </array>
5712 // CHECK-NEXT:        </dict>
5713 // CHECK-NEXT:       </array>
5714 // CHECK-NEXT:     </dict>
5715 // CHECK-NEXT:     <dict>
5716 // CHECK-NEXT:      <key>kind</key><string>event</string>
5717 // CHECK-NEXT:      <key>location</key>
5718 // CHECK-NEXT:      <dict>
5719 // CHECK-NEXT:       <key>line</key><integer>311</integer>
5720 // CHECK-NEXT:       <key>col</key><integer>28</integer>
5721 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5722 // CHECK-NEXT:      </dict>
5723 // CHECK-NEXT:      <key>ranges</key>
5724 // CHECK-NEXT:      <array>
5725 // CHECK-NEXT:        <array>
5726 // CHECK-NEXT:         <dict>
5727 // CHECK-NEXT:          <key>line</key><integer>311</integer>
5728 // CHECK-NEXT:          <key>col</key><integer>28</integer>
5729 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5730 // CHECK-NEXT:         </dict>
5731 // CHECK-NEXT:         <dict>
5732 // CHECK-NEXT:          <key>line</key><integer>311</integer>
5733 // CHECK-NEXT:          <key>col</key><integer>39</integer>
5734 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5735 // CHECK-NEXT:         </dict>
5736 // CHECK-NEXT:        </array>
5737 // CHECK-NEXT:      </array>
5738 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5739 // CHECK-NEXT:      <key>extended_message</key>
5740 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5741 // CHECK-NEXT:      <key>message</key>
5742 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5743 // CHECK-NEXT:     </dict>
5744 // CHECK-NEXT:     <dict>
5745 // CHECK-NEXT:      <key>kind</key><string>event</string>
5746 // CHECK-NEXT:      <key>location</key>
5747 // CHECK-NEXT:      <dict>
5748 // CHECK-NEXT:       <key>line</key><integer>311</integer>
5749 // CHECK-NEXT:       <key>col</key><integer>28</integer>
5750 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5751 // CHECK-NEXT:      </dict>
5752 // CHECK-NEXT:      <key>ranges</key>
5753 // CHECK-NEXT:      <array>
5754 // CHECK-NEXT:        <array>
5755 // CHECK-NEXT:         <dict>
5756 // CHECK-NEXT:          <key>line</key><integer>311</integer>
5757 // CHECK-NEXT:          <key>col</key><integer>28</integer>
5758 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5759 // CHECK-NEXT:         </dict>
5760 // CHECK-NEXT:         <dict>
5761 // CHECK-NEXT:          <key>line</key><integer>311</integer>
5762 // CHECK-NEXT:          <key>col</key><integer>39</integer>
5763 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5764 // CHECK-NEXT:         </dict>
5765 // CHECK-NEXT:        </array>
5766 // CHECK-NEXT:      </array>
5767 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5768 // CHECK-NEXT:      <key>extended_message</key>
5769 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5770 // CHECK-NEXT:      <key>message</key>
5771 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5772 // CHECK-NEXT:     </dict>
5773 // CHECK-NEXT:    </array>
5774 // 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>
5775 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5776 // CHECK-NEXT:    <key>type</key><string>Generics</string>
5777 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5778 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5779 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>46aa94b866747bcbe1ded581da7a2633</string>
5780 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5781 // CHECK-NEXT:   <key>issue_context</key><string>trackedClassVariables</string>
5782 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
5783 // CHECK-NEXT:   <key>location</key>
5784 // CHECK-NEXT:   <dict>
5785 // CHECK-NEXT:    <key>line</key><integer>311</integer>
5786 // CHECK-NEXT:    <key>col</key><integer>28</integer>
5787 // CHECK-NEXT:    <key>file</key><integer>0</integer>
5788 // CHECK-NEXT:   </dict>
5789 // CHECK-NEXT:   </dict>
5790 // CHECK-NEXT:   <dict>
5791 // CHECK-NEXT:    <key>path</key>
5792 // CHECK-NEXT:    <array>
5793 // CHECK-NEXT:     <dict>
5794 // CHECK-NEXT:      <key>kind</key><string>control</string>
5795 // CHECK-NEXT:      <key>edges</key>
5796 // CHECK-NEXT:       <array>
5797 // CHECK-NEXT:        <dict>
5798 // CHECK-NEXT:         <key>start</key>
5799 // CHECK-NEXT:          <array>
5800 // CHECK-NEXT:           <dict>
5801 // CHECK-NEXT:            <key>line</key><integer>310</integer>
5802 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5803 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5804 // CHECK-NEXT:           </dict>
5805 // CHECK-NEXT:           <dict>
5806 // CHECK-NEXT:            <key>line</key><integer>310</integer>
5807 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5808 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5809 // CHECK-NEXT:           </dict>
5810 // CHECK-NEXT:          </array>
5811 // CHECK-NEXT:         <key>end</key>
5812 // CHECK-NEXT:          <array>
5813 // CHECK-NEXT:           <dict>
5814 // CHECK-NEXT:            <key>line</key><integer>312</integer>
5815 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5816 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5817 // CHECK-NEXT:           </dict>
5818 // CHECK-NEXT:           <dict>
5819 // CHECK-NEXT:            <key>line</key><integer>312</integer>
5820 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5821 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5822 // CHECK-NEXT:           </dict>
5823 // CHECK-NEXT:          </array>
5824 // CHECK-NEXT:        </dict>
5825 // CHECK-NEXT:       </array>
5826 // CHECK-NEXT:     </dict>
5827 // CHECK-NEXT:     <dict>
5828 // CHECK-NEXT:      <key>kind</key><string>control</string>
5829 // CHECK-NEXT:      <key>edges</key>
5830 // CHECK-NEXT:       <array>
5831 // CHECK-NEXT:        <dict>
5832 // CHECK-NEXT:         <key>start</key>
5833 // CHECK-NEXT:          <array>
5834 // CHECK-NEXT:           <dict>
5835 // CHECK-NEXT:            <key>line</key><integer>312</integer>
5836 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5837 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5838 // CHECK-NEXT:           </dict>
5839 // CHECK-NEXT:           <dict>
5840 // CHECK-NEXT:            <key>line</key><integer>312</integer>
5841 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5842 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5843 // CHECK-NEXT:           </dict>
5844 // CHECK-NEXT:          </array>
5845 // CHECK-NEXT:         <key>end</key>
5846 // CHECK-NEXT:          <array>
5847 // CHECK-NEXT:           <dict>
5848 // CHECK-NEXT:            <key>line</key><integer>312</integer>
5849 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5850 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5851 // CHECK-NEXT:           </dict>
5852 // CHECK-NEXT:           <dict>
5853 // CHECK-NEXT:            <key>line</key><integer>312</integer>
5854 // CHECK-NEXT:            <key>col</key><integer>7</integer>
5855 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5856 // CHECK-NEXT:           </dict>
5857 // CHECK-NEXT:          </array>
5858 // CHECK-NEXT:        </dict>
5859 // CHECK-NEXT:       </array>
5860 // CHECK-NEXT:     </dict>
5861 // CHECK-NEXT:     <dict>
5862 // CHECK-NEXT:      <key>kind</key><string>event</string>
5863 // CHECK-NEXT:      <key>location</key>
5864 // CHECK-NEXT:      <dict>
5865 // CHECK-NEXT:       <key>line</key><integer>312</integer>
5866 // CHECK-NEXT:       <key>col</key><integer>7</integer>
5867 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5868 // CHECK-NEXT:      </dict>
5869 // CHECK-NEXT:      <key>ranges</key>
5870 // CHECK-NEXT:      <array>
5871 // CHECK-NEXT:        <array>
5872 // CHECK-NEXT:         <dict>
5873 // CHECK-NEXT:          <key>line</key><integer>312</integer>
5874 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5875 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5876 // CHECK-NEXT:         </dict>
5877 // CHECK-NEXT:         <dict>
5878 // CHECK-NEXT:          <key>line</key><integer>312</integer>
5879 // CHECK-NEXT:          <key>col</key><integer>19</integer>
5880 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5881 // CHECK-NEXT:         </dict>
5882 // CHECK-NEXT:        </array>
5883 // CHECK-NEXT:      </array>
5884 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5885 // CHECK-NEXT:      <key>extended_message</key>
5886 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5887 // CHECK-NEXT:      <key>message</key>
5888 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5889 // CHECK-NEXT:     </dict>
5890 // CHECK-NEXT:     <dict>
5891 // CHECK-NEXT:      <key>kind</key><string>event</string>
5892 // CHECK-NEXT:      <key>location</key>
5893 // CHECK-NEXT:      <dict>
5894 // CHECK-NEXT:       <key>line</key><integer>312</integer>
5895 // CHECK-NEXT:       <key>col</key><integer>7</integer>
5896 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5897 // CHECK-NEXT:      </dict>
5898 // CHECK-NEXT:      <key>ranges</key>
5899 // CHECK-NEXT:      <array>
5900 // CHECK-NEXT:        <array>
5901 // CHECK-NEXT:         <dict>
5902 // CHECK-NEXT:          <key>line</key><integer>312</integer>
5903 // CHECK-NEXT:          <key>col</key><integer>7</integer>
5904 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5905 // CHECK-NEXT:         </dict>
5906 // CHECK-NEXT:         <dict>
5907 // CHECK-NEXT:          <key>line</key><integer>312</integer>
5908 // CHECK-NEXT:          <key>col</key><integer>19</integer>
5909 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5910 // CHECK-NEXT:         </dict>
5911 // CHECK-NEXT:        </array>
5912 // CHECK-NEXT:      </array>
5913 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5914 // CHECK-NEXT:      <key>extended_message</key>
5915 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5916 // CHECK-NEXT:      <key>message</key>
5917 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5918 // CHECK-NEXT:     </dict>
5919 // CHECK-NEXT:    </array>
5920 // 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>
5921 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5922 // CHECK-NEXT:    <key>type</key><string>Generics</string>
5923 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5924 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5925 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>a759006d1ce88e15fcd6de6a29e2579c</string>
5926 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5927 // CHECK-NEXT:   <key>issue_context</key><string>trackedClassVariables</string>
5928 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
5929 // CHECK-NEXT:   <key>location</key>
5930 // CHECK-NEXT:   <dict>
5931 // CHECK-NEXT:    <key>line</key><integer>312</integer>
5932 // CHECK-NEXT:    <key>col</key><integer>7</integer>
5933 // CHECK-NEXT:    <key>file</key><integer>0</integer>
5934 // CHECK-NEXT:   </dict>
5935 // CHECK-NEXT:   </dict>
5936 // CHECK-NEXT:   <dict>
5937 // CHECK-NEXT:    <key>path</key>
5938 // CHECK-NEXT:    <array>
5939 // CHECK-NEXT:     <dict>
5940 // CHECK-NEXT:      <key>kind</key><string>event</string>
5941 // CHECK-NEXT:      <key>location</key>
5942 // CHECK-NEXT:      <dict>
5943 // CHECK-NEXT:       <key>line</key><integer>316</integer>
5944 // CHECK-NEXT:       <key>col</key><integer>13</integer>
5945 // CHECK-NEXT:       <key>file</key><integer>0</integer>
5946 // CHECK-NEXT:      </dict>
5947 // CHECK-NEXT:      <key>ranges</key>
5948 // CHECK-NEXT:      <array>
5949 // CHECK-NEXT:        <array>
5950 // CHECK-NEXT:         <dict>
5951 // CHECK-NEXT:          <key>line</key><integer>316</integer>
5952 // CHECK-NEXT:          <key>col</key><integer>13</integer>
5953 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5954 // CHECK-NEXT:         </dict>
5955 // CHECK-NEXT:         <dict>
5956 // CHECK-NEXT:          <key>line</key><integer>316</integer>
5957 // CHECK-NEXT:          <key>col</key><integer>15</integer>
5958 // CHECK-NEXT:          <key>file</key><integer>0</integer>
5959 // CHECK-NEXT:         </dict>
5960 // CHECK-NEXT:        </array>
5961 // CHECK-NEXT:      </array>
5962 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
5963 // CHECK-NEXT:      <key>extended_message</key>
5964 // 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>
5965 // CHECK-NEXT:      <key>message</key>
5966 // 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>
5967 // CHECK-NEXT:     </dict>
5968 // CHECK-NEXT:     <dict>
5969 // CHECK-NEXT:      <key>kind</key><string>control</string>
5970 // CHECK-NEXT:      <key>edges</key>
5971 // CHECK-NEXT:       <array>
5972 // CHECK-NEXT:        <dict>
5973 // CHECK-NEXT:         <key>start</key>
5974 // CHECK-NEXT:          <array>
5975 // CHECK-NEXT:           <dict>
5976 // CHECK-NEXT:            <key>line</key><integer>316</integer>
5977 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5978 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5979 // CHECK-NEXT:           </dict>
5980 // CHECK-NEXT:           <dict>
5981 // CHECK-NEXT:            <key>line</key><integer>316</integer>
5982 // CHECK-NEXT:            <key>col</key><integer>4</integer>
5983 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5984 // CHECK-NEXT:           </dict>
5985 // CHECK-NEXT:          </array>
5986 // CHECK-NEXT:         <key>end</key>
5987 // CHECK-NEXT:          <array>
5988 // CHECK-NEXT:           <dict>
5989 // CHECK-NEXT:            <key>line</key><integer>317</integer>
5990 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5991 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5992 // CHECK-NEXT:           </dict>
5993 // CHECK-NEXT:           <dict>
5994 // CHECK-NEXT:            <key>line</key><integer>317</integer>
5995 // CHECK-NEXT:            <key>col</key><integer>3</integer>
5996 // CHECK-NEXT:            <key>file</key><integer>0</integer>
5997 // CHECK-NEXT:           </dict>
5998 // CHECK-NEXT:          </array>
5999 // CHECK-NEXT:        </dict>
6000 // CHECK-NEXT:       </array>
6001 // CHECK-NEXT:     </dict>
6002 // CHECK-NEXT:     <dict>
6003 // CHECK-NEXT:      <key>kind</key><string>control</string>
6004 // CHECK-NEXT:      <key>edges</key>
6005 // CHECK-NEXT:       <array>
6006 // CHECK-NEXT:        <dict>
6007 // CHECK-NEXT:         <key>start</key>
6008 // CHECK-NEXT:          <array>
6009 // CHECK-NEXT:           <dict>
6010 // CHECK-NEXT:            <key>line</key><integer>317</integer>
6011 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6012 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6013 // CHECK-NEXT:           </dict>
6014 // CHECK-NEXT:           <dict>
6015 // CHECK-NEXT:            <key>line</key><integer>317</integer>
6016 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6017 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6018 // CHECK-NEXT:           </dict>
6019 // CHECK-NEXT:          </array>
6020 // CHECK-NEXT:         <key>end</key>
6021 // CHECK-NEXT:          <array>
6022 // CHECK-NEXT:           <dict>
6023 // CHECK-NEXT:            <key>line</key><integer>317</integer>
6024 // CHECK-NEXT:            <key>col</key><integer>18</integer>
6025 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6026 // CHECK-NEXT:           </dict>
6027 // CHECK-NEXT:           <dict>
6028 // CHECK-NEXT:            <key>line</key><integer>317</integer>
6029 // CHECK-NEXT:            <key>col</key><integer>21</integer>
6030 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6031 // CHECK-NEXT:           </dict>
6032 // CHECK-NEXT:          </array>
6033 // CHECK-NEXT:        </dict>
6034 // CHECK-NEXT:       </array>
6035 // CHECK-NEXT:     </dict>
6036 // CHECK-NEXT:     <dict>
6037 // CHECK-NEXT:      <key>kind</key><string>event</string>
6038 // CHECK-NEXT:      <key>location</key>
6039 // CHECK-NEXT:      <dict>
6040 // CHECK-NEXT:       <key>line</key><integer>317</integer>
6041 // CHECK-NEXT:       <key>col</key><integer>18</integer>
6042 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6043 // CHECK-NEXT:      </dict>
6044 // CHECK-NEXT:      <key>ranges</key>
6045 // CHECK-NEXT:      <array>
6046 // CHECK-NEXT:        <array>
6047 // CHECK-NEXT:         <dict>
6048 // CHECK-NEXT:          <key>line</key><integer>317</integer>
6049 // CHECK-NEXT:          <key>col</key><integer>18</integer>
6050 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6051 // CHECK-NEXT:         </dict>
6052 // CHECK-NEXT:         <dict>
6053 // CHECK-NEXT:          <key>line</key><integer>317</integer>
6054 // CHECK-NEXT:          <key>col</key><integer>21</integer>
6055 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6056 // CHECK-NEXT:         </dict>
6057 // CHECK-NEXT:        </array>
6058 // CHECK-NEXT:      </array>
6059 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6060 // CHECK-NEXT:      <key>extended_message</key>
6061 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6062 // CHECK-NEXT:      <key>message</key>
6063 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6064 // CHECK-NEXT:     </dict>
6065 // CHECK-NEXT:    </array>
6066 // 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>
6067 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6068 // CHECK-NEXT:    <key>type</key><string>Generics</string>
6069 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6070 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6071 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>4bb1729ff86647750b458e6f8d883f08</string>
6072 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6073 // CHECK-NEXT:   <key>issue_context</key><string>nestedCollections</string>
6074 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
6075 // CHECK-NEXT:   <key>location</key>
6076 // CHECK-NEXT:   <dict>
6077 // CHECK-NEXT:    <key>line</key><integer>317</integer>
6078 // CHECK-NEXT:    <key>col</key><integer>18</integer>
6079 // CHECK-NEXT:    <key>file</key><integer>0</integer>
6080 // CHECK-NEXT:   </dict>
6081 // CHECK-NEXT:   </dict>
6082 // CHECK-NEXT:   <dict>
6083 // CHECK-NEXT:    <key>path</key>
6084 // CHECK-NEXT:    <array>
6085 // CHECK-NEXT:     <dict>
6086 // CHECK-NEXT:      <key>kind</key><string>control</string>
6087 // CHECK-NEXT:      <key>edges</key>
6088 // CHECK-NEXT:       <array>
6089 // CHECK-NEXT:        <dict>
6090 // CHECK-NEXT:         <key>start</key>
6091 // CHECK-NEXT:          <array>
6092 // CHECK-NEXT:           <dict>
6093 // CHECK-NEXT:            <key>line</key><integer>329</integer>
6094 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6095 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6096 // CHECK-NEXT:           </dict>
6097 // CHECK-NEXT:           <dict>
6098 // CHECK-NEXT:            <key>line</key><integer>329</integer>
6099 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6100 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6101 // CHECK-NEXT:           </dict>
6102 // CHECK-NEXT:          </array>
6103 // CHECK-NEXT:         <key>end</key>
6104 // CHECK-NEXT:          <array>
6105 // CHECK-NEXT:           <dict>
6106 // CHECK-NEXT:            <key>line</key><integer>330</integer>
6107 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6108 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6109 // CHECK-NEXT:           </dict>
6110 // CHECK-NEXT:           <dict>
6111 // CHECK-NEXT:            <key>line</key><integer>330</integer>
6112 // CHECK-NEXT:            <key>col</key><integer>4</integer>
6113 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6114 // CHECK-NEXT:           </dict>
6115 // CHECK-NEXT:          </array>
6116 // CHECK-NEXT:        </dict>
6117 // CHECK-NEXT:       </array>
6118 // CHECK-NEXT:     </dict>
6119 // CHECK-NEXT:     <dict>
6120 // CHECK-NEXT:      <key>kind</key><string>event</string>
6121 // CHECK-NEXT:      <key>location</key>
6122 // CHECK-NEXT:      <dict>
6123 // CHECK-NEXT:       <key>line</key><integer>330</integer>
6124 // CHECK-NEXT:       <key>col</key><integer>10</integer>
6125 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6126 // CHECK-NEXT:      </dict>
6127 // CHECK-NEXT:      <key>ranges</key>
6128 // CHECK-NEXT:      <array>
6129 // CHECK-NEXT:        <array>
6130 // CHECK-NEXT:         <dict>
6131 // CHECK-NEXT:          <key>line</key><integer>330</integer>
6132 // CHECK-NEXT:          <key>col</key><integer>10</integer>
6133 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6134 // CHECK-NEXT:         </dict>
6135 // CHECK-NEXT:         <dict>
6136 // CHECK-NEXT:          <key>line</key><integer>330</integer>
6137 // CHECK-NEXT:          <key>col</key><integer>29</integer>
6138 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6139 // CHECK-NEXT:         </dict>
6140 // CHECK-NEXT:        </array>
6141 // CHECK-NEXT:      </array>
6142 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6143 // CHECK-NEXT:      <key>extended_message</key>
6144 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6145 // CHECK-NEXT:      <key>message</key>
6146 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6147 // CHECK-NEXT:     </dict>
6148 // CHECK-NEXT:     <dict>
6149 // CHECK-NEXT:      <key>kind</key><string>control</string>
6150 // CHECK-NEXT:      <key>edges</key>
6151 // CHECK-NEXT:       <array>
6152 // CHECK-NEXT:        <dict>
6153 // CHECK-NEXT:         <key>start</key>
6154 // CHECK-NEXT:          <array>
6155 // CHECK-NEXT:           <dict>
6156 // CHECK-NEXT:            <key>line</key><integer>330</integer>
6157 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6158 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6159 // CHECK-NEXT:           </dict>
6160 // CHECK-NEXT:           <dict>
6161 // CHECK-NEXT:            <key>line</key><integer>330</integer>
6162 // CHECK-NEXT:            <key>col</key><integer>4</integer>
6163 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6164 // CHECK-NEXT:           </dict>
6165 // CHECK-NEXT:          </array>
6166 // CHECK-NEXT:         <key>end</key>
6167 // CHECK-NEXT:          <array>
6168 // CHECK-NEXT:           <dict>
6169 // CHECK-NEXT:            <key>line</key><integer>331</integer>
6170 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6171 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6172 // CHECK-NEXT:           </dict>
6173 // CHECK-NEXT:           <dict>
6174 // CHECK-NEXT:            <key>line</key><integer>331</integer>
6175 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6176 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6177 // CHECK-NEXT:           </dict>
6178 // CHECK-NEXT:          </array>
6179 // CHECK-NEXT:        </dict>
6180 // CHECK-NEXT:       </array>
6181 // CHECK-NEXT:     </dict>
6182 // CHECK-NEXT:     <dict>
6183 // CHECK-NEXT:      <key>kind</key><string>control</string>
6184 // CHECK-NEXT:      <key>edges</key>
6185 // CHECK-NEXT:       <array>
6186 // CHECK-NEXT:        <dict>
6187 // CHECK-NEXT:         <key>start</key>
6188 // CHECK-NEXT:          <array>
6189 // CHECK-NEXT:           <dict>
6190 // CHECK-NEXT:            <key>line</key><integer>331</integer>
6191 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6192 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6193 // CHECK-NEXT:           </dict>
6194 // CHECK-NEXT:           <dict>
6195 // CHECK-NEXT:            <key>line</key><integer>331</integer>
6196 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6197 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6198 // CHECK-NEXT:           </dict>
6199 // CHECK-NEXT:          </array>
6200 // CHECK-NEXT:         <key>end</key>
6201 // CHECK-NEXT:          <array>
6202 // CHECK-NEXT:           <dict>
6203 // CHECK-NEXT:            <key>line</key><integer>331</integer>
6204 // CHECK-NEXT:            <key>col</key><integer>30</integer>
6205 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6206 // CHECK-NEXT:           </dict>
6207 // CHECK-NEXT:           <dict>
6208 // CHECK-NEXT:            <key>line</key><integer>331</integer>
6209 // CHECK-NEXT:            <key>col</key><integer>30</integer>
6210 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6211 // CHECK-NEXT:           </dict>
6212 // CHECK-NEXT:          </array>
6213 // CHECK-NEXT:        </dict>
6214 // CHECK-NEXT:       </array>
6215 // CHECK-NEXT:     </dict>
6216 // CHECK-NEXT:     <dict>
6217 // CHECK-NEXT:      <key>kind</key><string>event</string>
6218 // CHECK-NEXT:      <key>location</key>
6219 // CHECK-NEXT:      <dict>
6220 // CHECK-NEXT:       <key>line</key><integer>331</integer>
6221 // CHECK-NEXT:       <key>col</key><integer>30</integer>
6222 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6223 // CHECK-NEXT:      </dict>
6224 // CHECK-NEXT:      <key>ranges</key>
6225 // CHECK-NEXT:      <array>
6226 // CHECK-NEXT:        <array>
6227 // CHECK-NEXT:         <dict>
6228 // CHECK-NEXT:          <key>line</key><integer>331</integer>
6229 // CHECK-NEXT:          <key>col</key><integer>30</integer>
6230 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6231 // CHECK-NEXT:         </dict>
6232 // CHECK-NEXT:         <dict>
6233 // CHECK-NEXT:          <key>line</key><integer>331</integer>
6234 // CHECK-NEXT:          <key>col</key><integer>30</integer>
6235 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6236 // CHECK-NEXT:         </dict>
6237 // CHECK-NEXT:        </array>
6238 // CHECK-NEXT:      </array>
6239 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6240 // CHECK-NEXT:      <key>extended_message</key>
6241 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6242 // CHECK-NEXT:      <key>message</key>
6243 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6244 // CHECK-NEXT:     </dict>
6245 // CHECK-NEXT:    </array>
6246 // 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>
6247 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6248 // CHECK-NEXT:    <key>type</key><string>Generics</string>
6249 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6250 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6251 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>38831553eaecfb6c02b51e71d21ec6ea</string>
6252 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6253 // CHECK-NEXT:   <key>issue_context</key><string>returnCollectionToIdVariable</string>
6254 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
6255 // CHECK-NEXT:   <key>location</key>
6256 // CHECK-NEXT:   <dict>
6257 // CHECK-NEXT:    <key>line</key><integer>331</integer>
6258 // CHECK-NEXT:    <key>col</key><integer>30</integer>
6259 // CHECK-NEXT:    <key>file</key><integer>0</integer>
6260 // CHECK-NEXT:   </dict>
6261 // CHECK-NEXT:   </dict>
6262 // CHECK-NEXT:   <dict>
6263 // CHECK-NEXT:    <key>path</key>
6264 // CHECK-NEXT:    <array>
6265 // CHECK-NEXT:     <dict>
6266 // CHECK-NEXT:      <key>kind</key><string>control</string>
6267 // CHECK-NEXT:      <key>edges</key>
6268 // CHECK-NEXT:       <array>
6269 // CHECK-NEXT:        <dict>
6270 // CHECK-NEXT:         <key>start</key>
6271 // CHECK-NEXT:          <array>
6272 // CHECK-NEXT:           <dict>
6273 // CHECK-NEXT:            <key>line</key><integer>335</integer>
6274 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6275 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6276 // CHECK-NEXT:           </dict>
6277 // CHECK-NEXT:           <dict>
6278 // CHECK-NEXT:            <key>line</key><integer>335</integer>
6279 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6280 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6281 // CHECK-NEXT:           </dict>
6282 // CHECK-NEXT:          </array>
6283 // CHECK-NEXT:         <key>end</key>
6284 // CHECK-NEXT:          <array>
6285 // CHECK-NEXT:           <dict>
6286 // CHECK-NEXT:            <key>line</key><integer>336</integer>
6287 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6288 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6289 // CHECK-NEXT:           </dict>
6290 // CHECK-NEXT:           <dict>
6291 // CHECK-NEXT:            <key>line</key><integer>336</integer>
6292 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6293 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6294 // CHECK-NEXT:           </dict>
6295 // CHECK-NEXT:          </array>
6296 // CHECK-NEXT:        </dict>
6297 // CHECK-NEXT:       </array>
6298 // CHECK-NEXT:     </dict>
6299 // CHECK-NEXT:     <dict>
6300 // CHECK-NEXT:      <key>kind</key><string>event</string>
6301 // CHECK-NEXT:      <key>location</key>
6302 // CHECK-NEXT:      <dict>
6303 // CHECK-NEXT:       <key>line</key><integer>336</integer>
6304 // CHECK-NEXT:       <key>col</key><integer>16</integer>
6305 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6306 // CHECK-NEXT:      </dict>
6307 // CHECK-NEXT:      <key>ranges</key>
6308 // CHECK-NEXT:      <array>
6309 // CHECK-NEXT:        <array>
6310 // CHECK-NEXT:         <dict>
6311 // CHECK-NEXT:          <key>line</key><integer>336</integer>
6312 // CHECK-NEXT:          <key>col</key><integer>16</integer>
6313 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6314 // CHECK-NEXT:         </dict>
6315 // CHECK-NEXT:         <dict>
6316 // CHECK-NEXT:          <key>line</key><integer>336</integer>
6317 // CHECK-NEXT:          <key>col</key><integer>35</integer>
6318 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6319 // CHECK-NEXT:         </dict>
6320 // CHECK-NEXT:        </array>
6321 // CHECK-NEXT:      </array>
6322 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6323 // CHECK-NEXT:      <key>extended_message</key>
6324 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6325 // CHECK-NEXT:      <key>message</key>
6326 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6327 // CHECK-NEXT:     </dict>
6328 // CHECK-NEXT:     <dict>
6329 // CHECK-NEXT:      <key>kind</key><string>control</string>
6330 // CHECK-NEXT:      <key>edges</key>
6331 // CHECK-NEXT:       <array>
6332 // CHECK-NEXT:        <dict>
6333 // CHECK-NEXT:         <key>start</key>
6334 // CHECK-NEXT:          <array>
6335 // CHECK-NEXT:           <dict>
6336 // CHECK-NEXT:            <key>line</key><integer>336</integer>
6337 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6338 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6339 // CHECK-NEXT:           </dict>
6340 // CHECK-NEXT:           <dict>
6341 // CHECK-NEXT:            <key>line</key><integer>336</integer>
6342 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6343 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6344 // CHECK-NEXT:           </dict>
6345 // CHECK-NEXT:          </array>
6346 // CHECK-NEXT:         <key>end</key>
6347 // CHECK-NEXT:          <array>
6348 // CHECK-NEXT:           <dict>
6349 // CHECK-NEXT:            <key>line</key><integer>337</integer>
6350 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6351 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6352 // CHECK-NEXT:           </dict>
6353 // CHECK-NEXT:           <dict>
6354 // CHECK-NEXT:            <key>line</key><integer>337</integer>
6355 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6356 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6357 // CHECK-NEXT:           </dict>
6358 // CHECK-NEXT:          </array>
6359 // CHECK-NEXT:        </dict>
6360 // CHECK-NEXT:       </array>
6361 // CHECK-NEXT:     </dict>
6362 // CHECK-NEXT:     <dict>
6363 // CHECK-NEXT:      <key>kind</key><string>control</string>
6364 // CHECK-NEXT:      <key>edges</key>
6365 // CHECK-NEXT:       <array>
6366 // CHECK-NEXT:        <dict>
6367 // CHECK-NEXT:         <key>start</key>
6368 // CHECK-NEXT:          <array>
6369 // CHECK-NEXT:           <dict>
6370 // CHECK-NEXT:            <key>line</key><integer>337</integer>
6371 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6372 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6373 // CHECK-NEXT:           </dict>
6374 // CHECK-NEXT:           <dict>
6375 // CHECK-NEXT:            <key>line</key><integer>337</integer>
6376 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6377 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6378 // CHECK-NEXT:           </dict>
6379 // CHECK-NEXT:          </array>
6380 // CHECK-NEXT:         <key>end</key>
6381 // CHECK-NEXT:          <array>
6382 // CHECK-NEXT:           <dict>
6383 // CHECK-NEXT:            <key>line</key><integer>337</integer>
6384 // CHECK-NEXT:            <key>col</key><integer>30</integer>
6385 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6386 // CHECK-NEXT:           </dict>
6387 // CHECK-NEXT:           <dict>
6388 // CHECK-NEXT:            <key>line</key><integer>337</integer>
6389 // CHECK-NEXT:            <key>col</key><integer>30</integer>
6390 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6391 // CHECK-NEXT:           </dict>
6392 // CHECK-NEXT:          </array>
6393 // CHECK-NEXT:        </dict>
6394 // CHECK-NEXT:       </array>
6395 // CHECK-NEXT:     </dict>
6396 // CHECK-NEXT:     <dict>
6397 // CHECK-NEXT:      <key>kind</key><string>event</string>
6398 // CHECK-NEXT:      <key>location</key>
6399 // CHECK-NEXT:      <dict>
6400 // CHECK-NEXT:       <key>line</key><integer>337</integer>
6401 // CHECK-NEXT:       <key>col</key><integer>30</integer>
6402 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6403 // CHECK-NEXT:      </dict>
6404 // CHECK-NEXT:      <key>ranges</key>
6405 // CHECK-NEXT:      <array>
6406 // CHECK-NEXT:        <array>
6407 // CHECK-NEXT:         <dict>
6408 // CHECK-NEXT:          <key>line</key><integer>337</integer>
6409 // CHECK-NEXT:          <key>col</key><integer>30</integer>
6410 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6411 // CHECK-NEXT:         </dict>
6412 // CHECK-NEXT:         <dict>
6413 // CHECK-NEXT:          <key>line</key><integer>337</integer>
6414 // CHECK-NEXT:          <key>col</key><integer>30</integer>
6415 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6416 // CHECK-NEXT:         </dict>
6417 // CHECK-NEXT:        </array>
6418 // CHECK-NEXT:      </array>
6419 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6420 // CHECK-NEXT:      <key>extended_message</key>
6421 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6422 // CHECK-NEXT:      <key>message</key>
6423 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6424 // CHECK-NEXT:     </dict>
6425 // CHECK-NEXT:    </array>
6426 // 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>
6427 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6428 // CHECK-NEXT:    <key>type</key><string>Generics</string>
6429 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6430 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6431 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>9fcbd4dcf212f004877292aa5085322b</string>
6432 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6433 // CHECK-NEXT:   <key>issue_context</key><string>eraseSpecialization</string>
6434 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
6435 // CHECK-NEXT:   <key>location</key>
6436 // CHECK-NEXT:   <dict>
6437 // CHECK-NEXT:    <key>line</key><integer>337</integer>
6438 // CHECK-NEXT:    <key>col</key><integer>30</integer>
6439 // CHECK-NEXT:    <key>file</key><integer>0</integer>
6440 // CHECK-NEXT:   </dict>
6441 // CHECK-NEXT:   </dict>
6442 // CHECK-NEXT:   <dict>
6443 // CHECK-NEXT:    <key>path</key>
6444 // CHECK-NEXT:    <array>
6445 // CHECK-NEXT:     <dict>
6446 // CHECK-NEXT:      <key>kind</key><string>control</string>
6447 // CHECK-NEXT:      <key>edges</key>
6448 // CHECK-NEXT:       <array>
6449 // CHECK-NEXT:        <dict>
6450 // CHECK-NEXT:         <key>start</key>
6451 // CHECK-NEXT:          <array>
6452 // CHECK-NEXT:           <dict>
6453 // CHECK-NEXT:            <key>line</key><integer>341</integer>
6454 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6455 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6456 // CHECK-NEXT:           </dict>
6457 // CHECK-NEXT:           <dict>
6458 // CHECK-NEXT:            <key>line</key><integer>341</integer>
6459 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6460 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6461 // CHECK-NEXT:           </dict>
6462 // CHECK-NEXT:          </array>
6463 // CHECK-NEXT:         <key>end</key>
6464 // CHECK-NEXT:          <array>
6465 // CHECK-NEXT:           <dict>
6466 // CHECK-NEXT:            <key>line</key><integer>342</integer>
6467 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6468 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6469 // CHECK-NEXT:           </dict>
6470 // CHECK-NEXT:           <dict>
6471 // CHECK-NEXT:            <key>line</key><integer>342</integer>
6472 // CHECK-NEXT:            <key>col</key><integer>7</integer>
6473 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6474 // CHECK-NEXT:           </dict>
6475 // CHECK-NEXT:          </array>
6476 // CHECK-NEXT:        </dict>
6477 // CHECK-NEXT:       </array>
6478 // CHECK-NEXT:     </dict>
6479 // CHECK-NEXT:     <dict>
6480 // CHECK-NEXT:      <key>kind</key><string>control</string>
6481 // CHECK-NEXT:      <key>edges</key>
6482 // CHECK-NEXT:       <array>
6483 // CHECK-NEXT:        <dict>
6484 // CHECK-NEXT:         <key>start</key>
6485 // CHECK-NEXT:          <array>
6486 // CHECK-NEXT:           <dict>
6487 // CHECK-NEXT:            <key>line</key><integer>342</integer>
6488 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6489 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6490 // CHECK-NEXT:           </dict>
6491 // CHECK-NEXT:           <dict>
6492 // CHECK-NEXT:            <key>line</key><integer>342</integer>
6493 // CHECK-NEXT:            <key>col</key><integer>7</integer>
6494 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6495 // CHECK-NEXT:           </dict>
6496 // CHECK-NEXT:          </array>
6497 // CHECK-NEXT:         <key>end</key>
6498 // CHECK-NEXT:          <array>
6499 // CHECK-NEXT:           <dict>
6500 // CHECK-NEXT:            <key>line</key><integer>342</integer>
6501 // CHECK-NEXT:            <key>col</key><integer>14</integer>
6502 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6503 // CHECK-NEXT:           </dict>
6504 // CHECK-NEXT:           <dict>
6505 // CHECK-NEXT:            <key>line</key><integer>342</integer>
6506 // CHECK-NEXT:            <key>col</key><integer>14</integer>
6507 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6508 // CHECK-NEXT:           </dict>
6509 // CHECK-NEXT:          </array>
6510 // CHECK-NEXT:        </dict>
6511 // CHECK-NEXT:       </array>
6512 // CHECK-NEXT:     </dict>
6513 // CHECK-NEXT:     <dict>
6514 // CHECK-NEXT:      <key>kind</key><string>event</string>
6515 // CHECK-NEXT:      <key>location</key>
6516 // CHECK-NEXT:      <dict>
6517 // CHECK-NEXT:       <key>line</key><integer>342</integer>
6518 // CHECK-NEXT:       <key>col</key><integer>14</integer>
6519 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6520 // CHECK-NEXT:      </dict>
6521 // CHECK-NEXT:      <key>ranges</key>
6522 // CHECK-NEXT:      <array>
6523 // CHECK-NEXT:        <array>
6524 // CHECK-NEXT:         <dict>
6525 // CHECK-NEXT:          <key>line</key><integer>342</integer>
6526 // CHECK-NEXT:          <key>col</key><integer>14</integer>
6527 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6528 // CHECK-NEXT:         </dict>
6529 // CHECK-NEXT:         <dict>
6530 // CHECK-NEXT:          <key>line</key><integer>342</integer>
6531 // CHECK-NEXT:          <key>col</key><integer>33</integer>
6532 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6533 // CHECK-NEXT:         </dict>
6534 // CHECK-NEXT:        </array>
6535 // CHECK-NEXT:      </array>
6536 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6537 // CHECK-NEXT:      <key>extended_message</key>
6538 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6539 // CHECK-NEXT:      <key>message</key>
6540 // CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6541 // CHECK-NEXT:     </dict>
6542 // CHECK-NEXT:     <dict>
6543 // CHECK-NEXT:      <key>kind</key><string>event</string>
6544 // CHECK-NEXT:      <key>location</key>
6545 // CHECK-NEXT:      <dict>
6546 // CHECK-NEXT:       <key>line</key><integer>342</integer>
6547 // CHECK-NEXT:       <key>col</key><integer>14</integer>
6548 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6549 // CHECK-NEXT:      </dict>
6550 // CHECK-NEXT:      <key>ranges</key>
6551 // CHECK-NEXT:      <array>
6552 // CHECK-NEXT:        <array>
6553 // CHECK-NEXT:         <dict>
6554 // CHECK-NEXT:          <key>line</key><integer>342</integer>
6555 // CHECK-NEXT:          <key>col</key><integer>14</integer>
6556 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6557 // CHECK-NEXT:         </dict>
6558 // CHECK-NEXT:         <dict>
6559 // CHECK-NEXT:          <key>line</key><integer>342</integer>
6560 // CHECK-NEXT:          <key>col</key><integer>33</integer>
6561 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6562 // CHECK-NEXT:         </dict>
6563 // CHECK-NEXT:        </array>
6564 // CHECK-NEXT:      </array>
6565 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6566 // CHECK-NEXT:      <key>extended_message</key>
6567 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6568 // CHECK-NEXT:      <key>message</key>
6569 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6570 // CHECK-NEXT:     </dict>
6571 // CHECK-NEXT:    </array>
6572 // 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>
6573 // CHECK-NEXT:    <key>category</key><string>Type Error</string>
6574 // CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
6575 // CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6576 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6577 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>be6714fed24af6e7ac522b87a5098de0</string>
6578 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6579 // CHECK-NEXT:   <key>issue_context</key><string>returnToUnrelatedType</string>
6580 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
6581 // CHECK-NEXT:   <key>location</key>
6582 // CHECK-NEXT:   <dict>
6583 // CHECK-NEXT:    <key>line</key><integer>342</integer>
6584 // CHECK-NEXT:    <key>col</key><integer>14</integer>
6585 // CHECK-NEXT:    <key>file</key><integer>0</integer>
6586 // CHECK-NEXT:   </dict>
6587 // CHECK-NEXT:   </dict>
6588 // CHECK-NEXT:   <dict>
6589 // CHECK-NEXT:    <key>path</key>
6590 // CHECK-NEXT:    <array>
6591 // CHECK-NEXT:     <dict>
6592 // CHECK-NEXT:      <key>kind</key><string>control</string>
6593 // CHECK-NEXT:      <key>edges</key>
6594 // CHECK-NEXT:       <array>
6595 // CHECK-NEXT:        <dict>
6596 // CHECK-NEXT:         <key>start</key>
6597 // CHECK-NEXT:          <array>
6598 // CHECK-NEXT:           <dict>
6599 // CHECK-NEXT:            <key>line</key><integer>347</integer>
6600 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6601 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6602 // CHECK-NEXT:           </dict>
6603 // CHECK-NEXT:           <dict>
6604 // CHECK-NEXT:            <key>line</key><integer>347</integer>
6605 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6606 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6607 // CHECK-NEXT:           </dict>
6608 // CHECK-NEXT:          </array>
6609 // CHECK-NEXT:         <key>end</key>
6610 // CHECK-NEXT:          <array>
6611 // CHECK-NEXT:           <dict>
6612 // CHECK-NEXT:            <key>line</key><integer>348</integer>
6613 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6614 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6615 // CHECK-NEXT:           </dict>
6616 // CHECK-NEXT:           <dict>
6617 // CHECK-NEXT:            <key>line</key><integer>348</integer>
6618 // CHECK-NEXT:            <key>col</key><integer>4</integer>
6619 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6620 // CHECK-NEXT:           </dict>
6621 // CHECK-NEXT:          </array>
6622 // CHECK-NEXT:        </dict>
6623 // CHECK-NEXT:       </array>
6624 // CHECK-NEXT:     </dict>
6625 // CHECK-NEXT:     <dict>
6626 // CHECK-NEXT:      <key>kind</key><string>event</string>
6627 // CHECK-NEXT:      <key>location</key>
6628 // CHECK-NEXT:      <dict>
6629 // CHECK-NEXT:       <key>line</key><integer>348</integer>
6630 // CHECK-NEXT:       <key>col</key><integer>10</integer>
6631 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6632 // CHECK-NEXT:      </dict>
6633 // CHECK-NEXT:      <key>ranges</key>
6634 // CHECK-NEXT:      <array>
6635 // CHECK-NEXT:        <array>
6636 // CHECK-NEXT:         <dict>
6637 // CHECK-NEXT:          <key>line</key><integer>348</integer>
6638 // CHECK-NEXT:          <key>col</key><integer>10</integer>
6639 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6640 // CHECK-NEXT:         </dict>
6641 // CHECK-NEXT:         <dict>
6642 // CHECK-NEXT:          <key>line</key><integer>348</integer>
6643 // CHECK-NEXT:          <key>col</key><integer>29</integer>
6644 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6645 // CHECK-NEXT:         </dict>
6646 // CHECK-NEXT:        </array>
6647 // CHECK-NEXT:      </array>
6648 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6649 // CHECK-NEXT:      <key>extended_message</key>
6650 // CHECK-NEXT:      <string>Type &apos;NSString *&apos; is inferred from this context</string>
6651 // CHECK-NEXT:      <key>message</key>
6652 // CHECK-NEXT:      <string>Type &apos;NSString *&apos; is inferred from this context</string>
6653 // CHECK-NEXT:     </dict>
6654 // CHECK-NEXT:     <dict>
6655 // CHECK-NEXT:      <key>kind</key><string>control</string>
6656 // CHECK-NEXT:      <key>edges</key>
6657 // CHECK-NEXT:       <array>
6658 // CHECK-NEXT:        <dict>
6659 // CHECK-NEXT:         <key>start</key>
6660 // CHECK-NEXT:          <array>
6661 // CHECK-NEXT:           <dict>
6662 // CHECK-NEXT:            <key>line</key><integer>348</integer>
6663 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6664 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6665 // CHECK-NEXT:           </dict>
6666 // CHECK-NEXT:           <dict>
6667 // CHECK-NEXT:            <key>line</key><integer>348</integer>
6668 // CHECK-NEXT:            <key>col</key><integer>4</integer>
6669 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6670 // CHECK-NEXT:           </dict>
6671 // CHECK-NEXT:          </array>
6672 // CHECK-NEXT:         <key>end</key>
6673 // CHECK-NEXT:          <array>
6674 // CHECK-NEXT:           <dict>
6675 // CHECK-NEXT:            <key>line</key><integer>349</integer>
6676 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6677 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6678 // CHECK-NEXT:           </dict>
6679 // CHECK-NEXT:           <dict>
6680 // CHECK-NEXT:            <key>line</key><integer>349</integer>
6681 // CHECK-NEXT:            <key>col</key><integer>10</integer>
6682 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6683 // CHECK-NEXT:           </dict>
6684 // CHECK-NEXT:          </array>
6685 // CHECK-NEXT:        </dict>
6686 // CHECK-NEXT:       </array>
6687 // CHECK-NEXT:     </dict>
6688 // CHECK-NEXT:     <dict>
6689 // CHECK-NEXT:      <key>kind</key><string>control</string>
6690 // CHECK-NEXT:      <key>edges</key>
6691 // CHECK-NEXT:       <array>
6692 // CHECK-NEXT:        <dict>
6693 // CHECK-NEXT:         <key>start</key>
6694 // CHECK-NEXT:          <array>
6695 // CHECK-NEXT:           <dict>
6696 // CHECK-NEXT:            <key>line</key><integer>349</integer>
6697 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6698 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6699 // CHECK-NEXT:           </dict>
6700 // CHECK-NEXT:           <dict>
6701 // CHECK-NEXT:            <key>line</key><integer>349</integer>
6702 // CHECK-NEXT:            <key>col</key><integer>10</integer>
6703 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6704 // CHECK-NEXT:           </dict>
6705 // CHECK-NEXT:          </array>
6706 // CHECK-NEXT:         <key>end</key>
6707 // CHECK-NEXT:          <array>
6708 // CHECK-NEXT:           <dict>
6709 // CHECK-NEXT:            <key>line</key><integer>349</integer>
6710 // CHECK-NEXT:            <key>col</key><integer>19</integer>
6711 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6712 // CHECK-NEXT:           </dict>
6713 // CHECK-NEXT:           <dict>
6714 // CHECK-NEXT:            <key>line</key><integer>349</integer>
6715 // CHECK-NEXT:            <key>col</key><integer>19</integer>
6716 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6717 // CHECK-NEXT:           </dict>
6718 // CHECK-NEXT:          </array>
6719 // CHECK-NEXT:        </dict>
6720 // CHECK-NEXT:       </array>
6721 // CHECK-NEXT:     </dict>
6722 // CHECK-NEXT:     <dict>
6723 // CHECK-NEXT:      <key>kind</key><string>event</string>
6724 // CHECK-NEXT:      <key>location</key>
6725 // CHECK-NEXT:      <dict>
6726 // CHECK-NEXT:       <key>line</key><integer>349</integer>
6727 // CHECK-NEXT:       <key>col</key><integer>19</integer>
6728 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6729 // CHECK-NEXT:      </dict>
6730 // CHECK-NEXT:      <key>ranges</key>
6731 // CHECK-NEXT:      <array>
6732 // CHECK-NEXT:        <array>
6733 // CHECK-NEXT:         <dict>
6734 // CHECK-NEXT:          <key>line</key><integer>349</integer>
6735 // CHECK-NEXT:          <key>col</key><integer>19</integer>
6736 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6737 // CHECK-NEXT:         </dict>
6738 // CHECK-NEXT:         <dict>
6739 // CHECK-NEXT:          <key>line</key><integer>349</integer>
6740 // CHECK-NEXT:          <key>col</key><integer>19</integer>
6741 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6742 // CHECK-NEXT:         </dict>
6743 // CHECK-NEXT:        </array>
6744 // CHECK-NEXT:      </array>
6745 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6746 // CHECK-NEXT:      <key>extended_message</key>
6747 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6748 // CHECK-NEXT:      <key>message</key>
6749 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6750 // CHECK-NEXT:     </dict>
6751 // CHECK-NEXT:    </array>
6752 // CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6753 // CHECK-NEXT:    <key>category</key><string>Type Error</string>
6754 // CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
6755 // CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6756 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6757 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>5e96ef711c8f115bc64f69baa3f6ea7a</string>
6758 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6759 // CHECK-NEXT:   <key>issue_context</key><string>returnToIdVariable</string>
6760 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
6761 // CHECK-NEXT:   <key>location</key>
6762 // CHECK-NEXT:   <dict>
6763 // CHECK-NEXT:    <key>line</key><integer>349</integer>
6764 // CHECK-NEXT:    <key>col</key><integer>19</integer>
6765 // CHECK-NEXT:    <key>file</key><integer>0</integer>
6766 // CHECK-NEXT:   </dict>
6767 // CHECK-NEXT:   </dict>
6768 // CHECK-NEXT:   <dict>
6769 // CHECK-NEXT:    <key>path</key>
6770 // CHECK-NEXT:    <array>
6771 // CHECK-NEXT:     <dict>
6772 // CHECK-NEXT:      <key>kind</key><string>event</string>
6773 // CHECK-NEXT:      <key>location</key>
6774 // CHECK-NEXT:      <dict>
6775 // CHECK-NEXT:       <key>line</key><integer>358</integer>
6776 // CHECK-NEXT:       <key>col</key><integer>12</integer>
6777 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6778 // CHECK-NEXT:      </dict>
6779 // CHECK-NEXT:      <key>ranges</key>
6780 // CHECK-NEXT:      <array>
6781 // CHECK-NEXT:        <array>
6782 // CHECK-NEXT:         <dict>
6783 // CHECK-NEXT:          <key>line</key><integer>358</integer>
6784 // CHECK-NEXT:          <key>col</key><integer>12</integer>
6785 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6786 // CHECK-NEXT:         </dict>
6787 // CHECK-NEXT:         <dict>
6788 // CHECK-NEXT:          <key>line</key><integer>358</integer>
6789 // CHECK-NEXT:          <key>col</key><integer>12</integer>
6790 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6791 // CHECK-NEXT:         </dict>
6792 // CHECK-NEXT:        </array>
6793 // CHECK-NEXT:      </array>
6794 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6795 // CHECK-NEXT:      <key>extended_message</key>
6796 // 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>
6797 // CHECK-NEXT:      <key>message</key>
6798 // 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>
6799 // CHECK-NEXT:     </dict>
6800 // CHECK-NEXT:     <dict>
6801 // CHECK-NEXT:      <key>kind</key><string>control</string>
6802 // CHECK-NEXT:      <key>edges</key>
6803 // CHECK-NEXT:       <array>
6804 // CHECK-NEXT:        <dict>
6805 // CHECK-NEXT:         <key>start</key>
6806 // CHECK-NEXT:          <array>
6807 // CHECK-NEXT:           <dict>
6808 // CHECK-NEXT:            <key>line</key><integer>358</integer>
6809 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6810 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6811 // CHECK-NEXT:           </dict>
6812 // CHECK-NEXT:           <dict>
6813 // CHECK-NEXT:            <key>line</key><integer>358</integer>
6814 // CHECK-NEXT:            <key>col</key><integer>4</integer>
6815 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6816 // CHECK-NEXT:           </dict>
6817 // CHECK-NEXT:          </array>
6818 // CHECK-NEXT:         <key>end</key>
6819 // CHECK-NEXT:          <array>
6820 // CHECK-NEXT:           <dict>
6821 // CHECK-NEXT:            <key>line</key><integer>359</integer>
6822 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6823 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6824 // CHECK-NEXT:           </dict>
6825 // CHECK-NEXT:           <dict>
6826 // CHECK-NEXT:            <key>line</key><integer>359</integer>
6827 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6828 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6829 // CHECK-NEXT:           </dict>
6830 // CHECK-NEXT:          </array>
6831 // CHECK-NEXT:        </dict>
6832 // CHECK-NEXT:       </array>
6833 // CHECK-NEXT:     </dict>
6834 // CHECK-NEXT:     <dict>
6835 // CHECK-NEXT:      <key>kind</key><string>control</string>
6836 // CHECK-NEXT:      <key>edges</key>
6837 // CHECK-NEXT:       <array>
6838 // CHECK-NEXT:        <dict>
6839 // CHECK-NEXT:         <key>start</key>
6840 // CHECK-NEXT:          <array>
6841 // CHECK-NEXT:           <dict>
6842 // CHECK-NEXT:            <key>line</key><integer>359</integer>
6843 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6844 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6845 // CHECK-NEXT:           </dict>
6846 // CHECK-NEXT:           <dict>
6847 // CHECK-NEXT:            <key>line</key><integer>359</integer>
6848 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6849 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6850 // CHECK-NEXT:           </dict>
6851 // CHECK-NEXT:          </array>
6852 // CHECK-NEXT:         <key>end</key>
6853 // CHECK-NEXT:          <array>
6854 // CHECK-NEXT:           <dict>
6855 // CHECK-NEXT:            <key>line</key><integer>359</integer>
6856 // CHECK-NEXT:            <key>col</key><integer>7</integer>
6857 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6858 // CHECK-NEXT:           </dict>
6859 // CHECK-NEXT:           <dict>
6860 // CHECK-NEXT:            <key>line</key><integer>359</integer>
6861 // CHECK-NEXT:            <key>col</key><integer>9</integer>
6862 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6863 // CHECK-NEXT:           </dict>
6864 // CHECK-NEXT:          </array>
6865 // CHECK-NEXT:        </dict>
6866 // CHECK-NEXT:       </array>
6867 // CHECK-NEXT:     </dict>
6868 // CHECK-NEXT:     <dict>
6869 // CHECK-NEXT:      <key>kind</key><string>event</string>
6870 // CHECK-NEXT:      <key>location</key>
6871 // CHECK-NEXT:      <dict>
6872 // CHECK-NEXT:       <key>line</key><integer>359</integer>
6873 // CHECK-NEXT:       <key>col</key><integer>7</integer>
6874 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6875 // CHECK-NEXT:      </dict>
6876 // CHECK-NEXT:      <key>ranges</key>
6877 // CHECK-NEXT:      <array>
6878 // CHECK-NEXT:        <array>
6879 // CHECK-NEXT:         <dict>
6880 // CHECK-NEXT:          <key>line</key><integer>359</integer>
6881 // CHECK-NEXT:          <key>col</key><integer>7</integer>
6882 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6883 // CHECK-NEXT:         </dict>
6884 // CHECK-NEXT:         <dict>
6885 // CHECK-NEXT:          <key>line</key><integer>359</integer>
6886 // CHECK-NEXT:          <key>col</key><integer>9</integer>
6887 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6888 // CHECK-NEXT:         </dict>
6889 // CHECK-NEXT:        </array>
6890 // CHECK-NEXT:      </array>
6891 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6892 // CHECK-NEXT:      <key>extended_message</key>
6893 // CHECK-NEXT:      <string>Conversion from value of type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
6894 // CHECK-NEXT:      <key>message</key>
6895 // CHECK-NEXT:      <string>Conversion from value of type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
6896 // CHECK-NEXT:     </dict>
6897 // CHECK-NEXT:    </array>
6898 // 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>
6899 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6900 // CHECK-NEXT:    <key>type</key><string>Generics</string>
6901 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6902 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6903 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>8347f65fb51a85ccd462d75ffd761078</string>
6904 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6905 // CHECK-NEXT:   <key>issue_context</key><string>testGetMostInformativeDerivedForId</string>
6906 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
6907 // CHECK-NEXT:   <key>location</key>
6908 // CHECK-NEXT:   <dict>
6909 // CHECK-NEXT:    <key>line</key><integer>359</integer>
6910 // CHECK-NEXT:    <key>col</key><integer>7</integer>
6911 // CHECK-NEXT:    <key>file</key><integer>0</integer>
6912 // CHECK-NEXT:   </dict>
6913 // CHECK-NEXT:   </dict>
6914 // CHECK-NEXT:   <dict>
6915 // CHECK-NEXT:    <key>path</key>
6916 // CHECK-NEXT:    <array>
6917 // CHECK-NEXT:     <dict>
6918 // CHECK-NEXT:      <key>kind</key><string>event</string>
6919 // CHECK-NEXT:      <key>location</key>
6920 // CHECK-NEXT:      <dict>
6921 // CHECK-NEXT:       <key>line</key><integer>358</integer>
6922 // CHECK-NEXT:       <key>col</key><integer>12</integer>
6923 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6924 // CHECK-NEXT:      </dict>
6925 // CHECK-NEXT:      <key>ranges</key>
6926 // CHECK-NEXT:      <array>
6927 // CHECK-NEXT:        <array>
6928 // CHECK-NEXT:         <dict>
6929 // CHECK-NEXT:          <key>line</key><integer>358</integer>
6930 // CHECK-NEXT:          <key>col</key><integer>12</integer>
6931 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6932 // CHECK-NEXT:         </dict>
6933 // CHECK-NEXT:         <dict>
6934 // CHECK-NEXT:          <key>line</key><integer>358</integer>
6935 // CHECK-NEXT:          <key>col</key><integer>12</integer>
6936 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6937 // CHECK-NEXT:         </dict>
6938 // CHECK-NEXT:        </array>
6939 // CHECK-NEXT:      </array>
6940 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
6941 // CHECK-NEXT:      <key>extended_message</key>
6942 // 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>
6943 // CHECK-NEXT:      <key>message</key>
6944 // 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>
6945 // CHECK-NEXT:     </dict>
6946 // CHECK-NEXT:     <dict>
6947 // CHECK-NEXT:      <key>kind</key><string>control</string>
6948 // CHECK-NEXT:      <key>edges</key>
6949 // CHECK-NEXT:       <array>
6950 // CHECK-NEXT:        <dict>
6951 // CHECK-NEXT:         <key>start</key>
6952 // CHECK-NEXT:          <array>
6953 // CHECK-NEXT:           <dict>
6954 // CHECK-NEXT:            <key>line</key><integer>358</integer>
6955 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6956 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6957 // CHECK-NEXT:           </dict>
6958 // CHECK-NEXT:           <dict>
6959 // CHECK-NEXT:            <key>line</key><integer>358</integer>
6960 // CHECK-NEXT:            <key>col</key><integer>4</integer>
6961 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6962 // CHECK-NEXT:           </dict>
6963 // CHECK-NEXT:          </array>
6964 // CHECK-NEXT:         <key>end</key>
6965 // CHECK-NEXT:          <array>
6966 // CHECK-NEXT:           <dict>
6967 // CHECK-NEXT:            <key>line</key><integer>364</integer>
6968 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6969 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6970 // CHECK-NEXT:           </dict>
6971 // CHECK-NEXT:           <dict>
6972 // CHECK-NEXT:            <key>line</key><integer>364</integer>
6973 // CHECK-NEXT:            <key>col</key><integer>3</integer>
6974 // CHECK-NEXT:            <key>file</key><integer>0</integer>
6975 // CHECK-NEXT:           </dict>
6976 // CHECK-NEXT:          </array>
6977 // CHECK-NEXT:        </dict>
6978 // CHECK-NEXT:       </array>
6979 // CHECK-NEXT:     </dict>
6980 // CHECK-NEXT:     <dict>
6981 // CHECK-NEXT:      <key>kind</key><string>event</string>
6982 // CHECK-NEXT:      <key>location</key>
6983 // CHECK-NEXT:      <dict>
6984 // CHECK-NEXT:       <key>line</key><integer>364</integer>
6985 // CHECK-NEXT:       <key>col</key><integer>3</integer>
6986 // CHECK-NEXT:       <key>file</key><integer>0</integer>
6987 // CHECK-NEXT:      </dict>
6988 // CHECK-NEXT:      <key>ranges</key>
6989 // CHECK-NEXT:      <array>
6990 // CHECK-NEXT:        <array>
6991 // CHECK-NEXT:         <dict>
6992 // CHECK-NEXT:          <key>line</key><integer>364</integer>
6993 // CHECK-NEXT:          <key>col</key><integer>16</integer>
6994 // CHECK-NEXT:          <key>file</key><integer>0</integer>
6995 // CHECK-NEXT:         </dict>
6996 // CHECK-NEXT:         <dict>
6997 // CHECK-NEXT:          <key>line</key><integer>364</integer>
6998 // CHECK-NEXT:          <key>col</key><integer>38</integer>
6999 // CHECK-NEXT:          <key>file</key><integer>0</integer>
7000 // CHECK-NEXT:         </dict>
7001 // CHECK-NEXT:        </array>
7002 // CHECK-NEXT:      </array>
7003 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
7004 // CHECK-NEXT:      <key>extended_message</key>
7005 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
7006 // CHECK-NEXT:      <key>message</key>
7007 // CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
7008 // CHECK-NEXT:     </dict>
7009 // CHECK-NEXT:    </array>
7010 // CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
7011 // CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
7012 // CHECK-NEXT:    <key>type</key><string>Generics</string>
7013 // CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
7014 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
7015 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6528db66f562ac0c2a94933f3ca5f6a8</string>
7016 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
7017 // CHECK-NEXT:   <key>issue_context</key><string>testGetMostInformativeDerivedForId</string>
7018 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
7019 // CHECK-NEXT:   <key>location</key>
7020 // CHECK-NEXT:   <dict>
7021 // CHECK-NEXT:    <key>line</key><integer>364</integer>
7022 // CHECK-NEXT:    <key>col</key><integer>3</integer>
7023 // CHECK-NEXT:    <key>file</key><integer>0</integer>
7024 // CHECK-NEXT:   </dict>
7025 // CHECK-NEXT:   </dict>
7026 // CHECK-NEXT:   <dict>
7027 // CHECK-NEXT:    <key>path</key>
7028 // CHECK-NEXT:    <array>
7029 // CHECK-NEXT:     <dict>
7030 // CHECK-NEXT:      <key>kind</key><string>control</string>
7031 // CHECK-NEXT:      <key>edges</key>
7032 // CHECK-NEXT:       <array>
7033 // CHECK-NEXT:        <dict>
7034 // CHECK-NEXT:         <key>start</key>
7035 // CHECK-NEXT:          <array>
7036 // CHECK-NEXT:           <dict>
7037 // CHECK-NEXT:            <key>line</key><integer>373</integer>
7038 // CHECK-NEXT:            <key>col</key><integer>3</integer>
7039 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7040 // CHECK-NEXT:           </dict>
7041 // CHECK-NEXT:           <dict>
7042 // CHECK-NEXT:            <key>line</key><integer>373</integer>
7043 // CHECK-NEXT:            <key>col</key><integer>9</integer>
7044 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7045 // CHECK-NEXT:           </dict>
7046 // CHECK-NEXT:          </array>
7047 // CHECK-NEXT:         <key>end</key>
7048 // CHECK-NEXT:          <array>
7049 // CHECK-NEXT:           <dict>
7050 // CHECK-NEXT:            <key>line</key><integer>375</integer>
7051 // CHECK-NEXT:            <key>col</key><integer>3</integer>
7052 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7053 // CHECK-NEXT:           </dict>
7054 // CHECK-NEXT:           <dict>
7055 // CHECK-NEXT:            <key>line</key><integer>375</integer>
7056 // CHECK-NEXT:            <key>col</key><integer>9</integer>
7057 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7058 // CHECK-NEXT:           </dict>
7059 // CHECK-NEXT:          </array>
7060 // CHECK-NEXT:        </dict>
7061 // CHECK-NEXT:       </array>
7062 // CHECK-NEXT:     </dict>
7063 // CHECK-NEXT:     <dict>
7064 // CHECK-NEXT:      <key>kind</key><string>control</string>
7065 // CHECK-NEXT:      <key>edges</key>
7066 // CHECK-NEXT:       <array>
7067 // CHECK-NEXT:        <dict>
7068 // CHECK-NEXT:         <key>start</key>
7069 // CHECK-NEXT:          <array>
7070 // CHECK-NEXT:           <dict>
7071 // CHECK-NEXT:            <key>line</key><integer>375</integer>
7072 // CHECK-NEXT:            <key>col</key><integer>3</integer>
7073 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7074 // CHECK-NEXT:           </dict>
7075 // CHECK-NEXT:           <dict>
7076 // CHECK-NEXT:            <key>line</key><integer>375</integer>
7077 // CHECK-NEXT:            <key>col</key><integer>9</integer>
7078 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7079 // CHECK-NEXT:           </dict>
7080 // CHECK-NEXT:          </array>
7081 // CHECK-NEXT:         <key>end</key>
7082 // CHECK-NEXT:          <array>
7083 // CHECK-NEXT:           <dict>
7084 // CHECK-NEXT:            <key>line</key><integer>375</integer>
7085 // CHECK-NEXT:            <key>col</key><integer>70</integer>
7086 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7087 // CHECK-NEXT:           </dict>
7088 // CHECK-NEXT:           <dict>
7089 // CHECK-NEXT:            <key>line</key><integer>375</integer>
7090 // CHECK-NEXT:            <key>col</key><integer>79</integer>
7091 // CHECK-NEXT:            <key>file</key><integer>0</integer>
7092 // CHECK-NEXT:           </dict>
7093 // CHECK-NEXT:          </array>
7094 // CHECK-NEXT:        </dict>
7095 // CHECK-NEXT:       </array>
7096 // CHECK-NEXT:     </dict>
7097 // CHECK-NEXT:     <dict>
7098 // CHECK-NEXT:      <key>kind</key><string>event</string>
7099 // CHECK-NEXT:      <key>location</key>
7100 // CHECK-NEXT:      <dict>
7101 // CHECK-NEXT:       <key>line</key><integer>375</integer>
7102 // CHECK-NEXT:       <key>col</key><integer>70</integer>
7103 // CHECK-NEXT:       <key>file</key><integer>0</integer>
7104 // CHECK-NEXT:      </dict>
7105 // CHECK-NEXT:      <key>ranges</key>
7106 // CHECK-NEXT:      <array>
7107 // CHECK-NEXT:        <array>
7108 // CHECK-NEXT:         <dict>
7109 // CHECK-NEXT:          <key>line</key><integer>375</integer>
7110 // CHECK-NEXT:          <key>col</key><integer>70</integer>
7111 // CHECK-NEXT:          <key>file</key><integer>0</integer>
7112 // CHECK-NEXT:         </dict>
7113 // CHECK-NEXT:         <dict>
7114 // CHECK-NEXT:          <key>line</key><integer>375</integer>
7115 // CHECK-NEXT:          <key>col</key><integer>79</integer>
7116 // CHECK-NEXT:          <key>file</key><integer>0</integer>
7117 // CHECK-NEXT:         </dict>
7118 // CHECK-NEXT:        </array>
7119 // CHECK-NEXT:      </array>
7120 // CHECK-NEXT:      <key>depth</key><integer>0</integer>
7121 // CHECK-NEXT:      <key>extended_message</key>
7122 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
7123 // CHECK-NEXT:      <key>message</key>
7124 // CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
7125 // CHECK-NEXT:     </dict>
7126 // CHECK-NEXT:    </array>
7127 // CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
7128 // CHECK-NEXT:    <key>category</key><string>Type Error</string>
7129 // CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
7130 // CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
7131 // CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
7132 // CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>56326e7b73d049256717eba7005ccc4d</string>
7133 // CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
7134 // CHECK-NEXT:   <key>issue_context</key><string>testArgumentAfterUpcastWithCovariantTypeParameter</string>
7135 // CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
7136 // CHECK-NEXT:   <key>location</key>
7137 // CHECK-NEXT:   <dict>
7138 // CHECK-NEXT:    <key>line</key><integer>375</integer>
7139 // CHECK-NEXT:    <key>col</key><integer>70</integer>
7140 // CHECK-NEXT:    <key>file</key><integer>0</integer>
7141 // CHECK-NEXT:   </dict>
7142 // CHECK-NEXT:   </dict>
7143 // CHECK-NEXT:  </array>