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
14typedef unsigned long NSUInteger;
15typedef int BOOL;
16
17@protocol NSObject
18+ (id)alloc;
19- (id)init;
20@end
21
22@protocol NSCopying
23@end
24
25__attribute__((objc_root_class))
26@interface NSObject <NSObject>
27@end
28
29@interface NSString : NSObject <NSCopying>
30@end
31
32@interface NSMutableString : NSString
33@end
34
35@interface NSNumber : NSObject <NSCopying>
36@end
37
38@interface NSSet : NSObject <NSCopying>
39@end
40
41@interface NSArray<__covariant ObjectType> : NSObject
42+ (instancetype)arrayWithObjects:(const ObjectType [])objects count:(NSUInteger)count;
43+ (instancetype)getEmpty;
44+ (NSArray<ObjectType> *)getEmpty2;
45- (BOOL)contains:(ObjectType)obj;
46- (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
84int getUnknown();
85NSArray *getStuff();
86NSArray *getTypedStuff() {
87  NSArray<NSNumber *> *c = getStuff();
88  return c;
89}
90
91void doStuff(NSArray<NSNumber *> *);
92void withArrString(NSArray<NSString *> *);
93void withArrMutableString(NSArray<NSMutableString *> *);
94void withMutArrString(MutableArray<NSString *> *);
95void withMutArrMutableString(MutableArray<NSMutableString *> *);
96
97void 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
110void crossProceduralErasedTypes() {
111  NSArray<NSString *> *a = getTypedStuff(); // expected-warning {{Conversion}}
112}
113
114void 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
124void 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
133void 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
144void 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
157void verifyAPIusage(id a, MutableArray<NSString *> *b) {
158  b = a;
159  doStuff(a); // expected-warning {{Conversion}}
160}
161
162void dontInferFromExplicitCastsOnUnspecialized(MutableArray *a,
163                        MutableArray<NSMutableString *> *b) {
164  b = (MutableArray<NSMutableString *> *)a;
165  [a addObject: [[NSString alloc] init]]; // no-warning
166}
167
168void dontWarnOnExplicitCastsAfterInference(MutableArray *a) {
169  withMutArrString(a);
170  withMutArrMutableString((MutableArray<NSMutableString *> *)a); // no-warning
171}
172
173void dontDiagnoseOnExplicitCrossCasts(MutableArray<NSSet *> *a,
174                        MutableArray<NSMutableString *> *b) {
175  // Treat an explicit cast to a specialized type as an indication that
176  // Objective-C's type system is not expressive enough to represent a
177  // the invariant the programmer wanted. After an explicit cast, do not
178  // warn about potential generics shenanigans.
179  b = (MutableArray<NSMutableString *> *)a; // no-warning
180  [a addObject: [[NSSet alloc] init]]; // no-warning
181  [b addObject: [[NSMutableString alloc] init]]; //no-warning
182}
183
184void subtypeOfGeneric(id d, MyMutableStringArray *a,
185                       MutableArray<NSString *> *b,
186                       MutableArray<NSNumber *> *c) {
187  d = a;
188  b = d;
189  c = d; // expected-warning {{Conversion}}
190}
191
192void genericSubtypeOfGeneric(id d, ExceptionalArray<NSString *> *a,
193                             MutableArray<NSString *> *b,
194                             MutableArray<NSNumber *> *c) {
195  d = a;
196  [d contains: [[NSString alloc] init]];
197  [d contains: [[NSNumber alloc] init]];
198  b = d;
199  c = d; // expected-warning {{Conversion}}
200
201  [d addObject: [[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
202}
203
204void genericSubtypeOfGenericReverse(id d, ExceptionalArray<NSString *> *a,
205                                    MutableArray<NSString *> *b,
206                                    MutableArray<NSNumber *> *c) {
207  a = d;
208  [d contains: [[NSString alloc] init]];
209  [d contains: [[NSNumber alloc] init]];
210  b = d;
211  c = d; // expected-warning {{Conversion}}
212
213 [d addObject: [[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
214}
215
216void inferenceFromAPI(id a) {
217  // Here the type parameter is invariant. There should be a warning every time
218  // when the type parameter changes during the conversions.
219  withMutArrString(a);
220  withMutArrMutableString(a); // expected-warning {{Conversion}}
221}
222
223void inferenceFromAPI2(id a) {
224  withMutArrMutableString(a);
225  withMutArrString(a); // expected-warning {{Conversion}}
226}
227
228void inferenceFromAPIWithLegacyTypes(LegacyMutableArray *a) {
229  withMutArrMutableString(a);
230  withMutArrString(a); // expected-warning {{Conversion}}
231}
232
233void inferenceFromAPIWithLegacyTypes2(LegacySpecialMutableArray *a) {
234  withMutArrString(a);
235  withMutArrMutableString(a); // expected-warning {{Conversion}}
236}
237
238void inferenceFromAPIWithLegacyTypes3(__kindof NSArray<NSString *> *a) {
239  LegacyMutableArray *b = a;
240  withMutArrString(b);
241  withMutArrMutableString(b); // expected-warning {{Conversion}}
242}
243
244void inferenceFromAPIWithBuggyTypes(BuggyMutableArray<NSMutableString *> *a) {
245  withMutArrString(a);
246  withMutArrMutableString(a); // expected-warning {{Conversion}}
247}
248
249void InferenceFromAPIWithBuggyTypes2(BuggySpecialMutableArray<NSMutableString *> *a) {
250  withMutArrMutableString(a);
251  withMutArrString(a); // expected-warning {{Conversion}}
252}
253
254void InferenceFromAPIWithBuggyTypes3(MutableArray<NSMutableString *> *a) {
255  id b = a;
256  withMutArrMutableString((BuggyMutableArray<NSMutableString *> *)b);
257  withMutArrString(b); // expected-warning {{Conversion}}
258}
259
260void InferenceFromAPIWithBuggyTypes4(__kindof NSArray<NSString *> *a) {
261  BuggyMutableArray<NSMutableString *> *b = a;
262  withMutArrString(b);
263  withMutArrMutableString(b); // expected-warning {{Conversion}}
264}
265
266NSArray<NSString *> *getStrings();
267void enforceDynamicRulesInsteadOfStatic(NSArray<NSNumber *> *a) {
268  NSArray *b = a;
269  // Valid uses of NSArray of NSNumbers.
270  b = getStrings();
271  // Valid uses of NSArray of NSStrings.
272}
273
274void workWithProperties(NSArray<NSNumber *> *a) {
275  NSArray *b = a;
276  NSString *str = [b getObjAtIndex: 0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
277  NSNumber *num = [b getObjAtIndex: 0];
278  str = [b firstObject]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
279  num = [b firstObject];
280  str = b.firstObject; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
281  num = b.firstObject;
282  str = b[0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
283  num = b[0];
284}
285
286void findMethodDeclInTrackedType(id m, NSArray<NSMutableString *> *a,
287                                 MutableArray<NSMutableString *> *b) {
288  a = b;
289  if (getUnknown() == 5) {
290    m = a;
291    [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
292  } else {
293    m = b;
294    [m addObject: [[NSMutableString alloc] init]];
295  }
296}
297
298void findMethodDeclInTrackedType2(__kindof NSArray<NSString *> *a,
299                                  MutableArray<NSMutableString *> *b) {
300  a = b;
301  if (getUnknown() == 5) {
302    [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
303  } else {
304    [a addObject: [[NSMutableString alloc] init]];
305  }
306}
307
308void testUnannotatedLiterals() {
309  // ObjCArrayLiterals are not specialized in the AST.
310  NSArray *arr = @[@"A", @"B"];
311  [arr contains: [[NSNumber alloc] init]];
312}
313
314void testAnnotatedLiterals() {
315  NSArray<NSString *> *arr = @[@"A", @"B"];
316  NSArray *arr2 = arr;
317  [arr2 contains: [[NSNumber alloc] init]];
318}
319
320void nonExistentMethodDoesNotCrash(id a, MutableArray<NSMutableString *> *b) {
321  a = b;
322  [a nonExistentMethod];
323}
324
325void trackedClassVariables() {
326  Class c = [NSArray<NSString *> class];
327  NSArray<NSNumber *> *a = [c getEmpty]; // expected-warning {{Conversion}}
328  a = [c getEmpty2]; // expected-warning {{Conversion}}
329}
330
331void nestedCollections(NSArray<NSArray<NSNumber *> *> *mat, NSArray<NSString *> *row) {
332  id temp = row;
333  [mat contains: temp]; // expected-warning {{Conversion}}
334}
335
336void testMistmatchedTypeCast(MutableArray<NSMutableString *> *a) {
337  MutableArray *b = (MutableArray<NSNumber *> *)a;
338  [b addObject: [[NSNumber alloc] init]];
339  id c = (UnrelatedType *)a;
340  [c addObject: [[NSNumber alloc] init]];
341  [c addObject: [[NSString alloc] init]];
342}
343
344void returnCollectionToIdVariable(NSArray<NSArray<NSString *> *> *arr) {
345  NSArray *erased = arr;
346  id a = [erased firstObject];
347  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
348}
349
350void eraseSpecialization(NSArray<NSArray<NSString *> *> *arr) {
351  NSArray *erased = arr;
352  NSArray* a = [erased firstObject];
353  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
354}
355
356void returnToUnrelatedType(NSArray<NSArray<NSString *> *> *arr) {
357  NSArray *erased = arr;
358  NSSet* a = [erased firstObject]; // expected-warning {{Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'}}
359  (void)a;
360}
361
362void returnToIdVariable(NSArray<NSString *> *arr) {
363  NSArray *erased = arr;
364  id a = [erased firstObject];
365  NSNumber *res = a; // expected-warning {{Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'}}
366}
367
368@interface UnrelatedTypeGeneric<T> : NSObject<NSCopying>
369- (void)takesType:(T)v;
370@end
371
372void testGetMostInformativeDerivedForId(NSArray<NSString *> *a,
373                                  UnrelatedTypeGeneric<NSString *> *b) {
374  id idB = b;
375  a = idB; // expected-warning {{Conversion from value of type 'UnrelatedTypeGeneric<NSString *> *' to incompatible type 'NSArray<NSString *> *'}}
376
377  // rdar://problem/26086914 crash here caused by symbolic type being unrelated
378  // to compile-time source type of cast.
379  id x = a; // Compile-time type is NSArray<>, Symbolic type is UnrelatedTypeGeneric<>.
380  [x takesType:[[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}}
381}
382
383void testArgumentAfterUpcastToRootWithCovariantTypeParameter(NSArray<NSString *> *allStrings, NSNumber *number) {
384  NSArray<NSObject *> *allObjects = allStrings; // no-warning
385  NSArray<NSObject *> *moreObjects = [allObjects arrayByAddingObject:number]; // no-warning
386}
387
388void testArgumentAfterUpcastWithCovariantTypeParameter(NSArray<NSMutableString *> *allMutableStrings, NSNumber *number) {
389  NSArray<NSString *> *allStrings = allMutableStrings; // no-warning
390  id numberAsId = number;
391  NSArray<NSString *> *moreStrings = [allStrings arrayByAddingObject:numberAsId]; // Sema: expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
392}
393
394void testArgumentAfterCastToUnspecializedWithCovariantTypeParameter(NSArray<NSMutableString *> *allMutableStrings, NSNumber *number) {
395  NSArray *allStrings = allMutableStrings; // no-warning
396  id numberAsId = number;
397
398  NSArray *moreStringsUnspecialized = [allStrings arrayByAddingObject:numberAsId]; // no-warning
399
400  // Ideally the analyzer would warn here.
401  NSArray<NSString *> *moreStringsSpecialized = [allStrings arrayByAddingObject:numberAsId];
402}
403
404void testCallToMethodWithCovariantParameterOnInstanceOfSubclassWithInvariantParameter(NSMutableArray<NSMutableString *> *mutableArrayOfMutableStrings, NSString *someString) {
405  NSArray<NSString *> *arrayOfStrings = mutableArrayOfMutableStrings;
406  [arrayOfStrings containsObject:someString]; // no-warning
407}
408
409// CHECK:  <key>diagnostics</key>
410// CHECK-NEXT:  <array>
411// CHECK-NEXT:   <dict>
412// CHECK-NEXT:    <key>path</key>
413// CHECK-NEXT:    <array>
414// CHECK-NEXT:     <dict>
415// CHECK-NEXT:      <key>kind</key><string>event</string>
416// CHECK-NEXT:      <key>location</key>
417// CHECK-NEXT:      <dict>
418// CHECK-NEXT:       <key>line</key><integer>100</integer>
419// CHECK-NEXT:       <key>col</key><integer>7</integer>
420// CHECK-NEXT:       <key>file</key><integer>0</integer>
421// CHECK-NEXT:      </dict>
422// CHECK-NEXT:      <key>ranges</key>
423// CHECK-NEXT:      <array>
424// CHECK-NEXT:        <array>
425// CHECK-NEXT:         <dict>
426// CHECK-NEXT:          <key>line</key><integer>100</integer>
427// CHECK-NEXT:          <key>col</key><integer>7</integer>
428// CHECK-NEXT:          <key>file</key><integer>0</integer>
429// CHECK-NEXT:         </dict>
430// CHECK-NEXT:         <dict>
431// CHECK-NEXT:          <key>line</key><integer>100</integer>
432// CHECK-NEXT:          <key>col</key><integer>7</integer>
433// CHECK-NEXT:          <key>file</key><integer>0</integer>
434// CHECK-NEXT:         </dict>
435// CHECK-NEXT:        </array>
436// CHECK-NEXT:      </array>
437// CHECK-NEXT:      <key>depth</key><integer>0</integer>
438// CHECK-NEXT:      <key>extended_message</key>
439// 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>
440// CHECK-NEXT:      <key>message</key>
441// 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>
442// CHECK-NEXT:     </dict>
443// CHECK-NEXT:     <dict>
444// CHECK-NEXT:      <key>kind</key><string>control</string>
445// CHECK-NEXT:      <key>edges</key>
446// CHECK-NEXT:       <array>
447// CHECK-NEXT:        <dict>
448// CHECK-NEXT:         <key>start</key>
449// CHECK-NEXT:          <array>
450// CHECK-NEXT:           <dict>
451// CHECK-NEXT:            <key>line</key><integer>100</integer>
452// CHECK-NEXT:            <key>col</key><integer>3</integer>
453// CHECK-NEXT:            <key>file</key><integer>0</integer>
454// CHECK-NEXT:           </dict>
455// CHECK-NEXT:           <dict>
456// CHECK-NEXT:            <key>line</key><integer>100</integer>
457// CHECK-NEXT:            <key>col</key><integer>3</integer>
458// CHECK-NEXT:            <key>file</key><integer>0</integer>
459// CHECK-NEXT:           </dict>
460// CHECK-NEXT:          </array>
461// CHECK-NEXT:         <key>end</key>
462// CHECK-NEXT:          <array>
463// CHECK-NEXT:           <dict>
464// CHECK-NEXT:            <key>line</key><integer>101</integer>
465// CHECK-NEXT:            <key>col</key><integer>3</integer>
466// CHECK-NEXT:            <key>file</key><integer>0</integer>
467// CHECK-NEXT:           </dict>
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:          </array>
474// CHECK-NEXT:        </dict>
475// CHECK-NEXT:       </array>
476// CHECK-NEXT:     </dict>
477// CHECK-NEXT:     <dict>
478// CHECK-NEXT:      <key>kind</key><string>control</string>
479// CHECK-NEXT:      <key>edges</key>
480// CHECK-NEXT:       <array>
481// CHECK-NEXT:        <dict>
482// CHECK-NEXT:         <key>start</key>
483// CHECK-NEXT:          <array>
484// CHECK-NEXT:           <dict>
485// CHECK-NEXT:            <key>line</key><integer>101</integer>
486// CHECK-NEXT:            <key>col</key><integer>3</integer>
487// CHECK-NEXT:            <key>file</key><integer>0</integer>
488// CHECK-NEXT:           </dict>
489// CHECK-NEXT:           <dict>
490// CHECK-NEXT:            <key>line</key><integer>101</integer>
491// CHECK-NEXT:            <key>col</key><integer>3</integer>
492// CHECK-NEXT:            <key>file</key><integer>0</integer>
493// CHECK-NEXT:           </dict>
494// CHECK-NEXT:          </array>
495// CHECK-NEXT:         <key>end</key>
496// CHECK-NEXT:          <array>
497// CHECK-NEXT:           <dict>
498// CHECK-NEXT:            <key>line</key><integer>101</integer>
499// CHECK-NEXT:            <key>col</key><integer>7</integer>
500// CHECK-NEXT:            <key>file</key><integer>0</integer>
501// CHECK-NEXT:           </dict>
502// CHECK-NEXT:           <dict>
503// CHECK-NEXT:            <key>line</key><integer>101</integer>
504// CHECK-NEXT:            <key>col</key><integer>7</integer>
505// CHECK-NEXT:            <key>file</key><integer>0</integer>
506// CHECK-NEXT:           </dict>
507// CHECK-NEXT:          </array>
508// CHECK-NEXT:        </dict>
509// CHECK-NEXT:       </array>
510// CHECK-NEXT:     </dict>
511// CHECK-NEXT:     <dict>
512// CHECK-NEXT:      <key>kind</key><string>event</string>
513// CHECK-NEXT:      <key>location</key>
514// CHECK-NEXT:      <dict>
515// CHECK-NEXT:       <key>line</key><integer>101</integer>
516// CHECK-NEXT:       <key>col</key><integer>7</integer>
517// CHECK-NEXT:       <key>file</key><integer>0</integer>
518// CHECK-NEXT:      </dict>
519// CHECK-NEXT:      <key>ranges</key>
520// CHECK-NEXT:      <array>
521// CHECK-NEXT:        <array>
522// CHECK-NEXT:         <dict>
523// CHECK-NEXT:          <key>line</key><integer>101</integer>
524// CHECK-NEXT:          <key>col</key><integer>7</integer>
525// CHECK-NEXT:          <key>file</key><integer>0</integer>
526// CHECK-NEXT:         </dict>
527// CHECK-NEXT:         <dict>
528// CHECK-NEXT:          <key>line</key><integer>101</integer>
529// CHECK-NEXT:          <key>col</key><integer>7</integer>
530// CHECK-NEXT:          <key>file</key><integer>0</integer>
531// CHECK-NEXT:         </dict>
532// CHECK-NEXT:        </array>
533// CHECK-NEXT:      </array>
534// CHECK-NEXT:      <key>depth</key><integer>0</integer>
535// CHECK-NEXT:      <key>extended_message</key>
536// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
537// CHECK-NEXT:      <key>message</key>
538// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
539// CHECK-NEXT:     </dict>
540// CHECK-NEXT:    </array>
541// 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>
542// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
543// CHECK-NEXT:    <key>type</key><string>Generics</string>
544// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
545// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
546// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>33d4584e2bf66b029ab9d152cc9cd8f7</string>
547// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
548// CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErased</string>
549// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
550// CHECK-NEXT:   <key>location</key>
551// CHECK-NEXT:   <dict>
552// CHECK-NEXT:    <key>line</key><integer>101</integer>
553// CHECK-NEXT:    <key>col</key><integer>7</integer>
554// CHECK-NEXT:    <key>file</key><integer>0</integer>
555// CHECK-NEXT:   </dict>
556// CHECK-NEXT:   </dict>
557// CHECK-NEXT:   <dict>
558// CHECK-NEXT:    <key>path</key>
559// CHECK-NEXT:    <array>
560// CHECK-NEXT:     <dict>
561// CHECK-NEXT:      <key>kind</key><string>event</string>
562// CHECK-NEXT:      <key>location</key>
563// CHECK-NEXT:      <dict>
564// CHECK-NEXT:       <key>line</key><integer>100</integer>
565// CHECK-NEXT:       <key>col</key><integer>7</integer>
566// CHECK-NEXT:       <key>file</key><integer>0</integer>
567// CHECK-NEXT:      </dict>
568// CHECK-NEXT:      <key>ranges</key>
569// CHECK-NEXT:      <array>
570// CHECK-NEXT:        <array>
571// CHECK-NEXT:         <dict>
572// CHECK-NEXT:          <key>line</key><integer>100</integer>
573// CHECK-NEXT:          <key>col</key><integer>7</integer>
574// CHECK-NEXT:          <key>file</key><integer>0</integer>
575// CHECK-NEXT:         </dict>
576// CHECK-NEXT:         <dict>
577// CHECK-NEXT:          <key>line</key><integer>100</integer>
578// CHECK-NEXT:          <key>col</key><integer>7</integer>
579// CHECK-NEXT:          <key>file</key><integer>0</integer>
580// CHECK-NEXT:         </dict>
581// CHECK-NEXT:        </array>
582// CHECK-NEXT:      </array>
583// CHECK-NEXT:      <key>depth</key><integer>0</integer>
584// CHECK-NEXT:      <key>extended_message</key>
585// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
586// CHECK-NEXT:      <key>message</key>
587// 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>
588// CHECK-NEXT:     </dict>
589// CHECK-NEXT:     <dict>
590// CHECK-NEXT:      <key>kind</key><string>control</string>
591// CHECK-NEXT:      <key>edges</key>
592// CHECK-NEXT:       <array>
593// CHECK-NEXT:        <dict>
594// CHECK-NEXT:         <key>start</key>
595// CHECK-NEXT:          <array>
596// CHECK-NEXT:           <dict>
597// CHECK-NEXT:            <key>line</key><integer>100</integer>
598// CHECK-NEXT:            <key>col</key><integer>3</integer>
599// CHECK-NEXT:            <key>file</key><integer>0</integer>
600// CHECK-NEXT:           </dict>
601// CHECK-NEXT:           <dict>
602// CHECK-NEXT:            <key>line</key><integer>100</integer>
603// CHECK-NEXT:            <key>col</key><integer>3</integer>
604// CHECK-NEXT:            <key>file</key><integer>0</integer>
605// CHECK-NEXT:           </dict>
606// CHECK-NEXT:          </array>
607// CHECK-NEXT:         <key>end</key>
608// CHECK-NEXT:          <array>
609// CHECK-NEXT:           <dict>
610// CHECK-NEXT:            <key>line</key><integer>104</integer>
611// CHECK-NEXT:            <key>col</key><integer>3</integer>
612// CHECK-NEXT:            <key>file</key><integer>0</integer>
613// CHECK-NEXT:           </dict>
614// CHECK-NEXT:           <dict>
615// CHECK-NEXT:            <key>line</key><integer>104</integer>
616// CHECK-NEXT:            <key>col</key><integer>9</integer>
617// CHECK-NEXT:            <key>file</key><integer>0</integer>
618// CHECK-NEXT:           </dict>
619// CHECK-NEXT:          </array>
620// CHECK-NEXT:        </dict>
621// CHECK-NEXT:       </array>
622// CHECK-NEXT:     </dict>
623// CHECK-NEXT:     <dict>
624// CHECK-NEXT:      <key>kind</key><string>control</string>
625// CHECK-NEXT:      <key>edges</key>
626// CHECK-NEXT:       <array>
627// CHECK-NEXT:        <dict>
628// CHECK-NEXT:         <key>start</key>
629// CHECK-NEXT:          <array>
630// CHECK-NEXT:           <dict>
631// CHECK-NEXT:            <key>line</key><integer>104</integer>
632// CHECK-NEXT:            <key>col</key><integer>3</integer>
633// CHECK-NEXT:            <key>file</key><integer>0</integer>
634// CHECK-NEXT:           </dict>
635// CHECK-NEXT:           <dict>
636// CHECK-NEXT:            <key>line</key><integer>104</integer>
637// CHECK-NEXT:            <key>col</key><integer>9</integer>
638// CHECK-NEXT:            <key>file</key><integer>0</integer>
639// CHECK-NEXT:           </dict>
640// CHECK-NEXT:          </array>
641// CHECK-NEXT:         <key>end</key>
642// CHECK-NEXT:          <array>
643// CHECK-NEXT:           <dict>
644// CHECK-NEXT:            <key>line</key><integer>104</integer>
645// CHECK-NEXT:            <key>col</key><integer>11</integer>
646// CHECK-NEXT:            <key>file</key><integer>0</integer>
647// CHECK-NEXT:           </dict>
648// CHECK-NEXT:           <dict>
649// CHECK-NEXT:            <key>line</key><integer>104</integer>
650// CHECK-NEXT:            <key>col</key><integer>11</integer>
651// CHECK-NEXT:            <key>file</key><integer>0</integer>
652// CHECK-NEXT:           </dict>
653// CHECK-NEXT:          </array>
654// CHECK-NEXT:        </dict>
655// CHECK-NEXT:       </array>
656// CHECK-NEXT:     </dict>
657// CHECK-NEXT:     <dict>
658// CHECK-NEXT:      <key>kind</key><string>event</string>
659// CHECK-NEXT:      <key>location</key>
660// CHECK-NEXT:      <dict>
661// CHECK-NEXT:       <key>line</key><integer>104</integer>
662// CHECK-NEXT:       <key>col</key><integer>11</integer>
663// CHECK-NEXT:       <key>file</key><integer>0</integer>
664// CHECK-NEXT:      </dict>
665// CHECK-NEXT:      <key>ranges</key>
666// CHECK-NEXT:      <array>
667// CHECK-NEXT:        <array>
668// CHECK-NEXT:         <dict>
669// CHECK-NEXT:          <key>line</key><integer>104</integer>
670// CHECK-NEXT:          <key>col</key><integer>11</integer>
671// CHECK-NEXT:          <key>file</key><integer>0</integer>
672// CHECK-NEXT:         </dict>
673// CHECK-NEXT:         <dict>
674// CHECK-NEXT:          <key>line</key><integer>104</integer>
675// CHECK-NEXT:          <key>col</key><integer>11</integer>
676// CHECK-NEXT:          <key>file</key><integer>0</integer>
677// CHECK-NEXT:         </dict>
678// CHECK-NEXT:        </array>
679// CHECK-NEXT:      </array>
680// CHECK-NEXT:      <key>depth</key><integer>0</integer>
681// CHECK-NEXT:      <key>extended_message</key>
682// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
683// CHECK-NEXT:      <key>message</key>
684// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
685// CHECK-NEXT:     </dict>
686// CHECK-NEXT:    </array>
687// 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>
688// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
689// CHECK-NEXT:    <key>type</key><string>Generics</string>
690// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
691// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
692// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6edc910aaa9dc1f2d823abc8cb75360f</string>
693// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
694// CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErased</string>
695// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
696// CHECK-NEXT:   <key>location</key>
697// CHECK-NEXT:   <dict>
698// CHECK-NEXT:    <key>line</key><integer>104</integer>
699// CHECK-NEXT:    <key>col</key><integer>11</integer>
700// CHECK-NEXT:    <key>file</key><integer>0</integer>
701// CHECK-NEXT:   </dict>
702// CHECK-NEXT:   </dict>
703// CHECK-NEXT:   <dict>
704// CHECK-NEXT:    <key>path</key>
705// CHECK-NEXT:    <array>
706// CHECK-NEXT:     <dict>
707// CHECK-NEXT:      <key>kind</key><string>event</string>
708// CHECK-NEXT:      <key>location</key>
709// CHECK-NEXT:      <dict>
710// CHECK-NEXT:       <key>line</key><integer>100</integer>
711// CHECK-NEXT:       <key>col</key><integer>7</integer>
712// CHECK-NEXT:       <key>file</key><integer>0</integer>
713// CHECK-NEXT:      </dict>
714// CHECK-NEXT:      <key>ranges</key>
715// CHECK-NEXT:      <array>
716// CHECK-NEXT:        <array>
717// CHECK-NEXT:         <dict>
718// CHECK-NEXT:          <key>line</key><integer>100</integer>
719// CHECK-NEXT:          <key>col</key><integer>7</integer>
720// CHECK-NEXT:          <key>file</key><integer>0</integer>
721// CHECK-NEXT:         </dict>
722// CHECK-NEXT:         <dict>
723// CHECK-NEXT:          <key>line</key><integer>100</integer>
724// CHECK-NEXT:          <key>col</key><integer>7</integer>
725// CHECK-NEXT:          <key>file</key><integer>0</integer>
726// CHECK-NEXT:         </dict>
727// CHECK-NEXT:        </array>
728// CHECK-NEXT:      </array>
729// CHECK-NEXT:      <key>depth</key><integer>0</integer>
730// CHECK-NEXT:      <key>extended_message</key>
731// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
732// CHECK-NEXT:      <key>message</key>
733// 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>
734// CHECK-NEXT:     </dict>
735// CHECK-NEXT:     <dict>
736// CHECK-NEXT:      <key>kind</key><string>control</string>
737// CHECK-NEXT:      <key>edges</key>
738// CHECK-NEXT:       <array>
739// CHECK-NEXT:        <dict>
740// CHECK-NEXT:         <key>start</key>
741// CHECK-NEXT:          <array>
742// CHECK-NEXT:           <dict>
743// CHECK-NEXT:            <key>line</key><integer>100</integer>
744// CHECK-NEXT:            <key>col</key><integer>3</integer>
745// CHECK-NEXT:            <key>file</key><integer>0</integer>
746// CHECK-NEXT:           </dict>
747// CHECK-NEXT:           <dict>
748// CHECK-NEXT:            <key>line</key><integer>100</integer>
749// CHECK-NEXT:            <key>col</key><integer>3</integer>
750// CHECK-NEXT:            <key>file</key><integer>0</integer>
751// CHECK-NEXT:           </dict>
752// CHECK-NEXT:          </array>
753// CHECK-NEXT:         <key>end</key>
754// CHECK-NEXT:          <array>
755// CHECK-NEXT:           <dict>
756// CHECK-NEXT:            <key>line</key><integer>107</integer>
757// CHECK-NEXT:            <key>col</key><integer>3</integer>
758// CHECK-NEXT:            <key>file</key><integer>0</integer>
759// CHECK-NEXT:           </dict>
760// CHECK-NEXT:           <dict>
761// CHECK-NEXT:            <key>line</key><integer>107</integer>
762// CHECK-NEXT:            <key>col</key><integer>3</integer>
763// CHECK-NEXT:            <key>file</key><integer>0</integer>
764// CHECK-NEXT:           </dict>
765// CHECK-NEXT:          </array>
766// CHECK-NEXT:        </dict>
767// CHECK-NEXT:       </array>
768// CHECK-NEXT:     </dict>
769// CHECK-NEXT:     <dict>
770// CHECK-NEXT:      <key>kind</key><string>event</string>
771// CHECK-NEXT:      <key>location</key>
772// CHECK-NEXT:      <dict>
773// CHECK-NEXT:       <key>line</key><integer>107</integer>
774// CHECK-NEXT:       <key>col</key><integer>3</integer>
775// CHECK-NEXT:       <key>file</key><integer>0</integer>
776// CHECK-NEXT:      </dict>
777// CHECK-NEXT:      <key>ranges</key>
778// CHECK-NEXT:      <array>
779// CHECK-NEXT:        <array>
780// CHECK-NEXT:         <dict>
781// CHECK-NEXT:          <key>line</key><integer>107</integer>
782// CHECK-NEXT:          <key>col</key><integer>17</integer>
783// CHECK-NEXT:          <key>file</key><integer>0</integer>
784// CHECK-NEXT:         </dict>
785// CHECK-NEXT:         <dict>
786// CHECK-NEXT:          <key>line</key><integer>107</integer>
787// CHECK-NEXT:          <key>col</key><integer>39</integer>
788// CHECK-NEXT:          <key>file</key><integer>0</integer>
789// CHECK-NEXT:         </dict>
790// CHECK-NEXT:        </array>
791// CHECK-NEXT:      </array>
792// CHECK-NEXT:      <key>depth</key><integer>0</integer>
793// CHECK-NEXT:      <key>extended_message</key>
794// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
795// CHECK-NEXT:      <key>message</key>
796// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
797// CHECK-NEXT:     </dict>
798// CHECK-NEXT:    </array>
799// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
800// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
801// CHECK-NEXT:    <key>type</key><string>Generics</string>
802// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
803// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
804// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>73c71c858082f5d7a2258f707927da3c</string>
805// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
806// CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErased</string>
807// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>8</string>
808// CHECK-NEXT:   <key>location</key>
809// CHECK-NEXT:   <dict>
810// CHECK-NEXT:    <key>line</key><integer>107</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:   <dict>
816// CHECK-NEXT:    <key>path</key>
817// CHECK-NEXT:    <array>
818// CHECK-NEXT:     <dict>
819// CHECK-NEXT:      <key>kind</key><string>control</string>
820// CHECK-NEXT:      <key>edges</key>
821// CHECK-NEXT:       <array>
822// CHECK-NEXT:        <dict>
823// CHECK-NEXT:         <key>start</key>
824// CHECK-NEXT:          <array>
825// CHECK-NEXT:           <dict>
826// CHECK-NEXT:            <key>line</key><integer>111</integer>
827// CHECK-NEXT:            <key>col</key><integer>3</integer>
828// CHECK-NEXT:            <key>file</key><integer>0</integer>
829// CHECK-NEXT:           </dict>
830// CHECK-NEXT:           <dict>
831// CHECK-NEXT:            <key>line</key><integer>111</integer>
832// CHECK-NEXT:            <key>col</key><integer>9</integer>
833// CHECK-NEXT:            <key>file</key><integer>0</integer>
834// CHECK-NEXT:           </dict>
835// CHECK-NEXT:          </array>
836// CHECK-NEXT:         <key>end</key>
837// CHECK-NEXT:          <array>
838// CHECK-NEXT:           <dict>
839// CHECK-NEXT:            <key>line</key><integer>111</integer>
840// CHECK-NEXT:            <key>col</key><integer>28</integer>
841// CHECK-NEXT:            <key>file</key><integer>0</integer>
842// CHECK-NEXT:           </dict>
843// CHECK-NEXT:           <dict>
844// CHECK-NEXT:            <key>line</key><integer>111</integer>
845// CHECK-NEXT:            <key>col</key><integer>40</integer>
846// CHECK-NEXT:            <key>file</key><integer>0</integer>
847// CHECK-NEXT:           </dict>
848// CHECK-NEXT:          </array>
849// CHECK-NEXT:        </dict>
850// CHECK-NEXT:       </array>
851// CHECK-NEXT:     </dict>
852// CHECK-NEXT:     <dict>
853// CHECK-NEXT:      <key>kind</key><string>event</string>
854// CHECK-NEXT:      <key>location</key>
855// CHECK-NEXT:      <dict>
856// CHECK-NEXT:       <key>line</key><integer>111</integer>
857// CHECK-NEXT:       <key>col</key><integer>28</integer>
858// CHECK-NEXT:       <key>file</key><integer>0</integer>
859// CHECK-NEXT:      </dict>
860// CHECK-NEXT:      <key>ranges</key>
861// CHECK-NEXT:      <array>
862// CHECK-NEXT:        <array>
863// CHECK-NEXT:         <dict>
864// CHECK-NEXT:          <key>line</key><integer>111</integer>
865// CHECK-NEXT:          <key>col</key><integer>28</integer>
866// CHECK-NEXT:          <key>file</key><integer>0</integer>
867// CHECK-NEXT:         </dict>
868// CHECK-NEXT:         <dict>
869// CHECK-NEXT:          <key>line</key><integer>111</integer>
870// CHECK-NEXT:          <key>col</key><integer>42</integer>
871// CHECK-NEXT:          <key>file</key><integer>0</integer>
872// CHECK-NEXT:         </dict>
873// CHECK-NEXT:        </array>
874// CHECK-NEXT:      </array>
875// CHECK-NEXT:      <key>depth</key><integer>0</integer>
876// CHECK-NEXT:      <key>extended_message</key>
877// CHECK-NEXT:      <string>Calling &apos;getTypedStuff&apos;</string>
878// CHECK-NEXT:      <key>message</key>
879// CHECK-NEXT:      <string>Calling &apos;getTypedStuff&apos;</string>
880// CHECK-NEXT:     </dict>
881// CHECK-NEXT:     <dict>
882// CHECK-NEXT:      <key>kind</key><string>event</string>
883// CHECK-NEXT:      <key>location</key>
884// CHECK-NEXT:      <dict>
885// CHECK-NEXT:       <key>line</key><integer>86</integer>
886// CHECK-NEXT:       <key>col</key><integer>1</integer>
887// CHECK-NEXT:       <key>file</key><integer>0</integer>
888// CHECK-NEXT:      </dict>
889// CHECK-NEXT:      <key>depth</key><integer>1</integer>
890// CHECK-NEXT:      <key>extended_message</key>
891// CHECK-NEXT:      <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
892// CHECK-NEXT:      <key>message</key>
893// CHECK-NEXT:      <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
894// CHECK-NEXT:     </dict>
895// CHECK-NEXT:     <dict>
896// CHECK-NEXT:      <key>kind</key><string>control</string>
897// CHECK-NEXT:      <key>edges</key>
898// CHECK-NEXT:       <array>
899// CHECK-NEXT:        <dict>
900// CHECK-NEXT:         <key>start</key>
901// CHECK-NEXT:          <array>
902// CHECK-NEXT:           <dict>
903// CHECK-NEXT:            <key>line</key><integer>86</integer>
904// CHECK-NEXT:            <key>col</key><integer>1</integer>
905// CHECK-NEXT:            <key>file</key><integer>0</integer>
906// CHECK-NEXT:           </dict>
907// CHECK-NEXT:           <dict>
908// CHECK-NEXT:            <key>line</key><integer>86</integer>
909// CHECK-NEXT:            <key>col</key><integer>7</integer>
910// CHECK-NEXT:            <key>file</key><integer>0</integer>
911// CHECK-NEXT:           </dict>
912// CHECK-NEXT:          </array>
913// CHECK-NEXT:         <key>end</key>
914// CHECK-NEXT:          <array>
915// CHECK-NEXT:           <dict>
916// CHECK-NEXT:            <key>line</key><integer>87</integer>
917// CHECK-NEXT:            <key>col</key><integer>3</integer>
918// CHECK-NEXT:            <key>file</key><integer>0</integer>
919// CHECK-NEXT:           </dict>
920// CHECK-NEXT:           <dict>
921// CHECK-NEXT:            <key>line</key><integer>87</integer>
922// CHECK-NEXT:            <key>col</key><integer>9</integer>
923// CHECK-NEXT:            <key>file</key><integer>0</integer>
924// CHECK-NEXT:           </dict>
925// CHECK-NEXT:          </array>
926// CHECK-NEXT:        </dict>
927// CHECK-NEXT:       </array>
928// CHECK-NEXT:     </dict>
929// CHECK-NEXT:     <dict>
930// CHECK-NEXT:      <key>kind</key><string>event</string>
931// CHECK-NEXT:      <key>location</key>
932// CHECK-NEXT:      <dict>
933// CHECK-NEXT:       <key>line</key><integer>87</integer>
934// CHECK-NEXT:       <key>col</key><integer>28</integer>
935// CHECK-NEXT:       <key>file</key><integer>0</integer>
936// CHECK-NEXT:      </dict>
937// CHECK-NEXT:      <key>ranges</key>
938// CHECK-NEXT:      <array>
939// CHECK-NEXT:        <array>
940// CHECK-NEXT:         <dict>
941// CHECK-NEXT:          <key>line</key><integer>87</integer>
942// CHECK-NEXT:          <key>col</key><integer>28</integer>
943// CHECK-NEXT:          <key>file</key><integer>0</integer>
944// CHECK-NEXT:         </dict>
945// CHECK-NEXT:         <dict>
946// CHECK-NEXT:          <key>line</key><integer>87</integer>
947// CHECK-NEXT:          <key>col</key><integer>37</integer>
948// CHECK-NEXT:          <key>file</key><integer>0</integer>
949// CHECK-NEXT:         </dict>
950// CHECK-NEXT:        </array>
951// CHECK-NEXT:      </array>
952// CHECK-NEXT:      <key>depth</key><integer>1</integer>
953// CHECK-NEXT:      <key>extended_message</key>
954// 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>
955// CHECK-NEXT:      <key>message</key>
956// 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>
957// CHECK-NEXT:     </dict>
958// CHECK-NEXT:     <dict>
959// CHECK-NEXT:      <key>kind</key><string>control</string>
960// CHECK-NEXT:      <key>edges</key>
961// CHECK-NEXT:       <array>
962// CHECK-NEXT:        <dict>
963// CHECK-NEXT:         <key>start</key>
964// CHECK-NEXT:          <array>
965// CHECK-NEXT:           <dict>
966// CHECK-NEXT:            <key>line</key><integer>87</integer>
967// CHECK-NEXT:            <key>col</key><integer>3</integer>
968// CHECK-NEXT:            <key>file</key><integer>0</integer>
969// CHECK-NEXT:           </dict>
970// CHECK-NEXT:           <dict>
971// CHECK-NEXT:            <key>line</key><integer>87</integer>
972// CHECK-NEXT:            <key>col</key><integer>9</integer>
973// CHECK-NEXT:            <key>file</key><integer>0</integer>
974// CHECK-NEXT:           </dict>
975// CHECK-NEXT:          </array>
976// CHECK-NEXT:         <key>end</key>
977// CHECK-NEXT:          <array>
978// CHECK-NEXT:           <dict>
979// CHECK-NEXT:            <key>line</key><integer>88</integer>
980// CHECK-NEXT:            <key>col</key><integer>3</integer>
981// CHECK-NEXT:            <key>file</key><integer>0</integer>
982// CHECK-NEXT:           </dict>
983// CHECK-NEXT:           <dict>
984// CHECK-NEXT:            <key>line</key><integer>88</integer>
985// CHECK-NEXT:            <key>col</key><integer>8</integer>
986// CHECK-NEXT:            <key>file</key><integer>0</integer>
987// CHECK-NEXT:           </dict>
988// CHECK-NEXT:          </array>
989// CHECK-NEXT:        </dict>
990// CHECK-NEXT:       </array>
991// CHECK-NEXT:     </dict>
992// CHECK-NEXT:     <dict>
993// CHECK-NEXT:      <key>kind</key><string>event</string>
994// CHECK-NEXT:      <key>location</key>
995// CHECK-NEXT:      <dict>
996// CHECK-NEXT:       <key>line</key><integer>111</integer>
997// CHECK-NEXT:       <key>col</key><integer>28</integer>
998// CHECK-NEXT:       <key>file</key><integer>0</integer>
999// CHECK-NEXT:      </dict>
1000// CHECK-NEXT:      <key>ranges</key>
1001// CHECK-NEXT:      <array>
1002// CHECK-NEXT:        <array>
1003// CHECK-NEXT:         <dict>
1004// CHECK-NEXT:          <key>line</key><integer>111</integer>
1005// CHECK-NEXT:          <key>col</key><integer>28</integer>
1006// CHECK-NEXT:          <key>file</key><integer>0</integer>
1007// CHECK-NEXT:         </dict>
1008// CHECK-NEXT:         <dict>
1009// CHECK-NEXT:          <key>line</key><integer>111</integer>
1010// CHECK-NEXT:          <key>col</key><integer>42</integer>
1011// CHECK-NEXT:          <key>file</key><integer>0</integer>
1012// CHECK-NEXT:         </dict>
1013// CHECK-NEXT:        </array>
1014// CHECK-NEXT:      </array>
1015// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1016// CHECK-NEXT:      <key>extended_message</key>
1017// CHECK-NEXT:      <string>Returning from &apos;getTypedStuff&apos;</string>
1018// CHECK-NEXT:      <key>message</key>
1019// CHECK-NEXT:      <string>Returning from &apos;getTypedStuff&apos;</string>
1020// CHECK-NEXT:     </dict>
1021// CHECK-NEXT:     <dict>
1022// CHECK-NEXT:      <key>kind</key><string>event</string>
1023// CHECK-NEXT:      <key>location</key>
1024// CHECK-NEXT:      <dict>
1025// CHECK-NEXT:       <key>line</key><integer>111</integer>
1026// CHECK-NEXT:       <key>col</key><integer>28</integer>
1027// CHECK-NEXT:       <key>file</key><integer>0</integer>
1028// CHECK-NEXT:      </dict>
1029// CHECK-NEXT:      <key>ranges</key>
1030// CHECK-NEXT:      <array>
1031// CHECK-NEXT:        <array>
1032// CHECK-NEXT:         <dict>
1033// CHECK-NEXT:          <key>line</key><integer>111</integer>
1034// CHECK-NEXT:          <key>col</key><integer>28</integer>
1035// CHECK-NEXT:          <key>file</key><integer>0</integer>
1036// CHECK-NEXT:         </dict>
1037// CHECK-NEXT:         <dict>
1038// CHECK-NEXT:          <key>line</key><integer>111</integer>
1039// CHECK-NEXT:          <key>col</key><integer>42</integer>
1040// CHECK-NEXT:          <key>file</key><integer>0</integer>
1041// CHECK-NEXT:         </dict>
1042// CHECK-NEXT:        </array>
1043// CHECK-NEXT:      </array>
1044// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1045// CHECK-NEXT:      <key>extended_message</key>
1046// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
1047// CHECK-NEXT:      <key>message</key>
1048// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
1049// CHECK-NEXT:     </dict>
1050// CHECK-NEXT:    </array>
1051// 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>
1052// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1053// CHECK-NEXT:    <key>type</key><string>Generics</string>
1054// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1055// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1056// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>82c378fdcfcc5c0318d2f3ca46420ec1</string>
1057// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1058// CHECK-NEXT:   <key>issue_context</key><string>crossProceduralErasedTypes</string>
1059// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>1</string>
1060// CHECK-NEXT:   <key>location</key>
1061// CHECK-NEXT:   <dict>
1062// CHECK-NEXT:    <key>line</key><integer>111</integer>
1063// CHECK-NEXT:    <key>col</key><integer>28</integer>
1064// CHECK-NEXT:    <key>file</key><integer>0</integer>
1065// CHECK-NEXT:   </dict>
1066// CHECK-NEXT:   </dict>
1067// CHECK-NEXT:   <dict>
1068// CHECK-NEXT:    <key>path</key>
1069// CHECK-NEXT:    <array>
1070// CHECK-NEXT:     <dict>
1071// CHECK-NEXT:      <key>kind</key><string>event</string>
1072// CHECK-NEXT:      <key>location</key>
1073// CHECK-NEXT:      <dict>
1074// CHECK-NEXT:       <key>line</key><integer>116</integer>
1075// CHECK-NEXT:       <key>col</key><integer>7</integer>
1076// CHECK-NEXT:       <key>file</key><integer>0</integer>
1077// CHECK-NEXT:      </dict>
1078// CHECK-NEXT:      <key>ranges</key>
1079// CHECK-NEXT:      <array>
1080// CHECK-NEXT:        <array>
1081// CHECK-NEXT:         <dict>
1082// CHECK-NEXT:          <key>line</key><integer>116</integer>
1083// CHECK-NEXT:          <key>col</key><integer>7</integer>
1084// CHECK-NEXT:          <key>file</key><integer>0</integer>
1085// CHECK-NEXT:         </dict>
1086// CHECK-NEXT:         <dict>
1087// CHECK-NEXT:          <key>line</key><integer>116</integer>
1088// CHECK-NEXT:          <key>col</key><integer>7</integer>
1089// CHECK-NEXT:          <key>file</key><integer>0</integer>
1090// CHECK-NEXT:         </dict>
1091// CHECK-NEXT:        </array>
1092// CHECK-NEXT:      </array>
1093// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1094// CHECK-NEXT:      <key>extended_message</key>
1095// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray *&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1096// CHECK-NEXT:      <key>message</key>
1097// 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>
1098// CHECK-NEXT:     </dict>
1099// CHECK-NEXT:     <dict>
1100// CHECK-NEXT:      <key>kind</key><string>control</string>
1101// CHECK-NEXT:      <key>edges</key>
1102// CHECK-NEXT:       <array>
1103// CHECK-NEXT:        <dict>
1104// CHECK-NEXT:         <key>start</key>
1105// CHECK-NEXT:          <array>
1106// CHECK-NEXT:           <dict>
1107// CHECK-NEXT:            <key>line</key><integer>116</integer>
1108// CHECK-NEXT:            <key>col</key><integer>3</integer>
1109// CHECK-NEXT:            <key>file</key><integer>0</integer>
1110// CHECK-NEXT:           </dict>
1111// CHECK-NEXT:           <dict>
1112// CHECK-NEXT:            <key>line</key><integer>116</integer>
1113// CHECK-NEXT:            <key>col</key><integer>3</integer>
1114// CHECK-NEXT:            <key>file</key><integer>0</integer>
1115// CHECK-NEXT:           </dict>
1116// CHECK-NEXT:          </array>
1117// CHECK-NEXT:         <key>end</key>
1118// CHECK-NEXT:          <array>
1119// CHECK-NEXT:           <dict>
1120// CHECK-NEXT:            <key>line</key><integer>119</integer>
1121// CHECK-NEXT:            <key>col</key><integer>3</integer>
1122// CHECK-NEXT:            <key>file</key><integer>0</integer>
1123// CHECK-NEXT:           </dict>
1124// CHECK-NEXT:           <dict>
1125// CHECK-NEXT:            <key>line</key><integer>119</integer>
1126// CHECK-NEXT:            <key>col</key><integer>9</integer>
1127// CHECK-NEXT:            <key>file</key><integer>0</integer>
1128// CHECK-NEXT:           </dict>
1129// CHECK-NEXT:          </array>
1130// CHECK-NEXT:        </dict>
1131// CHECK-NEXT:       </array>
1132// CHECK-NEXT:     </dict>
1133// CHECK-NEXT:     <dict>
1134// CHECK-NEXT:      <key>kind</key><string>control</string>
1135// CHECK-NEXT:      <key>edges</key>
1136// CHECK-NEXT:       <array>
1137// CHECK-NEXT:        <dict>
1138// CHECK-NEXT:         <key>start</key>
1139// CHECK-NEXT:          <array>
1140// CHECK-NEXT:           <dict>
1141// CHECK-NEXT:            <key>line</key><integer>119</integer>
1142// CHECK-NEXT:            <key>col</key><integer>3</integer>
1143// CHECK-NEXT:            <key>file</key><integer>0</integer>
1144// CHECK-NEXT:           </dict>
1145// CHECK-NEXT:           <dict>
1146// CHECK-NEXT:            <key>line</key><integer>119</integer>
1147// CHECK-NEXT:            <key>col</key><integer>9</integer>
1148// CHECK-NEXT:            <key>file</key><integer>0</integer>
1149// CHECK-NEXT:           </dict>
1150// CHECK-NEXT:          </array>
1151// CHECK-NEXT:         <key>end</key>
1152// CHECK-NEXT:          <array>
1153// CHECK-NEXT:           <dict>
1154// CHECK-NEXT:            <key>line</key><integer>119</integer>
1155// CHECK-NEXT:            <key>col</key><integer>11</integer>
1156// CHECK-NEXT:            <key>file</key><integer>0</integer>
1157// CHECK-NEXT:           </dict>
1158// CHECK-NEXT:           <dict>
1159// CHECK-NEXT:            <key>line</key><integer>119</integer>
1160// CHECK-NEXT:            <key>col</key><integer>11</integer>
1161// CHECK-NEXT:            <key>file</key><integer>0</integer>
1162// CHECK-NEXT:           </dict>
1163// CHECK-NEXT:          </array>
1164// CHECK-NEXT:        </dict>
1165// CHECK-NEXT:       </array>
1166// CHECK-NEXT:     </dict>
1167// CHECK-NEXT:     <dict>
1168// CHECK-NEXT:      <key>kind</key><string>event</string>
1169// CHECK-NEXT:      <key>location</key>
1170// CHECK-NEXT:      <dict>
1171// CHECK-NEXT:       <key>line</key><integer>119</integer>
1172// CHECK-NEXT:       <key>col</key><integer>11</integer>
1173// CHECK-NEXT:       <key>file</key><integer>0</integer>
1174// CHECK-NEXT:      </dict>
1175// CHECK-NEXT:      <key>ranges</key>
1176// CHECK-NEXT:      <array>
1177// CHECK-NEXT:        <array>
1178// CHECK-NEXT:         <dict>
1179// CHECK-NEXT:          <key>line</key><integer>119</integer>
1180// CHECK-NEXT:          <key>col</key><integer>11</integer>
1181// CHECK-NEXT:          <key>file</key><integer>0</integer>
1182// CHECK-NEXT:         </dict>
1183// CHECK-NEXT:         <dict>
1184// CHECK-NEXT:          <key>line</key><integer>119</integer>
1185// CHECK-NEXT:          <key>col</key><integer>11</integer>
1186// CHECK-NEXT:          <key>file</key><integer>0</integer>
1187// CHECK-NEXT:         </dict>
1188// CHECK-NEXT:        </array>
1189// CHECK-NEXT:      </array>
1190// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1191// CHECK-NEXT:      <key>extended_message</key>
1192// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1193// CHECK-NEXT:      <key>message</key>
1194// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1195// CHECK-NEXT:     </dict>
1196// CHECK-NEXT:    </array>
1197// 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>
1198// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1199// CHECK-NEXT:    <key>type</key><string>Generics</string>
1200// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1201// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1202// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>234e3c299ee75a4dd4563e0ea88b9ed9</string>
1203// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1204// CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1205// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
1206// CHECK-NEXT:   <key>location</key>
1207// CHECK-NEXT:   <dict>
1208// CHECK-NEXT:    <key>line</key><integer>119</integer>
1209// CHECK-NEXT:    <key>col</key><integer>11</integer>
1210// CHECK-NEXT:    <key>file</key><integer>0</integer>
1211// CHECK-NEXT:   </dict>
1212// CHECK-NEXT:   </dict>
1213// CHECK-NEXT:   <dict>
1214// CHECK-NEXT:    <key>path</key>
1215// CHECK-NEXT:    <array>
1216// CHECK-NEXT:     <dict>
1217// CHECK-NEXT:      <key>kind</key><string>event</string>
1218// CHECK-NEXT:      <key>location</key>
1219// CHECK-NEXT:      <dict>
1220// CHECK-NEXT:       <key>line</key><integer>116</integer>
1221// CHECK-NEXT:       <key>col</key><integer>7</integer>
1222// CHECK-NEXT:       <key>file</key><integer>0</integer>
1223// CHECK-NEXT:      </dict>
1224// CHECK-NEXT:      <key>ranges</key>
1225// CHECK-NEXT:      <array>
1226// CHECK-NEXT:        <array>
1227// CHECK-NEXT:         <dict>
1228// CHECK-NEXT:          <key>line</key><integer>116</integer>
1229// CHECK-NEXT:          <key>col</key><integer>7</integer>
1230// CHECK-NEXT:          <key>file</key><integer>0</integer>
1231// CHECK-NEXT:         </dict>
1232// CHECK-NEXT:         <dict>
1233// CHECK-NEXT:          <key>line</key><integer>116</integer>
1234// CHECK-NEXT:          <key>col</key><integer>7</integer>
1235// CHECK-NEXT:          <key>file</key><integer>0</integer>
1236// CHECK-NEXT:         </dict>
1237// CHECK-NEXT:        </array>
1238// CHECK-NEXT:      </array>
1239// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1240// CHECK-NEXT:      <key>extended_message</key>
1241// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray *&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1242// CHECK-NEXT:      <key>message</key>
1243// 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>
1244// CHECK-NEXT:     </dict>
1245// CHECK-NEXT:     <dict>
1246// CHECK-NEXT:      <key>kind</key><string>control</string>
1247// CHECK-NEXT:      <key>edges</key>
1248// CHECK-NEXT:       <array>
1249// CHECK-NEXT:        <dict>
1250// CHECK-NEXT:         <key>start</key>
1251// CHECK-NEXT:          <array>
1252// CHECK-NEXT:           <dict>
1253// CHECK-NEXT:            <key>line</key><integer>116</integer>
1254// CHECK-NEXT:            <key>col</key><integer>3</integer>
1255// CHECK-NEXT:            <key>file</key><integer>0</integer>
1256// CHECK-NEXT:           </dict>
1257// CHECK-NEXT:           <dict>
1258// CHECK-NEXT:            <key>line</key><integer>116</integer>
1259// CHECK-NEXT:            <key>col</key><integer>3</integer>
1260// CHECK-NEXT:            <key>file</key><integer>0</integer>
1261// CHECK-NEXT:           </dict>
1262// CHECK-NEXT:          </array>
1263// CHECK-NEXT:         <key>end</key>
1264// CHECK-NEXT:          <array>
1265// CHECK-NEXT:           <dict>
1266// CHECK-NEXT:            <key>line</key><integer>121</integer>
1267// CHECK-NEXT:            <key>col</key><integer>3</integer>
1268// CHECK-NEXT:            <key>file</key><integer>0</integer>
1269// CHECK-NEXT:           </dict>
1270// CHECK-NEXT:           <dict>
1271// CHECK-NEXT:            <key>line</key><integer>121</integer>
1272// CHECK-NEXT:            <key>col</key><integer>3</integer>
1273// CHECK-NEXT:            <key>file</key><integer>0</integer>
1274// CHECK-NEXT:           </dict>
1275// CHECK-NEXT:          </array>
1276// CHECK-NEXT:        </dict>
1277// CHECK-NEXT:       </array>
1278// CHECK-NEXT:     </dict>
1279// CHECK-NEXT:     <dict>
1280// CHECK-NEXT:      <key>kind</key><string>event</string>
1281// CHECK-NEXT:      <key>location</key>
1282// CHECK-NEXT:      <dict>
1283// CHECK-NEXT:       <key>line</key><integer>121</integer>
1284// CHECK-NEXT:       <key>col</key><integer>3</integer>
1285// CHECK-NEXT:       <key>file</key><integer>0</integer>
1286// CHECK-NEXT:      </dict>
1287// CHECK-NEXT:      <key>ranges</key>
1288// CHECK-NEXT:      <array>
1289// CHECK-NEXT:        <array>
1290// CHECK-NEXT:         <dict>
1291// CHECK-NEXT:          <key>line</key><integer>121</integer>
1292// CHECK-NEXT:          <key>col</key><integer>17</integer>
1293// CHECK-NEXT:          <key>file</key><integer>0</integer>
1294// CHECK-NEXT:         </dict>
1295// CHECK-NEXT:         <dict>
1296// CHECK-NEXT:          <key>line</key><integer>121</integer>
1297// CHECK-NEXT:          <key>col</key><integer>39</integer>
1298// CHECK-NEXT:          <key>file</key><integer>0</integer>
1299// CHECK-NEXT:         </dict>
1300// CHECK-NEXT:        </array>
1301// CHECK-NEXT:      </array>
1302// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1303// CHECK-NEXT:      <key>extended_message</key>
1304// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1305// CHECK-NEXT:      <key>message</key>
1306// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1307// CHECK-NEXT:     </dict>
1308// CHECK-NEXT:    </array>
1309// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1310// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1311// CHECK-NEXT:    <key>type</key><string>Generics</string>
1312// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1313// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1314// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>e875afc5479fec33a693ce2b550a9573</string>
1315// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1316// CHECK-NEXT:   <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1317// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>6</string>
1318// CHECK-NEXT:   <key>location</key>
1319// CHECK-NEXT:   <dict>
1320// CHECK-NEXT:    <key>line</key><integer>121</integer>
1321// CHECK-NEXT:    <key>col</key><integer>3</integer>
1322// CHECK-NEXT:    <key>file</key><integer>0</integer>
1323// CHECK-NEXT:   </dict>
1324// CHECK-NEXT:   </dict>
1325// CHECK-NEXT:   <dict>
1326// CHECK-NEXT:    <key>path</key>
1327// CHECK-NEXT:    <array>
1328// CHECK-NEXT:     <dict>
1329// CHECK-NEXT:      <key>kind</key><string>event</string>
1330// CHECK-NEXT:      <key>location</key>
1331// CHECK-NEXT:      <dict>
1332// CHECK-NEXT:       <key>line</key><integer>125</integer>
1333// CHECK-NEXT:       <key>col</key><integer>7</integer>
1334// CHECK-NEXT:       <key>file</key><integer>0</integer>
1335// CHECK-NEXT:      </dict>
1336// CHECK-NEXT:      <key>ranges</key>
1337// CHECK-NEXT:      <array>
1338// CHECK-NEXT:        <array>
1339// CHECK-NEXT:         <dict>
1340// CHECK-NEXT:          <key>line</key><integer>125</integer>
1341// CHECK-NEXT:          <key>col</key><integer>7</integer>
1342// CHECK-NEXT:          <key>file</key><integer>0</integer>
1343// CHECK-NEXT:         </dict>
1344// CHECK-NEXT:         <dict>
1345// CHECK-NEXT:          <key>line</key><integer>125</integer>
1346// CHECK-NEXT:          <key>col</key><integer>7</integer>
1347// CHECK-NEXT:          <key>file</key><integer>0</integer>
1348// CHECK-NEXT:         </dict>
1349// CHECK-NEXT:        </array>
1350// CHECK-NEXT:      </array>
1351// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1352// CHECK-NEXT:      <key>extended_message</key>
1353// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1354// CHECK-NEXT:      <key>message</key>
1355// 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>
1356// CHECK-NEXT:     </dict>
1357// CHECK-NEXT:     <dict>
1358// CHECK-NEXT:      <key>kind</key><string>control</string>
1359// CHECK-NEXT:      <key>edges</key>
1360// CHECK-NEXT:       <array>
1361// CHECK-NEXT:        <dict>
1362// CHECK-NEXT:         <key>start</key>
1363// CHECK-NEXT:          <array>
1364// CHECK-NEXT:           <dict>
1365// CHECK-NEXT:            <key>line</key><integer>125</integer>
1366// CHECK-NEXT:            <key>col</key><integer>3</integer>
1367// CHECK-NEXT:            <key>file</key><integer>0</integer>
1368// CHECK-NEXT:           </dict>
1369// CHECK-NEXT:           <dict>
1370// CHECK-NEXT:            <key>line</key><integer>125</integer>
1371// CHECK-NEXT:            <key>col</key><integer>3</integer>
1372// CHECK-NEXT:            <key>file</key><integer>0</integer>
1373// CHECK-NEXT:           </dict>
1374// CHECK-NEXT:          </array>
1375// CHECK-NEXT:         <key>end</key>
1376// CHECK-NEXT:          <array>
1377// CHECK-NEXT:           <dict>
1378// CHECK-NEXT:            <key>line</key><integer>128</integer>
1379// CHECK-NEXT:            <key>col</key><integer>3</integer>
1380// CHECK-NEXT:            <key>file</key><integer>0</integer>
1381// CHECK-NEXT:           </dict>
1382// CHECK-NEXT:           <dict>
1383// CHECK-NEXT:            <key>line</key><integer>128</integer>
1384// CHECK-NEXT:            <key>col</key><integer>9</integer>
1385// CHECK-NEXT:            <key>file</key><integer>0</integer>
1386// CHECK-NEXT:           </dict>
1387// CHECK-NEXT:          </array>
1388// CHECK-NEXT:        </dict>
1389// CHECK-NEXT:       </array>
1390// CHECK-NEXT:     </dict>
1391// CHECK-NEXT:     <dict>
1392// CHECK-NEXT:      <key>kind</key><string>control</string>
1393// CHECK-NEXT:      <key>edges</key>
1394// CHECK-NEXT:       <array>
1395// CHECK-NEXT:        <dict>
1396// CHECK-NEXT:         <key>start</key>
1397// CHECK-NEXT:          <array>
1398// CHECK-NEXT:           <dict>
1399// CHECK-NEXT:            <key>line</key><integer>128</integer>
1400// CHECK-NEXT:            <key>col</key><integer>3</integer>
1401// CHECK-NEXT:            <key>file</key><integer>0</integer>
1402// CHECK-NEXT:           </dict>
1403// CHECK-NEXT:           <dict>
1404// CHECK-NEXT:            <key>line</key><integer>128</integer>
1405// CHECK-NEXT:            <key>col</key><integer>9</integer>
1406// CHECK-NEXT:            <key>file</key><integer>0</integer>
1407// CHECK-NEXT:           </dict>
1408// CHECK-NEXT:          </array>
1409// CHECK-NEXT:         <key>end</key>
1410// CHECK-NEXT:          <array>
1411// CHECK-NEXT:           <dict>
1412// CHECK-NEXT:            <key>line</key><integer>128</integer>
1413// CHECK-NEXT:            <key>col</key><integer>11</integer>
1414// CHECK-NEXT:            <key>file</key><integer>0</integer>
1415// CHECK-NEXT:           </dict>
1416// CHECK-NEXT:           <dict>
1417// CHECK-NEXT:            <key>line</key><integer>128</integer>
1418// CHECK-NEXT:            <key>col</key><integer>11</integer>
1419// CHECK-NEXT:            <key>file</key><integer>0</integer>
1420// CHECK-NEXT:           </dict>
1421// CHECK-NEXT:          </array>
1422// CHECK-NEXT:        </dict>
1423// CHECK-NEXT:       </array>
1424// CHECK-NEXT:     </dict>
1425// CHECK-NEXT:     <dict>
1426// CHECK-NEXT:      <key>kind</key><string>event</string>
1427// CHECK-NEXT:      <key>location</key>
1428// CHECK-NEXT:      <dict>
1429// CHECK-NEXT:       <key>line</key><integer>128</integer>
1430// CHECK-NEXT:       <key>col</key><integer>11</integer>
1431// CHECK-NEXT:       <key>file</key><integer>0</integer>
1432// CHECK-NEXT:      </dict>
1433// CHECK-NEXT:      <key>ranges</key>
1434// CHECK-NEXT:      <array>
1435// CHECK-NEXT:        <array>
1436// CHECK-NEXT:         <dict>
1437// CHECK-NEXT:          <key>line</key><integer>128</integer>
1438// CHECK-NEXT:          <key>col</key><integer>11</integer>
1439// CHECK-NEXT:          <key>file</key><integer>0</integer>
1440// CHECK-NEXT:         </dict>
1441// CHECK-NEXT:         <dict>
1442// CHECK-NEXT:          <key>line</key><integer>128</integer>
1443// CHECK-NEXT:          <key>col</key><integer>11</integer>
1444// CHECK-NEXT:          <key>file</key><integer>0</integer>
1445// CHECK-NEXT:         </dict>
1446// CHECK-NEXT:        </array>
1447// CHECK-NEXT:      </array>
1448// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1449// CHECK-NEXT:      <key>extended_message</key>
1450// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1451// CHECK-NEXT:      <key>message</key>
1452// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1453// CHECK-NEXT:     </dict>
1454// CHECK-NEXT:    </array>
1455// 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>
1456// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1457// CHECK-NEXT:    <key>type</key><string>Generics</string>
1458// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1459// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1460// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d7fa9fa89fe860ed8f5d22631233a5fa</string>
1461// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1462// CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1463// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
1464// CHECK-NEXT:   <key>location</key>
1465// CHECK-NEXT:   <dict>
1466// CHECK-NEXT:    <key>line</key><integer>128</integer>
1467// CHECK-NEXT:    <key>col</key><integer>11</integer>
1468// CHECK-NEXT:    <key>file</key><integer>0</integer>
1469// CHECK-NEXT:   </dict>
1470// CHECK-NEXT:   </dict>
1471// CHECK-NEXT:   <dict>
1472// CHECK-NEXT:    <key>path</key>
1473// CHECK-NEXT:    <array>
1474// CHECK-NEXT:     <dict>
1475// CHECK-NEXT:      <key>kind</key><string>event</string>
1476// CHECK-NEXT:      <key>location</key>
1477// CHECK-NEXT:      <dict>
1478// CHECK-NEXT:       <key>line</key><integer>125</integer>
1479// CHECK-NEXT:       <key>col</key><integer>7</integer>
1480// CHECK-NEXT:       <key>file</key><integer>0</integer>
1481// CHECK-NEXT:      </dict>
1482// CHECK-NEXT:      <key>ranges</key>
1483// CHECK-NEXT:      <array>
1484// CHECK-NEXT:        <array>
1485// CHECK-NEXT:         <dict>
1486// CHECK-NEXT:          <key>line</key><integer>125</integer>
1487// CHECK-NEXT:          <key>col</key><integer>7</integer>
1488// CHECK-NEXT:          <key>file</key><integer>0</integer>
1489// CHECK-NEXT:         </dict>
1490// CHECK-NEXT:         <dict>
1491// CHECK-NEXT:          <key>line</key><integer>125</integer>
1492// CHECK-NEXT:          <key>col</key><integer>7</integer>
1493// CHECK-NEXT:          <key>file</key><integer>0</integer>
1494// CHECK-NEXT:         </dict>
1495// CHECK-NEXT:        </array>
1496// CHECK-NEXT:      </array>
1497// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1498// CHECK-NEXT:      <key>extended_message</key>
1499// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSMutableArray&lt;NSString *&gt; *&apos;)</string>
1500// CHECK-NEXT:      <key>message</key>
1501// 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>
1502// CHECK-NEXT:     </dict>
1503// CHECK-NEXT:     <dict>
1504// CHECK-NEXT:      <key>kind</key><string>control</string>
1505// CHECK-NEXT:      <key>edges</key>
1506// CHECK-NEXT:       <array>
1507// CHECK-NEXT:        <dict>
1508// CHECK-NEXT:         <key>start</key>
1509// CHECK-NEXT:          <array>
1510// CHECK-NEXT:           <dict>
1511// CHECK-NEXT:            <key>line</key><integer>125</integer>
1512// CHECK-NEXT:            <key>col</key><integer>3</integer>
1513// CHECK-NEXT:            <key>file</key><integer>0</integer>
1514// CHECK-NEXT:           </dict>
1515// CHECK-NEXT:           <dict>
1516// CHECK-NEXT:            <key>line</key><integer>125</integer>
1517// CHECK-NEXT:            <key>col</key><integer>3</integer>
1518// CHECK-NEXT:            <key>file</key><integer>0</integer>
1519// CHECK-NEXT:           </dict>
1520// CHECK-NEXT:          </array>
1521// CHECK-NEXT:         <key>end</key>
1522// CHECK-NEXT:          <array>
1523// CHECK-NEXT:           <dict>
1524// CHECK-NEXT:            <key>line</key><integer>130</integer>
1525// CHECK-NEXT:            <key>col</key><integer>3</integer>
1526// CHECK-NEXT:            <key>file</key><integer>0</integer>
1527// CHECK-NEXT:           </dict>
1528// CHECK-NEXT:           <dict>
1529// CHECK-NEXT:            <key>line</key><integer>130</integer>
1530// CHECK-NEXT:            <key>col</key><integer>3</integer>
1531// CHECK-NEXT:            <key>file</key><integer>0</integer>
1532// CHECK-NEXT:           </dict>
1533// CHECK-NEXT:          </array>
1534// CHECK-NEXT:        </dict>
1535// CHECK-NEXT:       </array>
1536// CHECK-NEXT:     </dict>
1537// CHECK-NEXT:     <dict>
1538// CHECK-NEXT:      <key>kind</key><string>event</string>
1539// CHECK-NEXT:      <key>location</key>
1540// CHECK-NEXT:      <dict>
1541// CHECK-NEXT:       <key>line</key><integer>130</integer>
1542// CHECK-NEXT:       <key>col</key><integer>3</integer>
1543// CHECK-NEXT:       <key>file</key><integer>0</integer>
1544// CHECK-NEXT:      </dict>
1545// CHECK-NEXT:      <key>ranges</key>
1546// CHECK-NEXT:      <array>
1547// CHECK-NEXT:        <array>
1548// CHECK-NEXT:         <dict>
1549// CHECK-NEXT:          <key>line</key><integer>130</integer>
1550// CHECK-NEXT:          <key>col</key><integer>16</integer>
1551// CHECK-NEXT:          <key>file</key><integer>0</integer>
1552// CHECK-NEXT:         </dict>
1553// CHECK-NEXT:         <dict>
1554// CHECK-NEXT:          <key>line</key><integer>130</integer>
1555// CHECK-NEXT:          <key>col</key><integer>38</integer>
1556// CHECK-NEXT:          <key>file</key><integer>0</integer>
1557// CHECK-NEXT:         </dict>
1558// CHECK-NEXT:        </array>
1559// CHECK-NEXT:      </array>
1560// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1561// CHECK-NEXT:      <key>extended_message</key>
1562// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1563// CHECK-NEXT:      <key>message</key>
1564// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1565// CHECK-NEXT:     </dict>
1566// CHECK-NEXT:    </array>
1567// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1568// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1569// CHECK-NEXT:    <key>type</key><string>Generics</string>
1570// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1571// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1572// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>7de91182a5d6e40a85fa3b91cf3fd089</string>
1573// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1574// CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1575// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>6</string>
1576// CHECK-NEXT:   <key>location</key>
1577// CHECK-NEXT:   <dict>
1578// CHECK-NEXT:    <key>line</key><integer>130</integer>
1579// CHECK-NEXT:    <key>col</key><integer>3</integer>
1580// CHECK-NEXT:    <key>file</key><integer>0</integer>
1581// CHECK-NEXT:   </dict>
1582// CHECK-NEXT:   </dict>
1583// CHECK-NEXT:   <dict>
1584// CHECK-NEXT:    <key>path</key>
1585// CHECK-NEXT:    <array>
1586// CHECK-NEXT:     <dict>
1587// CHECK-NEXT:      <key>kind</key><string>event</string>
1588// CHECK-NEXT:      <key>location</key>
1589// CHECK-NEXT:      <dict>
1590// CHECK-NEXT:       <key>line</key><integer>135</integer>
1591// CHECK-NEXT:       <key>col</key><integer>7</integer>
1592// CHECK-NEXT:       <key>file</key><integer>0</integer>
1593// CHECK-NEXT:      </dict>
1594// CHECK-NEXT:      <key>ranges</key>
1595// CHECK-NEXT:      <array>
1596// CHECK-NEXT:        <array>
1597// CHECK-NEXT:         <dict>
1598// CHECK-NEXT:          <key>line</key><integer>135</integer>
1599// CHECK-NEXT:          <key>col</key><integer>7</integer>
1600// CHECK-NEXT:          <key>file</key><integer>0</integer>
1601// CHECK-NEXT:         </dict>
1602// CHECK-NEXT:         <dict>
1603// CHECK-NEXT:          <key>line</key><integer>135</integer>
1604// CHECK-NEXT:          <key>col</key><integer>7</integer>
1605// CHECK-NEXT:          <key>file</key><integer>0</integer>
1606// CHECK-NEXT:         </dict>
1607// CHECK-NEXT:        </array>
1608// CHECK-NEXT:      </array>
1609// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1610// CHECK-NEXT:      <key>extended_message</key>
1611// 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>
1612// CHECK-NEXT:      <key>message</key>
1613// 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>
1614// CHECK-NEXT:     </dict>
1615// CHECK-NEXT:     <dict>
1616// CHECK-NEXT:      <key>kind</key><string>control</string>
1617// CHECK-NEXT:      <key>edges</key>
1618// CHECK-NEXT:       <array>
1619// CHECK-NEXT:        <dict>
1620// CHECK-NEXT:         <key>start</key>
1621// CHECK-NEXT:          <array>
1622// CHECK-NEXT:           <dict>
1623// CHECK-NEXT:            <key>line</key><integer>135</integer>
1624// CHECK-NEXT:            <key>col</key><integer>3</integer>
1625// CHECK-NEXT:            <key>file</key><integer>0</integer>
1626// CHECK-NEXT:           </dict>
1627// CHECK-NEXT:           <dict>
1628// CHECK-NEXT:            <key>line</key><integer>135</integer>
1629// CHECK-NEXT:            <key>col</key><integer>3</integer>
1630// CHECK-NEXT:            <key>file</key><integer>0</integer>
1631// CHECK-NEXT:           </dict>
1632// CHECK-NEXT:          </array>
1633// CHECK-NEXT:         <key>end</key>
1634// CHECK-NEXT:          <array>
1635// CHECK-NEXT:           <dict>
1636// CHECK-NEXT:            <key>line</key><integer>136</integer>
1637// CHECK-NEXT:            <key>col</key><integer>3</integer>
1638// CHECK-NEXT:            <key>file</key><integer>0</integer>
1639// CHECK-NEXT:           </dict>
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:          </array>
1646// CHECK-NEXT:        </dict>
1647// CHECK-NEXT:       </array>
1648// CHECK-NEXT:     </dict>
1649// CHECK-NEXT:     <dict>
1650// CHECK-NEXT:      <key>kind</key><string>control</string>
1651// CHECK-NEXT:      <key>edges</key>
1652// CHECK-NEXT:       <array>
1653// CHECK-NEXT:        <dict>
1654// CHECK-NEXT:         <key>start</key>
1655// CHECK-NEXT:          <array>
1656// CHECK-NEXT:           <dict>
1657// CHECK-NEXT:            <key>line</key><integer>136</integer>
1658// CHECK-NEXT:            <key>col</key><integer>3</integer>
1659// CHECK-NEXT:            <key>file</key><integer>0</integer>
1660// CHECK-NEXT:           </dict>
1661// CHECK-NEXT:           <dict>
1662// CHECK-NEXT:            <key>line</key><integer>136</integer>
1663// CHECK-NEXT:            <key>col</key><integer>3</integer>
1664// CHECK-NEXT:            <key>file</key><integer>0</integer>
1665// CHECK-NEXT:           </dict>
1666// CHECK-NEXT:          </array>
1667// CHECK-NEXT:         <key>end</key>
1668// CHECK-NEXT:          <array>
1669// CHECK-NEXT:           <dict>
1670// CHECK-NEXT:            <key>line</key><integer>136</integer>
1671// CHECK-NEXT:            <key>col</key><integer>7</integer>
1672// CHECK-NEXT:            <key>file</key><integer>0</integer>
1673// CHECK-NEXT:           </dict>
1674// CHECK-NEXT:           <dict>
1675// CHECK-NEXT:            <key>line</key><integer>136</integer>
1676// CHECK-NEXT:            <key>col</key><integer>7</integer>
1677// CHECK-NEXT:            <key>file</key><integer>0</integer>
1678// CHECK-NEXT:           </dict>
1679// CHECK-NEXT:          </array>
1680// CHECK-NEXT:        </dict>
1681// CHECK-NEXT:       </array>
1682// CHECK-NEXT:     </dict>
1683// CHECK-NEXT:     <dict>
1684// CHECK-NEXT:      <key>kind</key><string>event</string>
1685// CHECK-NEXT:      <key>location</key>
1686// CHECK-NEXT:      <dict>
1687// CHECK-NEXT:       <key>line</key><integer>136</integer>
1688// CHECK-NEXT:       <key>col</key><integer>7</integer>
1689// CHECK-NEXT:       <key>file</key><integer>0</integer>
1690// CHECK-NEXT:      </dict>
1691// CHECK-NEXT:      <key>ranges</key>
1692// CHECK-NEXT:      <array>
1693// CHECK-NEXT:        <array>
1694// CHECK-NEXT:         <dict>
1695// CHECK-NEXT:          <key>line</key><integer>136</integer>
1696// CHECK-NEXT:          <key>col</key><integer>7</integer>
1697// CHECK-NEXT:          <key>file</key><integer>0</integer>
1698// CHECK-NEXT:         </dict>
1699// CHECK-NEXT:         <dict>
1700// CHECK-NEXT:          <key>line</key><integer>136</integer>
1701// CHECK-NEXT:          <key>col</key><integer>7</integer>
1702// CHECK-NEXT:          <key>file</key><integer>0</integer>
1703// CHECK-NEXT:         </dict>
1704// CHECK-NEXT:        </array>
1705// CHECK-NEXT:      </array>
1706// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1707// CHECK-NEXT:      <key>extended_message</key>
1708// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1709// CHECK-NEXT:      <key>message</key>
1710// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1711// CHECK-NEXT:     </dict>
1712// CHECK-NEXT:    </array>
1713// 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>
1714// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1715// CHECK-NEXT:    <key>type</key><string>Generics</string>
1716// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1717// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1718// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>8960776d84319407ac2bf7a1531d19b0</string>
1719// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1720// CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1721// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
1722// CHECK-NEXT:   <key>location</key>
1723// CHECK-NEXT:   <dict>
1724// CHECK-NEXT:    <key>line</key><integer>136</integer>
1725// CHECK-NEXT:    <key>col</key><integer>7</integer>
1726// CHECK-NEXT:    <key>file</key><integer>0</integer>
1727// CHECK-NEXT:   </dict>
1728// CHECK-NEXT:   </dict>
1729// CHECK-NEXT:   <dict>
1730// CHECK-NEXT:    <key>path</key>
1731// CHECK-NEXT:    <array>
1732// CHECK-NEXT:     <dict>
1733// CHECK-NEXT:      <key>kind</key><string>event</string>
1734// CHECK-NEXT:      <key>location</key>
1735// CHECK-NEXT:      <dict>
1736// CHECK-NEXT:       <key>line</key><integer>135</integer>
1737// CHECK-NEXT:       <key>col</key><integer>7</integer>
1738// CHECK-NEXT:       <key>file</key><integer>0</integer>
1739// CHECK-NEXT:      </dict>
1740// CHECK-NEXT:      <key>ranges</key>
1741// CHECK-NEXT:      <array>
1742// CHECK-NEXT:        <array>
1743// CHECK-NEXT:         <dict>
1744// CHECK-NEXT:          <key>line</key><integer>135</integer>
1745// CHECK-NEXT:          <key>col</key><integer>7</integer>
1746// CHECK-NEXT:          <key>file</key><integer>0</integer>
1747// CHECK-NEXT:         </dict>
1748// CHECK-NEXT:         <dict>
1749// CHECK-NEXT:          <key>line</key><integer>135</integer>
1750// CHECK-NEXT:          <key>col</key><integer>7</integer>
1751// CHECK-NEXT:          <key>file</key><integer>0</integer>
1752// CHECK-NEXT:         </dict>
1753// CHECK-NEXT:        </array>
1754// CHECK-NEXT:      </array>
1755// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1756// CHECK-NEXT:      <key>extended_message</key>
1757// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1758// CHECK-NEXT:      <key>message</key>
1759// 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>
1760// CHECK-NEXT:     </dict>
1761// CHECK-NEXT:     <dict>
1762// CHECK-NEXT:      <key>kind</key><string>control</string>
1763// CHECK-NEXT:      <key>edges</key>
1764// CHECK-NEXT:       <array>
1765// CHECK-NEXT:        <dict>
1766// CHECK-NEXT:         <key>start</key>
1767// CHECK-NEXT:          <array>
1768// CHECK-NEXT:           <dict>
1769// CHECK-NEXT:            <key>line</key><integer>135</integer>
1770// CHECK-NEXT:            <key>col</key><integer>3</integer>
1771// CHECK-NEXT:            <key>file</key><integer>0</integer>
1772// CHECK-NEXT:           </dict>
1773// CHECK-NEXT:           <dict>
1774// CHECK-NEXT:            <key>line</key><integer>135</integer>
1775// CHECK-NEXT:            <key>col</key><integer>3</integer>
1776// CHECK-NEXT:            <key>file</key><integer>0</integer>
1777// CHECK-NEXT:           </dict>
1778// CHECK-NEXT:          </array>
1779// CHECK-NEXT:         <key>end</key>
1780// CHECK-NEXT:          <array>
1781// CHECK-NEXT:           <dict>
1782// CHECK-NEXT:            <key>line</key><integer>139</integer>
1783// CHECK-NEXT:            <key>col</key><integer>3</integer>
1784// CHECK-NEXT:            <key>file</key><integer>0</integer>
1785// CHECK-NEXT:           </dict>
1786// CHECK-NEXT:           <dict>
1787// CHECK-NEXT:            <key>line</key><integer>139</integer>
1788// CHECK-NEXT:            <key>col</key><integer>9</integer>
1789// CHECK-NEXT:            <key>file</key><integer>0</integer>
1790// CHECK-NEXT:           </dict>
1791// CHECK-NEXT:          </array>
1792// CHECK-NEXT:        </dict>
1793// CHECK-NEXT:       </array>
1794// CHECK-NEXT:     </dict>
1795// CHECK-NEXT:     <dict>
1796// CHECK-NEXT:      <key>kind</key><string>control</string>
1797// CHECK-NEXT:      <key>edges</key>
1798// CHECK-NEXT:       <array>
1799// CHECK-NEXT:        <dict>
1800// CHECK-NEXT:         <key>start</key>
1801// CHECK-NEXT:          <array>
1802// CHECK-NEXT:           <dict>
1803// CHECK-NEXT:            <key>line</key><integer>139</integer>
1804// CHECK-NEXT:            <key>col</key><integer>3</integer>
1805// CHECK-NEXT:            <key>file</key><integer>0</integer>
1806// CHECK-NEXT:           </dict>
1807// CHECK-NEXT:           <dict>
1808// CHECK-NEXT:            <key>line</key><integer>139</integer>
1809// CHECK-NEXT:            <key>col</key><integer>9</integer>
1810// CHECK-NEXT:            <key>file</key><integer>0</integer>
1811// CHECK-NEXT:           </dict>
1812// CHECK-NEXT:          </array>
1813// CHECK-NEXT:         <key>end</key>
1814// CHECK-NEXT:          <array>
1815// CHECK-NEXT:           <dict>
1816// CHECK-NEXT:            <key>line</key><integer>139</integer>
1817// CHECK-NEXT:            <key>col</key><integer>11</integer>
1818// CHECK-NEXT:            <key>file</key><integer>0</integer>
1819// CHECK-NEXT:           </dict>
1820// CHECK-NEXT:           <dict>
1821// CHECK-NEXT:            <key>line</key><integer>139</integer>
1822// CHECK-NEXT:            <key>col</key><integer>11</integer>
1823// CHECK-NEXT:            <key>file</key><integer>0</integer>
1824// CHECK-NEXT:           </dict>
1825// CHECK-NEXT:          </array>
1826// CHECK-NEXT:        </dict>
1827// CHECK-NEXT:       </array>
1828// CHECK-NEXT:     </dict>
1829// CHECK-NEXT:     <dict>
1830// CHECK-NEXT:      <key>kind</key><string>event</string>
1831// CHECK-NEXT:      <key>location</key>
1832// CHECK-NEXT:      <dict>
1833// CHECK-NEXT:       <key>line</key><integer>139</integer>
1834// CHECK-NEXT:       <key>col</key><integer>11</integer>
1835// CHECK-NEXT:       <key>file</key><integer>0</integer>
1836// CHECK-NEXT:      </dict>
1837// CHECK-NEXT:      <key>ranges</key>
1838// CHECK-NEXT:      <array>
1839// CHECK-NEXT:        <array>
1840// CHECK-NEXT:         <dict>
1841// CHECK-NEXT:          <key>line</key><integer>139</integer>
1842// CHECK-NEXT:          <key>col</key><integer>11</integer>
1843// CHECK-NEXT:          <key>file</key><integer>0</integer>
1844// CHECK-NEXT:         </dict>
1845// CHECK-NEXT:         <dict>
1846// CHECK-NEXT:          <key>line</key><integer>139</integer>
1847// CHECK-NEXT:          <key>col</key><integer>11</integer>
1848// CHECK-NEXT:          <key>file</key><integer>0</integer>
1849// CHECK-NEXT:         </dict>
1850// CHECK-NEXT:        </array>
1851// CHECK-NEXT:      </array>
1852// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1853// CHECK-NEXT:      <key>extended_message</key>
1854// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1855// CHECK-NEXT:      <key>message</key>
1856// CHECK-NEXT:      <string>Conversion from value of type &apos;NSMutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1857// CHECK-NEXT:     </dict>
1858// CHECK-NEXT:    </array>
1859// 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>
1860// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1861// CHECK-NEXT:    <key>type</key><string>Generics</string>
1862// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1863// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1864// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>93b114c7a385294dce5c25ed04a8b25a</string>
1865// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1866// CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1867// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
1868// CHECK-NEXT:   <key>location</key>
1869// CHECK-NEXT:   <dict>
1870// CHECK-NEXT:    <key>line</key><integer>139</integer>
1871// CHECK-NEXT:    <key>col</key><integer>11</integer>
1872// CHECK-NEXT:    <key>file</key><integer>0</integer>
1873// CHECK-NEXT:   </dict>
1874// CHECK-NEXT:   </dict>
1875// CHECK-NEXT:   <dict>
1876// CHECK-NEXT:    <key>path</key>
1877// CHECK-NEXT:    <array>
1878// CHECK-NEXT:     <dict>
1879// CHECK-NEXT:      <key>kind</key><string>event</string>
1880// CHECK-NEXT:      <key>location</key>
1881// CHECK-NEXT:      <dict>
1882// CHECK-NEXT:       <key>line</key><integer>135</integer>
1883// CHECK-NEXT:       <key>col</key><integer>7</integer>
1884// CHECK-NEXT:       <key>file</key><integer>0</integer>
1885// CHECK-NEXT:      </dict>
1886// CHECK-NEXT:      <key>ranges</key>
1887// CHECK-NEXT:      <array>
1888// CHECK-NEXT:        <array>
1889// CHECK-NEXT:         <dict>
1890// CHECK-NEXT:          <key>line</key><integer>135</integer>
1891// CHECK-NEXT:          <key>col</key><integer>7</integer>
1892// CHECK-NEXT:          <key>file</key><integer>0</integer>
1893// CHECK-NEXT:         </dict>
1894// CHECK-NEXT:         <dict>
1895// CHECK-NEXT:          <key>line</key><integer>135</integer>
1896// CHECK-NEXT:          <key>col</key><integer>7</integer>
1897// CHECK-NEXT:          <key>file</key><integer>0</integer>
1898// CHECK-NEXT:         </dict>
1899// CHECK-NEXT:        </array>
1900// CHECK-NEXT:      </array>
1901// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1902// CHECK-NEXT:      <key>extended_message</key>
1903// CHECK-NEXT:      <string>Type &apos;NSMutableArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSMutableArray&lt;NSString *&gt; *&apos; to &apos;id&apos;)</string>
1904// CHECK-NEXT:      <key>message</key>
1905// 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>
1906// CHECK-NEXT:     </dict>
1907// CHECK-NEXT:     <dict>
1908// CHECK-NEXT:      <key>kind</key><string>control</string>
1909// CHECK-NEXT:      <key>edges</key>
1910// CHECK-NEXT:       <array>
1911// CHECK-NEXT:        <dict>
1912// CHECK-NEXT:         <key>start</key>
1913// CHECK-NEXT:          <array>
1914// CHECK-NEXT:           <dict>
1915// CHECK-NEXT:            <key>line</key><integer>135</integer>
1916// CHECK-NEXT:            <key>col</key><integer>3</integer>
1917// CHECK-NEXT:            <key>file</key><integer>0</integer>
1918// CHECK-NEXT:           </dict>
1919// CHECK-NEXT:           <dict>
1920// CHECK-NEXT:            <key>line</key><integer>135</integer>
1921// CHECK-NEXT:            <key>col</key><integer>3</integer>
1922// CHECK-NEXT:            <key>file</key><integer>0</integer>
1923// CHECK-NEXT:           </dict>
1924// CHECK-NEXT:          </array>
1925// CHECK-NEXT:         <key>end</key>
1926// CHECK-NEXT:          <array>
1927// CHECK-NEXT:           <dict>
1928// CHECK-NEXT:            <key>line</key><integer>141</integer>
1929// CHECK-NEXT:            <key>col</key><integer>3</integer>
1930// CHECK-NEXT:            <key>file</key><integer>0</integer>
1931// CHECK-NEXT:           </dict>
1932// CHECK-NEXT:           <dict>
1933// CHECK-NEXT:            <key>line</key><integer>141</integer>
1934// CHECK-NEXT:            <key>col</key><integer>3</integer>
1935// CHECK-NEXT:            <key>file</key><integer>0</integer>
1936// CHECK-NEXT:           </dict>
1937// CHECK-NEXT:          </array>
1938// CHECK-NEXT:        </dict>
1939// CHECK-NEXT:       </array>
1940// CHECK-NEXT:     </dict>
1941// CHECK-NEXT:     <dict>
1942// CHECK-NEXT:      <key>kind</key><string>event</string>
1943// CHECK-NEXT:      <key>location</key>
1944// CHECK-NEXT:      <dict>
1945// CHECK-NEXT:       <key>line</key><integer>141</integer>
1946// CHECK-NEXT:       <key>col</key><integer>3</integer>
1947// CHECK-NEXT:       <key>file</key><integer>0</integer>
1948// CHECK-NEXT:      </dict>
1949// CHECK-NEXT:      <key>ranges</key>
1950// CHECK-NEXT:      <array>
1951// CHECK-NEXT:        <array>
1952// CHECK-NEXT:         <dict>
1953// CHECK-NEXT:          <key>line</key><integer>141</integer>
1954// CHECK-NEXT:          <key>col</key><integer>16</integer>
1955// CHECK-NEXT:          <key>file</key><integer>0</integer>
1956// CHECK-NEXT:         </dict>
1957// CHECK-NEXT:         <dict>
1958// CHECK-NEXT:          <key>line</key><integer>141</integer>
1959// CHECK-NEXT:          <key>col</key><integer>38</integer>
1960// CHECK-NEXT:          <key>file</key><integer>0</integer>
1961// CHECK-NEXT:         </dict>
1962// CHECK-NEXT:        </array>
1963// CHECK-NEXT:      </array>
1964// CHECK-NEXT:      <key>depth</key><integer>0</integer>
1965// CHECK-NEXT:      <key>extended_message</key>
1966// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1967// CHECK-NEXT:      <key>message</key>
1968// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1969// CHECK-NEXT:     </dict>
1970// CHECK-NEXT:    </array>
1971// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1972// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
1973// CHECK-NEXT:    <key>type</key><string>Generics</string>
1974// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
1975// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
1976// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>4c17f22d7e977f3343d2e2129b9229c3</string>
1977// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
1978// CHECK-NEXT:   <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1979// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
1980// CHECK-NEXT:   <key>location</key>
1981// CHECK-NEXT:   <dict>
1982// CHECK-NEXT:    <key>line</key><integer>141</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:   <dict>
1988// CHECK-NEXT:    <key>path</key>
1989// CHECK-NEXT:    <array>
1990// CHECK-NEXT:     <dict>
1991// CHECK-NEXT:      <key>kind</key><string>control</string>
1992// CHECK-NEXT:      <key>edges</key>
1993// CHECK-NEXT:       <array>
1994// CHECK-NEXT:        <dict>
1995// CHECK-NEXT:         <key>start</key>
1996// CHECK-NEXT:          <array>
1997// CHECK-NEXT:           <dict>
1998// CHECK-NEXT:            <key>line</key><integer>146</integer>
1999// CHECK-NEXT:            <key>col</key><integer>3</integer>
2000// CHECK-NEXT:            <key>file</key><integer>0</integer>
2001// CHECK-NEXT:           </dict>
2002// CHECK-NEXT:           <dict>
2003// CHECK-NEXT:            <key>line</key><integer>146</integer>
2004// CHECK-NEXT:            <key>col</key><integer>4</integer>
2005// CHECK-NEXT:            <key>file</key><integer>0</integer>
2006// CHECK-NEXT:           </dict>
2007// CHECK-NEXT:          </array>
2008// CHECK-NEXT:         <key>end</key>
2009// CHECK-NEXT:          <array>
2010// CHECK-NEXT:           <dict>
2011// CHECK-NEXT:            <key>line</key><integer>146</integer>
2012// CHECK-NEXT:            <key>col</key><integer>7</integer>
2013// CHECK-NEXT:            <key>file</key><integer>0</integer>
2014// CHECK-NEXT:           </dict>
2015// CHECK-NEXT:           <dict>
2016// CHECK-NEXT:            <key>line</key><integer>146</integer>
2017// CHECK-NEXT:            <key>col</key><integer>16</integer>
2018// CHECK-NEXT:            <key>file</key><integer>0</integer>
2019// CHECK-NEXT:           </dict>
2020// CHECK-NEXT:          </array>
2021// CHECK-NEXT:        </dict>
2022// CHECK-NEXT:       </array>
2023// CHECK-NEXT:     </dict>
2024// CHECK-NEXT:     <dict>
2025// CHECK-NEXT:      <key>kind</key><string>event</string>
2026// CHECK-NEXT:      <key>location</key>
2027// CHECK-NEXT:      <dict>
2028// CHECK-NEXT:       <key>line</key><integer>146</integer>
2029// CHECK-NEXT:       <key>col</key><integer>7</integer>
2030// CHECK-NEXT:       <key>file</key><integer>0</integer>
2031// CHECK-NEXT:      </dict>
2032// CHECK-NEXT:      <key>ranges</key>
2033// CHECK-NEXT:      <array>
2034// CHECK-NEXT:        <array>
2035// CHECK-NEXT:         <dict>
2036// CHECK-NEXT:          <key>line</key><integer>146</integer>
2037// CHECK-NEXT:          <key>col</key><integer>7</integer>
2038// CHECK-NEXT:          <key>file</key><integer>0</integer>
2039// CHECK-NEXT:         </dict>
2040// CHECK-NEXT:         <dict>
2041// CHECK-NEXT:          <key>line</key><integer>146</integer>
2042// CHECK-NEXT:          <key>col</key><integer>23</integer>
2043// CHECK-NEXT:          <key>file</key><integer>0</integer>
2044// CHECK-NEXT:         </dict>
2045// CHECK-NEXT:        </array>
2046// CHECK-NEXT:      </array>
2047// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2048// CHECK-NEXT:      <key>extended_message</key>
2049// CHECK-NEXT:      <string>Assuming the condition is false</string>
2050// CHECK-NEXT:      <key>message</key>
2051// CHECK-NEXT:      <string>Assuming the condition is false</string>
2052// CHECK-NEXT:     </dict>
2053// CHECK-NEXT:     <dict>
2054// CHECK-NEXT:      <key>kind</key><string>control</string>
2055// CHECK-NEXT:      <key>edges</key>
2056// CHECK-NEXT:       <array>
2057// CHECK-NEXT:        <dict>
2058// CHECK-NEXT:         <key>start</key>
2059// CHECK-NEXT:          <array>
2060// CHECK-NEXT:           <dict>
2061// CHECK-NEXT:            <key>line</key><integer>146</integer>
2062// CHECK-NEXT:            <key>col</key><integer>7</integer>
2063// CHECK-NEXT:            <key>file</key><integer>0</integer>
2064// CHECK-NEXT:           </dict>
2065// CHECK-NEXT:           <dict>
2066// CHECK-NEXT:            <key>line</key><integer>146</integer>
2067// CHECK-NEXT:            <key>col</key><integer>16</integer>
2068// CHECK-NEXT:            <key>file</key><integer>0</integer>
2069// CHECK-NEXT:           </dict>
2070// CHECK-NEXT:          </array>
2071// CHECK-NEXT:         <key>end</key>
2072// CHECK-NEXT:          <array>
2073// CHECK-NEXT:           <dict>
2074// CHECK-NEXT:            <key>line</key><integer>150</integer>
2075// CHECK-NEXT:            <key>col</key><integer>5</integer>
2076// CHECK-NEXT:            <key>file</key><integer>0</integer>
2077// CHECK-NEXT:           </dict>
2078// CHECK-NEXT:           <dict>
2079// CHECK-NEXT:            <key>line</key><integer>150</integer>
2080// CHECK-NEXT:            <key>col</key><integer>5</integer>
2081// CHECK-NEXT:            <key>file</key><integer>0</integer>
2082// CHECK-NEXT:           </dict>
2083// CHECK-NEXT:          </array>
2084// CHECK-NEXT:        </dict>
2085// CHECK-NEXT:       </array>
2086// CHECK-NEXT:     </dict>
2087// CHECK-NEXT:     <dict>
2088// CHECK-NEXT:      <key>kind</key><string>event</string>
2089// CHECK-NEXT:      <key>location</key>
2090// CHECK-NEXT:      <dict>
2091// CHECK-NEXT:       <key>line</key><integer>150</integer>
2092// CHECK-NEXT:       <key>col</key><integer>9</integer>
2093// CHECK-NEXT:       <key>file</key><integer>0</integer>
2094// CHECK-NEXT:      </dict>
2095// CHECK-NEXT:      <key>ranges</key>
2096// CHECK-NEXT:      <array>
2097// CHECK-NEXT:        <array>
2098// CHECK-NEXT:         <dict>
2099// CHECK-NEXT:          <key>line</key><integer>150</integer>
2100// CHECK-NEXT:          <key>col</key><integer>9</integer>
2101// CHECK-NEXT:          <key>file</key><integer>0</integer>
2102// CHECK-NEXT:         </dict>
2103// CHECK-NEXT:         <dict>
2104// CHECK-NEXT:          <key>line</key><integer>150</integer>
2105// CHECK-NEXT:          <key>col</key><integer>9</integer>
2106// CHECK-NEXT:          <key>file</key><integer>0</integer>
2107// CHECK-NEXT:         </dict>
2108// CHECK-NEXT:        </array>
2109// CHECK-NEXT:      </array>
2110// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2111// CHECK-NEXT:      <key>extended_message</key>
2112// 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>
2113// CHECK-NEXT:      <key>message</key>
2114// 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>
2115// CHECK-NEXT:     </dict>
2116// CHECK-NEXT:     <dict>
2117// CHECK-NEXT:      <key>kind</key><string>control</string>
2118// CHECK-NEXT:      <key>edges</key>
2119// CHECK-NEXT:       <array>
2120// CHECK-NEXT:        <dict>
2121// CHECK-NEXT:         <key>start</key>
2122// CHECK-NEXT:          <array>
2123// CHECK-NEXT:           <dict>
2124// CHECK-NEXT:            <key>line</key><integer>150</integer>
2125// CHECK-NEXT:            <key>col</key><integer>5</integer>
2126// CHECK-NEXT:            <key>file</key><integer>0</integer>
2127// CHECK-NEXT:           </dict>
2128// CHECK-NEXT:           <dict>
2129// CHECK-NEXT:            <key>line</key><integer>150</integer>
2130// CHECK-NEXT:            <key>col</key><integer>5</integer>
2131// CHECK-NEXT:            <key>file</key><integer>0</integer>
2132// CHECK-NEXT:           </dict>
2133// CHECK-NEXT:          </array>
2134// CHECK-NEXT:         <key>end</key>
2135// CHECK-NEXT:          <array>
2136// CHECK-NEXT:           <dict>
2137// CHECK-NEXT:            <key>line</key><integer>151</integer>
2138// CHECK-NEXT:            <key>col</key><integer>5</integer>
2139// CHECK-NEXT:            <key>file</key><integer>0</integer>
2140// CHECK-NEXT:           </dict>
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:          </array>
2147// CHECK-NEXT:        </dict>
2148// CHECK-NEXT:       </array>
2149// CHECK-NEXT:     </dict>
2150// CHECK-NEXT:     <dict>
2151// CHECK-NEXT:      <key>kind</key><string>control</string>
2152// CHECK-NEXT:      <key>edges</key>
2153// CHECK-NEXT:       <array>
2154// CHECK-NEXT:        <dict>
2155// CHECK-NEXT:         <key>start</key>
2156// CHECK-NEXT:          <array>
2157// CHECK-NEXT:           <dict>
2158// CHECK-NEXT:            <key>line</key><integer>151</integer>
2159// CHECK-NEXT:            <key>col</key><integer>5</integer>
2160// CHECK-NEXT:            <key>file</key><integer>0</integer>
2161// CHECK-NEXT:           </dict>
2162// CHECK-NEXT:           <dict>
2163// CHECK-NEXT:            <key>line</key><integer>151</integer>
2164// CHECK-NEXT:            <key>col</key><integer>5</integer>
2165// CHECK-NEXT:            <key>file</key><integer>0</integer>
2166// CHECK-NEXT:           </dict>
2167// CHECK-NEXT:          </array>
2168// CHECK-NEXT:         <key>end</key>
2169// CHECK-NEXT:          <array>
2170// CHECK-NEXT:           <dict>
2171// CHECK-NEXT:            <key>line</key><integer>153</integer>
2172// CHECK-NEXT:            <key>col</key><integer>3</integer>
2173// CHECK-NEXT:            <key>file</key><integer>0</integer>
2174// CHECK-NEXT:           </dict>
2175// CHECK-NEXT:           <dict>
2176// CHECK-NEXT:            <key>line</key><integer>153</integer>
2177// CHECK-NEXT:            <key>col</key><integer>3</integer>
2178// CHECK-NEXT:            <key>file</key><integer>0</integer>
2179// CHECK-NEXT:           </dict>
2180// CHECK-NEXT:          </array>
2181// CHECK-NEXT:        </dict>
2182// CHECK-NEXT:       </array>
2183// CHECK-NEXT:     </dict>
2184// CHECK-NEXT:     <dict>
2185// CHECK-NEXT:      <key>kind</key><string>event</string>
2186// CHECK-NEXT:      <key>location</key>
2187// CHECK-NEXT:      <dict>
2188// CHECK-NEXT:       <key>line</key><integer>153</integer>
2189// CHECK-NEXT:       <key>col</key><integer>3</integer>
2190// CHECK-NEXT:       <key>file</key><integer>0</integer>
2191// CHECK-NEXT:      </dict>
2192// CHECK-NEXT:      <key>ranges</key>
2193// CHECK-NEXT:      <array>
2194// CHECK-NEXT:        <array>
2195// CHECK-NEXT:         <dict>
2196// CHECK-NEXT:          <key>line</key><integer>153</integer>
2197// CHECK-NEXT:          <key>col</key><integer>17</integer>
2198// CHECK-NEXT:          <key>file</key><integer>0</integer>
2199// CHECK-NEXT:         </dict>
2200// CHECK-NEXT:         <dict>
2201// CHECK-NEXT:          <key>line</key><integer>153</integer>
2202// CHECK-NEXT:          <key>col</key><integer>39</integer>
2203// CHECK-NEXT:          <key>file</key><integer>0</integer>
2204// CHECK-NEXT:         </dict>
2205// CHECK-NEXT:        </array>
2206// CHECK-NEXT:      </array>
2207// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2208// CHECK-NEXT:      <key>extended_message</key>
2209// CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2210// CHECK-NEXT:      <key>message</key>
2211// CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2212// CHECK-NEXT:     </dict>
2213// CHECK-NEXT:    </array>
2214// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2215// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2216// CHECK-NEXT:    <key>type</key><string>Generics</string>
2217// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2218// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2219// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>24a08781e7d8971a7d8f8f607ce40074</string>
2220// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2221// CHECK-NEXT:   <key>issue_context</key><string>pathSensitiveInference</string>
2222// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>8</string>
2223// CHECK-NEXT:   <key>location</key>
2224// CHECK-NEXT:   <dict>
2225// CHECK-NEXT:    <key>line</key><integer>153</integer>
2226// CHECK-NEXT:    <key>col</key><integer>3</integer>
2227// CHECK-NEXT:    <key>file</key><integer>0</integer>
2228// CHECK-NEXT:   </dict>
2229// CHECK-NEXT:   </dict>
2230// CHECK-NEXT:   <dict>
2231// CHECK-NEXT:    <key>path</key>
2232// CHECK-NEXT:    <array>
2233// CHECK-NEXT:     <dict>
2234// CHECK-NEXT:      <key>kind</key><string>event</string>
2235// CHECK-NEXT:      <key>location</key>
2236// CHECK-NEXT:      <dict>
2237// CHECK-NEXT:       <key>line</key><integer>158</integer>
2238// CHECK-NEXT:       <key>col</key><integer>7</integer>
2239// CHECK-NEXT:       <key>file</key><integer>0</integer>
2240// CHECK-NEXT:      </dict>
2241// CHECK-NEXT:      <key>ranges</key>
2242// CHECK-NEXT:      <array>
2243// CHECK-NEXT:        <array>
2244// CHECK-NEXT:         <dict>
2245// CHECK-NEXT:          <key>line</key><integer>158</integer>
2246// CHECK-NEXT:          <key>col</key><integer>7</integer>
2247// CHECK-NEXT:          <key>file</key><integer>0</integer>
2248// CHECK-NEXT:         </dict>
2249// CHECK-NEXT:         <dict>
2250// CHECK-NEXT:          <key>line</key><integer>158</integer>
2251// CHECK-NEXT:          <key>col</key><integer>7</integer>
2252// CHECK-NEXT:          <key>file</key><integer>0</integer>
2253// CHECK-NEXT:         </dict>
2254// CHECK-NEXT:        </array>
2255// CHECK-NEXT:      </array>
2256// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2257// CHECK-NEXT:      <key>extended_message</key>
2258// 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>
2259// CHECK-NEXT:      <key>message</key>
2260// 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>
2261// CHECK-NEXT:     </dict>
2262// CHECK-NEXT:     <dict>
2263// CHECK-NEXT:      <key>kind</key><string>control</string>
2264// CHECK-NEXT:      <key>edges</key>
2265// CHECK-NEXT:       <array>
2266// CHECK-NEXT:        <dict>
2267// CHECK-NEXT:         <key>start</key>
2268// CHECK-NEXT:          <array>
2269// CHECK-NEXT:           <dict>
2270// CHECK-NEXT:            <key>line</key><integer>158</integer>
2271// CHECK-NEXT:            <key>col</key><integer>3</integer>
2272// CHECK-NEXT:            <key>file</key><integer>0</integer>
2273// CHECK-NEXT:           </dict>
2274// CHECK-NEXT:           <dict>
2275// CHECK-NEXT:            <key>line</key><integer>158</integer>
2276// CHECK-NEXT:            <key>col</key><integer>3</integer>
2277// CHECK-NEXT:            <key>file</key><integer>0</integer>
2278// CHECK-NEXT:           </dict>
2279// CHECK-NEXT:          </array>
2280// CHECK-NEXT:         <key>end</key>
2281// CHECK-NEXT:          <array>
2282// CHECK-NEXT:           <dict>
2283// CHECK-NEXT:            <key>line</key><integer>159</integer>
2284// CHECK-NEXT:            <key>col</key><integer>3</integer>
2285// CHECK-NEXT:            <key>file</key><integer>0</integer>
2286// CHECK-NEXT:           </dict>
2287// CHECK-NEXT:           <dict>
2288// CHECK-NEXT:            <key>line</key><integer>159</integer>
2289// CHECK-NEXT:            <key>col</key><integer>9</integer>
2290// CHECK-NEXT:            <key>file</key><integer>0</integer>
2291// CHECK-NEXT:           </dict>
2292// CHECK-NEXT:          </array>
2293// CHECK-NEXT:        </dict>
2294// CHECK-NEXT:       </array>
2295// CHECK-NEXT:     </dict>
2296// CHECK-NEXT:     <dict>
2297// CHECK-NEXT:      <key>kind</key><string>control</string>
2298// CHECK-NEXT:      <key>edges</key>
2299// CHECK-NEXT:       <array>
2300// CHECK-NEXT:        <dict>
2301// CHECK-NEXT:         <key>start</key>
2302// CHECK-NEXT:          <array>
2303// CHECK-NEXT:           <dict>
2304// CHECK-NEXT:            <key>line</key><integer>159</integer>
2305// CHECK-NEXT:            <key>col</key><integer>3</integer>
2306// CHECK-NEXT:            <key>file</key><integer>0</integer>
2307// CHECK-NEXT:           </dict>
2308// CHECK-NEXT:           <dict>
2309// CHECK-NEXT:            <key>line</key><integer>159</integer>
2310// CHECK-NEXT:            <key>col</key><integer>9</integer>
2311// CHECK-NEXT:            <key>file</key><integer>0</integer>
2312// CHECK-NEXT:           </dict>
2313// CHECK-NEXT:          </array>
2314// CHECK-NEXT:         <key>end</key>
2315// CHECK-NEXT:          <array>
2316// CHECK-NEXT:           <dict>
2317// CHECK-NEXT:            <key>line</key><integer>159</integer>
2318// CHECK-NEXT:            <key>col</key><integer>11</integer>
2319// CHECK-NEXT:            <key>file</key><integer>0</integer>
2320// CHECK-NEXT:           </dict>
2321// CHECK-NEXT:           <dict>
2322// CHECK-NEXT:            <key>line</key><integer>159</integer>
2323// CHECK-NEXT:            <key>col</key><integer>11</integer>
2324// CHECK-NEXT:            <key>file</key><integer>0</integer>
2325// CHECK-NEXT:           </dict>
2326// CHECK-NEXT:          </array>
2327// CHECK-NEXT:        </dict>
2328// CHECK-NEXT:       </array>
2329// CHECK-NEXT:     </dict>
2330// CHECK-NEXT:     <dict>
2331// CHECK-NEXT:      <key>kind</key><string>event</string>
2332// CHECK-NEXT:      <key>location</key>
2333// CHECK-NEXT:      <dict>
2334// CHECK-NEXT:       <key>line</key><integer>159</integer>
2335// CHECK-NEXT:       <key>col</key><integer>11</integer>
2336// CHECK-NEXT:       <key>file</key><integer>0</integer>
2337// CHECK-NEXT:      </dict>
2338// CHECK-NEXT:      <key>ranges</key>
2339// CHECK-NEXT:      <array>
2340// CHECK-NEXT:        <array>
2341// CHECK-NEXT:         <dict>
2342// CHECK-NEXT:          <key>line</key><integer>159</integer>
2343// CHECK-NEXT:          <key>col</key><integer>11</integer>
2344// CHECK-NEXT:          <key>file</key><integer>0</integer>
2345// CHECK-NEXT:         </dict>
2346// CHECK-NEXT:         <dict>
2347// CHECK-NEXT:          <key>line</key><integer>159</integer>
2348// CHECK-NEXT:          <key>col</key><integer>11</integer>
2349// CHECK-NEXT:          <key>file</key><integer>0</integer>
2350// CHECK-NEXT:         </dict>
2351// CHECK-NEXT:        </array>
2352// CHECK-NEXT:      </array>
2353// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2354// CHECK-NEXT:      <key>extended_message</key>
2355// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2356// CHECK-NEXT:      <key>message</key>
2357// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2358// CHECK-NEXT:     </dict>
2359// CHECK-NEXT:    </array>
2360// 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>
2361// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2362// CHECK-NEXT:    <key>type</key><string>Generics</string>
2363// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2364// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2365// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>a8534f675404d57d833dc3c371d49845</string>
2366// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2367// CHECK-NEXT:   <key>issue_context</key><string>verifyAPIusage</string>
2368// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
2369// CHECK-NEXT:   <key>location</key>
2370// CHECK-NEXT:   <dict>
2371// CHECK-NEXT:    <key>line</key><integer>159</integer>
2372// CHECK-NEXT:    <key>col</key><integer>11</integer>
2373// CHECK-NEXT:    <key>file</key><integer>0</integer>
2374// CHECK-NEXT:   </dict>
2375// CHECK-NEXT:   </dict>
2376// CHECK-NEXT:   <dict>
2377// CHECK-NEXT:    <key>path</key>
2378// CHECK-NEXT:    <array>
2379// CHECK-NEXT:     <dict>
2380// CHECK-NEXT:      <key>kind</key><string>control</string>
2381// CHECK-NEXT:      <key>edges</key>
2382// CHECK-NEXT:       <array>
2383// CHECK-NEXT:        <dict>
2384// CHECK-NEXT:         <key>start</key>
2385// CHECK-NEXT:          <array>
2386// CHECK-NEXT:           <dict>
2387// CHECK-NEXT:            <key>line</key><integer>187</integer>
2388// CHECK-NEXT:            <key>col</key><integer>3</integer>
2389// CHECK-NEXT:            <key>file</key><integer>0</integer>
2390// CHECK-NEXT:           </dict>
2391// CHECK-NEXT:           <dict>
2392// CHECK-NEXT:            <key>line</key><integer>187</integer>
2393// CHECK-NEXT:            <key>col</key><integer>3</integer>
2394// CHECK-NEXT:            <key>file</key><integer>0</integer>
2395// CHECK-NEXT:           </dict>
2396// CHECK-NEXT:          </array>
2397// CHECK-NEXT:         <key>end</key>
2398// CHECK-NEXT:          <array>
2399// CHECK-NEXT:           <dict>
2400// CHECK-NEXT:            <key>line</key><integer>188</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>188</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:        </dict>
2411// CHECK-NEXT:       </array>
2412// CHECK-NEXT:     </dict>
2413// CHECK-NEXT:     <dict>
2414// CHECK-NEXT:      <key>kind</key><string>event</string>
2415// CHECK-NEXT:      <key>location</key>
2416// CHECK-NEXT:      <dict>
2417// CHECK-NEXT:       <key>line</key><integer>188</integer>
2418// CHECK-NEXT:       <key>col</key><integer>7</integer>
2419// CHECK-NEXT:       <key>file</key><integer>0</integer>
2420// CHECK-NEXT:      </dict>
2421// CHECK-NEXT:      <key>ranges</key>
2422// CHECK-NEXT:      <array>
2423// CHECK-NEXT:        <array>
2424// CHECK-NEXT:         <dict>
2425// CHECK-NEXT:          <key>line</key><integer>188</integer>
2426// CHECK-NEXT:          <key>col</key><integer>7</integer>
2427// CHECK-NEXT:          <key>file</key><integer>0</integer>
2428// CHECK-NEXT:         </dict>
2429// CHECK-NEXT:         <dict>
2430// CHECK-NEXT:          <key>line</key><integer>188</integer>
2431// CHECK-NEXT:          <key>col</key><integer>7</integer>
2432// CHECK-NEXT:          <key>file</key><integer>0</integer>
2433// CHECK-NEXT:         </dict>
2434// CHECK-NEXT:        </array>
2435// CHECK-NEXT:      </array>
2436// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2437// CHECK-NEXT:      <key>extended_message</key>
2438// 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>
2439// CHECK-NEXT:      <key>message</key>
2440// 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>
2441// CHECK-NEXT:     </dict>
2442// CHECK-NEXT:     <dict>
2443// CHECK-NEXT:      <key>kind</key><string>control</string>
2444// CHECK-NEXT:      <key>edges</key>
2445// CHECK-NEXT:       <array>
2446// CHECK-NEXT:        <dict>
2447// CHECK-NEXT:         <key>start</key>
2448// CHECK-NEXT:          <array>
2449// CHECK-NEXT:           <dict>
2450// CHECK-NEXT:            <key>line</key><integer>188</integer>
2451// CHECK-NEXT:            <key>col</key><integer>3</integer>
2452// CHECK-NEXT:            <key>file</key><integer>0</integer>
2453// CHECK-NEXT:           </dict>
2454// CHECK-NEXT:           <dict>
2455// CHECK-NEXT:            <key>line</key><integer>188</integer>
2456// CHECK-NEXT:            <key>col</key><integer>3</integer>
2457// CHECK-NEXT:            <key>file</key><integer>0</integer>
2458// CHECK-NEXT:           </dict>
2459// CHECK-NEXT:          </array>
2460// CHECK-NEXT:         <key>end</key>
2461// CHECK-NEXT:          <array>
2462// CHECK-NEXT:           <dict>
2463// CHECK-NEXT:            <key>line</key><integer>189</integer>
2464// CHECK-NEXT:            <key>col</key><integer>3</integer>
2465// CHECK-NEXT:            <key>file</key><integer>0</integer>
2466// CHECK-NEXT:           </dict>
2467// CHECK-NEXT:           <dict>
2468// CHECK-NEXT:            <key>line</key><integer>189</integer>
2469// CHECK-NEXT:            <key>col</key><integer>3</integer>
2470// CHECK-NEXT:            <key>file</key><integer>0</integer>
2471// CHECK-NEXT:           </dict>
2472// CHECK-NEXT:          </array>
2473// CHECK-NEXT:        </dict>
2474// CHECK-NEXT:       </array>
2475// CHECK-NEXT:     </dict>
2476// CHECK-NEXT:     <dict>
2477// CHECK-NEXT:      <key>kind</key><string>control</string>
2478// CHECK-NEXT:      <key>edges</key>
2479// CHECK-NEXT:       <array>
2480// CHECK-NEXT:        <dict>
2481// CHECK-NEXT:         <key>start</key>
2482// CHECK-NEXT:          <array>
2483// CHECK-NEXT:           <dict>
2484// CHECK-NEXT:            <key>line</key><integer>189</integer>
2485// CHECK-NEXT:            <key>col</key><integer>3</integer>
2486// CHECK-NEXT:            <key>file</key><integer>0</integer>
2487// CHECK-NEXT:           </dict>
2488// CHECK-NEXT:           <dict>
2489// CHECK-NEXT:            <key>line</key><integer>189</integer>
2490// CHECK-NEXT:            <key>col</key><integer>3</integer>
2491// CHECK-NEXT:            <key>file</key><integer>0</integer>
2492// CHECK-NEXT:           </dict>
2493// CHECK-NEXT:          </array>
2494// CHECK-NEXT:         <key>end</key>
2495// CHECK-NEXT:          <array>
2496// CHECK-NEXT:           <dict>
2497// CHECK-NEXT:            <key>line</key><integer>189</integer>
2498// CHECK-NEXT:            <key>col</key><integer>7</integer>
2499// CHECK-NEXT:            <key>file</key><integer>0</integer>
2500// CHECK-NEXT:           </dict>
2501// CHECK-NEXT:           <dict>
2502// CHECK-NEXT:            <key>line</key><integer>189</integer>
2503// CHECK-NEXT:            <key>col</key><integer>7</integer>
2504// CHECK-NEXT:            <key>file</key><integer>0</integer>
2505// CHECK-NEXT:           </dict>
2506// CHECK-NEXT:          </array>
2507// CHECK-NEXT:        </dict>
2508// CHECK-NEXT:       </array>
2509// CHECK-NEXT:     </dict>
2510// CHECK-NEXT:     <dict>
2511// CHECK-NEXT:      <key>kind</key><string>event</string>
2512// CHECK-NEXT:      <key>location</key>
2513// CHECK-NEXT:      <dict>
2514// CHECK-NEXT:       <key>line</key><integer>189</integer>
2515// CHECK-NEXT:       <key>col</key><integer>7</integer>
2516// CHECK-NEXT:       <key>file</key><integer>0</integer>
2517// CHECK-NEXT:      </dict>
2518// CHECK-NEXT:      <key>ranges</key>
2519// CHECK-NEXT:      <array>
2520// CHECK-NEXT:        <array>
2521// CHECK-NEXT:         <dict>
2522// CHECK-NEXT:          <key>line</key><integer>189</integer>
2523// CHECK-NEXT:          <key>col</key><integer>7</integer>
2524// CHECK-NEXT:          <key>file</key><integer>0</integer>
2525// CHECK-NEXT:         </dict>
2526// CHECK-NEXT:         <dict>
2527// CHECK-NEXT:          <key>line</key><integer>189</integer>
2528// CHECK-NEXT:          <key>col</key><integer>7</integer>
2529// CHECK-NEXT:          <key>file</key><integer>0</integer>
2530// CHECK-NEXT:         </dict>
2531// CHECK-NEXT:        </array>
2532// CHECK-NEXT:      </array>
2533// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2534// CHECK-NEXT:      <key>extended_message</key>
2535// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2536// CHECK-NEXT:      <key>message</key>
2537// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2538// CHECK-NEXT:     </dict>
2539// CHECK-NEXT:    </array>
2540// 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>
2541// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2542// CHECK-NEXT:    <key>type</key><string>Generics</string>
2543// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2544// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2545// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d113e22b9ee9ded1cd94750c3557eff4</string>
2546// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2547// CHECK-NEXT:   <key>issue_context</key><string>subtypeOfGeneric</string>
2548// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
2549// CHECK-NEXT:   <key>location</key>
2550// CHECK-NEXT:   <dict>
2551// CHECK-NEXT:    <key>line</key><integer>189</integer>
2552// CHECK-NEXT:    <key>col</key><integer>7</integer>
2553// CHECK-NEXT:    <key>file</key><integer>0</integer>
2554// CHECK-NEXT:   </dict>
2555// CHECK-NEXT:   </dict>
2556// CHECK-NEXT:   <dict>
2557// CHECK-NEXT:    <key>path</key>
2558// CHECK-NEXT:    <array>
2559// CHECK-NEXT:     <dict>
2560// CHECK-NEXT:      <key>kind</key><string>event</string>
2561// CHECK-NEXT:      <key>location</key>
2562// CHECK-NEXT:      <dict>
2563// CHECK-NEXT:       <key>line</key><integer>195</integer>
2564// CHECK-NEXT:       <key>col</key><integer>7</integer>
2565// CHECK-NEXT:       <key>file</key><integer>0</integer>
2566// CHECK-NEXT:      </dict>
2567// CHECK-NEXT:      <key>ranges</key>
2568// CHECK-NEXT:      <array>
2569// CHECK-NEXT:        <array>
2570// CHECK-NEXT:         <dict>
2571// CHECK-NEXT:          <key>line</key><integer>195</integer>
2572// CHECK-NEXT:          <key>col</key><integer>7</integer>
2573// CHECK-NEXT:          <key>file</key><integer>0</integer>
2574// CHECK-NEXT:         </dict>
2575// CHECK-NEXT:         <dict>
2576// CHECK-NEXT:          <key>line</key><integer>195</integer>
2577// CHECK-NEXT:          <key>col</key><integer>7</integer>
2578// CHECK-NEXT:          <key>file</key><integer>0</integer>
2579// CHECK-NEXT:         </dict>
2580// CHECK-NEXT:        </array>
2581// CHECK-NEXT:      </array>
2582// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2583// CHECK-NEXT:      <key>extended_message</key>
2584// 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>
2585// CHECK-NEXT:      <key>message</key>
2586// 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>
2587// CHECK-NEXT:     </dict>
2588// CHECK-NEXT:     <dict>
2589// CHECK-NEXT:      <key>kind</key><string>control</string>
2590// CHECK-NEXT:      <key>edges</key>
2591// CHECK-NEXT:       <array>
2592// CHECK-NEXT:        <dict>
2593// CHECK-NEXT:         <key>start</key>
2594// CHECK-NEXT:          <array>
2595// CHECK-NEXT:           <dict>
2596// CHECK-NEXT:            <key>line</key><integer>195</integer>
2597// CHECK-NEXT:            <key>col</key><integer>3</integer>
2598// CHECK-NEXT:            <key>file</key><integer>0</integer>
2599// CHECK-NEXT:           </dict>
2600// CHECK-NEXT:           <dict>
2601// CHECK-NEXT:            <key>line</key><integer>195</integer>
2602// CHECK-NEXT:            <key>col</key><integer>3</integer>
2603// CHECK-NEXT:            <key>file</key><integer>0</integer>
2604// CHECK-NEXT:           </dict>
2605// CHECK-NEXT:          </array>
2606// CHECK-NEXT:         <key>end</key>
2607// CHECK-NEXT:          <array>
2608// CHECK-NEXT:           <dict>
2609// CHECK-NEXT:            <key>line</key><integer>199</integer>
2610// CHECK-NEXT:            <key>col</key><integer>3</integer>
2611// CHECK-NEXT:            <key>file</key><integer>0</integer>
2612// CHECK-NEXT:           </dict>
2613// CHECK-NEXT:           <dict>
2614// CHECK-NEXT:            <key>line</key><integer>199</integer>
2615// CHECK-NEXT:            <key>col</key><integer>3</integer>
2616// CHECK-NEXT:            <key>file</key><integer>0</integer>
2617// CHECK-NEXT:           </dict>
2618// CHECK-NEXT:          </array>
2619// CHECK-NEXT:        </dict>
2620// CHECK-NEXT:       </array>
2621// CHECK-NEXT:     </dict>
2622// CHECK-NEXT:     <dict>
2623// CHECK-NEXT:      <key>kind</key><string>control</string>
2624// CHECK-NEXT:      <key>edges</key>
2625// CHECK-NEXT:       <array>
2626// CHECK-NEXT:        <dict>
2627// CHECK-NEXT:         <key>start</key>
2628// CHECK-NEXT:          <array>
2629// CHECK-NEXT:           <dict>
2630// CHECK-NEXT:            <key>line</key><integer>199</integer>
2631// CHECK-NEXT:            <key>col</key><integer>3</integer>
2632// CHECK-NEXT:            <key>file</key><integer>0</integer>
2633// CHECK-NEXT:           </dict>
2634// CHECK-NEXT:           <dict>
2635// CHECK-NEXT:            <key>line</key><integer>199</integer>
2636// CHECK-NEXT:            <key>col</key><integer>3</integer>
2637// CHECK-NEXT:            <key>file</key><integer>0</integer>
2638// CHECK-NEXT:           </dict>
2639// CHECK-NEXT:          </array>
2640// CHECK-NEXT:         <key>end</key>
2641// CHECK-NEXT:          <array>
2642// CHECK-NEXT:           <dict>
2643// CHECK-NEXT:            <key>line</key><integer>199</integer>
2644// CHECK-NEXT:            <key>col</key><integer>7</integer>
2645// CHECK-NEXT:            <key>file</key><integer>0</integer>
2646// CHECK-NEXT:           </dict>
2647// CHECK-NEXT:           <dict>
2648// CHECK-NEXT:            <key>line</key><integer>199</integer>
2649// CHECK-NEXT:            <key>col</key><integer>7</integer>
2650// CHECK-NEXT:            <key>file</key><integer>0</integer>
2651// CHECK-NEXT:           </dict>
2652// CHECK-NEXT:          </array>
2653// CHECK-NEXT:        </dict>
2654// CHECK-NEXT:       </array>
2655// CHECK-NEXT:     </dict>
2656// CHECK-NEXT:     <dict>
2657// CHECK-NEXT:      <key>kind</key><string>event</string>
2658// CHECK-NEXT:      <key>location</key>
2659// CHECK-NEXT:      <dict>
2660// CHECK-NEXT:       <key>line</key><integer>199</integer>
2661// CHECK-NEXT:       <key>col</key><integer>7</integer>
2662// CHECK-NEXT:       <key>file</key><integer>0</integer>
2663// CHECK-NEXT:      </dict>
2664// CHECK-NEXT:      <key>ranges</key>
2665// CHECK-NEXT:      <array>
2666// CHECK-NEXT:        <array>
2667// CHECK-NEXT:         <dict>
2668// CHECK-NEXT:          <key>line</key><integer>199</integer>
2669// CHECK-NEXT:          <key>col</key><integer>7</integer>
2670// CHECK-NEXT:          <key>file</key><integer>0</integer>
2671// CHECK-NEXT:         </dict>
2672// CHECK-NEXT:         <dict>
2673// CHECK-NEXT:          <key>line</key><integer>199</integer>
2674// CHECK-NEXT:          <key>col</key><integer>7</integer>
2675// CHECK-NEXT:          <key>file</key><integer>0</integer>
2676// CHECK-NEXT:         </dict>
2677// CHECK-NEXT:        </array>
2678// CHECK-NEXT:      </array>
2679// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2680// CHECK-NEXT:      <key>extended_message</key>
2681// CHECK-NEXT:      <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2682// CHECK-NEXT:      <key>message</key>
2683// CHECK-NEXT:      <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2684// CHECK-NEXT:     </dict>
2685// CHECK-NEXT:    </array>
2686// 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>
2687// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2688// CHECK-NEXT:    <key>type</key><string>Generics</string>
2689// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2690// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2691// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>f1b900572a63726a729714a765595c38</string>
2692// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2693// CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2694// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
2695// CHECK-NEXT:   <key>location</key>
2696// CHECK-NEXT:   <dict>
2697// CHECK-NEXT:    <key>line</key><integer>199</integer>
2698// CHECK-NEXT:    <key>col</key><integer>7</integer>
2699// CHECK-NEXT:    <key>file</key><integer>0</integer>
2700// CHECK-NEXT:   </dict>
2701// CHECK-NEXT:   </dict>
2702// CHECK-NEXT:   <dict>
2703// CHECK-NEXT:    <key>path</key>
2704// CHECK-NEXT:    <array>
2705// CHECK-NEXT:     <dict>
2706// CHECK-NEXT:      <key>kind</key><string>event</string>
2707// CHECK-NEXT:      <key>location</key>
2708// CHECK-NEXT:      <dict>
2709// CHECK-NEXT:       <key>line</key><integer>195</integer>
2710// CHECK-NEXT:       <key>col</key><integer>7</integer>
2711// CHECK-NEXT:       <key>file</key><integer>0</integer>
2712// CHECK-NEXT:      </dict>
2713// CHECK-NEXT:      <key>ranges</key>
2714// CHECK-NEXT:      <array>
2715// CHECK-NEXT:        <array>
2716// CHECK-NEXT:         <dict>
2717// CHECK-NEXT:          <key>line</key><integer>195</integer>
2718// CHECK-NEXT:          <key>col</key><integer>7</integer>
2719// CHECK-NEXT:          <key>file</key><integer>0</integer>
2720// CHECK-NEXT:         </dict>
2721// CHECK-NEXT:         <dict>
2722// CHECK-NEXT:          <key>line</key><integer>195</integer>
2723// CHECK-NEXT:          <key>col</key><integer>7</integer>
2724// CHECK-NEXT:          <key>file</key><integer>0</integer>
2725// CHECK-NEXT:         </dict>
2726// CHECK-NEXT:        </array>
2727// CHECK-NEXT:      </array>
2728// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2729// CHECK-NEXT:      <key>extended_message</key>
2730// 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>
2731// CHECK-NEXT:      <key>message</key>
2732// 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>
2733// CHECK-NEXT:     </dict>
2734// CHECK-NEXT:     <dict>
2735// CHECK-NEXT:      <key>kind</key><string>control</string>
2736// CHECK-NEXT:      <key>edges</key>
2737// CHECK-NEXT:       <array>
2738// CHECK-NEXT:        <dict>
2739// CHECK-NEXT:         <key>start</key>
2740// CHECK-NEXT:          <array>
2741// CHECK-NEXT:           <dict>
2742// CHECK-NEXT:            <key>line</key><integer>195</integer>
2743// CHECK-NEXT:            <key>col</key><integer>3</integer>
2744// CHECK-NEXT:            <key>file</key><integer>0</integer>
2745// CHECK-NEXT:           </dict>
2746// CHECK-NEXT:           <dict>
2747// CHECK-NEXT:            <key>line</key><integer>195</integer>
2748// CHECK-NEXT:            <key>col</key><integer>3</integer>
2749// CHECK-NEXT:            <key>file</key><integer>0</integer>
2750// CHECK-NEXT:           </dict>
2751// CHECK-NEXT:          </array>
2752// CHECK-NEXT:         <key>end</key>
2753// CHECK-NEXT:          <array>
2754// CHECK-NEXT:           <dict>
2755// CHECK-NEXT:            <key>line</key><integer>201</integer>
2756// CHECK-NEXT:            <key>col</key><integer>3</integer>
2757// CHECK-NEXT:            <key>file</key><integer>0</integer>
2758// CHECK-NEXT:           </dict>
2759// CHECK-NEXT:           <dict>
2760// CHECK-NEXT:            <key>line</key><integer>201</integer>
2761// CHECK-NEXT:            <key>col</key><integer>3</integer>
2762// CHECK-NEXT:            <key>file</key><integer>0</integer>
2763// CHECK-NEXT:           </dict>
2764// CHECK-NEXT:          </array>
2765// CHECK-NEXT:        </dict>
2766// CHECK-NEXT:       </array>
2767// CHECK-NEXT:     </dict>
2768// CHECK-NEXT:     <dict>
2769// CHECK-NEXT:      <key>kind</key><string>event</string>
2770// CHECK-NEXT:      <key>location</key>
2771// CHECK-NEXT:      <dict>
2772// CHECK-NEXT:       <key>line</key><integer>201</integer>
2773// CHECK-NEXT:       <key>col</key><integer>3</integer>
2774// CHECK-NEXT:       <key>file</key><integer>0</integer>
2775// CHECK-NEXT:      </dict>
2776// CHECK-NEXT:      <key>ranges</key>
2777// CHECK-NEXT:      <array>
2778// CHECK-NEXT:        <array>
2779// CHECK-NEXT:         <dict>
2780// CHECK-NEXT:          <key>line</key><integer>201</integer>
2781// CHECK-NEXT:          <key>col</key><integer>17</integer>
2782// CHECK-NEXT:          <key>file</key><integer>0</integer>
2783// CHECK-NEXT:         </dict>
2784// CHECK-NEXT:         <dict>
2785// CHECK-NEXT:          <key>line</key><integer>201</integer>
2786// CHECK-NEXT:          <key>col</key><integer>39</integer>
2787// CHECK-NEXT:          <key>file</key><integer>0</integer>
2788// CHECK-NEXT:         </dict>
2789// CHECK-NEXT:        </array>
2790// CHECK-NEXT:      </array>
2791// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2792// CHECK-NEXT:      <key>extended_message</key>
2793// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2794// CHECK-NEXT:      <key>message</key>
2795// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2796// CHECK-NEXT:     </dict>
2797// CHECK-NEXT:    </array>
2798// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2799// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2800// CHECK-NEXT:    <key>type</key><string>Generics</string>
2801// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2802// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2803// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>cbb926c9de226a3eac85fb961a93f39a</string>
2804// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2805// CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2806// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
2807// CHECK-NEXT:   <key>location</key>
2808// CHECK-NEXT:   <dict>
2809// CHECK-NEXT:    <key>line</key><integer>201</integer>
2810// CHECK-NEXT:    <key>col</key><integer>3</integer>
2811// CHECK-NEXT:    <key>file</key><integer>0</integer>
2812// CHECK-NEXT:   </dict>
2813// CHECK-NEXT:   </dict>
2814// CHECK-NEXT:   <dict>
2815// CHECK-NEXT:    <key>path</key>
2816// CHECK-NEXT:    <array>
2817// CHECK-NEXT:     <dict>
2818// CHECK-NEXT:      <key>kind</key><string>event</string>
2819// CHECK-NEXT:      <key>location</key>
2820// CHECK-NEXT:      <dict>
2821// CHECK-NEXT:       <key>line</key><integer>207</integer>
2822// CHECK-NEXT:       <key>col</key><integer>7</integer>
2823// CHECK-NEXT:       <key>file</key><integer>0</integer>
2824// CHECK-NEXT:      </dict>
2825// CHECK-NEXT:      <key>ranges</key>
2826// CHECK-NEXT:      <array>
2827// CHECK-NEXT:        <array>
2828// CHECK-NEXT:         <dict>
2829// CHECK-NEXT:          <key>line</key><integer>207</integer>
2830// CHECK-NEXT:          <key>col</key><integer>7</integer>
2831// CHECK-NEXT:          <key>file</key><integer>0</integer>
2832// CHECK-NEXT:         </dict>
2833// CHECK-NEXT:         <dict>
2834// CHECK-NEXT:          <key>line</key><integer>207</integer>
2835// CHECK-NEXT:          <key>col</key><integer>7</integer>
2836// CHECK-NEXT:          <key>file</key><integer>0</integer>
2837// CHECK-NEXT:         </dict>
2838// CHECK-NEXT:        </array>
2839// CHECK-NEXT:      </array>
2840// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2841// CHECK-NEXT:      <key>extended_message</key>
2842// 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>
2843// CHECK-NEXT:      <key>message</key>
2844// 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>
2845// CHECK-NEXT:     </dict>
2846// CHECK-NEXT:     <dict>
2847// CHECK-NEXT:      <key>kind</key><string>control</string>
2848// CHECK-NEXT:      <key>edges</key>
2849// CHECK-NEXT:       <array>
2850// CHECK-NEXT:        <dict>
2851// CHECK-NEXT:         <key>start</key>
2852// CHECK-NEXT:          <array>
2853// CHECK-NEXT:           <dict>
2854// CHECK-NEXT:            <key>line</key><integer>207</integer>
2855// CHECK-NEXT:            <key>col</key><integer>3</integer>
2856// CHECK-NEXT:            <key>file</key><integer>0</integer>
2857// CHECK-NEXT:           </dict>
2858// CHECK-NEXT:           <dict>
2859// CHECK-NEXT:            <key>line</key><integer>207</integer>
2860// CHECK-NEXT:            <key>col</key><integer>3</integer>
2861// CHECK-NEXT:            <key>file</key><integer>0</integer>
2862// CHECK-NEXT:           </dict>
2863// CHECK-NEXT:          </array>
2864// CHECK-NEXT:         <key>end</key>
2865// CHECK-NEXT:          <array>
2866// CHECK-NEXT:           <dict>
2867// CHECK-NEXT:            <key>line</key><integer>211</integer>
2868// CHECK-NEXT:            <key>col</key><integer>3</integer>
2869// CHECK-NEXT:            <key>file</key><integer>0</integer>
2870// CHECK-NEXT:           </dict>
2871// CHECK-NEXT:           <dict>
2872// CHECK-NEXT:            <key>line</key><integer>211</integer>
2873// CHECK-NEXT:            <key>col</key><integer>3</integer>
2874// CHECK-NEXT:            <key>file</key><integer>0</integer>
2875// CHECK-NEXT:           </dict>
2876// CHECK-NEXT:          </array>
2877// CHECK-NEXT:        </dict>
2878// CHECK-NEXT:       </array>
2879// CHECK-NEXT:     </dict>
2880// CHECK-NEXT:     <dict>
2881// CHECK-NEXT:      <key>kind</key><string>control</string>
2882// CHECK-NEXT:      <key>edges</key>
2883// CHECK-NEXT:       <array>
2884// CHECK-NEXT:        <dict>
2885// CHECK-NEXT:         <key>start</key>
2886// CHECK-NEXT:          <array>
2887// CHECK-NEXT:           <dict>
2888// CHECK-NEXT:            <key>line</key><integer>211</integer>
2889// CHECK-NEXT:            <key>col</key><integer>3</integer>
2890// CHECK-NEXT:            <key>file</key><integer>0</integer>
2891// CHECK-NEXT:           </dict>
2892// CHECK-NEXT:           <dict>
2893// CHECK-NEXT:            <key>line</key><integer>211</integer>
2894// CHECK-NEXT:            <key>col</key><integer>3</integer>
2895// CHECK-NEXT:            <key>file</key><integer>0</integer>
2896// CHECK-NEXT:           </dict>
2897// CHECK-NEXT:          </array>
2898// CHECK-NEXT:         <key>end</key>
2899// CHECK-NEXT:          <array>
2900// CHECK-NEXT:           <dict>
2901// CHECK-NEXT:            <key>line</key><integer>211</integer>
2902// CHECK-NEXT:            <key>col</key><integer>7</integer>
2903// CHECK-NEXT:            <key>file</key><integer>0</integer>
2904// CHECK-NEXT:           </dict>
2905// CHECK-NEXT:           <dict>
2906// CHECK-NEXT:            <key>line</key><integer>211</integer>
2907// CHECK-NEXT:            <key>col</key><integer>7</integer>
2908// CHECK-NEXT:            <key>file</key><integer>0</integer>
2909// CHECK-NEXT:           </dict>
2910// CHECK-NEXT:          </array>
2911// CHECK-NEXT:        </dict>
2912// CHECK-NEXT:       </array>
2913// CHECK-NEXT:     </dict>
2914// CHECK-NEXT:     <dict>
2915// CHECK-NEXT:      <key>kind</key><string>event</string>
2916// CHECK-NEXT:      <key>location</key>
2917// CHECK-NEXT:      <dict>
2918// CHECK-NEXT:       <key>line</key><integer>211</integer>
2919// CHECK-NEXT:       <key>col</key><integer>7</integer>
2920// CHECK-NEXT:       <key>file</key><integer>0</integer>
2921// CHECK-NEXT:      </dict>
2922// CHECK-NEXT:      <key>ranges</key>
2923// CHECK-NEXT:      <array>
2924// CHECK-NEXT:        <array>
2925// CHECK-NEXT:         <dict>
2926// CHECK-NEXT:          <key>line</key><integer>211</integer>
2927// CHECK-NEXT:          <key>col</key><integer>7</integer>
2928// CHECK-NEXT:          <key>file</key><integer>0</integer>
2929// CHECK-NEXT:         </dict>
2930// CHECK-NEXT:         <dict>
2931// CHECK-NEXT:          <key>line</key><integer>211</integer>
2932// CHECK-NEXT:          <key>col</key><integer>7</integer>
2933// CHECK-NEXT:          <key>file</key><integer>0</integer>
2934// CHECK-NEXT:         </dict>
2935// CHECK-NEXT:        </array>
2936// CHECK-NEXT:      </array>
2937// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2938// CHECK-NEXT:      <key>extended_message</key>
2939// CHECK-NEXT:      <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2940// CHECK-NEXT:      <key>message</key>
2941// CHECK-NEXT:      <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2942// CHECK-NEXT:     </dict>
2943// CHECK-NEXT:    </array>
2944// 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>
2945// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
2946// CHECK-NEXT:    <key>type</key><string>Generics</string>
2947// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
2948// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
2949// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>b6ee3b22fbad45f213b4bf14bec7eeaf</string>
2950// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
2951// CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
2952// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>5</string>
2953// CHECK-NEXT:   <key>location</key>
2954// CHECK-NEXT:   <dict>
2955// CHECK-NEXT:    <key>line</key><integer>211</integer>
2956// CHECK-NEXT:    <key>col</key><integer>7</integer>
2957// CHECK-NEXT:    <key>file</key><integer>0</integer>
2958// CHECK-NEXT:   </dict>
2959// CHECK-NEXT:   </dict>
2960// CHECK-NEXT:   <dict>
2961// CHECK-NEXT:    <key>path</key>
2962// CHECK-NEXT:    <array>
2963// CHECK-NEXT:     <dict>
2964// CHECK-NEXT:      <key>kind</key><string>event</string>
2965// CHECK-NEXT:      <key>location</key>
2966// CHECK-NEXT:      <dict>
2967// CHECK-NEXT:       <key>line</key><integer>207</integer>
2968// CHECK-NEXT:       <key>col</key><integer>7</integer>
2969// CHECK-NEXT:       <key>file</key><integer>0</integer>
2970// CHECK-NEXT:      </dict>
2971// CHECK-NEXT:      <key>ranges</key>
2972// CHECK-NEXT:      <array>
2973// CHECK-NEXT:        <array>
2974// CHECK-NEXT:         <dict>
2975// CHECK-NEXT:          <key>line</key><integer>207</integer>
2976// CHECK-NEXT:          <key>col</key><integer>7</integer>
2977// CHECK-NEXT:          <key>file</key><integer>0</integer>
2978// CHECK-NEXT:         </dict>
2979// CHECK-NEXT:         <dict>
2980// CHECK-NEXT:          <key>line</key><integer>207</integer>
2981// CHECK-NEXT:          <key>col</key><integer>7</integer>
2982// CHECK-NEXT:          <key>file</key><integer>0</integer>
2983// CHECK-NEXT:         </dict>
2984// CHECK-NEXT:        </array>
2985// CHECK-NEXT:      </array>
2986// CHECK-NEXT:      <key>depth</key><integer>0</integer>
2987// CHECK-NEXT:      <key>extended_message</key>
2988// 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>
2989// CHECK-NEXT:      <key>message</key>
2990// 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>
2991// CHECK-NEXT:     </dict>
2992// CHECK-NEXT:     <dict>
2993// CHECK-NEXT:      <key>kind</key><string>control</string>
2994// CHECK-NEXT:      <key>edges</key>
2995// CHECK-NEXT:       <array>
2996// CHECK-NEXT:        <dict>
2997// CHECK-NEXT:         <key>start</key>
2998// CHECK-NEXT:          <array>
2999// CHECK-NEXT:           <dict>
3000// CHECK-NEXT:            <key>line</key><integer>207</integer>
3001// CHECK-NEXT:            <key>col</key><integer>3</integer>
3002// CHECK-NEXT:            <key>file</key><integer>0</integer>
3003// CHECK-NEXT:           </dict>
3004// CHECK-NEXT:           <dict>
3005// CHECK-NEXT:            <key>line</key><integer>207</integer>
3006// CHECK-NEXT:            <key>col</key><integer>3</integer>
3007// CHECK-NEXT:            <key>file</key><integer>0</integer>
3008// CHECK-NEXT:           </dict>
3009// CHECK-NEXT:          </array>
3010// CHECK-NEXT:         <key>end</key>
3011// CHECK-NEXT:          <array>
3012// CHECK-NEXT:           <dict>
3013// CHECK-NEXT:            <key>line</key><integer>213</integer>
3014// CHECK-NEXT:            <key>col</key><integer>2</integer>
3015// CHECK-NEXT:            <key>file</key><integer>0</integer>
3016// CHECK-NEXT:           </dict>
3017// CHECK-NEXT:           <dict>
3018// CHECK-NEXT:            <key>line</key><integer>213</integer>
3019// CHECK-NEXT:            <key>col</key><integer>2</integer>
3020// CHECK-NEXT:            <key>file</key><integer>0</integer>
3021// CHECK-NEXT:           </dict>
3022// CHECK-NEXT:          </array>
3023// CHECK-NEXT:        </dict>
3024// CHECK-NEXT:       </array>
3025// CHECK-NEXT:     </dict>
3026// CHECK-NEXT:     <dict>
3027// CHECK-NEXT:      <key>kind</key><string>event</string>
3028// CHECK-NEXT:      <key>location</key>
3029// CHECK-NEXT:      <dict>
3030// CHECK-NEXT:       <key>line</key><integer>213</integer>
3031// CHECK-NEXT:       <key>col</key><integer>2</integer>
3032// CHECK-NEXT:       <key>file</key><integer>0</integer>
3033// CHECK-NEXT:      </dict>
3034// CHECK-NEXT:      <key>ranges</key>
3035// CHECK-NEXT:      <array>
3036// CHECK-NEXT:        <array>
3037// CHECK-NEXT:         <dict>
3038// CHECK-NEXT:          <key>line</key><integer>213</integer>
3039// CHECK-NEXT:          <key>col</key><integer>16</integer>
3040// CHECK-NEXT:          <key>file</key><integer>0</integer>
3041// CHECK-NEXT:         </dict>
3042// CHECK-NEXT:         <dict>
3043// CHECK-NEXT:          <key>line</key><integer>213</integer>
3044// CHECK-NEXT:          <key>col</key><integer>38</integer>
3045// CHECK-NEXT:          <key>file</key><integer>0</integer>
3046// CHECK-NEXT:         </dict>
3047// CHECK-NEXT:        </array>
3048// CHECK-NEXT:      </array>
3049// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3050// CHECK-NEXT:      <key>extended_message</key>
3051// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
3052// CHECK-NEXT:      <key>message</key>
3053// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
3054// CHECK-NEXT:     </dict>
3055// CHECK-NEXT:    </array>
3056// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
3057// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3058// CHECK-NEXT:    <key>type</key><string>Generics</string>
3059// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3060// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3061// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6561f05506a8ceca3afc79fc59912b94</string>
3062// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3063// CHECK-NEXT:   <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
3064// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
3065// CHECK-NEXT:   <key>location</key>
3066// CHECK-NEXT:   <dict>
3067// CHECK-NEXT:    <key>line</key><integer>213</integer>
3068// CHECK-NEXT:    <key>col</key><integer>2</integer>
3069// CHECK-NEXT:    <key>file</key><integer>0</integer>
3070// CHECK-NEXT:   </dict>
3071// CHECK-NEXT:   </dict>
3072// CHECK-NEXT:   <dict>
3073// CHECK-NEXT:    <key>path</key>
3074// CHECK-NEXT:    <array>
3075// CHECK-NEXT:     <dict>
3076// CHECK-NEXT:      <key>kind</key><string>event</string>
3077// CHECK-NEXT:      <key>location</key>
3078// CHECK-NEXT:      <dict>
3079// CHECK-NEXT:       <key>line</key><integer>219</integer>
3080// CHECK-NEXT:       <key>col</key><integer>20</integer>
3081// CHECK-NEXT:       <key>file</key><integer>0</integer>
3082// CHECK-NEXT:      </dict>
3083// CHECK-NEXT:      <key>ranges</key>
3084// CHECK-NEXT:      <array>
3085// CHECK-NEXT:        <array>
3086// CHECK-NEXT:         <dict>
3087// CHECK-NEXT:          <key>line</key><integer>219</integer>
3088// CHECK-NEXT:          <key>col</key><integer>20</integer>
3089// CHECK-NEXT:          <key>file</key><integer>0</integer>
3090// CHECK-NEXT:         </dict>
3091// CHECK-NEXT:         <dict>
3092// CHECK-NEXT:          <key>line</key><integer>219</integer>
3093// CHECK-NEXT:          <key>col</key><integer>20</integer>
3094// CHECK-NEXT:          <key>file</key><integer>0</integer>
3095// CHECK-NEXT:         </dict>
3096// CHECK-NEXT:        </array>
3097// CHECK-NEXT:      </array>
3098// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3099// CHECK-NEXT:      <key>extended_message</key>
3100// 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>
3101// CHECK-NEXT:      <key>message</key>
3102// 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>
3103// CHECK-NEXT:     </dict>
3104// CHECK-NEXT:     <dict>
3105// CHECK-NEXT:      <key>kind</key><string>control</string>
3106// CHECK-NEXT:      <key>edges</key>
3107// CHECK-NEXT:       <array>
3108// CHECK-NEXT:        <dict>
3109// CHECK-NEXT:         <key>start</key>
3110// CHECK-NEXT:          <array>
3111// CHECK-NEXT:           <dict>
3112// CHECK-NEXT:            <key>line</key><integer>219</integer>
3113// CHECK-NEXT:            <key>col</key><integer>3</integer>
3114// CHECK-NEXT:            <key>file</key><integer>0</integer>
3115// CHECK-NEXT:           </dict>
3116// CHECK-NEXT:           <dict>
3117// CHECK-NEXT:            <key>line</key><integer>219</integer>
3118// CHECK-NEXT:            <key>col</key><integer>18</integer>
3119// CHECK-NEXT:            <key>file</key><integer>0</integer>
3120// CHECK-NEXT:           </dict>
3121// CHECK-NEXT:          </array>
3122// CHECK-NEXT:         <key>end</key>
3123// CHECK-NEXT:          <array>
3124// CHECK-NEXT:           <dict>
3125// CHECK-NEXT:            <key>line</key><integer>220</integer>
3126// CHECK-NEXT:            <key>col</key><integer>3</integer>
3127// CHECK-NEXT:            <key>file</key><integer>0</integer>
3128// CHECK-NEXT:           </dict>
3129// CHECK-NEXT:           <dict>
3130// CHECK-NEXT:            <key>line</key><integer>220</integer>
3131// CHECK-NEXT:            <key>col</key><integer>25</integer>
3132// CHECK-NEXT:            <key>file</key><integer>0</integer>
3133// CHECK-NEXT:           </dict>
3134// CHECK-NEXT:          </array>
3135// CHECK-NEXT:        </dict>
3136// CHECK-NEXT:       </array>
3137// CHECK-NEXT:     </dict>
3138// CHECK-NEXT:     <dict>
3139// CHECK-NEXT:      <key>kind</key><string>control</string>
3140// CHECK-NEXT:      <key>edges</key>
3141// CHECK-NEXT:       <array>
3142// CHECK-NEXT:        <dict>
3143// CHECK-NEXT:         <key>start</key>
3144// CHECK-NEXT:          <array>
3145// CHECK-NEXT:           <dict>
3146// CHECK-NEXT:            <key>line</key><integer>220</integer>
3147// CHECK-NEXT:            <key>col</key><integer>3</integer>
3148// CHECK-NEXT:            <key>file</key><integer>0</integer>
3149// CHECK-NEXT:           </dict>
3150// CHECK-NEXT:           <dict>
3151// CHECK-NEXT:            <key>line</key><integer>220</integer>
3152// CHECK-NEXT:            <key>col</key><integer>25</integer>
3153// CHECK-NEXT:            <key>file</key><integer>0</integer>
3154// CHECK-NEXT:           </dict>
3155// CHECK-NEXT:          </array>
3156// CHECK-NEXT:         <key>end</key>
3157// CHECK-NEXT:          <array>
3158// CHECK-NEXT:           <dict>
3159// CHECK-NEXT:            <key>line</key><integer>220</integer>
3160// CHECK-NEXT:            <key>col</key><integer>27</integer>
3161// CHECK-NEXT:            <key>file</key><integer>0</integer>
3162// CHECK-NEXT:           </dict>
3163// CHECK-NEXT:           <dict>
3164// CHECK-NEXT:            <key>line</key><integer>220</integer>
3165// CHECK-NEXT:            <key>col</key><integer>27</integer>
3166// CHECK-NEXT:            <key>file</key><integer>0</integer>
3167// CHECK-NEXT:           </dict>
3168// CHECK-NEXT:          </array>
3169// CHECK-NEXT:        </dict>
3170// CHECK-NEXT:       </array>
3171// CHECK-NEXT:     </dict>
3172// CHECK-NEXT:     <dict>
3173// CHECK-NEXT:      <key>kind</key><string>event</string>
3174// CHECK-NEXT:      <key>location</key>
3175// CHECK-NEXT:      <dict>
3176// CHECK-NEXT:       <key>line</key><integer>220</integer>
3177// CHECK-NEXT:       <key>col</key><integer>27</integer>
3178// CHECK-NEXT:       <key>file</key><integer>0</integer>
3179// CHECK-NEXT:      </dict>
3180// CHECK-NEXT:      <key>ranges</key>
3181// CHECK-NEXT:      <array>
3182// CHECK-NEXT:        <array>
3183// CHECK-NEXT:         <dict>
3184// CHECK-NEXT:          <key>line</key><integer>220</integer>
3185// CHECK-NEXT:          <key>col</key><integer>27</integer>
3186// CHECK-NEXT:          <key>file</key><integer>0</integer>
3187// CHECK-NEXT:         </dict>
3188// CHECK-NEXT:         <dict>
3189// CHECK-NEXT:          <key>line</key><integer>220</integer>
3190// CHECK-NEXT:          <key>col</key><integer>27</integer>
3191// CHECK-NEXT:          <key>file</key><integer>0</integer>
3192// CHECK-NEXT:         </dict>
3193// CHECK-NEXT:        </array>
3194// CHECK-NEXT:      </array>
3195// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3196// CHECK-NEXT:      <key>extended_message</key>
3197// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3198// CHECK-NEXT:      <key>message</key>
3199// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3200// CHECK-NEXT:     </dict>
3201// CHECK-NEXT:    </array>
3202// 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>
3203// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3204// CHECK-NEXT:    <key>type</key><string>Generics</string>
3205// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3206// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3207// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6aab15d40b39ec0a6b749e561d486e6a</string>
3208// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3209// CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPI</string>
3210// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
3211// CHECK-NEXT:   <key>location</key>
3212// CHECK-NEXT:   <dict>
3213// CHECK-NEXT:    <key>line</key><integer>220</integer>
3214// CHECK-NEXT:    <key>col</key><integer>27</integer>
3215// CHECK-NEXT:    <key>file</key><integer>0</integer>
3216// CHECK-NEXT:   </dict>
3217// CHECK-NEXT:   </dict>
3218// CHECK-NEXT:   <dict>
3219// CHECK-NEXT:    <key>path</key>
3220// CHECK-NEXT:    <array>
3221// CHECK-NEXT:     <dict>
3222// CHECK-NEXT:      <key>kind</key><string>event</string>
3223// CHECK-NEXT:      <key>location</key>
3224// CHECK-NEXT:      <dict>
3225// CHECK-NEXT:       <key>line</key><integer>224</integer>
3226// CHECK-NEXT:       <key>col</key><integer>27</integer>
3227// CHECK-NEXT:       <key>file</key><integer>0</integer>
3228// CHECK-NEXT:      </dict>
3229// CHECK-NEXT:      <key>ranges</key>
3230// CHECK-NEXT:      <array>
3231// CHECK-NEXT:        <array>
3232// CHECK-NEXT:         <dict>
3233// CHECK-NEXT:          <key>line</key><integer>224</integer>
3234// CHECK-NEXT:          <key>col</key><integer>27</integer>
3235// CHECK-NEXT:          <key>file</key><integer>0</integer>
3236// CHECK-NEXT:         </dict>
3237// CHECK-NEXT:         <dict>
3238// CHECK-NEXT:          <key>line</key><integer>224</integer>
3239// CHECK-NEXT:          <key>col</key><integer>27</integer>
3240// CHECK-NEXT:          <key>file</key><integer>0</integer>
3241// CHECK-NEXT:         </dict>
3242// CHECK-NEXT:        </array>
3243// CHECK-NEXT:      </array>
3244// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3245// CHECK-NEXT:      <key>extended_message</key>
3246// 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>
3247// CHECK-NEXT:      <key>message</key>
3248// 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>
3249// CHECK-NEXT:     </dict>
3250// CHECK-NEXT:     <dict>
3251// CHECK-NEXT:      <key>kind</key><string>control</string>
3252// CHECK-NEXT:      <key>edges</key>
3253// CHECK-NEXT:       <array>
3254// CHECK-NEXT:        <dict>
3255// CHECK-NEXT:         <key>start</key>
3256// CHECK-NEXT:          <array>
3257// CHECK-NEXT:           <dict>
3258// CHECK-NEXT:            <key>line</key><integer>224</integer>
3259// CHECK-NEXT:            <key>col</key><integer>3</integer>
3260// CHECK-NEXT:            <key>file</key><integer>0</integer>
3261// CHECK-NEXT:           </dict>
3262// CHECK-NEXT:           <dict>
3263// CHECK-NEXT:            <key>line</key><integer>224</integer>
3264// CHECK-NEXT:            <key>col</key><integer>25</integer>
3265// CHECK-NEXT:            <key>file</key><integer>0</integer>
3266// CHECK-NEXT:           </dict>
3267// CHECK-NEXT:          </array>
3268// CHECK-NEXT:         <key>end</key>
3269// CHECK-NEXT:          <array>
3270// CHECK-NEXT:           <dict>
3271// CHECK-NEXT:            <key>line</key><integer>225</integer>
3272// CHECK-NEXT:            <key>col</key><integer>3</integer>
3273// CHECK-NEXT:            <key>file</key><integer>0</integer>
3274// CHECK-NEXT:           </dict>
3275// CHECK-NEXT:           <dict>
3276// CHECK-NEXT:            <key>line</key><integer>225</integer>
3277// CHECK-NEXT:            <key>col</key><integer>18</integer>
3278// CHECK-NEXT:            <key>file</key><integer>0</integer>
3279// CHECK-NEXT:           </dict>
3280// CHECK-NEXT:          </array>
3281// CHECK-NEXT:        </dict>
3282// CHECK-NEXT:       </array>
3283// CHECK-NEXT:     </dict>
3284// CHECK-NEXT:     <dict>
3285// CHECK-NEXT:      <key>kind</key><string>control</string>
3286// CHECK-NEXT:      <key>edges</key>
3287// CHECK-NEXT:       <array>
3288// CHECK-NEXT:        <dict>
3289// CHECK-NEXT:         <key>start</key>
3290// CHECK-NEXT:          <array>
3291// CHECK-NEXT:           <dict>
3292// CHECK-NEXT:            <key>line</key><integer>225</integer>
3293// CHECK-NEXT:            <key>col</key><integer>3</integer>
3294// CHECK-NEXT:            <key>file</key><integer>0</integer>
3295// CHECK-NEXT:           </dict>
3296// CHECK-NEXT:           <dict>
3297// CHECK-NEXT:            <key>line</key><integer>225</integer>
3298// CHECK-NEXT:            <key>col</key><integer>18</integer>
3299// CHECK-NEXT:            <key>file</key><integer>0</integer>
3300// CHECK-NEXT:           </dict>
3301// CHECK-NEXT:          </array>
3302// CHECK-NEXT:         <key>end</key>
3303// CHECK-NEXT:          <array>
3304// CHECK-NEXT:           <dict>
3305// CHECK-NEXT:            <key>line</key><integer>225</integer>
3306// CHECK-NEXT:            <key>col</key><integer>20</integer>
3307// CHECK-NEXT:            <key>file</key><integer>0</integer>
3308// CHECK-NEXT:           </dict>
3309// CHECK-NEXT:           <dict>
3310// CHECK-NEXT:            <key>line</key><integer>225</integer>
3311// CHECK-NEXT:            <key>col</key><integer>20</integer>
3312// CHECK-NEXT:            <key>file</key><integer>0</integer>
3313// CHECK-NEXT:           </dict>
3314// CHECK-NEXT:          </array>
3315// CHECK-NEXT:        </dict>
3316// CHECK-NEXT:       </array>
3317// CHECK-NEXT:     </dict>
3318// CHECK-NEXT:     <dict>
3319// CHECK-NEXT:      <key>kind</key><string>event</string>
3320// CHECK-NEXT:      <key>location</key>
3321// CHECK-NEXT:      <dict>
3322// CHECK-NEXT:       <key>line</key><integer>225</integer>
3323// CHECK-NEXT:       <key>col</key><integer>20</integer>
3324// CHECK-NEXT:       <key>file</key><integer>0</integer>
3325// CHECK-NEXT:      </dict>
3326// CHECK-NEXT:      <key>ranges</key>
3327// CHECK-NEXT:      <array>
3328// CHECK-NEXT:        <array>
3329// CHECK-NEXT:         <dict>
3330// CHECK-NEXT:          <key>line</key><integer>225</integer>
3331// CHECK-NEXT:          <key>col</key><integer>20</integer>
3332// CHECK-NEXT:          <key>file</key><integer>0</integer>
3333// CHECK-NEXT:         </dict>
3334// CHECK-NEXT:         <dict>
3335// CHECK-NEXT:          <key>line</key><integer>225</integer>
3336// CHECK-NEXT:          <key>col</key><integer>20</integer>
3337// CHECK-NEXT:          <key>file</key><integer>0</integer>
3338// CHECK-NEXT:         </dict>
3339// CHECK-NEXT:        </array>
3340// CHECK-NEXT:      </array>
3341// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3342// CHECK-NEXT:      <key>extended_message</key>
3343// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3344// CHECK-NEXT:      <key>message</key>
3345// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3346// CHECK-NEXT:     </dict>
3347// CHECK-NEXT:    </array>
3348// 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>
3349// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3350// CHECK-NEXT:    <key>type</key><string>Generics</string>
3351// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3352// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3353// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>bd1da1b7775323773555e5d5c122661f</string>
3354// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3355// CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPI2</string>
3356// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
3357// CHECK-NEXT:   <key>location</key>
3358// CHECK-NEXT:   <dict>
3359// CHECK-NEXT:    <key>line</key><integer>225</integer>
3360// CHECK-NEXT:    <key>col</key><integer>20</integer>
3361// CHECK-NEXT:    <key>file</key><integer>0</integer>
3362// CHECK-NEXT:   </dict>
3363// CHECK-NEXT:   </dict>
3364// CHECK-NEXT:   <dict>
3365// CHECK-NEXT:    <key>path</key>
3366// CHECK-NEXT:    <array>
3367// CHECK-NEXT:     <dict>
3368// CHECK-NEXT:      <key>kind</key><string>event</string>
3369// CHECK-NEXT:      <key>location</key>
3370// CHECK-NEXT:      <dict>
3371// CHECK-NEXT:       <key>line</key><integer>229</integer>
3372// CHECK-NEXT:       <key>col</key><integer>27</integer>
3373// CHECK-NEXT:       <key>file</key><integer>0</integer>
3374// CHECK-NEXT:      </dict>
3375// CHECK-NEXT:      <key>ranges</key>
3376// CHECK-NEXT:      <array>
3377// CHECK-NEXT:        <array>
3378// CHECK-NEXT:         <dict>
3379// CHECK-NEXT:          <key>line</key><integer>229</integer>
3380// CHECK-NEXT:          <key>col</key><integer>27</integer>
3381// CHECK-NEXT:          <key>file</key><integer>0</integer>
3382// CHECK-NEXT:         </dict>
3383// CHECK-NEXT:         <dict>
3384// CHECK-NEXT:          <key>line</key><integer>229</integer>
3385// CHECK-NEXT:          <key>col</key><integer>27</integer>
3386// CHECK-NEXT:          <key>file</key><integer>0</integer>
3387// CHECK-NEXT:         </dict>
3388// CHECK-NEXT:        </array>
3389// CHECK-NEXT:      </array>
3390// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3391// CHECK-NEXT:      <key>extended_message</key>
3392// 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>
3393// CHECK-NEXT:      <key>message</key>
3394// 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>
3395// CHECK-NEXT:     </dict>
3396// CHECK-NEXT:     <dict>
3397// CHECK-NEXT:      <key>kind</key><string>control</string>
3398// CHECK-NEXT:      <key>edges</key>
3399// CHECK-NEXT:       <array>
3400// CHECK-NEXT:        <dict>
3401// CHECK-NEXT:         <key>start</key>
3402// CHECK-NEXT:          <array>
3403// CHECK-NEXT:           <dict>
3404// CHECK-NEXT:            <key>line</key><integer>229</integer>
3405// CHECK-NEXT:            <key>col</key><integer>3</integer>
3406// CHECK-NEXT:            <key>file</key><integer>0</integer>
3407// CHECK-NEXT:           </dict>
3408// CHECK-NEXT:           <dict>
3409// CHECK-NEXT:            <key>line</key><integer>229</integer>
3410// CHECK-NEXT:            <key>col</key><integer>25</integer>
3411// CHECK-NEXT:            <key>file</key><integer>0</integer>
3412// CHECK-NEXT:           </dict>
3413// CHECK-NEXT:          </array>
3414// CHECK-NEXT:         <key>end</key>
3415// CHECK-NEXT:          <array>
3416// CHECK-NEXT:           <dict>
3417// CHECK-NEXT:            <key>line</key><integer>230</integer>
3418// CHECK-NEXT:            <key>col</key><integer>3</integer>
3419// CHECK-NEXT:            <key>file</key><integer>0</integer>
3420// CHECK-NEXT:           </dict>
3421// CHECK-NEXT:           <dict>
3422// CHECK-NEXT:            <key>line</key><integer>230</integer>
3423// CHECK-NEXT:            <key>col</key><integer>18</integer>
3424// CHECK-NEXT:            <key>file</key><integer>0</integer>
3425// CHECK-NEXT:           </dict>
3426// CHECK-NEXT:          </array>
3427// CHECK-NEXT:        </dict>
3428// CHECK-NEXT:       </array>
3429// CHECK-NEXT:     </dict>
3430// CHECK-NEXT:     <dict>
3431// CHECK-NEXT:      <key>kind</key><string>control</string>
3432// CHECK-NEXT:      <key>edges</key>
3433// CHECK-NEXT:       <array>
3434// CHECK-NEXT:        <dict>
3435// CHECK-NEXT:         <key>start</key>
3436// CHECK-NEXT:          <array>
3437// CHECK-NEXT:           <dict>
3438// CHECK-NEXT:            <key>line</key><integer>230</integer>
3439// CHECK-NEXT:            <key>col</key><integer>3</integer>
3440// CHECK-NEXT:            <key>file</key><integer>0</integer>
3441// CHECK-NEXT:           </dict>
3442// CHECK-NEXT:           <dict>
3443// CHECK-NEXT:            <key>line</key><integer>230</integer>
3444// CHECK-NEXT:            <key>col</key><integer>18</integer>
3445// CHECK-NEXT:            <key>file</key><integer>0</integer>
3446// CHECK-NEXT:           </dict>
3447// CHECK-NEXT:          </array>
3448// CHECK-NEXT:         <key>end</key>
3449// CHECK-NEXT:          <array>
3450// CHECK-NEXT:           <dict>
3451// CHECK-NEXT:            <key>line</key><integer>230</integer>
3452// CHECK-NEXT:            <key>col</key><integer>20</integer>
3453// CHECK-NEXT:            <key>file</key><integer>0</integer>
3454// CHECK-NEXT:           </dict>
3455// CHECK-NEXT:           <dict>
3456// CHECK-NEXT:            <key>line</key><integer>230</integer>
3457// CHECK-NEXT:            <key>col</key><integer>20</integer>
3458// CHECK-NEXT:            <key>file</key><integer>0</integer>
3459// CHECK-NEXT:           </dict>
3460// CHECK-NEXT:          </array>
3461// CHECK-NEXT:        </dict>
3462// CHECK-NEXT:       </array>
3463// CHECK-NEXT:     </dict>
3464// CHECK-NEXT:     <dict>
3465// CHECK-NEXT:      <key>kind</key><string>event</string>
3466// CHECK-NEXT:      <key>location</key>
3467// CHECK-NEXT:      <dict>
3468// CHECK-NEXT:       <key>line</key><integer>230</integer>
3469// CHECK-NEXT:       <key>col</key><integer>20</integer>
3470// CHECK-NEXT:       <key>file</key><integer>0</integer>
3471// CHECK-NEXT:      </dict>
3472// CHECK-NEXT:      <key>ranges</key>
3473// CHECK-NEXT:      <array>
3474// CHECK-NEXT:        <array>
3475// CHECK-NEXT:         <dict>
3476// CHECK-NEXT:          <key>line</key><integer>230</integer>
3477// CHECK-NEXT:          <key>col</key><integer>20</integer>
3478// CHECK-NEXT:          <key>file</key><integer>0</integer>
3479// CHECK-NEXT:         </dict>
3480// CHECK-NEXT:         <dict>
3481// CHECK-NEXT:          <key>line</key><integer>230</integer>
3482// CHECK-NEXT:          <key>col</key><integer>20</integer>
3483// CHECK-NEXT:          <key>file</key><integer>0</integer>
3484// CHECK-NEXT:         </dict>
3485// CHECK-NEXT:        </array>
3486// CHECK-NEXT:      </array>
3487// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3488// CHECK-NEXT:      <key>extended_message</key>
3489// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3490// CHECK-NEXT:      <key>message</key>
3491// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3492// CHECK-NEXT:     </dict>
3493// CHECK-NEXT:    </array>
3494// 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>
3495// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3496// CHECK-NEXT:    <key>type</key><string>Generics</string>
3497// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3498// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3499// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>3f2abd3c0b4b4a80a71bcbb668124ffb</string>
3500// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3501// CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes</string>
3502// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
3503// CHECK-NEXT:   <key>location</key>
3504// CHECK-NEXT:   <dict>
3505// CHECK-NEXT:    <key>line</key><integer>230</integer>
3506// CHECK-NEXT:    <key>col</key><integer>20</integer>
3507// CHECK-NEXT:    <key>file</key><integer>0</integer>
3508// CHECK-NEXT:   </dict>
3509// CHECK-NEXT:   </dict>
3510// CHECK-NEXT:   <dict>
3511// CHECK-NEXT:    <key>path</key>
3512// CHECK-NEXT:    <array>
3513// CHECK-NEXT:     <dict>
3514// CHECK-NEXT:      <key>kind</key><string>event</string>
3515// CHECK-NEXT:      <key>location</key>
3516// CHECK-NEXT:      <dict>
3517// CHECK-NEXT:       <key>line</key><integer>234</integer>
3518// CHECK-NEXT:       <key>col</key><integer>20</integer>
3519// CHECK-NEXT:       <key>file</key><integer>0</integer>
3520// CHECK-NEXT:      </dict>
3521// CHECK-NEXT:      <key>ranges</key>
3522// CHECK-NEXT:      <array>
3523// CHECK-NEXT:        <array>
3524// CHECK-NEXT:         <dict>
3525// CHECK-NEXT:          <key>line</key><integer>234</integer>
3526// CHECK-NEXT:          <key>col</key><integer>20</integer>
3527// CHECK-NEXT:          <key>file</key><integer>0</integer>
3528// CHECK-NEXT:         </dict>
3529// CHECK-NEXT:         <dict>
3530// CHECK-NEXT:          <key>line</key><integer>234</integer>
3531// CHECK-NEXT:          <key>col</key><integer>20</integer>
3532// CHECK-NEXT:          <key>file</key><integer>0</integer>
3533// CHECK-NEXT:         </dict>
3534// CHECK-NEXT:        </array>
3535// CHECK-NEXT:      </array>
3536// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3537// CHECK-NEXT:      <key>extended_message</key>
3538// 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>
3539// CHECK-NEXT:      <key>message</key>
3540// 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>
3541// CHECK-NEXT:     </dict>
3542// CHECK-NEXT:     <dict>
3543// CHECK-NEXT:      <key>kind</key><string>control</string>
3544// CHECK-NEXT:      <key>edges</key>
3545// CHECK-NEXT:       <array>
3546// CHECK-NEXT:        <dict>
3547// CHECK-NEXT:         <key>start</key>
3548// CHECK-NEXT:          <array>
3549// CHECK-NEXT:           <dict>
3550// CHECK-NEXT:            <key>line</key><integer>234</integer>
3551// CHECK-NEXT:            <key>col</key><integer>3</integer>
3552// CHECK-NEXT:            <key>file</key><integer>0</integer>
3553// CHECK-NEXT:           </dict>
3554// CHECK-NEXT:           <dict>
3555// CHECK-NEXT:            <key>line</key><integer>234</integer>
3556// CHECK-NEXT:            <key>col</key><integer>18</integer>
3557// CHECK-NEXT:            <key>file</key><integer>0</integer>
3558// CHECK-NEXT:           </dict>
3559// CHECK-NEXT:          </array>
3560// CHECK-NEXT:         <key>end</key>
3561// CHECK-NEXT:          <array>
3562// CHECK-NEXT:           <dict>
3563// CHECK-NEXT:            <key>line</key><integer>235</integer>
3564// CHECK-NEXT:            <key>col</key><integer>3</integer>
3565// CHECK-NEXT:            <key>file</key><integer>0</integer>
3566// CHECK-NEXT:           </dict>
3567// CHECK-NEXT:           <dict>
3568// CHECK-NEXT:            <key>line</key><integer>235</integer>
3569// CHECK-NEXT:            <key>col</key><integer>25</integer>
3570// CHECK-NEXT:            <key>file</key><integer>0</integer>
3571// CHECK-NEXT:           </dict>
3572// CHECK-NEXT:          </array>
3573// CHECK-NEXT:        </dict>
3574// CHECK-NEXT:       </array>
3575// CHECK-NEXT:     </dict>
3576// CHECK-NEXT:     <dict>
3577// CHECK-NEXT:      <key>kind</key><string>control</string>
3578// CHECK-NEXT:      <key>edges</key>
3579// CHECK-NEXT:       <array>
3580// CHECK-NEXT:        <dict>
3581// CHECK-NEXT:         <key>start</key>
3582// CHECK-NEXT:          <array>
3583// CHECK-NEXT:           <dict>
3584// CHECK-NEXT:            <key>line</key><integer>235</integer>
3585// CHECK-NEXT:            <key>col</key><integer>3</integer>
3586// CHECK-NEXT:            <key>file</key><integer>0</integer>
3587// CHECK-NEXT:           </dict>
3588// CHECK-NEXT:           <dict>
3589// CHECK-NEXT:            <key>line</key><integer>235</integer>
3590// CHECK-NEXT:            <key>col</key><integer>25</integer>
3591// CHECK-NEXT:            <key>file</key><integer>0</integer>
3592// CHECK-NEXT:           </dict>
3593// CHECK-NEXT:          </array>
3594// CHECK-NEXT:         <key>end</key>
3595// CHECK-NEXT:          <array>
3596// CHECK-NEXT:           <dict>
3597// CHECK-NEXT:            <key>line</key><integer>235</integer>
3598// CHECK-NEXT:            <key>col</key><integer>27</integer>
3599// CHECK-NEXT:            <key>file</key><integer>0</integer>
3600// CHECK-NEXT:           </dict>
3601// CHECK-NEXT:           <dict>
3602// CHECK-NEXT:            <key>line</key><integer>235</integer>
3603// CHECK-NEXT:            <key>col</key><integer>27</integer>
3604// CHECK-NEXT:            <key>file</key><integer>0</integer>
3605// CHECK-NEXT:           </dict>
3606// CHECK-NEXT:          </array>
3607// CHECK-NEXT:        </dict>
3608// CHECK-NEXT:       </array>
3609// CHECK-NEXT:     </dict>
3610// CHECK-NEXT:     <dict>
3611// CHECK-NEXT:      <key>kind</key><string>event</string>
3612// CHECK-NEXT:      <key>location</key>
3613// CHECK-NEXT:      <dict>
3614// CHECK-NEXT:       <key>line</key><integer>235</integer>
3615// CHECK-NEXT:       <key>col</key><integer>27</integer>
3616// CHECK-NEXT:       <key>file</key><integer>0</integer>
3617// CHECK-NEXT:      </dict>
3618// CHECK-NEXT:      <key>ranges</key>
3619// CHECK-NEXT:      <array>
3620// CHECK-NEXT:        <array>
3621// CHECK-NEXT:         <dict>
3622// CHECK-NEXT:          <key>line</key><integer>235</integer>
3623// CHECK-NEXT:          <key>col</key><integer>27</integer>
3624// CHECK-NEXT:          <key>file</key><integer>0</integer>
3625// CHECK-NEXT:         </dict>
3626// CHECK-NEXT:         <dict>
3627// CHECK-NEXT:          <key>line</key><integer>235</integer>
3628// CHECK-NEXT:          <key>col</key><integer>27</integer>
3629// CHECK-NEXT:          <key>file</key><integer>0</integer>
3630// CHECK-NEXT:         </dict>
3631// CHECK-NEXT:        </array>
3632// CHECK-NEXT:      </array>
3633// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3634// CHECK-NEXT:      <key>extended_message</key>
3635// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3636// CHECK-NEXT:      <key>message</key>
3637// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3638// CHECK-NEXT:     </dict>
3639// CHECK-NEXT:    </array>
3640// 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>
3641// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3642// CHECK-NEXT:    <key>type</key><string>Generics</string>
3643// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3644// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3645// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>73a50f2592e8b3c9af898749f24176f7</string>
3646// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3647// CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes2</string>
3648// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
3649// CHECK-NEXT:   <key>location</key>
3650// CHECK-NEXT:   <dict>
3651// CHECK-NEXT:    <key>line</key><integer>235</integer>
3652// CHECK-NEXT:    <key>col</key><integer>27</integer>
3653// CHECK-NEXT:    <key>file</key><integer>0</integer>
3654// CHECK-NEXT:   </dict>
3655// CHECK-NEXT:   </dict>
3656// CHECK-NEXT:   <dict>
3657// CHECK-NEXT:    <key>path</key>
3658// CHECK-NEXT:    <array>
3659// CHECK-NEXT:     <dict>
3660// CHECK-NEXT:      <key>kind</key><string>event</string>
3661// CHECK-NEXT:      <key>location</key>
3662// CHECK-NEXT:      <dict>
3663// CHECK-NEXT:       <key>line</key><integer>239</integer>
3664// CHECK-NEXT:       <key>col</key><integer>27</integer>
3665// CHECK-NEXT:       <key>file</key><integer>0</integer>
3666// CHECK-NEXT:      </dict>
3667// CHECK-NEXT:      <key>ranges</key>
3668// CHECK-NEXT:      <array>
3669// CHECK-NEXT:        <array>
3670// CHECK-NEXT:         <dict>
3671// CHECK-NEXT:          <key>line</key><integer>239</integer>
3672// CHECK-NEXT:          <key>col</key><integer>27</integer>
3673// CHECK-NEXT:          <key>file</key><integer>0</integer>
3674// CHECK-NEXT:         </dict>
3675// CHECK-NEXT:         <dict>
3676// CHECK-NEXT:          <key>line</key><integer>239</integer>
3677// CHECK-NEXT:          <key>col</key><integer>27</integer>
3678// CHECK-NEXT:          <key>file</key><integer>0</integer>
3679// CHECK-NEXT:         </dict>
3680// CHECK-NEXT:        </array>
3681// CHECK-NEXT:      </array>
3682// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3683// CHECK-NEXT:      <key>extended_message</key>
3684// 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>
3685// CHECK-NEXT:      <key>message</key>
3686// 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>
3687// CHECK-NEXT:     </dict>
3688// CHECK-NEXT:     <dict>
3689// CHECK-NEXT:      <key>kind</key><string>control</string>
3690// CHECK-NEXT:      <key>edges</key>
3691// CHECK-NEXT:       <array>
3692// CHECK-NEXT:        <dict>
3693// CHECK-NEXT:         <key>start</key>
3694// CHECK-NEXT:          <array>
3695// CHECK-NEXT:           <dict>
3696// CHECK-NEXT:            <key>line</key><integer>239</integer>
3697// CHECK-NEXT:            <key>col</key><integer>3</integer>
3698// CHECK-NEXT:            <key>file</key><integer>0</integer>
3699// CHECK-NEXT:           </dict>
3700// CHECK-NEXT:           <dict>
3701// CHECK-NEXT:            <key>line</key><integer>239</integer>
3702// CHECK-NEXT:            <key>col</key><integer>20</integer>
3703// CHECK-NEXT:            <key>file</key><integer>0</integer>
3704// CHECK-NEXT:           </dict>
3705// CHECK-NEXT:          </array>
3706// CHECK-NEXT:         <key>end</key>
3707// CHECK-NEXT:          <array>
3708// CHECK-NEXT:           <dict>
3709// CHECK-NEXT:            <key>line</key><integer>240</integer>
3710// CHECK-NEXT:            <key>col</key><integer>3</integer>
3711// CHECK-NEXT:            <key>file</key><integer>0</integer>
3712// CHECK-NEXT:           </dict>
3713// CHECK-NEXT:           <dict>
3714// CHECK-NEXT:            <key>line</key><integer>240</integer>
3715// CHECK-NEXT:            <key>col</key><integer>18</integer>
3716// CHECK-NEXT:            <key>file</key><integer>0</integer>
3717// CHECK-NEXT:           </dict>
3718// CHECK-NEXT:          </array>
3719// CHECK-NEXT:        </dict>
3720// CHECK-NEXT:       </array>
3721// CHECK-NEXT:     </dict>
3722// CHECK-NEXT:     <dict>
3723// CHECK-NEXT:      <key>kind</key><string>event</string>
3724// CHECK-NEXT:      <key>location</key>
3725// CHECK-NEXT:      <dict>
3726// CHECK-NEXT:       <key>line</key><integer>240</integer>
3727// CHECK-NEXT:       <key>col</key><integer>20</integer>
3728// CHECK-NEXT:       <key>file</key><integer>0</integer>
3729// CHECK-NEXT:      </dict>
3730// CHECK-NEXT:      <key>ranges</key>
3731// CHECK-NEXT:      <array>
3732// CHECK-NEXT:        <array>
3733// CHECK-NEXT:         <dict>
3734// CHECK-NEXT:          <key>line</key><integer>240</integer>
3735// CHECK-NEXT:          <key>col</key><integer>20</integer>
3736// CHECK-NEXT:          <key>file</key><integer>0</integer>
3737// CHECK-NEXT:         </dict>
3738// CHECK-NEXT:         <dict>
3739// CHECK-NEXT:          <key>line</key><integer>240</integer>
3740// CHECK-NEXT:          <key>col</key><integer>20</integer>
3741// CHECK-NEXT:          <key>file</key><integer>0</integer>
3742// CHECK-NEXT:         </dict>
3743// CHECK-NEXT:        </array>
3744// CHECK-NEXT:      </array>
3745// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3746// CHECK-NEXT:      <key>extended_message</key>
3747// 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>
3748// CHECK-NEXT:      <key>message</key>
3749// 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>
3750// CHECK-NEXT:     </dict>
3751// CHECK-NEXT:     <dict>
3752// CHECK-NEXT:      <key>kind</key><string>control</string>
3753// CHECK-NEXT:      <key>edges</key>
3754// CHECK-NEXT:       <array>
3755// CHECK-NEXT:        <dict>
3756// CHECK-NEXT:         <key>start</key>
3757// CHECK-NEXT:          <array>
3758// CHECK-NEXT:           <dict>
3759// CHECK-NEXT:            <key>line</key><integer>240</integer>
3760// CHECK-NEXT:            <key>col</key><integer>3</integer>
3761// CHECK-NEXT:            <key>file</key><integer>0</integer>
3762// CHECK-NEXT:           </dict>
3763// CHECK-NEXT:           <dict>
3764// CHECK-NEXT:            <key>line</key><integer>240</integer>
3765// CHECK-NEXT:            <key>col</key><integer>18</integer>
3766// CHECK-NEXT:            <key>file</key><integer>0</integer>
3767// CHECK-NEXT:           </dict>
3768// CHECK-NEXT:          </array>
3769// CHECK-NEXT:         <key>end</key>
3770// CHECK-NEXT:          <array>
3771// CHECK-NEXT:           <dict>
3772// CHECK-NEXT:            <key>line</key><integer>241</integer>
3773// CHECK-NEXT:            <key>col</key><integer>3</integer>
3774// CHECK-NEXT:            <key>file</key><integer>0</integer>
3775// CHECK-NEXT:           </dict>
3776// CHECK-NEXT:           <dict>
3777// CHECK-NEXT:            <key>line</key><integer>241</integer>
3778// CHECK-NEXT:            <key>col</key><integer>25</integer>
3779// CHECK-NEXT:            <key>file</key><integer>0</integer>
3780// CHECK-NEXT:           </dict>
3781// CHECK-NEXT:          </array>
3782// CHECK-NEXT:        </dict>
3783// CHECK-NEXT:       </array>
3784// CHECK-NEXT:     </dict>
3785// CHECK-NEXT:     <dict>
3786// CHECK-NEXT:      <key>kind</key><string>control</string>
3787// CHECK-NEXT:      <key>edges</key>
3788// CHECK-NEXT:       <array>
3789// CHECK-NEXT:        <dict>
3790// CHECK-NEXT:         <key>start</key>
3791// CHECK-NEXT:          <array>
3792// CHECK-NEXT:           <dict>
3793// CHECK-NEXT:            <key>line</key><integer>241</integer>
3794// CHECK-NEXT:            <key>col</key><integer>3</integer>
3795// CHECK-NEXT:            <key>file</key><integer>0</integer>
3796// CHECK-NEXT:           </dict>
3797// CHECK-NEXT:           <dict>
3798// CHECK-NEXT:            <key>line</key><integer>241</integer>
3799// CHECK-NEXT:            <key>col</key><integer>25</integer>
3800// CHECK-NEXT:            <key>file</key><integer>0</integer>
3801// CHECK-NEXT:           </dict>
3802// CHECK-NEXT:          </array>
3803// CHECK-NEXT:         <key>end</key>
3804// CHECK-NEXT:          <array>
3805// CHECK-NEXT:           <dict>
3806// CHECK-NEXT:            <key>line</key><integer>241</integer>
3807// CHECK-NEXT:            <key>col</key><integer>27</integer>
3808// CHECK-NEXT:            <key>file</key><integer>0</integer>
3809// CHECK-NEXT:           </dict>
3810// CHECK-NEXT:           <dict>
3811// CHECK-NEXT:            <key>line</key><integer>241</integer>
3812// CHECK-NEXT:            <key>col</key><integer>27</integer>
3813// CHECK-NEXT:            <key>file</key><integer>0</integer>
3814// CHECK-NEXT:           </dict>
3815// CHECK-NEXT:          </array>
3816// CHECK-NEXT:        </dict>
3817// CHECK-NEXT:       </array>
3818// CHECK-NEXT:     </dict>
3819// CHECK-NEXT:     <dict>
3820// CHECK-NEXT:      <key>kind</key><string>event</string>
3821// CHECK-NEXT:      <key>location</key>
3822// CHECK-NEXT:      <dict>
3823// CHECK-NEXT:       <key>line</key><integer>241</integer>
3824// CHECK-NEXT:       <key>col</key><integer>27</integer>
3825// CHECK-NEXT:       <key>file</key><integer>0</integer>
3826// CHECK-NEXT:      </dict>
3827// CHECK-NEXT:      <key>ranges</key>
3828// CHECK-NEXT:      <array>
3829// CHECK-NEXT:        <array>
3830// CHECK-NEXT:         <dict>
3831// CHECK-NEXT:          <key>line</key><integer>241</integer>
3832// CHECK-NEXT:          <key>col</key><integer>27</integer>
3833// CHECK-NEXT:          <key>file</key><integer>0</integer>
3834// CHECK-NEXT:         </dict>
3835// CHECK-NEXT:         <dict>
3836// CHECK-NEXT:          <key>line</key><integer>241</integer>
3837// CHECK-NEXT:          <key>col</key><integer>27</integer>
3838// CHECK-NEXT:          <key>file</key><integer>0</integer>
3839// CHECK-NEXT:         </dict>
3840// CHECK-NEXT:        </array>
3841// CHECK-NEXT:      </array>
3842// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3843// CHECK-NEXT:      <key>extended_message</key>
3844// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3845// CHECK-NEXT:      <key>message</key>
3846// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3847// CHECK-NEXT:     </dict>
3848// CHECK-NEXT:    </array>
3849// 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>
3850// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3851// CHECK-NEXT:    <key>type</key><string>Generics</string>
3852// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3853// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
3854// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>23ca540c8961ab9a362a194e1e895f86</string>
3855// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
3856// CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes3</string>
3857// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
3858// CHECK-NEXT:   <key>location</key>
3859// CHECK-NEXT:   <dict>
3860// CHECK-NEXT:    <key>line</key><integer>241</integer>
3861// CHECK-NEXT:    <key>col</key><integer>27</integer>
3862// CHECK-NEXT:    <key>file</key><integer>0</integer>
3863// CHECK-NEXT:   </dict>
3864// CHECK-NEXT:   </dict>
3865// CHECK-NEXT:   <dict>
3866// CHECK-NEXT:    <key>path</key>
3867// CHECK-NEXT:    <array>
3868// CHECK-NEXT:     <dict>
3869// CHECK-NEXT:      <key>kind</key><string>event</string>
3870// CHECK-NEXT:      <key>location</key>
3871// CHECK-NEXT:      <dict>
3872// CHECK-NEXT:       <key>line</key><integer>245</integer>
3873// CHECK-NEXT:       <key>col</key><integer>20</integer>
3874// CHECK-NEXT:       <key>file</key><integer>0</integer>
3875// CHECK-NEXT:      </dict>
3876// CHECK-NEXT:      <key>ranges</key>
3877// CHECK-NEXT:      <array>
3878// CHECK-NEXT:        <array>
3879// CHECK-NEXT:         <dict>
3880// CHECK-NEXT:          <key>line</key><integer>245</integer>
3881// CHECK-NEXT:          <key>col</key><integer>20</integer>
3882// CHECK-NEXT:          <key>file</key><integer>0</integer>
3883// CHECK-NEXT:         </dict>
3884// CHECK-NEXT:         <dict>
3885// CHECK-NEXT:          <key>line</key><integer>245</integer>
3886// CHECK-NEXT:          <key>col</key><integer>20</integer>
3887// CHECK-NEXT:          <key>file</key><integer>0</integer>
3888// CHECK-NEXT:         </dict>
3889// CHECK-NEXT:        </array>
3890// CHECK-NEXT:      </array>
3891// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3892// CHECK-NEXT:      <key>extended_message</key>
3893// 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>
3894// CHECK-NEXT:      <key>message</key>
3895// 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>
3896// CHECK-NEXT:     </dict>
3897// CHECK-NEXT:     <dict>
3898// CHECK-NEXT:      <key>kind</key><string>control</string>
3899// CHECK-NEXT:      <key>edges</key>
3900// CHECK-NEXT:       <array>
3901// CHECK-NEXT:        <dict>
3902// CHECK-NEXT:         <key>start</key>
3903// CHECK-NEXT:          <array>
3904// CHECK-NEXT:           <dict>
3905// CHECK-NEXT:            <key>line</key><integer>245</integer>
3906// CHECK-NEXT:            <key>col</key><integer>3</integer>
3907// CHECK-NEXT:            <key>file</key><integer>0</integer>
3908// CHECK-NEXT:           </dict>
3909// CHECK-NEXT:           <dict>
3910// CHECK-NEXT:            <key>line</key><integer>245</integer>
3911// CHECK-NEXT:            <key>col</key><integer>18</integer>
3912// CHECK-NEXT:            <key>file</key><integer>0</integer>
3913// CHECK-NEXT:           </dict>
3914// CHECK-NEXT:          </array>
3915// CHECK-NEXT:         <key>end</key>
3916// CHECK-NEXT:          <array>
3917// CHECK-NEXT:           <dict>
3918// CHECK-NEXT:            <key>line</key><integer>246</integer>
3919// CHECK-NEXT:            <key>col</key><integer>3</integer>
3920// CHECK-NEXT:            <key>file</key><integer>0</integer>
3921// CHECK-NEXT:           </dict>
3922// CHECK-NEXT:           <dict>
3923// CHECK-NEXT:            <key>line</key><integer>246</integer>
3924// CHECK-NEXT:            <key>col</key><integer>25</integer>
3925// CHECK-NEXT:            <key>file</key><integer>0</integer>
3926// CHECK-NEXT:           </dict>
3927// CHECK-NEXT:          </array>
3928// CHECK-NEXT:        </dict>
3929// CHECK-NEXT:       </array>
3930// CHECK-NEXT:     </dict>
3931// CHECK-NEXT:     <dict>
3932// CHECK-NEXT:      <key>kind</key><string>control</string>
3933// CHECK-NEXT:      <key>edges</key>
3934// CHECK-NEXT:       <array>
3935// CHECK-NEXT:        <dict>
3936// CHECK-NEXT:         <key>start</key>
3937// CHECK-NEXT:          <array>
3938// CHECK-NEXT:           <dict>
3939// CHECK-NEXT:            <key>line</key><integer>246</integer>
3940// CHECK-NEXT:            <key>col</key><integer>3</integer>
3941// CHECK-NEXT:            <key>file</key><integer>0</integer>
3942// CHECK-NEXT:           </dict>
3943// CHECK-NEXT:           <dict>
3944// CHECK-NEXT:            <key>line</key><integer>246</integer>
3945// CHECK-NEXT:            <key>col</key><integer>25</integer>
3946// CHECK-NEXT:            <key>file</key><integer>0</integer>
3947// CHECK-NEXT:           </dict>
3948// CHECK-NEXT:          </array>
3949// CHECK-NEXT:         <key>end</key>
3950// CHECK-NEXT:          <array>
3951// CHECK-NEXT:           <dict>
3952// CHECK-NEXT:            <key>line</key><integer>246</integer>
3953// CHECK-NEXT:            <key>col</key><integer>27</integer>
3954// CHECK-NEXT:            <key>file</key><integer>0</integer>
3955// CHECK-NEXT:           </dict>
3956// CHECK-NEXT:           <dict>
3957// CHECK-NEXT:            <key>line</key><integer>246</integer>
3958// CHECK-NEXT:            <key>col</key><integer>27</integer>
3959// CHECK-NEXT:            <key>file</key><integer>0</integer>
3960// CHECK-NEXT:           </dict>
3961// CHECK-NEXT:          </array>
3962// CHECK-NEXT:        </dict>
3963// CHECK-NEXT:       </array>
3964// CHECK-NEXT:     </dict>
3965// CHECK-NEXT:     <dict>
3966// CHECK-NEXT:      <key>kind</key><string>event</string>
3967// CHECK-NEXT:      <key>location</key>
3968// CHECK-NEXT:      <dict>
3969// CHECK-NEXT:       <key>line</key><integer>246</integer>
3970// CHECK-NEXT:       <key>col</key><integer>27</integer>
3971// CHECK-NEXT:       <key>file</key><integer>0</integer>
3972// CHECK-NEXT:      </dict>
3973// CHECK-NEXT:      <key>ranges</key>
3974// CHECK-NEXT:      <array>
3975// CHECK-NEXT:        <array>
3976// CHECK-NEXT:         <dict>
3977// CHECK-NEXT:          <key>line</key><integer>246</integer>
3978// CHECK-NEXT:          <key>col</key><integer>27</integer>
3979// CHECK-NEXT:          <key>file</key><integer>0</integer>
3980// CHECK-NEXT:         </dict>
3981// CHECK-NEXT:         <dict>
3982// CHECK-NEXT:          <key>line</key><integer>246</integer>
3983// CHECK-NEXT:          <key>col</key><integer>27</integer>
3984// CHECK-NEXT:          <key>file</key><integer>0</integer>
3985// CHECK-NEXT:         </dict>
3986// CHECK-NEXT:        </array>
3987// CHECK-NEXT:      </array>
3988// CHECK-NEXT:      <key>depth</key><integer>0</integer>
3989// CHECK-NEXT:      <key>extended_message</key>
3990// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3991// CHECK-NEXT:      <key>message</key>
3992// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3993// CHECK-NEXT:     </dict>
3994// CHECK-NEXT:    </array>
3995// 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>
3996// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
3997// CHECK-NEXT:    <key>type</key><string>Generics</string>
3998// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
3999// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4000// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>be7e9426f827314f05fd4e15b25909df</string>
4001// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4002// CHECK-NEXT:   <key>issue_context</key><string>inferenceFromAPIWithBuggyTypes</string>
4003// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
4004// CHECK-NEXT:   <key>location</key>
4005// CHECK-NEXT:   <dict>
4006// CHECK-NEXT:    <key>line</key><integer>246</integer>
4007// CHECK-NEXT:    <key>col</key><integer>27</integer>
4008// CHECK-NEXT:    <key>file</key><integer>0</integer>
4009// CHECK-NEXT:   </dict>
4010// CHECK-NEXT:   </dict>
4011// CHECK-NEXT:   <dict>
4012// CHECK-NEXT:    <key>path</key>
4013// CHECK-NEXT:    <array>
4014// CHECK-NEXT:     <dict>
4015// CHECK-NEXT:      <key>kind</key><string>event</string>
4016// CHECK-NEXT:      <key>location</key>
4017// CHECK-NEXT:      <dict>
4018// CHECK-NEXT:       <key>line</key><integer>250</integer>
4019// CHECK-NEXT:       <key>col</key><integer>27</integer>
4020// CHECK-NEXT:       <key>file</key><integer>0</integer>
4021// CHECK-NEXT:      </dict>
4022// CHECK-NEXT:      <key>ranges</key>
4023// CHECK-NEXT:      <array>
4024// CHECK-NEXT:        <array>
4025// CHECK-NEXT:         <dict>
4026// CHECK-NEXT:          <key>line</key><integer>250</integer>
4027// CHECK-NEXT:          <key>col</key><integer>27</integer>
4028// CHECK-NEXT:          <key>file</key><integer>0</integer>
4029// CHECK-NEXT:         </dict>
4030// CHECK-NEXT:         <dict>
4031// CHECK-NEXT:          <key>line</key><integer>250</integer>
4032// CHECK-NEXT:          <key>col</key><integer>27</integer>
4033// CHECK-NEXT:          <key>file</key><integer>0</integer>
4034// CHECK-NEXT:         </dict>
4035// CHECK-NEXT:        </array>
4036// CHECK-NEXT:      </array>
4037// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4038// CHECK-NEXT:      <key>extended_message</key>
4039// 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>
4040// CHECK-NEXT:      <key>message</key>
4041// 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>
4042// CHECK-NEXT:     </dict>
4043// CHECK-NEXT:     <dict>
4044// CHECK-NEXT:      <key>kind</key><string>control</string>
4045// CHECK-NEXT:      <key>edges</key>
4046// CHECK-NEXT:       <array>
4047// CHECK-NEXT:        <dict>
4048// CHECK-NEXT:         <key>start</key>
4049// CHECK-NEXT:          <array>
4050// CHECK-NEXT:           <dict>
4051// CHECK-NEXT:            <key>line</key><integer>250</integer>
4052// CHECK-NEXT:            <key>col</key><integer>3</integer>
4053// CHECK-NEXT:            <key>file</key><integer>0</integer>
4054// CHECK-NEXT:           </dict>
4055// CHECK-NEXT:           <dict>
4056// CHECK-NEXT:            <key>line</key><integer>250</integer>
4057// CHECK-NEXT:            <key>col</key><integer>25</integer>
4058// CHECK-NEXT:            <key>file</key><integer>0</integer>
4059// CHECK-NEXT:           </dict>
4060// CHECK-NEXT:          </array>
4061// CHECK-NEXT:         <key>end</key>
4062// CHECK-NEXT:          <array>
4063// CHECK-NEXT:           <dict>
4064// CHECK-NEXT:            <key>line</key><integer>251</integer>
4065// CHECK-NEXT:            <key>col</key><integer>3</integer>
4066// CHECK-NEXT:            <key>file</key><integer>0</integer>
4067// CHECK-NEXT:           </dict>
4068// CHECK-NEXT:           <dict>
4069// CHECK-NEXT:            <key>line</key><integer>251</integer>
4070// CHECK-NEXT:            <key>col</key><integer>18</integer>
4071// CHECK-NEXT:            <key>file</key><integer>0</integer>
4072// CHECK-NEXT:           </dict>
4073// CHECK-NEXT:          </array>
4074// CHECK-NEXT:        </dict>
4075// CHECK-NEXT:       </array>
4076// CHECK-NEXT:     </dict>
4077// CHECK-NEXT:     <dict>
4078// CHECK-NEXT:      <key>kind</key><string>control</string>
4079// CHECK-NEXT:      <key>edges</key>
4080// CHECK-NEXT:       <array>
4081// CHECK-NEXT:        <dict>
4082// CHECK-NEXT:         <key>start</key>
4083// CHECK-NEXT:          <array>
4084// CHECK-NEXT:           <dict>
4085// CHECK-NEXT:            <key>line</key><integer>251</integer>
4086// CHECK-NEXT:            <key>col</key><integer>3</integer>
4087// CHECK-NEXT:            <key>file</key><integer>0</integer>
4088// CHECK-NEXT:           </dict>
4089// CHECK-NEXT:           <dict>
4090// CHECK-NEXT:            <key>line</key><integer>251</integer>
4091// CHECK-NEXT:            <key>col</key><integer>18</integer>
4092// CHECK-NEXT:            <key>file</key><integer>0</integer>
4093// CHECK-NEXT:           </dict>
4094// CHECK-NEXT:          </array>
4095// CHECK-NEXT:         <key>end</key>
4096// CHECK-NEXT:          <array>
4097// CHECK-NEXT:           <dict>
4098// CHECK-NEXT:            <key>line</key><integer>251</integer>
4099// CHECK-NEXT:            <key>col</key><integer>20</integer>
4100// CHECK-NEXT:            <key>file</key><integer>0</integer>
4101// CHECK-NEXT:           </dict>
4102// CHECK-NEXT:           <dict>
4103// CHECK-NEXT:            <key>line</key><integer>251</integer>
4104// CHECK-NEXT:            <key>col</key><integer>20</integer>
4105// CHECK-NEXT:            <key>file</key><integer>0</integer>
4106// CHECK-NEXT:           </dict>
4107// CHECK-NEXT:          </array>
4108// CHECK-NEXT:        </dict>
4109// CHECK-NEXT:       </array>
4110// CHECK-NEXT:     </dict>
4111// CHECK-NEXT:     <dict>
4112// CHECK-NEXT:      <key>kind</key><string>event</string>
4113// CHECK-NEXT:      <key>location</key>
4114// CHECK-NEXT:      <dict>
4115// CHECK-NEXT:       <key>line</key><integer>251</integer>
4116// CHECK-NEXT:       <key>col</key><integer>20</integer>
4117// CHECK-NEXT:       <key>file</key><integer>0</integer>
4118// CHECK-NEXT:      </dict>
4119// CHECK-NEXT:      <key>ranges</key>
4120// CHECK-NEXT:      <array>
4121// CHECK-NEXT:        <array>
4122// CHECK-NEXT:         <dict>
4123// CHECK-NEXT:          <key>line</key><integer>251</integer>
4124// CHECK-NEXT:          <key>col</key><integer>20</integer>
4125// CHECK-NEXT:          <key>file</key><integer>0</integer>
4126// CHECK-NEXT:         </dict>
4127// CHECK-NEXT:         <dict>
4128// CHECK-NEXT:          <key>line</key><integer>251</integer>
4129// CHECK-NEXT:          <key>col</key><integer>20</integer>
4130// CHECK-NEXT:          <key>file</key><integer>0</integer>
4131// CHECK-NEXT:         </dict>
4132// CHECK-NEXT:        </array>
4133// CHECK-NEXT:      </array>
4134// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4135// CHECK-NEXT:      <key>extended_message</key>
4136// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4137// CHECK-NEXT:      <key>message</key>
4138// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4139// CHECK-NEXT:     </dict>
4140// CHECK-NEXT:    </array>
4141// 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>
4142// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
4143// CHECK-NEXT:    <key>type</key><string>Generics</string>
4144// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
4145// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4146// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>0f97a618ccac913d7c8631b5b86a133e</string>
4147// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4148// CHECK-NEXT:   <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes2</string>
4149// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
4150// CHECK-NEXT:   <key>location</key>
4151// CHECK-NEXT:   <dict>
4152// CHECK-NEXT:    <key>line</key><integer>251</integer>
4153// CHECK-NEXT:    <key>col</key><integer>20</integer>
4154// CHECK-NEXT:    <key>file</key><integer>0</integer>
4155// CHECK-NEXT:   </dict>
4156// CHECK-NEXT:   </dict>
4157// CHECK-NEXT:   <dict>
4158// CHECK-NEXT:    <key>path</key>
4159// CHECK-NEXT:    <array>
4160// CHECK-NEXT:     <dict>
4161// CHECK-NEXT:      <key>kind</key><string>event</string>
4162// CHECK-NEXT:      <key>location</key>
4163// CHECK-NEXT:      <dict>
4164// CHECK-NEXT:       <key>line</key><integer>255</integer>
4165// CHECK-NEXT:       <key>col</key><integer>10</integer>
4166// CHECK-NEXT:       <key>file</key><integer>0</integer>
4167// CHECK-NEXT:      </dict>
4168// CHECK-NEXT:      <key>ranges</key>
4169// CHECK-NEXT:      <array>
4170// CHECK-NEXT:        <array>
4171// CHECK-NEXT:         <dict>
4172// CHECK-NEXT:          <key>line</key><integer>255</integer>
4173// CHECK-NEXT:          <key>col</key><integer>10</integer>
4174// CHECK-NEXT:          <key>file</key><integer>0</integer>
4175// CHECK-NEXT:         </dict>
4176// CHECK-NEXT:         <dict>
4177// CHECK-NEXT:          <key>line</key><integer>255</integer>
4178// CHECK-NEXT:          <key>col</key><integer>10</integer>
4179// CHECK-NEXT:          <key>file</key><integer>0</integer>
4180// CHECK-NEXT:         </dict>
4181// CHECK-NEXT:        </array>
4182// CHECK-NEXT:      </array>
4183// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4184// CHECK-NEXT:      <key>extended_message</key>
4185// 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>
4186// CHECK-NEXT:      <key>message</key>
4187// 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>
4188// CHECK-NEXT:     </dict>
4189// CHECK-NEXT:     <dict>
4190// CHECK-NEXT:      <key>kind</key><string>control</string>
4191// CHECK-NEXT:      <key>edges</key>
4192// CHECK-NEXT:       <array>
4193// CHECK-NEXT:        <dict>
4194// CHECK-NEXT:         <key>start</key>
4195// CHECK-NEXT:          <array>
4196// CHECK-NEXT:           <dict>
4197// CHECK-NEXT:            <key>line</key><integer>255</integer>
4198// CHECK-NEXT:            <key>col</key><integer>3</integer>
4199// CHECK-NEXT:            <key>file</key><integer>0</integer>
4200// CHECK-NEXT:           </dict>
4201// CHECK-NEXT:           <dict>
4202// CHECK-NEXT:            <key>line</key><integer>255</integer>
4203// CHECK-NEXT:            <key>col</key><integer>4</integer>
4204// CHECK-NEXT:            <key>file</key><integer>0</integer>
4205// CHECK-NEXT:           </dict>
4206// CHECK-NEXT:          </array>
4207// CHECK-NEXT:         <key>end</key>
4208// CHECK-NEXT:          <array>
4209// CHECK-NEXT:           <dict>
4210// CHECK-NEXT:            <key>line</key><integer>256</integer>
4211// CHECK-NEXT:            <key>col</key><integer>3</integer>
4212// CHECK-NEXT:            <key>file</key><integer>0</integer>
4213// CHECK-NEXT:           </dict>
4214// CHECK-NEXT:           <dict>
4215// CHECK-NEXT:            <key>line</key><integer>256</integer>
4216// CHECK-NEXT:            <key>col</key><integer>25</integer>
4217// CHECK-NEXT:            <key>file</key><integer>0</integer>
4218// CHECK-NEXT:           </dict>
4219// CHECK-NEXT:          </array>
4220// CHECK-NEXT:        </dict>
4221// CHECK-NEXT:       </array>
4222// CHECK-NEXT:     </dict>
4223// CHECK-NEXT:     <dict>
4224// CHECK-NEXT:      <key>kind</key><string>event</string>
4225// CHECK-NEXT:      <key>location</key>
4226// CHECK-NEXT:      <dict>
4227// CHECK-NEXT:       <key>line</key><integer>256</integer>
4228// CHECK-NEXT:       <key>col</key><integer>27</integer>
4229// CHECK-NEXT:       <key>file</key><integer>0</integer>
4230// CHECK-NEXT:      </dict>
4231// CHECK-NEXT:      <key>ranges</key>
4232// CHECK-NEXT:      <array>
4233// CHECK-NEXT:        <array>
4234// CHECK-NEXT:         <dict>
4235// CHECK-NEXT:          <key>line</key><integer>256</integer>
4236// CHECK-NEXT:          <key>col</key><integer>27</integer>
4237// CHECK-NEXT:          <key>file</key><integer>0</integer>
4238// CHECK-NEXT:         </dict>
4239// CHECK-NEXT:         <dict>
4240// CHECK-NEXT:          <key>line</key><integer>256</integer>
4241// CHECK-NEXT:          <key>col</key><integer>67</integer>
4242// CHECK-NEXT:          <key>file</key><integer>0</integer>
4243// CHECK-NEXT:         </dict>
4244// CHECK-NEXT:        </array>
4245// CHECK-NEXT:      </array>
4246// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4247// CHECK-NEXT:      <key>extended_message</key>
4248// CHECK-NEXT:      <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
4249// CHECK-NEXT:      <key>message</key>
4250// CHECK-NEXT:      <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from implicit cast (from &apos;BuggyMutableArray&lt;NSMutableString *&gt; *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
4251// CHECK-NEXT:     </dict>
4252// CHECK-NEXT:     <dict>
4253// CHECK-NEXT:      <key>kind</key><string>control</string>
4254// CHECK-NEXT:      <key>edges</key>
4255// CHECK-NEXT:       <array>
4256// CHECK-NEXT:        <dict>
4257// CHECK-NEXT:         <key>start</key>
4258// CHECK-NEXT:          <array>
4259// CHECK-NEXT:           <dict>
4260// CHECK-NEXT:            <key>line</key><integer>256</integer>
4261// CHECK-NEXT:            <key>col</key><integer>3</integer>
4262// CHECK-NEXT:            <key>file</key><integer>0</integer>
4263// CHECK-NEXT:           </dict>
4264// CHECK-NEXT:           <dict>
4265// CHECK-NEXT:            <key>line</key><integer>256</integer>
4266// CHECK-NEXT:            <key>col</key><integer>25</integer>
4267// CHECK-NEXT:            <key>file</key><integer>0</integer>
4268// CHECK-NEXT:           </dict>
4269// CHECK-NEXT:          </array>
4270// CHECK-NEXT:         <key>end</key>
4271// CHECK-NEXT:          <array>
4272// CHECK-NEXT:           <dict>
4273// CHECK-NEXT:            <key>line</key><integer>257</integer>
4274// CHECK-NEXT:            <key>col</key><integer>3</integer>
4275// CHECK-NEXT:            <key>file</key><integer>0</integer>
4276// CHECK-NEXT:           </dict>
4277// CHECK-NEXT:           <dict>
4278// CHECK-NEXT:            <key>line</key><integer>257</integer>
4279// CHECK-NEXT:            <key>col</key><integer>18</integer>
4280// CHECK-NEXT:            <key>file</key><integer>0</integer>
4281// CHECK-NEXT:           </dict>
4282// CHECK-NEXT:          </array>
4283// CHECK-NEXT:        </dict>
4284// CHECK-NEXT:       </array>
4285// CHECK-NEXT:     </dict>
4286// CHECK-NEXT:     <dict>
4287// CHECK-NEXT:      <key>kind</key><string>control</string>
4288// CHECK-NEXT:      <key>edges</key>
4289// CHECK-NEXT:       <array>
4290// CHECK-NEXT:        <dict>
4291// CHECK-NEXT:         <key>start</key>
4292// CHECK-NEXT:          <array>
4293// CHECK-NEXT:           <dict>
4294// CHECK-NEXT:            <key>line</key><integer>257</integer>
4295// CHECK-NEXT:            <key>col</key><integer>3</integer>
4296// CHECK-NEXT:            <key>file</key><integer>0</integer>
4297// CHECK-NEXT:           </dict>
4298// CHECK-NEXT:           <dict>
4299// CHECK-NEXT:            <key>line</key><integer>257</integer>
4300// CHECK-NEXT:            <key>col</key><integer>18</integer>
4301// CHECK-NEXT:            <key>file</key><integer>0</integer>
4302// CHECK-NEXT:           </dict>
4303// CHECK-NEXT:          </array>
4304// CHECK-NEXT:         <key>end</key>
4305// CHECK-NEXT:          <array>
4306// CHECK-NEXT:           <dict>
4307// CHECK-NEXT:            <key>line</key><integer>257</integer>
4308// CHECK-NEXT:            <key>col</key><integer>20</integer>
4309// CHECK-NEXT:            <key>file</key><integer>0</integer>
4310// CHECK-NEXT:           </dict>
4311// CHECK-NEXT:           <dict>
4312// CHECK-NEXT:            <key>line</key><integer>257</integer>
4313// CHECK-NEXT:            <key>col</key><integer>20</integer>
4314// CHECK-NEXT:            <key>file</key><integer>0</integer>
4315// CHECK-NEXT:           </dict>
4316// CHECK-NEXT:          </array>
4317// CHECK-NEXT:        </dict>
4318// CHECK-NEXT:       </array>
4319// CHECK-NEXT:     </dict>
4320// CHECK-NEXT:     <dict>
4321// CHECK-NEXT:      <key>kind</key><string>event</string>
4322// CHECK-NEXT:      <key>location</key>
4323// CHECK-NEXT:      <dict>
4324// CHECK-NEXT:       <key>line</key><integer>257</integer>
4325// CHECK-NEXT:       <key>col</key><integer>20</integer>
4326// CHECK-NEXT:       <key>file</key><integer>0</integer>
4327// CHECK-NEXT:      </dict>
4328// CHECK-NEXT:      <key>ranges</key>
4329// CHECK-NEXT:      <array>
4330// CHECK-NEXT:        <array>
4331// CHECK-NEXT:         <dict>
4332// CHECK-NEXT:          <key>line</key><integer>257</integer>
4333// CHECK-NEXT:          <key>col</key><integer>20</integer>
4334// CHECK-NEXT:          <key>file</key><integer>0</integer>
4335// CHECK-NEXT:         </dict>
4336// CHECK-NEXT:         <dict>
4337// CHECK-NEXT:          <key>line</key><integer>257</integer>
4338// CHECK-NEXT:          <key>col</key><integer>20</integer>
4339// CHECK-NEXT:          <key>file</key><integer>0</integer>
4340// CHECK-NEXT:         </dict>
4341// CHECK-NEXT:        </array>
4342// CHECK-NEXT:      </array>
4343// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4344// CHECK-NEXT:      <key>extended_message</key>
4345// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4346// CHECK-NEXT:      <key>message</key>
4347// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4348// CHECK-NEXT:     </dict>
4349// CHECK-NEXT:    </array>
4350// 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>
4351// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
4352// CHECK-NEXT:    <key>type</key><string>Generics</string>
4353// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
4354// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4355// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>725c54c88bb271138b1de545ee59a8aa</string>
4356// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4357// CHECK-NEXT:   <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes3</string>
4358// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
4359// CHECK-NEXT:   <key>location</key>
4360// CHECK-NEXT:   <dict>
4361// CHECK-NEXT:    <key>line</key><integer>257</integer>
4362// CHECK-NEXT:    <key>col</key><integer>20</integer>
4363// CHECK-NEXT:    <key>file</key><integer>0</integer>
4364// CHECK-NEXT:   </dict>
4365// CHECK-NEXT:   </dict>
4366// CHECK-NEXT:   <dict>
4367// CHECK-NEXT:    <key>path</key>
4368// CHECK-NEXT:    <array>
4369// CHECK-NEXT:     <dict>
4370// CHECK-NEXT:      <key>kind</key><string>event</string>
4371// CHECK-NEXT:      <key>location</key>
4372// CHECK-NEXT:      <dict>
4373// CHECK-NEXT:       <key>line</key><integer>261</integer>
4374// CHECK-NEXT:       <key>col</key><integer>45</integer>
4375// CHECK-NEXT:       <key>file</key><integer>0</integer>
4376// CHECK-NEXT:      </dict>
4377// CHECK-NEXT:      <key>ranges</key>
4378// CHECK-NEXT:      <array>
4379// CHECK-NEXT:        <array>
4380// CHECK-NEXT:         <dict>
4381// CHECK-NEXT:          <key>line</key><integer>261</integer>
4382// CHECK-NEXT:          <key>col</key><integer>45</integer>
4383// CHECK-NEXT:          <key>file</key><integer>0</integer>
4384// CHECK-NEXT:         </dict>
4385// CHECK-NEXT:         <dict>
4386// CHECK-NEXT:          <key>line</key><integer>261</integer>
4387// CHECK-NEXT:          <key>col</key><integer>45</integer>
4388// CHECK-NEXT:          <key>file</key><integer>0</integer>
4389// CHECK-NEXT:         </dict>
4390// CHECK-NEXT:        </array>
4391// CHECK-NEXT:      </array>
4392// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4393// CHECK-NEXT:      <key>extended_message</key>
4394// 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>
4395// CHECK-NEXT:      <key>message</key>
4396// 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>
4397// CHECK-NEXT:     </dict>
4398// CHECK-NEXT:     <dict>
4399// CHECK-NEXT:      <key>kind</key><string>control</string>
4400// CHECK-NEXT:      <key>edges</key>
4401// CHECK-NEXT:       <array>
4402// CHECK-NEXT:        <dict>
4403// CHECK-NEXT:         <key>start</key>
4404// CHECK-NEXT:          <array>
4405// CHECK-NEXT:           <dict>
4406// CHECK-NEXT:            <key>line</key><integer>261</integer>
4407// CHECK-NEXT:            <key>col</key><integer>3</integer>
4408// CHECK-NEXT:            <key>file</key><integer>0</integer>
4409// CHECK-NEXT:           </dict>
4410// CHECK-NEXT:           <dict>
4411// CHECK-NEXT:            <key>line</key><integer>261</integer>
4412// CHECK-NEXT:            <key>col</key><integer>19</integer>
4413// CHECK-NEXT:            <key>file</key><integer>0</integer>
4414// CHECK-NEXT:           </dict>
4415// CHECK-NEXT:          </array>
4416// CHECK-NEXT:         <key>end</key>
4417// CHECK-NEXT:          <array>
4418// CHECK-NEXT:           <dict>
4419// CHECK-NEXT:            <key>line</key><integer>262</integer>
4420// CHECK-NEXT:            <key>col</key><integer>3</integer>
4421// CHECK-NEXT:            <key>file</key><integer>0</integer>
4422// CHECK-NEXT:           </dict>
4423// CHECK-NEXT:           <dict>
4424// CHECK-NEXT:            <key>line</key><integer>262</integer>
4425// CHECK-NEXT:            <key>col</key><integer>18</integer>
4426// CHECK-NEXT:            <key>file</key><integer>0</integer>
4427// CHECK-NEXT:           </dict>
4428// CHECK-NEXT:          </array>
4429// CHECK-NEXT:        </dict>
4430// CHECK-NEXT:       </array>
4431// CHECK-NEXT:     </dict>
4432// CHECK-NEXT:     <dict>
4433// CHECK-NEXT:      <key>kind</key><string>event</string>
4434// CHECK-NEXT:      <key>location</key>
4435// CHECK-NEXT:      <dict>
4436// CHECK-NEXT:       <key>line</key><integer>262</integer>
4437// CHECK-NEXT:       <key>col</key><integer>20</integer>
4438// CHECK-NEXT:       <key>file</key><integer>0</integer>
4439// CHECK-NEXT:      </dict>
4440// CHECK-NEXT:      <key>ranges</key>
4441// CHECK-NEXT:      <array>
4442// CHECK-NEXT:        <array>
4443// CHECK-NEXT:         <dict>
4444// CHECK-NEXT:          <key>line</key><integer>262</integer>
4445// CHECK-NEXT:          <key>col</key><integer>20</integer>
4446// CHECK-NEXT:          <key>file</key><integer>0</integer>
4447// CHECK-NEXT:         </dict>
4448// CHECK-NEXT:         <dict>
4449// CHECK-NEXT:          <key>line</key><integer>262</integer>
4450// CHECK-NEXT:          <key>col</key><integer>20</integer>
4451// CHECK-NEXT:          <key>file</key><integer>0</integer>
4452// CHECK-NEXT:         </dict>
4453// CHECK-NEXT:        </array>
4454// CHECK-NEXT:      </array>
4455// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4456// CHECK-NEXT:      <key>extended_message</key>
4457// 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>
4458// CHECK-NEXT:      <key>message</key>
4459// 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>
4460// CHECK-NEXT:     </dict>
4461// CHECK-NEXT:     <dict>
4462// CHECK-NEXT:      <key>kind</key><string>control</string>
4463// CHECK-NEXT:      <key>edges</key>
4464// CHECK-NEXT:       <array>
4465// CHECK-NEXT:        <dict>
4466// CHECK-NEXT:         <key>start</key>
4467// CHECK-NEXT:          <array>
4468// CHECK-NEXT:           <dict>
4469// CHECK-NEXT:            <key>line</key><integer>262</integer>
4470// CHECK-NEXT:            <key>col</key><integer>3</integer>
4471// CHECK-NEXT:            <key>file</key><integer>0</integer>
4472// CHECK-NEXT:           </dict>
4473// CHECK-NEXT:           <dict>
4474// CHECK-NEXT:            <key>line</key><integer>262</integer>
4475// CHECK-NEXT:            <key>col</key><integer>18</integer>
4476// CHECK-NEXT:            <key>file</key><integer>0</integer>
4477// CHECK-NEXT:           </dict>
4478// CHECK-NEXT:          </array>
4479// CHECK-NEXT:         <key>end</key>
4480// CHECK-NEXT:          <array>
4481// CHECK-NEXT:           <dict>
4482// CHECK-NEXT:            <key>line</key><integer>263</integer>
4483// CHECK-NEXT:            <key>col</key><integer>3</integer>
4484// CHECK-NEXT:            <key>file</key><integer>0</integer>
4485// CHECK-NEXT:           </dict>
4486// CHECK-NEXT:           <dict>
4487// CHECK-NEXT:            <key>line</key><integer>263</integer>
4488// CHECK-NEXT:            <key>col</key><integer>25</integer>
4489// CHECK-NEXT:            <key>file</key><integer>0</integer>
4490// CHECK-NEXT:           </dict>
4491// CHECK-NEXT:          </array>
4492// CHECK-NEXT:        </dict>
4493// CHECK-NEXT:       </array>
4494// CHECK-NEXT:     </dict>
4495// CHECK-NEXT:     <dict>
4496// CHECK-NEXT:      <key>kind</key><string>control</string>
4497// CHECK-NEXT:      <key>edges</key>
4498// CHECK-NEXT:       <array>
4499// CHECK-NEXT:        <dict>
4500// CHECK-NEXT:         <key>start</key>
4501// CHECK-NEXT:          <array>
4502// CHECK-NEXT:           <dict>
4503// CHECK-NEXT:            <key>line</key><integer>263</integer>
4504// CHECK-NEXT:            <key>col</key><integer>3</integer>
4505// CHECK-NEXT:            <key>file</key><integer>0</integer>
4506// CHECK-NEXT:           </dict>
4507// CHECK-NEXT:           <dict>
4508// CHECK-NEXT:            <key>line</key><integer>263</integer>
4509// CHECK-NEXT:            <key>col</key><integer>25</integer>
4510// CHECK-NEXT:            <key>file</key><integer>0</integer>
4511// CHECK-NEXT:           </dict>
4512// CHECK-NEXT:          </array>
4513// CHECK-NEXT:         <key>end</key>
4514// CHECK-NEXT:          <array>
4515// CHECK-NEXT:           <dict>
4516// CHECK-NEXT:            <key>line</key><integer>263</integer>
4517// CHECK-NEXT:            <key>col</key><integer>27</integer>
4518// CHECK-NEXT:            <key>file</key><integer>0</integer>
4519// CHECK-NEXT:           </dict>
4520// CHECK-NEXT:           <dict>
4521// CHECK-NEXT:            <key>line</key><integer>263</integer>
4522// CHECK-NEXT:            <key>col</key><integer>27</integer>
4523// CHECK-NEXT:            <key>file</key><integer>0</integer>
4524// CHECK-NEXT:           </dict>
4525// CHECK-NEXT:          </array>
4526// CHECK-NEXT:        </dict>
4527// CHECK-NEXT:       </array>
4528// CHECK-NEXT:     </dict>
4529// CHECK-NEXT:     <dict>
4530// CHECK-NEXT:      <key>kind</key><string>event</string>
4531// CHECK-NEXT:      <key>location</key>
4532// CHECK-NEXT:      <dict>
4533// CHECK-NEXT:       <key>line</key><integer>263</integer>
4534// CHECK-NEXT:       <key>col</key><integer>27</integer>
4535// CHECK-NEXT:       <key>file</key><integer>0</integer>
4536// CHECK-NEXT:      </dict>
4537// CHECK-NEXT:      <key>ranges</key>
4538// CHECK-NEXT:      <array>
4539// CHECK-NEXT:        <array>
4540// CHECK-NEXT:         <dict>
4541// CHECK-NEXT:          <key>line</key><integer>263</integer>
4542// CHECK-NEXT:          <key>col</key><integer>27</integer>
4543// CHECK-NEXT:          <key>file</key><integer>0</integer>
4544// CHECK-NEXT:         </dict>
4545// CHECK-NEXT:         <dict>
4546// CHECK-NEXT:          <key>line</key><integer>263</integer>
4547// CHECK-NEXT:          <key>col</key><integer>27</integer>
4548// CHECK-NEXT:          <key>file</key><integer>0</integer>
4549// CHECK-NEXT:         </dict>
4550// CHECK-NEXT:        </array>
4551// CHECK-NEXT:      </array>
4552// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4553// CHECK-NEXT:      <key>extended_message</key>
4554// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4555// CHECK-NEXT:      <key>message</key>
4556// CHECK-NEXT:      <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4557// CHECK-NEXT:     </dict>
4558// CHECK-NEXT:    </array>
4559// 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>
4560// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
4561// CHECK-NEXT:    <key>type</key><string>Generics</string>
4562// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
4563// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4564// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>fb867af384c612fe5c09f821127eeaf0</string>
4565// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4566// CHECK-NEXT:   <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes4</string>
4567// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
4568// CHECK-NEXT:   <key>location</key>
4569// CHECK-NEXT:   <dict>
4570// CHECK-NEXT:    <key>line</key><integer>263</integer>
4571// CHECK-NEXT:    <key>col</key><integer>27</integer>
4572// CHECK-NEXT:    <key>file</key><integer>0</integer>
4573// CHECK-NEXT:   </dict>
4574// CHECK-NEXT:   </dict>
4575// CHECK-NEXT:   <dict>
4576// CHECK-NEXT:    <key>path</key>
4577// CHECK-NEXT:    <array>
4578// CHECK-NEXT:     <dict>
4579// CHECK-NEXT:      <key>kind</key><string>control</string>
4580// CHECK-NEXT:      <key>edges</key>
4581// CHECK-NEXT:       <array>
4582// CHECK-NEXT:        <dict>
4583// CHECK-NEXT:         <key>start</key>
4584// CHECK-NEXT:          <array>
4585// CHECK-NEXT:           <dict>
4586// CHECK-NEXT:            <key>line</key><integer>275</integer>
4587// CHECK-NEXT:            <key>col</key><integer>3</integer>
4588// CHECK-NEXT:            <key>file</key><integer>0</integer>
4589// CHECK-NEXT:           </dict>
4590// CHECK-NEXT:           <dict>
4591// CHECK-NEXT:            <key>line</key><integer>275</integer>
4592// CHECK-NEXT:            <key>col</key><integer>9</integer>
4593// CHECK-NEXT:            <key>file</key><integer>0</integer>
4594// CHECK-NEXT:           </dict>
4595// CHECK-NEXT:          </array>
4596// CHECK-NEXT:         <key>end</key>
4597// CHECK-NEXT:          <array>
4598// CHECK-NEXT:           <dict>
4599// CHECK-NEXT:            <key>line</key><integer>276</integer>
4600// CHECK-NEXT:            <key>col</key><integer>3</integer>
4601// CHECK-NEXT:            <key>file</key><integer>0</integer>
4602// CHECK-NEXT:           </dict>
4603// CHECK-NEXT:           <dict>
4604// CHECK-NEXT:            <key>line</key><integer>276</integer>
4605// CHECK-NEXT:            <key>col</key><integer>10</integer>
4606// CHECK-NEXT:            <key>file</key><integer>0</integer>
4607// CHECK-NEXT:           </dict>
4608// CHECK-NEXT:          </array>
4609// CHECK-NEXT:        </dict>
4610// CHECK-NEXT:       </array>
4611// CHECK-NEXT:     </dict>
4612// CHECK-NEXT:     <dict>
4613// CHECK-NEXT:      <key>kind</key><string>control</string>
4614// CHECK-NEXT:      <key>edges</key>
4615// CHECK-NEXT:       <array>
4616// CHECK-NEXT:        <dict>
4617// CHECK-NEXT:         <key>start</key>
4618// CHECK-NEXT:          <array>
4619// CHECK-NEXT:           <dict>
4620// CHECK-NEXT:            <key>line</key><integer>276</integer>
4621// CHECK-NEXT:            <key>col</key><integer>3</integer>
4622// CHECK-NEXT:            <key>file</key><integer>0</integer>
4623// CHECK-NEXT:           </dict>
4624// CHECK-NEXT:           <dict>
4625// CHECK-NEXT:            <key>line</key><integer>276</integer>
4626// CHECK-NEXT:            <key>col</key><integer>10</integer>
4627// CHECK-NEXT:            <key>file</key><integer>0</integer>
4628// CHECK-NEXT:           </dict>
4629// CHECK-NEXT:          </array>
4630// CHECK-NEXT:         <key>end</key>
4631// CHECK-NEXT:          <array>
4632// CHECK-NEXT:           <dict>
4633// CHECK-NEXT:            <key>line</key><integer>276</integer>
4634// CHECK-NEXT:            <key>col</key><integer>19</integer>
4635// CHECK-NEXT:            <key>file</key><integer>0</integer>
4636// CHECK-NEXT:           </dict>
4637// CHECK-NEXT:           <dict>
4638// CHECK-NEXT:            <key>line</key><integer>276</integer>
4639// CHECK-NEXT:            <key>col</key><integer>19</integer>
4640// CHECK-NEXT:            <key>file</key><integer>0</integer>
4641// CHECK-NEXT:           </dict>
4642// CHECK-NEXT:          </array>
4643// CHECK-NEXT:        </dict>
4644// CHECK-NEXT:       </array>
4645// CHECK-NEXT:     </dict>
4646// CHECK-NEXT:     <dict>
4647// CHECK-NEXT:      <key>kind</key><string>event</string>
4648// CHECK-NEXT:      <key>location</key>
4649// CHECK-NEXT:      <dict>
4650// CHECK-NEXT:       <key>line</key><integer>276</integer>
4651// CHECK-NEXT:       <key>col</key><integer>19</integer>
4652// CHECK-NEXT:       <key>file</key><integer>0</integer>
4653// CHECK-NEXT:      </dict>
4654// CHECK-NEXT:      <key>ranges</key>
4655// CHECK-NEXT:      <array>
4656// CHECK-NEXT:        <array>
4657// CHECK-NEXT:         <dict>
4658// CHECK-NEXT:          <key>line</key><integer>276</integer>
4659// CHECK-NEXT:          <key>col</key><integer>19</integer>
4660// CHECK-NEXT:          <key>file</key><integer>0</integer>
4661// CHECK-NEXT:         </dict>
4662// CHECK-NEXT:         <dict>
4663// CHECK-NEXT:          <key>line</key><integer>276</integer>
4664// CHECK-NEXT:          <key>col</key><integer>38</integer>
4665// CHECK-NEXT:          <key>file</key><integer>0</integer>
4666// CHECK-NEXT:         </dict>
4667// CHECK-NEXT:        </array>
4668// CHECK-NEXT:      </array>
4669// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4670// CHECK-NEXT:      <key>extended_message</key>
4671// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4672// CHECK-NEXT:      <key>message</key>
4673// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4674// CHECK-NEXT:     </dict>
4675// CHECK-NEXT:     <dict>
4676// CHECK-NEXT:      <key>kind</key><string>event</string>
4677// CHECK-NEXT:      <key>location</key>
4678// CHECK-NEXT:      <dict>
4679// CHECK-NEXT:       <key>line</key><integer>276</integer>
4680// CHECK-NEXT:       <key>col</key><integer>19</integer>
4681// CHECK-NEXT:       <key>file</key><integer>0</integer>
4682// CHECK-NEXT:      </dict>
4683// CHECK-NEXT:      <key>ranges</key>
4684// CHECK-NEXT:      <array>
4685// CHECK-NEXT:        <array>
4686// CHECK-NEXT:         <dict>
4687// CHECK-NEXT:          <key>line</key><integer>276</integer>
4688// CHECK-NEXT:          <key>col</key><integer>19</integer>
4689// CHECK-NEXT:          <key>file</key><integer>0</integer>
4690// CHECK-NEXT:         </dict>
4691// CHECK-NEXT:         <dict>
4692// CHECK-NEXT:          <key>line</key><integer>276</integer>
4693// CHECK-NEXT:          <key>col</key><integer>38</integer>
4694// CHECK-NEXT:          <key>file</key><integer>0</integer>
4695// CHECK-NEXT:         </dict>
4696// CHECK-NEXT:        </array>
4697// CHECK-NEXT:      </array>
4698// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4699// CHECK-NEXT:      <key>extended_message</key>
4700// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4701// CHECK-NEXT:      <key>message</key>
4702// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4703// CHECK-NEXT:     </dict>
4704// CHECK-NEXT:    </array>
4705// CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4706// CHECK-NEXT:    <key>category</key><string>Type Error</string>
4707// CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
4708// CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4709// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4710// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>2e9f738345d9fa7dae2324ff7accd1ae</string>
4711// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4712// CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
4713// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
4714// CHECK-NEXT:   <key>location</key>
4715// CHECK-NEXT:   <dict>
4716// CHECK-NEXT:    <key>line</key><integer>276</integer>
4717// CHECK-NEXT:    <key>col</key><integer>19</integer>
4718// CHECK-NEXT:    <key>file</key><integer>0</integer>
4719// CHECK-NEXT:   </dict>
4720// CHECK-NEXT:   </dict>
4721// CHECK-NEXT:   <dict>
4722// CHECK-NEXT:    <key>path</key>
4723// CHECK-NEXT:    <array>
4724// CHECK-NEXT:     <dict>
4725// CHECK-NEXT:      <key>kind</key><string>control</string>
4726// CHECK-NEXT:      <key>edges</key>
4727// CHECK-NEXT:       <array>
4728// CHECK-NEXT:        <dict>
4729// CHECK-NEXT:         <key>start</key>
4730// CHECK-NEXT:          <array>
4731// CHECK-NEXT:           <dict>
4732// CHECK-NEXT:            <key>line</key><integer>275</integer>
4733// CHECK-NEXT:            <key>col</key><integer>3</integer>
4734// CHECK-NEXT:            <key>file</key><integer>0</integer>
4735// CHECK-NEXT:           </dict>
4736// CHECK-NEXT:           <dict>
4737// CHECK-NEXT:            <key>line</key><integer>275</integer>
4738// CHECK-NEXT:            <key>col</key><integer>9</integer>
4739// CHECK-NEXT:            <key>file</key><integer>0</integer>
4740// CHECK-NEXT:           </dict>
4741// CHECK-NEXT:          </array>
4742// CHECK-NEXT:         <key>end</key>
4743// CHECK-NEXT:          <array>
4744// CHECK-NEXT:           <dict>
4745// CHECK-NEXT:            <key>line</key><integer>278</integer>
4746// CHECK-NEXT:            <key>col</key><integer>3</integer>
4747// CHECK-NEXT:            <key>file</key><integer>0</integer>
4748// CHECK-NEXT:           </dict>
4749// CHECK-NEXT:           <dict>
4750// CHECK-NEXT:            <key>line</key><integer>278</integer>
4751// CHECK-NEXT:            <key>col</key><integer>5</integer>
4752// CHECK-NEXT:            <key>file</key><integer>0</integer>
4753// CHECK-NEXT:           </dict>
4754// CHECK-NEXT:          </array>
4755// CHECK-NEXT:        </dict>
4756// CHECK-NEXT:       </array>
4757// CHECK-NEXT:     </dict>
4758// CHECK-NEXT:     <dict>
4759// CHECK-NEXT:      <key>kind</key><string>control</string>
4760// CHECK-NEXT:      <key>edges</key>
4761// CHECK-NEXT:       <array>
4762// CHECK-NEXT:        <dict>
4763// CHECK-NEXT:         <key>start</key>
4764// CHECK-NEXT:          <array>
4765// CHECK-NEXT:           <dict>
4766// CHECK-NEXT:            <key>line</key><integer>278</integer>
4767// CHECK-NEXT:            <key>col</key><integer>3</integer>
4768// CHECK-NEXT:            <key>file</key><integer>0</integer>
4769// CHECK-NEXT:           </dict>
4770// CHECK-NEXT:           <dict>
4771// CHECK-NEXT:            <key>line</key><integer>278</integer>
4772// CHECK-NEXT:            <key>col</key><integer>5</integer>
4773// CHECK-NEXT:            <key>file</key><integer>0</integer>
4774// CHECK-NEXT:           </dict>
4775// CHECK-NEXT:          </array>
4776// CHECK-NEXT:         <key>end</key>
4777// CHECK-NEXT:          <array>
4778// CHECK-NEXT:           <dict>
4779// CHECK-NEXT:            <key>line</key><integer>278</integer>
4780// CHECK-NEXT:            <key>col</key><integer>9</integer>
4781// CHECK-NEXT:            <key>file</key><integer>0</integer>
4782// CHECK-NEXT:           </dict>
4783// CHECK-NEXT:           <dict>
4784// CHECK-NEXT:            <key>line</key><integer>278</integer>
4785// CHECK-NEXT:            <key>col</key><integer>9</integer>
4786// CHECK-NEXT:            <key>file</key><integer>0</integer>
4787// CHECK-NEXT:           </dict>
4788// CHECK-NEXT:          </array>
4789// CHECK-NEXT:        </dict>
4790// CHECK-NEXT:       </array>
4791// CHECK-NEXT:     </dict>
4792// CHECK-NEXT:     <dict>
4793// CHECK-NEXT:      <key>kind</key><string>event</string>
4794// CHECK-NEXT:      <key>location</key>
4795// CHECK-NEXT:      <dict>
4796// CHECK-NEXT:       <key>line</key><integer>278</integer>
4797// CHECK-NEXT:       <key>col</key><integer>9</integer>
4798// CHECK-NEXT:       <key>file</key><integer>0</integer>
4799// CHECK-NEXT:      </dict>
4800// CHECK-NEXT:      <key>ranges</key>
4801// CHECK-NEXT:      <array>
4802// CHECK-NEXT:        <array>
4803// CHECK-NEXT:         <dict>
4804// CHECK-NEXT:          <key>line</key><integer>278</integer>
4805// CHECK-NEXT:          <key>col</key><integer>9</integer>
4806// CHECK-NEXT:          <key>file</key><integer>0</integer>
4807// CHECK-NEXT:         </dict>
4808// CHECK-NEXT:         <dict>
4809// CHECK-NEXT:          <key>line</key><integer>278</integer>
4810// CHECK-NEXT:          <key>col</key><integer>23</integer>
4811// CHECK-NEXT:          <key>file</key><integer>0</integer>
4812// CHECK-NEXT:         </dict>
4813// CHECK-NEXT:        </array>
4814// CHECK-NEXT:      </array>
4815// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4816// CHECK-NEXT:      <key>extended_message</key>
4817// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4818// CHECK-NEXT:      <key>message</key>
4819// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4820// CHECK-NEXT:     </dict>
4821// CHECK-NEXT:     <dict>
4822// CHECK-NEXT:      <key>kind</key><string>event</string>
4823// CHECK-NEXT:      <key>location</key>
4824// CHECK-NEXT:      <dict>
4825// CHECK-NEXT:       <key>line</key><integer>278</integer>
4826// CHECK-NEXT:       <key>col</key><integer>9</integer>
4827// CHECK-NEXT:       <key>file</key><integer>0</integer>
4828// CHECK-NEXT:      </dict>
4829// CHECK-NEXT:      <key>ranges</key>
4830// CHECK-NEXT:      <array>
4831// CHECK-NEXT:        <array>
4832// CHECK-NEXT:         <dict>
4833// CHECK-NEXT:          <key>line</key><integer>278</integer>
4834// CHECK-NEXT:          <key>col</key><integer>9</integer>
4835// CHECK-NEXT:          <key>file</key><integer>0</integer>
4836// CHECK-NEXT:         </dict>
4837// CHECK-NEXT:         <dict>
4838// CHECK-NEXT:          <key>line</key><integer>278</integer>
4839// CHECK-NEXT:          <key>col</key><integer>23</integer>
4840// CHECK-NEXT:          <key>file</key><integer>0</integer>
4841// CHECK-NEXT:         </dict>
4842// CHECK-NEXT:        </array>
4843// CHECK-NEXT:      </array>
4844// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4845// CHECK-NEXT:      <key>extended_message</key>
4846// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4847// CHECK-NEXT:      <key>message</key>
4848// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4849// CHECK-NEXT:     </dict>
4850// CHECK-NEXT:    </array>
4851// CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4852// CHECK-NEXT:    <key>category</key><string>Type Error</string>
4853// CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
4854// CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4855// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
4856// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d85392b4efadf710b8da65a043a65e24</string>
4857// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
4858// CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
4859// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
4860// CHECK-NEXT:   <key>location</key>
4861// CHECK-NEXT:   <dict>
4862// CHECK-NEXT:    <key>line</key><integer>278</integer>
4863// CHECK-NEXT:    <key>col</key><integer>9</integer>
4864// CHECK-NEXT:    <key>file</key><integer>0</integer>
4865// CHECK-NEXT:   </dict>
4866// CHECK-NEXT:   </dict>
4867// CHECK-NEXT:   <dict>
4868// CHECK-NEXT:    <key>path</key>
4869// CHECK-NEXT:    <array>
4870// CHECK-NEXT:     <dict>
4871// CHECK-NEXT:      <key>kind</key><string>control</string>
4872// CHECK-NEXT:      <key>edges</key>
4873// CHECK-NEXT:       <array>
4874// CHECK-NEXT:        <dict>
4875// CHECK-NEXT:         <key>start</key>
4876// CHECK-NEXT:          <array>
4877// CHECK-NEXT:           <dict>
4878// CHECK-NEXT:            <key>line</key><integer>275</integer>
4879// CHECK-NEXT:            <key>col</key><integer>3</integer>
4880// CHECK-NEXT:            <key>file</key><integer>0</integer>
4881// CHECK-NEXT:           </dict>
4882// CHECK-NEXT:           <dict>
4883// CHECK-NEXT:            <key>line</key><integer>275</integer>
4884// CHECK-NEXT:            <key>col</key><integer>9</integer>
4885// CHECK-NEXT:            <key>file</key><integer>0</integer>
4886// CHECK-NEXT:           </dict>
4887// CHECK-NEXT:          </array>
4888// CHECK-NEXT:         <key>end</key>
4889// CHECK-NEXT:          <array>
4890// CHECK-NEXT:           <dict>
4891// CHECK-NEXT:            <key>line</key><integer>280</integer>
4892// CHECK-NEXT:            <key>col</key><integer>3</integer>
4893// CHECK-NEXT:            <key>file</key><integer>0</integer>
4894// CHECK-NEXT:           </dict>
4895// CHECK-NEXT:           <dict>
4896// CHECK-NEXT:            <key>line</key><integer>280</integer>
4897// CHECK-NEXT:            <key>col</key><integer>5</integer>
4898// CHECK-NEXT:            <key>file</key><integer>0</integer>
4899// CHECK-NEXT:           </dict>
4900// CHECK-NEXT:          </array>
4901// CHECK-NEXT:        </dict>
4902// CHECK-NEXT:       </array>
4903// CHECK-NEXT:     </dict>
4904// CHECK-NEXT:     <dict>
4905// CHECK-NEXT:      <key>kind</key><string>control</string>
4906// CHECK-NEXT:      <key>edges</key>
4907// CHECK-NEXT:       <array>
4908// CHECK-NEXT:        <dict>
4909// CHECK-NEXT:         <key>start</key>
4910// CHECK-NEXT:          <array>
4911// CHECK-NEXT:           <dict>
4912// CHECK-NEXT:            <key>line</key><integer>280</integer>
4913// CHECK-NEXT:            <key>col</key><integer>3</integer>
4914// CHECK-NEXT:            <key>file</key><integer>0</integer>
4915// CHECK-NEXT:           </dict>
4916// CHECK-NEXT:           <dict>
4917// CHECK-NEXT:            <key>line</key><integer>280</integer>
4918// CHECK-NEXT:            <key>col</key><integer>5</integer>
4919// CHECK-NEXT:            <key>file</key><integer>0</integer>
4920// CHECK-NEXT:           </dict>
4921// CHECK-NEXT:          </array>
4922// CHECK-NEXT:         <key>end</key>
4923// CHECK-NEXT:          <array>
4924// CHECK-NEXT:           <dict>
4925// CHECK-NEXT:            <key>line</key><integer>280</integer>
4926// CHECK-NEXT:            <key>col</key><integer>11</integer>
4927// CHECK-NEXT:            <key>file</key><integer>0</integer>
4928// CHECK-NEXT:           </dict>
4929// CHECK-NEXT:           <dict>
4930// CHECK-NEXT:            <key>line</key><integer>280</integer>
4931// CHECK-NEXT:            <key>col</key><integer>21</integer>
4932// CHECK-NEXT:            <key>file</key><integer>0</integer>
4933// CHECK-NEXT:           </dict>
4934// CHECK-NEXT:          </array>
4935// CHECK-NEXT:        </dict>
4936// CHECK-NEXT:       </array>
4937// CHECK-NEXT:     </dict>
4938// CHECK-NEXT:     <dict>
4939// CHECK-NEXT:      <key>kind</key><string>event</string>
4940// CHECK-NEXT:      <key>location</key>
4941// CHECK-NEXT:      <dict>
4942// CHECK-NEXT:       <key>line</key><integer>280</integer>
4943// CHECK-NEXT:       <key>col</key><integer>11</integer>
4944// CHECK-NEXT:       <key>file</key><integer>0</integer>
4945// CHECK-NEXT:      </dict>
4946// CHECK-NEXT:      <key>ranges</key>
4947// CHECK-NEXT:      <array>
4948// CHECK-NEXT:        <array>
4949// CHECK-NEXT:         <dict>
4950// CHECK-NEXT:          <key>line</key><integer>280</integer>
4951// CHECK-NEXT:          <key>col</key><integer>11</integer>
4952// CHECK-NEXT:          <key>file</key><integer>0</integer>
4953// CHECK-NEXT:         </dict>
4954// CHECK-NEXT:         <dict>
4955// CHECK-NEXT:          <key>line</key><integer>280</integer>
4956// CHECK-NEXT:          <key>col</key><integer>21</integer>
4957// CHECK-NEXT:          <key>file</key><integer>0</integer>
4958// CHECK-NEXT:         </dict>
4959// CHECK-NEXT:        </array>
4960// CHECK-NEXT:      </array>
4961// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4962// CHECK-NEXT:      <key>extended_message</key>
4963// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4964// CHECK-NEXT:      <key>message</key>
4965// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4966// CHECK-NEXT:     </dict>
4967// CHECK-NEXT:     <dict>
4968// CHECK-NEXT:      <key>kind</key><string>event</string>
4969// CHECK-NEXT:      <key>location</key>
4970// CHECK-NEXT:      <dict>
4971// CHECK-NEXT:       <key>line</key><integer>280</integer>
4972// CHECK-NEXT:       <key>col</key><integer>9</integer>
4973// CHECK-NEXT:       <key>file</key><integer>0</integer>
4974// CHECK-NEXT:      </dict>
4975// CHECK-NEXT:      <key>ranges</key>
4976// CHECK-NEXT:      <array>
4977// CHECK-NEXT:        <array>
4978// CHECK-NEXT:         <dict>
4979// CHECK-NEXT:          <key>line</key><integer>280</integer>
4980// CHECK-NEXT:          <key>col</key><integer>9</integer>
4981// CHECK-NEXT:          <key>file</key><integer>0</integer>
4982// CHECK-NEXT:         </dict>
4983// CHECK-NEXT:         <dict>
4984// CHECK-NEXT:          <key>line</key><integer>280</integer>
4985// CHECK-NEXT:          <key>col</key><integer>21</integer>
4986// CHECK-NEXT:          <key>file</key><integer>0</integer>
4987// CHECK-NEXT:         </dict>
4988// CHECK-NEXT:        </array>
4989// CHECK-NEXT:      </array>
4990// CHECK-NEXT:      <key>depth</key><integer>0</integer>
4991// CHECK-NEXT:      <key>extended_message</key>
4992// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4993// CHECK-NEXT:      <key>message</key>
4994// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4995// CHECK-NEXT:     </dict>
4996// CHECK-NEXT:    </array>
4997// CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4998// CHECK-NEXT:    <key>category</key><string>Type Error</string>
4999// CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
5000// CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
5001// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5002// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>456c6227549a5e577088c9dce4cea452</string>
5003// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5004// CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
5005// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>6</string>
5006// CHECK-NEXT:   <key>location</key>
5007// CHECK-NEXT:   <dict>
5008// CHECK-NEXT:    <key>line</key><integer>280</integer>
5009// CHECK-NEXT:    <key>col</key><integer>9</integer>
5010// CHECK-NEXT:    <key>file</key><integer>0</integer>
5011// CHECK-NEXT:   </dict>
5012// CHECK-NEXT:   </dict>
5013// CHECK-NEXT:   <dict>
5014// CHECK-NEXT:    <key>path</key>
5015// CHECK-NEXT:    <array>
5016// CHECK-NEXT:     <dict>
5017// CHECK-NEXT:      <key>kind</key><string>control</string>
5018// CHECK-NEXT:      <key>edges</key>
5019// CHECK-NEXT:       <array>
5020// CHECK-NEXT:        <dict>
5021// CHECK-NEXT:         <key>start</key>
5022// CHECK-NEXT:          <array>
5023// CHECK-NEXT:           <dict>
5024// CHECK-NEXT:            <key>line</key><integer>275</integer>
5025// CHECK-NEXT:            <key>col</key><integer>3</integer>
5026// CHECK-NEXT:            <key>file</key><integer>0</integer>
5027// CHECK-NEXT:           </dict>
5028// CHECK-NEXT:           <dict>
5029// CHECK-NEXT:            <key>line</key><integer>275</integer>
5030// CHECK-NEXT:            <key>col</key><integer>9</integer>
5031// CHECK-NEXT:            <key>file</key><integer>0</integer>
5032// CHECK-NEXT:           </dict>
5033// CHECK-NEXT:          </array>
5034// CHECK-NEXT:         <key>end</key>
5035// CHECK-NEXT:          <array>
5036// CHECK-NEXT:           <dict>
5037// CHECK-NEXT:            <key>line</key><integer>282</integer>
5038// CHECK-NEXT:            <key>col</key><integer>3</integer>
5039// CHECK-NEXT:            <key>file</key><integer>0</integer>
5040// CHECK-NEXT:           </dict>
5041// CHECK-NEXT:           <dict>
5042// CHECK-NEXT:            <key>line</key><integer>282</integer>
5043// CHECK-NEXT:            <key>col</key><integer>5</integer>
5044// CHECK-NEXT:            <key>file</key><integer>0</integer>
5045// CHECK-NEXT:           </dict>
5046// CHECK-NEXT:          </array>
5047// CHECK-NEXT:        </dict>
5048// CHECK-NEXT:       </array>
5049// CHECK-NEXT:     </dict>
5050// CHECK-NEXT:     <dict>
5051// CHECK-NEXT:      <key>kind</key><string>control</string>
5052// CHECK-NEXT:      <key>edges</key>
5053// CHECK-NEXT:       <array>
5054// CHECK-NEXT:        <dict>
5055// CHECK-NEXT:         <key>start</key>
5056// CHECK-NEXT:          <array>
5057// CHECK-NEXT:           <dict>
5058// CHECK-NEXT:            <key>line</key><integer>282</integer>
5059// CHECK-NEXT:            <key>col</key><integer>3</integer>
5060// CHECK-NEXT:            <key>file</key><integer>0</integer>
5061// CHECK-NEXT:           </dict>
5062// CHECK-NEXT:           <dict>
5063// CHECK-NEXT:            <key>line</key><integer>282</integer>
5064// CHECK-NEXT:            <key>col</key><integer>5</integer>
5065// CHECK-NEXT:            <key>file</key><integer>0</integer>
5066// CHECK-NEXT:           </dict>
5067// CHECK-NEXT:          </array>
5068// CHECK-NEXT:         <key>end</key>
5069// CHECK-NEXT:          <array>
5070// CHECK-NEXT:           <dict>
5071// CHECK-NEXT:            <key>line</key><integer>282</integer>
5072// CHECK-NEXT:            <key>col</key><integer>9</integer>
5073// CHECK-NEXT:            <key>file</key><integer>0</integer>
5074// CHECK-NEXT:           </dict>
5075// CHECK-NEXT:           <dict>
5076// CHECK-NEXT:            <key>line</key><integer>282</integer>
5077// CHECK-NEXT:            <key>col</key><integer>9</integer>
5078// CHECK-NEXT:            <key>file</key><integer>0</integer>
5079// CHECK-NEXT:           </dict>
5080// CHECK-NEXT:          </array>
5081// CHECK-NEXT:        </dict>
5082// CHECK-NEXT:       </array>
5083// CHECK-NEXT:     </dict>
5084// CHECK-NEXT:     <dict>
5085// CHECK-NEXT:      <key>kind</key><string>event</string>
5086// CHECK-NEXT:      <key>location</key>
5087// CHECK-NEXT:      <dict>
5088// CHECK-NEXT:       <key>line</key><integer>282</integer>
5089// CHECK-NEXT:       <key>col</key><integer>9</integer>
5090// CHECK-NEXT:       <key>file</key><integer>0</integer>
5091// CHECK-NEXT:      </dict>
5092// CHECK-NEXT:      <key>ranges</key>
5093// CHECK-NEXT:      <array>
5094// CHECK-NEXT:        <array>
5095// CHECK-NEXT:         <dict>
5096// CHECK-NEXT:          <key>line</key><integer>282</integer>
5097// CHECK-NEXT:          <key>col</key><integer>9</integer>
5098// CHECK-NEXT:          <key>file</key><integer>0</integer>
5099// CHECK-NEXT:         </dict>
5100// CHECK-NEXT:         <dict>
5101// CHECK-NEXT:          <key>line</key><integer>282</integer>
5102// CHECK-NEXT:          <key>col</key><integer>9</integer>
5103// CHECK-NEXT:          <key>file</key><integer>0</integer>
5104// CHECK-NEXT:         </dict>
5105// CHECK-NEXT:        </array>
5106// CHECK-NEXT:      </array>
5107// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5108// CHECK-NEXT:      <key>extended_message</key>
5109// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5110// CHECK-NEXT:      <key>message</key>
5111// CHECK-NEXT:      <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5112// CHECK-NEXT:     </dict>
5113// CHECK-NEXT:     <dict>
5114// CHECK-NEXT:      <key>kind</key><string>event</string>
5115// CHECK-NEXT:      <key>location</key>
5116// CHECK-NEXT:      <dict>
5117// CHECK-NEXT:       <key>line</key><integer>282</integer>
5118// CHECK-NEXT:       <key>col</key><integer>9</integer>
5119// CHECK-NEXT:       <key>file</key><integer>0</integer>
5120// CHECK-NEXT:      </dict>
5121// CHECK-NEXT:      <key>ranges</key>
5122// CHECK-NEXT:      <array>
5123// CHECK-NEXT:        <array>
5124// CHECK-NEXT:         <dict>
5125// CHECK-NEXT:          <key>line</key><integer>282</integer>
5126// CHECK-NEXT:          <key>col</key><integer>9</integer>
5127// CHECK-NEXT:          <key>file</key><integer>0</integer>
5128// CHECK-NEXT:         </dict>
5129// CHECK-NEXT:         <dict>
5130// CHECK-NEXT:          <key>line</key><integer>282</integer>
5131// CHECK-NEXT:          <key>col</key><integer>12</integer>
5132// CHECK-NEXT:          <key>file</key><integer>0</integer>
5133// CHECK-NEXT:         </dict>
5134// CHECK-NEXT:        </array>
5135// CHECK-NEXT:      </array>
5136// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5137// CHECK-NEXT:      <key>extended_message</key>
5138// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5139// CHECK-NEXT:      <key>message</key>
5140// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5141// CHECK-NEXT:     </dict>
5142// CHECK-NEXT:    </array>
5143// CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5144// CHECK-NEXT:    <key>category</key><string>Type Error</string>
5145// CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
5146// CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
5147// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5148// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>df7f090d2b72ac07bc2351177ed6552d</string>
5149// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5150// CHECK-NEXT:   <key>issue_context</key><string>workWithProperties</string>
5151// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>8</string>
5152// CHECK-NEXT:   <key>location</key>
5153// CHECK-NEXT:   <dict>
5154// CHECK-NEXT:    <key>line</key><integer>282</integer>
5155// CHECK-NEXT:    <key>col</key><integer>9</integer>
5156// CHECK-NEXT:    <key>file</key><integer>0</integer>
5157// CHECK-NEXT:   </dict>
5158// CHECK-NEXT:   </dict>
5159// CHECK-NEXT:   <dict>
5160// CHECK-NEXT:    <key>path</key>
5161// CHECK-NEXT:    <array>
5162// CHECK-NEXT:     <dict>
5163// CHECK-NEXT:      <key>kind</key><string>event</string>
5164// CHECK-NEXT:      <key>location</key>
5165// CHECK-NEXT:      <dict>
5166// CHECK-NEXT:       <key>line</key><integer>288</integer>
5167// CHECK-NEXT:       <key>col</key><integer>7</integer>
5168// CHECK-NEXT:       <key>file</key><integer>0</integer>
5169// CHECK-NEXT:      </dict>
5170// CHECK-NEXT:      <key>ranges</key>
5171// CHECK-NEXT:      <array>
5172// CHECK-NEXT:        <array>
5173// CHECK-NEXT:         <dict>
5174// CHECK-NEXT:          <key>line</key><integer>288</integer>
5175// CHECK-NEXT:          <key>col</key><integer>7</integer>
5176// CHECK-NEXT:          <key>file</key><integer>0</integer>
5177// CHECK-NEXT:         </dict>
5178// CHECK-NEXT:         <dict>
5179// CHECK-NEXT:          <key>line</key><integer>288</integer>
5180// CHECK-NEXT:          <key>col</key><integer>7</integer>
5181// CHECK-NEXT:          <key>file</key><integer>0</integer>
5182// CHECK-NEXT:         </dict>
5183// CHECK-NEXT:        </array>
5184// CHECK-NEXT:      </array>
5185// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5186// CHECK-NEXT:      <key>extended_message</key>
5187// 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>
5188// CHECK-NEXT:      <key>message</key>
5189// 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>
5190// CHECK-NEXT:     </dict>
5191// CHECK-NEXT:     <dict>
5192// CHECK-NEXT:      <key>kind</key><string>control</string>
5193// CHECK-NEXT:      <key>edges</key>
5194// CHECK-NEXT:       <array>
5195// CHECK-NEXT:        <dict>
5196// CHECK-NEXT:         <key>start</key>
5197// CHECK-NEXT:          <array>
5198// CHECK-NEXT:           <dict>
5199// CHECK-NEXT:            <key>line</key><integer>288</integer>
5200// CHECK-NEXT:            <key>col</key><integer>3</integer>
5201// CHECK-NEXT:            <key>file</key><integer>0</integer>
5202// CHECK-NEXT:           </dict>
5203// CHECK-NEXT:           <dict>
5204// CHECK-NEXT:            <key>line</key><integer>288</integer>
5205// CHECK-NEXT:            <key>col</key><integer>3</integer>
5206// CHECK-NEXT:            <key>file</key><integer>0</integer>
5207// CHECK-NEXT:           </dict>
5208// CHECK-NEXT:          </array>
5209// CHECK-NEXT:         <key>end</key>
5210// CHECK-NEXT:          <array>
5211// CHECK-NEXT:           <dict>
5212// CHECK-NEXT:            <key>line</key><integer>289</integer>
5213// CHECK-NEXT:            <key>col</key><integer>3</integer>
5214// CHECK-NEXT:            <key>file</key><integer>0</integer>
5215// CHECK-NEXT:           </dict>
5216// CHECK-NEXT:           <dict>
5217// CHECK-NEXT:            <key>line</key><integer>289</integer>
5218// CHECK-NEXT:            <key>col</key><integer>4</integer>
5219// CHECK-NEXT:            <key>file</key><integer>0</integer>
5220// CHECK-NEXT:           </dict>
5221// CHECK-NEXT:          </array>
5222// CHECK-NEXT:        </dict>
5223// CHECK-NEXT:       </array>
5224// CHECK-NEXT:     </dict>
5225// CHECK-NEXT:     <dict>
5226// CHECK-NEXT:      <key>kind</key><string>control</string>
5227// CHECK-NEXT:      <key>edges</key>
5228// CHECK-NEXT:       <array>
5229// CHECK-NEXT:        <dict>
5230// CHECK-NEXT:         <key>start</key>
5231// CHECK-NEXT:          <array>
5232// CHECK-NEXT:           <dict>
5233// CHECK-NEXT:            <key>line</key><integer>289</integer>
5234// CHECK-NEXT:            <key>col</key><integer>3</integer>
5235// CHECK-NEXT:            <key>file</key><integer>0</integer>
5236// CHECK-NEXT:           </dict>
5237// CHECK-NEXT:           <dict>
5238// CHECK-NEXT:            <key>line</key><integer>289</integer>
5239// CHECK-NEXT:            <key>col</key><integer>4</integer>
5240// CHECK-NEXT:            <key>file</key><integer>0</integer>
5241// CHECK-NEXT:           </dict>
5242// CHECK-NEXT:          </array>
5243// CHECK-NEXT:         <key>end</key>
5244// CHECK-NEXT:          <array>
5245// CHECK-NEXT:           <dict>
5246// CHECK-NEXT:            <key>line</key><integer>289</integer>
5247// CHECK-NEXT:            <key>col</key><integer>7</integer>
5248// CHECK-NEXT:            <key>file</key><integer>0</integer>
5249// CHECK-NEXT:           </dict>
5250// CHECK-NEXT:           <dict>
5251// CHECK-NEXT:            <key>line</key><integer>289</integer>
5252// CHECK-NEXT:            <key>col</key><integer>16</integer>
5253// CHECK-NEXT:            <key>file</key><integer>0</integer>
5254// CHECK-NEXT:           </dict>
5255// CHECK-NEXT:          </array>
5256// CHECK-NEXT:        </dict>
5257// CHECK-NEXT:       </array>
5258// CHECK-NEXT:     </dict>
5259// CHECK-NEXT:     <dict>
5260// CHECK-NEXT:      <key>kind</key><string>event</string>
5261// CHECK-NEXT:      <key>location</key>
5262// CHECK-NEXT:      <dict>
5263// CHECK-NEXT:       <key>line</key><integer>289</integer>
5264// CHECK-NEXT:       <key>col</key><integer>7</integer>
5265// CHECK-NEXT:       <key>file</key><integer>0</integer>
5266// CHECK-NEXT:      </dict>
5267// CHECK-NEXT:      <key>ranges</key>
5268// CHECK-NEXT:      <array>
5269// CHECK-NEXT:        <array>
5270// CHECK-NEXT:         <dict>
5271// CHECK-NEXT:          <key>line</key><integer>289</integer>
5272// CHECK-NEXT:          <key>col</key><integer>7</integer>
5273// CHECK-NEXT:          <key>file</key><integer>0</integer>
5274// CHECK-NEXT:         </dict>
5275// CHECK-NEXT:         <dict>
5276// CHECK-NEXT:          <key>line</key><integer>289</integer>
5277// CHECK-NEXT:          <key>col</key><integer>23</integer>
5278// CHECK-NEXT:          <key>file</key><integer>0</integer>
5279// CHECK-NEXT:         </dict>
5280// CHECK-NEXT:        </array>
5281// CHECK-NEXT:      </array>
5282// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5283// CHECK-NEXT:      <key>extended_message</key>
5284// CHECK-NEXT:      <string>Assuming the condition is true</string>
5285// CHECK-NEXT:      <key>message</key>
5286// CHECK-NEXT:      <string>Assuming the condition is true</string>
5287// CHECK-NEXT:     </dict>
5288// CHECK-NEXT:     <dict>
5289// CHECK-NEXT:      <key>kind</key><string>control</string>
5290// CHECK-NEXT:      <key>edges</key>
5291// CHECK-NEXT:       <array>
5292// CHECK-NEXT:        <dict>
5293// CHECK-NEXT:         <key>start</key>
5294// CHECK-NEXT:          <array>
5295// CHECK-NEXT:           <dict>
5296// CHECK-NEXT:            <key>line</key><integer>289</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:           <dict>
5301// CHECK-NEXT:            <key>line</key><integer>289</integer>
5302// CHECK-NEXT:            <key>col</key><integer>16</integer>
5303// CHECK-NEXT:            <key>file</key><integer>0</integer>
5304// CHECK-NEXT:           </dict>
5305// CHECK-NEXT:          </array>
5306// CHECK-NEXT:         <key>end</key>
5307// CHECK-NEXT:          <array>
5308// CHECK-NEXT:           <dict>
5309// CHECK-NEXT:            <key>line</key><integer>290</integer>
5310// CHECK-NEXT:            <key>col</key><integer>5</integer>
5311// CHECK-NEXT:            <key>file</key><integer>0</integer>
5312// CHECK-NEXT:           </dict>
5313// CHECK-NEXT:           <dict>
5314// CHECK-NEXT:            <key>line</key><integer>290</integer>
5315// CHECK-NEXT:            <key>col</key><integer>5</integer>
5316// CHECK-NEXT:            <key>file</key><integer>0</integer>
5317// CHECK-NEXT:           </dict>
5318// CHECK-NEXT:          </array>
5319// CHECK-NEXT:        </dict>
5320// CHECK-NEXT:       </array>
5321// CHECK-NEXT:     </dict>
5322// CHECK-NEXT:     <dict>
5323// CHECK-NEXT:      <key>kind</key><string>control</string>
5324// CHECK-NEXT:      <key>edges</key>
5325// CHECK-NEXT:       <array>
5326// CHECK-NEXT:        <dict>
5327// CHECK-NEXT:         <key>start</key>
5328// CHECK-NEXT:          <array>
5329// CHECK-NEXT:           <dict>
5330// CHECK-NEXT:            <key>line</key><integer>290</integer>
5331// CHECK-NEXT:            <key>col</key><integer>5</integer>
5332// CHECK-NEXT:            <key>file</key><integer>0</integer>
5333// CHECK-NEXT:           </dict>
5334// CHECK-NEXT:           <dict>
5335// CHECK-NEXT:            <key>line</key><integer>290</integer>
5336// CHECK-NEXT:            <key>col</key><integer>5</integer>
5337// CHECK-NEXT:            <key>file</key><integer>0</integer>
5338// CHECK-NEXT:           </dict>
5339// CHECK-NEXT:          </array>
5340// CHECK-NEXT:         <key>end</key>
5341// CHECK-NEXT:          <array>
5342// CHECK-NEXT:           <dict>
5343// CHECK-NEXT:            <key>line</key><integer>291</integer>
5344// CHECK-NEXT:            <key>col</key><integer>5</integer>
5345// CHECK-NEXT:            <key>file</key><integer>0</integer>
5346// CHECK-NEXT:           </dict>
5347// CHECK-NEXT:           <dict>
5348// CHECK-NEXT:            <key>line</key><integer>291</integer>
5349// CHECK-NEXT:            <key>col</key><integer>5</integer>
5350// CHECK-NEXT:            <key>file</key><integer>0</integer>
5351// CHECK-NEXT:           </dict>
5352// CHECK-NEXT:          </array>
5353// CHECK-NEXT:        </dict>
5354// CHECK-NEXT:       </array>
5355// CHECK-NEXT:     </dict>
5356// CHECK-NEXT:     <dict>
5357// CHECK-NEXT:      <key>kind</key><string>event</string>
5358// CHECK-NEXT:      <key>location</key>
5359// CHECK-NEXT:      <dict>
5360// CHECK-NEXT:       <key>line</key><integer>291</integer>
5361// CHECK-NEXT:       <key>col</key><integer>5</integer>
5362// CHECK-NEXT:       <key>file</key><integer>0</integer>
5363// CHECK-NEXT:      </dict>
5364// CHECK-NEXT:      <key>ranges</key>
5365// CHECK-NEXT:      <array>
5366// CHECK-NEXT:        <array>
5367// CHECK-NEXT:         <dict>
5368// CHECK-NEXT:          <key>line</key><integer>291</integer>
5369// CHECK-NEXT:          <key>col</key><integer>19</integer>
5370// CHECK-NEXT:          <key>file</key><integer>0</integer>
5371// CHECK-NEXT:         </dict>
5372// CHECK-NEXT:         <dict>
5373// CHECK-NEXT:          <key>line</key><integer>291</integer>
5374// CHECK-NEXT:          <key>col</key><integer>41</integer>
5375// CHECK-NEXT:          <key>file</key><integer>0</integer>
5376// CHECK-NEXT:         </dict>
5377// CHECK-NEXT:        </array>
5378// CHECK-NEXT:      </array>
5379// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5380// CHECK-NEXT:      <key>extended_message</key>
5381// CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5382// CHECK-NEXT:      <key>message</key>
5383// CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5384// CHECK-NEXT:     </dict>
5385// CHECK-NEXT:    </array>
5386// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5387// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5388// CHECK-NEXT:    <key>type</key><string>Generics</string>
5389// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5390// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5391// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>a0fa75143d7a7ac234292642a6d93360</string>
5392// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5393// CHECK-NEXT:   <key>issue_context</key><string>findMethodDeclInTrackedType</string>
5394// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>4</string>
5395// CHECK-NEXT:   <key>location</key>
5396// CHECK-NEXT:   <dict>
5397// CHECK-NEXT:    <key>line</key><integer>291</integer>
5398// CHECK-NEXT:    <key>col</key><integer>5</integer>
5399// CHECK-NEXT:    <key>file</key><integer>0</integer>
5400// CHECK-NEXT:   </dict>
5401// CHECK-NEXT:   </dict>
5402// CHECK-NEXT:   <dict>
5403// CHECK-NEXT:    <key>path</key>
5404// CHECK-NEXT:    <array>
5405// CHECK-NEXT:     <dict>
5406// CHECK-NEXT:      <key>kind</key><string>event</string>
5407// CHECK-NEXT:      <key>location</key>
5408// CHECK-NEXT:      <dict>
5409// CHECK-NEXT:       <key>line</key><integer>300</integer>
5410// CHECK-NEXT:       <key>col</key><integer>7</integer>
5411// CHECK-NEXT:       <key>file</key><integer>0</integer>
5412// CHECK-NEXT:      </dict>
5413// CHECK-NEXT:      <key>ranges</key>
5414// CHECK-NEXT:      <array>
5415// CHECK-NEXT:        <array>
5416// CHECK-NEXT:         <dict>
5417// CHECK-NEXT:          <key>line</key><integer>300</integer>
5418// CHECK-NEXT:          <key>col</key><integer>7</integer>
5419// CHECK-NEXT:          <key>file</key><integer>0</integer>
5420// CHECK-NEXT:         </dict>
5421// CHECK-NEXT:         <dict>
5422// CHECK-NEXT:          <key>line</key><integer>300</integer>
5423// CHECK-NEXT:          <key>col</key><integer>7</integer>
5424// CHECK-NEXT:          <key>file</key><integer>0</integer>
5425// CHECK-NEXT:         </dict>
5426// CHECK-NEXT:        </array>
5427// CHECK-NEXT:      </array>
5428// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5429// CHECK-NEXT:      <key>extended_message</key>
5430// 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>
5431// CHECK-NEXT:      <key>message</key>
5432// 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>
5433// CHECK-NEXT:     </dict>
5434// CHECK-NEXT:     <dict>
5435// CHECK-NEXT:      <key>kind</key><string>control</string>
5436// CHECK-NEXT:      <key>edges</key>
5437// CHECK-NEXT:       <array>
5438// CHECK-NEXT:        <dict>
5439// CHECK-NEXT:         <key>start</key>
5440// CHECK-NEXT:          <array>
5441// CHECK-NEXT:           <dict>
5442// CHECK-NEXT:            <key>line</key><integer>300</integer>
5443// CHECK-NEXT:            <key>col</key><integer>3</integer>
5444// CHECK-NEXT:            <key>file</key><integer>0</integer>
5445// CHECK-NEXT:           </dict>
5446// CHECK-NEXT:           <dict>
5447// CHECK-NEXT:            <key>line</key><integer>300</integer>
5448// CHECK-NEXT:            <key>col</key><integer>3</integer>
5449// CHECK-NEXT:            <key>file</key><integer>0</integer>
5450// CHECK-NEXT:           </dict>
5451// CHECK-NEXT:          </array>
5452// CHECK-NEXT:         <key>end</key>
5453// CHECK-NEXT:          <array>
5454// CHECK-NEXT:           <dict>
5455// CHECK-NEXT:            <key>line</key><integer>301</integer>
5456// CHECK-NEXT:            <key>col</key><integer>3</integer>
5457// CHECK-NEXT:            <key>file</key><integer>0</integer>
5458// CHECK-NEXT:           </dict>
5459// CHECK-NEXT:           <dict>
5460// CHECK-NEXT:            <key>line</key><integer>301</integer>
5461// CHECK-NEXT:            <key>col</key><integer>4</integer>
5462// CHECK-NEXT:            <key>file</key><integer>0</integer>
5463// CHECK-NEXT:           </dict>
5464// CHECK-NEXT:          </array>
5465// CHECK-NEXT:        </dict>
5466// CHECK-NEXT:       </array>
5467// CHECK-NEXT:     </dict>
5468// CHECK-NEXT:     <dict>
5469// CHECK-NEXT:      <key>kind</key><string>control</string>
5470// CHECK-NEXT:      <key>edges</key>
5471// CHECK-NEXT:       <array>
5472// CHECK-NEXT:        <dict>
5473// CHECK-NEXT:         <key>start</key>
5474// CHECK-NEXT:          <array>
5475// CHECK-NEXT:           <dict>
5476// CHECK-NEXT:            <key>line</key><integer>301</integer>
5477// CHECK-NEXT:            <key>col</key><integer>3</integer>
5478// CHECK-NEXT:            <key>file</key><integer>0</integer>
5479// CHECK-NEXT:           </dict>
5480// CHECK-NEXT:           <dict>
5481// CHECK-NEXT:            <key>line</key><integer>301</integer>
5482// CHECK-NEXT:            <key>col</key><integer>4</integer>
5483// CHECK-NEXT:            <key>file</key><integer>0</integer>
5484// CHECK-NEXT:           </dict>
5485// CHECK-NEXT:          </array>
5486// CHECK-NEXT:         <key>end</key>
5487// CHECK-NEXT:          <array>
5488// CHECK-NEXT:           <dict>
5489// CHECK-NEXT:            <key>line</key><integer>301</integer>
5490// CHECK-NEXT:            <key>col</key><integer>7</integer>
5491// CHECK-NEXT:            <key>file</key><integer>0</integer>
5492// CHECK-NEXT:           </dict>
5493// CHECK-NEXT:           <dict>
5494// CHECK-NEXT:            <key>line</key><integer>301</integer>
5495// CHECK-NEXT:            <key>col</key><integer>16</integer>
5496// CHECK-NEXT:            <key>file</key><integer>0</integer>
5497// CHECK-NEXT:           </dict>
5498// CHECK-NEXT:          </array>
5499// CHECK-NEXT:        </dict>
5500// CHECK-NEXT:       </array>
5501// CHECK-NEXT:     </dict>
5502// CHECK-NEXT:     <dict>
5503// CHECK-NEXT:      <key>kind</key><string>event</string>
5504// CHECK-NEXT:      <key>location</key>
5505// CHECK-NEXT:      <dict>
5506// CHECK-NEXT:       <key>line</key><integer>301</integer>
5507// CHECK-NEXT:       <key>col</key><integer>7</integer>
5508// CHECK-NEXT:       <key>file</key><integer>0</integer>
5509// CHECK-NEXT:      </dict>
5510// CHECK-NEXT:      <key>ranges</key>
5511// CHECK-NEXT:      <array>
5512// CHECK-NEXT:        <array>
5513// CHECK-NEXT:         <dict>
5514// CHECK-NEXT:          <key>line</key><integer>301</integer>
5515// CHECK-NEXT:          <key>col</key><integer>7</integer>
5516// CHECK-NEXT:          <key>file</key><integer>0</integer>
5517// CHECK-NEXT:         </dict>
5518// CHECK-NEXT:         <dict>
5519// CHECK-NEXT:          <key>line</key><integer>301</integer>
5520// CHECK-NEXT:          <key>col</key><integer>23</integer>
5521// CHECK-NEXT:          <key>file</key><integer>0</integer>
5522// CHECK-NEXT:         </dict>
5523// CHECK-NEXT:        </array>
5524// CHECK-NEXT:      </array>
5525// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5526// CHECK-NEXT:      <key>extended_message</key>
5527// CHECK-NEXT:      <string>Assuming the condition is true</string>
5528// CHECK-NEXT:      <key>message</key>
5529// CHECK-NEXT:      <string>Assuming the condition is true</string>
5530// CHECK-NEXT:     </dict>
5531// CHECK-NEXT:     <dict>
5532// CHECK-NEXT:      <key>kind</key><string>control</string>
5533// CHECK-NEXT:      <key>edges</key>
5534// CHECK-NEXT:       <array>
5535// CHECK-NEXT:        <dict>
5536// CHECK-NEXT:         <key>start</key>
5537// CHECK-NEXT:          <array>
5538// CHECK-NEXT:           <dict>
5539// CHECK-NEXT:            <key>line</key><integer>301</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:           <dict>
5544// CHECK-NEXT:            <key>line</key><integer>301</integer>
5545// CHECK-NEXT:            <key>col</key><integer>16</integer>
5546// CHECK-NEXT:            <key>file</key><integer>0</integer>
5547// CHECK-NEXT:           </dict>
5548// CHECK-NEXT:          </array>
5549// CHECK-NEXT:         <key>end</key>
5550// CHECK-NEXT:          <array>
5551// CHECK-NEXT:           <dict>
5552// CHECK-NEXT:            <key>line</key><integer>302</integer>
5553// CHECK-NEXT:            <key>col</key><integer>5</integer>
5554// CHECK-NEXT:            <key>file</key><integer>0</integer>
5555// CHECK-NEXT:           </dict>
5556// CHECK-NEXT:           <dict>
5557// CHECK-NEXT:            <key>line</key><integer>302</integer>
5558// CHECK-NEXT:            <key>col</key><integer>5</integer>
5559// CHECK-NEXT:            <key>file</key><integer>0</integer>
5560// CHECK-NEXT:           </dict>
5561// CHECK-NEXT:          </array>
5562// CHECK-NEXT:        </dict>
5563// CHECK-NEXT:       </array>
5564// CHECK-NEXT:     </dict>
5565// CHECK-NEXT:     <dict>
5566// CHECK-NEXT:      <key>kind</key><string>event</string>
5567// CHECK-NEXT:      <key>location</key>
5568// CHECK-NEXT:      <dict>
5569// CHECK-NEXT:       <key>line</key><integer>302</integer>
5570// CHECK-NEXT:       <key>col</key><integer>5</integer>
5571// CHECK-NEXT:       <key>file</key><integer>0</integer>
5572// CHECK-NEXT:      </dict>
5573// CHECK-NEXT:      <key>ranges</key>
5574// CHECK-NEXT:      <array>
5575// CHECK-NEXT:        <array>
5576// CHECK-NEXT:         <dict>
5577// CHECK-NEXT:          <key>line</key><integer>302</integer>
5578// CHECK-NEXT:          <key>col</key><integer>19</integer>
5579// CHECK-NEXT:          <key>file</key><integer>0</integer>
5580// CHECK-NEXT:         </dict>
5581// CHECK-NEXT:         <dict>
5582// CHECK-NEXT:          <key>line</key><integer>302</integer>
5583// CHECK-NEXT:          <key>col</key><integer>41</integer>
5584// CHECK-NEXT:          <key>file</key><integer>0</integer>
5585// CHECK-NEXT:         </dict>
5586// CHECK-NEXT:        </array>
5587// CHECK-NEXT:      </array>
5588// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5589// CHECK-NEXT:      <key>extended_message</key>
5590// CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5591// CHECK-NEXT:      <key>message</key>
5592// CHECK-NEXT:      <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5593// CHECK-NEXT:     </dict>
5594// CHECK-NEXT:    </array>
5595// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5596// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5597// CHECK-NEXT:    <key>type</key><string>Generics</string>
5598// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5599// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5600// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>d0b99c8523e81ec43ba4ea80aeedef1b</string>
5601// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5602// CHECK-NEXT:   <key>issue_context</key><string>findMethodDeclInTrackedType2</string>
5603// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
5604// CHECK-NEXT:   <key>location</key>
5605// CHECK-NEXT:   <dict>
5606// CHECK-NEXT:    <key>line</key><integer>302</integer>
5607// CHECK-NEXT:    <key>col</key><integer>5</integer>
5608// CHECK-NEXT:    <key>file</key><integer>0</integer>
5609// CHECK-NEXT:   </dict>
5610// CHECK-NEXT:   </dict>
5611// CHECK-NEXT:   <dict>
5612// CHECK-NEXT:    <key>path</key>
5613// CHECK-NEXT:    <array>
5614// CHECK-NEXT:     <dict>
5615// CHECK-NEXT:      <key>kind</key><string>control</string>
5616// CHECK-NEXT:      <key>edges</key>
5617// CHECK-NEXT:       <array>
5618// CHECK-NEXT:        <dict>
5619// CHECK-NEXT:         <key>start</key>
5620// CHECK-NEXT:          <array>
5621// CHECK-NEXT:           <dict>
5622// CHECK-NEXT:            <key>line</key><integer>326</integer>
5623// CHECK-NEXT:            <key>col</key><integer>3</integer>
5624// CHECK-NEXT:            <key>file</key><integer>0</integer>
5625// CHECK-NEXT:           </dict>
5626// CHECK-NEXT:           <dict>
5627// CHECK-NEXT:            <key>line</key><integer>326</integer>
5628// CHECK-NEXT:            <key>col</key><integer>7</integer>
5629// CHECK-NEXT:            <key>file</key><integer>0</integer>
5630// CHECK-NEXT:           </dict>
5631// CHECK-NEXT:          </array>
5632// CHECK-NEXT:         <key>end</key>
5633// CHECK-NEXT:          <array>
5634// CHECK-NEXT:           <dict>
5635// CHECK-NEXT:            <key>line</key><integer>327</integer>
5636// CHECK-NEXT:            <key>col</key><integer>3</integer>
5637// CHECK-NEXT:            <key>file</key><integer>0</integer>
5638// CHECK-NEXT:           </dict>
5639// CHECK-NEXT:           <dict>
5640// CHECK-NEXT:            <key>line</key><integer>327</integer>
5641// CHECK-NEXT:            <key>col</key><integer>9</integer>
5642// CHECK-NEXT:            <key>file</key><integer>0</integer>
5643// CHECK-NEXT:           </dict>
5644// CHECK-NEXT:          </array>
5645// CHECK-NEXT:        </dict>
5646// CHECK-NEXT:       </array>
5647// CHECK-NEXT:     </dict>
5648// CHECK-NEXT:     <dict>
5649// CHECK-NEXT:      <key>kind</key><string>control</string>
5650// CHECK-NEXT:      <key>edges</key>
5651// CHECK-NEXT:       <array>
5652// CHECK-NEXT:        <dict>
5653// CHECK-NEXT:         <key>start</key>
5654// CHECK-NEXT:          <array>
5655// CHECK-NEXT:           <dict>
5656// CHECK-NEXT:            <key>line</key><integer>327</integer>
5657// CHECK-NEXT:            <key>col</key><integer>3</integer>
5658// CHECK-NEXT:            <key>file</key><integer>0</integer>
5659// CHECK-NEXT:           </dict>
5660// CHECK-NEXT:           <dict>
5661// CHECK-NEXT:            <key>line</key><integer>327</integer>
5662// CHECK-NEXT:            <key>col</key><integer>9</integer>
5663// CHECK-NEXT:            <key>file</key><integer>0</integer>
5664// CHECK-NEXT:           </dict>
5665// CHECK-NEXT:          </array>
5666// CHECK-NEXT:         <key>end</key>
5667// CHECK-NEXT:          <array>
5668// CHECK-NEXT:           <dict>
5669// CHECK-NEXT:            <key>line</key><integer>327</integer>
5670// CHECK-NEXT:            <key>col</key><integer>28</integer>
5671// CHECK-NEXT:            <key>file</key><integer>0</integer>
5672// CHECK-NEXT:           </dict>
5673// CHECK-NEXT:           <dict>
5674// CHECK-NEXT:            <key>line</key><integer>327</integer>
5675// CHECK-NEXT:            <key>col</key><integer>28</integer>
5676// CHECK-NEXT:            <key>file</key><integer>0</integer>
5677// CHECK-NEXT:           </dict>
5678// CHECK-NEXT:          </array>
5679// CHECK-NEXT:        </dict>
5680// CHECK-NEXT:       </array>
5681// CHECK-NEXT:     </dict>
5682// CHECK-NEXT:     <dict>
5683// CHECK-NEXT:      <key>kind</key><string>event</string>
5684// CHECK-NEXT:      <key>location</key>
5685// CHECK-NEXT:      <dict>
5686// CHECK-NEXT:       <key>line</key><integer>327</integer>
5687// CHECK-NEXT:       <key>col</key><integer>28</integer>
5688// CHECK-NEXT:       <key>file</key><integer>0</integer>
5689// CHECK-NEXT:      </dict>
5690// CHECK-NEXT:      <key>ranges</key>
5691// CHECK-NEXT:      <array>
5692// CHECK-NEXT:        <array>
5693// CHECK-NEXT:         <dict>
5694// CHECK-NEXT:          <key>line</key><integer>327</integer>
5695// CHECK-NEXT:          <key>col</key><integer>28</integer>
5696// CHECK-NEXT:          <key>file</key><integer>0</integer>
5697// CHECK-NEXT:         </dict>
5698// CHECK-NEXT:         <dict>
5699// CHECK-NEXT:          <key>line</key><integer>327</integer>
5700// CHECK-NEXT:          <key>col</key><integer>39</integer>
5701// CHECK-NEXT:          <key>file</key><integer>0</integer>
5702// CHECK-NEXT:         </dict>
5703// CHECK-NEXT:        </array>
5704// CHECK-NEXT:      </array>
5705// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5706// CHECK-NEXT:      <key>extended_message</key>
5707// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5708// CHECK-NEXT:      <key>message</key>
5709// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5710// CHECK-NEXT:     </dict>
5711// CHECK-NEXT:     <dict>
5712// CHECK-NEXT:      <key>kind</key><string>event</string>
5713// CHECK-NEXT:      <key>location</key>
5714// CHECK-NEXT:      <dict>
5715// CHECK-NEXT:       <key>line</key><integer>327</integer>
5716// CHECK-NEXT:       <key>col</key><integer>28</integer>
5717// CHECK-NEXT:       <key>file</key><integer>0</integer>
5718// CHECK-NEXT:      </dict>
5719// CHECK-NEXT:      <key>ranges</key>
5720// CHECK-NEXT:      <array>
5721// CHECK-NEXT:        <array>
5722// CHECK-NEXT:         <dict>
5723// CHECK-NEXT:          <key>line</key><integer>327</integer>
5724// CHECK-NEXT:          <key>col</key><integer>28</integer>
5725// CHECK-NEXT:          <key>file</key><integer>0</integer>
5726// CHECK-NEXT:         </dict>
5727// CHECK-NEXT:         <dict>
5728// CHECK-NEXT:          <key>line</key><integer>327</integer>
5729// CHECK-NEXT:          <key>col</key><integer>39</integer>
5730// CHECK-NEXT:          <key>file</key><integer>0</integer>
5731// CHECK-NEXT:         </dict>
5732// CHECK-NEXT:        </array>
5733// CHECK-NEXT:      </array>
5734// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5735// CHECK-NEXT:      <key>extended_message</key>
5736// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5737// CHECK-NEXT:      <key>message</key>
5738// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5739// CHECK-NEXT:     </dict>
5740// CHECK-NEXT:    </array>
5741// 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>
5742// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5743// CHECK-NEXT:    <key>type</key><string>Generics</string>
5744// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5745// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5746// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>46aa94b866747bcbe1ded581da7a2633</string>
5747// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5748// CHECK-NEXT:   <key>issue_context</key><string>trackedClassVariables</string>
5749// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
5750// CHECK-NEXT:   <key>location</key>
5751// CHECK-NEXT:   <dict>
5752// CHECK-NEXT:    <key>line</key><integer>327</integer>
5753// CHECK-NEXT:    <key>col</key><integer>28</integer>
5754// CHECK-NEXT:    <key>file</key><integer>0</integer>
5755// CHECK-NEXT:   </dict>
5756// CHECK-NEXT:   </dict>
5757// CHECK-NEXT:   <dict>
5758// CHECK-NEXT:    <key>path</key>
5759// CHECK-NEXT:    <array>
5760// CHECK-NEXT:     <dict>
5761// CHECK-NEXT:      <key>kind</key><string>control</string>
5762// CHECK-NEXT:      <key>edges</key>
5763// CHECK-NEXT:       <array>
5764// CHECK-NEXT:        <dict>
5765// CHECK-NEXT:         <key>start</key>
5766// CHECK-NEXT:          <array>
5767// CHECK-NEXT:           <dict>
5768// CHECK-NEXT:            <key>line</key><integer>326</integer>
5769// CHECK-NEXT:            <key>col</key><integer>3</integer>
5770// CHECK-NEXT:            <key>file</key><integer>0</integer>
5771// CHECK-NEXT:           </dict>
5772// CHECK-NEXT:           <dict>
5773// CHECK-NEXT:            <key>line</key><integer>326</integer>
5774// CHECK-NEXT:            <key>col</key><integer>7</integer>
5775// CHECK-NEXT:            <key>file</key><integer>0</integer>
5776// CHECK-NEXT:           </dict>
5777// CHECK-NEXT:          </array>
5778// CHECK-NEXT:         <key>end</key>
5779// CHECK-NEXT:          <array>
5780// CHECK-NEXT:           <dict>
5781// CHECK-NEXT:            <key>line</key><integer>328</integer>
5782// CHECK-NEXT:            <key>col</key><integer>3</integer>
5783// CHECK-NEXT:            <key>file</key><integer>0</integer>
5784// CHECK-NEXT:           </dict>
5785// CHECK-NEXT:           <dict>
5786// CHECK-NEXT:            <key>line</key><integer>328</integer>
5787// CHECK-NEXT:            <key>col</key><integer>3</integer>
5788// CHECK-NEXT:            <key>file</key><integer>0</integer>
5789// CHECK-NEXT:           </dict>
5790// CHECK-NEXT:          </array>
5791// CHECK-NEXT:        </dict>
5792// CHECK-NEXT:       </array>
5793// CHECK-NEXT:     </dict>
5794// CHECK-NEXT:     <dict>
5795// CHECK-NEXT:      <key>kind</key><string>control</string>
5796// CHECK-NEXT:      <key>edges</key>
5797// CHECK-NEXT:       <array>
5798// CHECK-NEXT:        <dict>
5799// CHECK-NEXT:         <key>start</key>
5800// CHECK-NEXT:          <array>
5801// CHECK-NEXT:           <dict>
5802// CHECK-NEXT:            <key>line</key><integer>328</integer>
5803// CHECK-NEXT:            <key>col</key><integer>3</integer>
5804// CHECK-NEXT:            <key>file</key><integer>0</integer>
5805// CHECK-NEXT:           </dict>
5806// CHECK-NEXT:           <dict>
5807// CHECK-NEXT:            <key>line</key><integer>328</integer>
5808// CHECK-NEXT:            <key>col</key><integer>3</integer>
5809// CHECK-NEXT:            <key>file</key><integer>0</integer>
5810// CHECK-NEXT:           </dict>
5811// CHECK-NEXT:          </array>
5812// CHECK-NEXT:         <key>end</key>
5813// CHECK-NEXT:          <array>
5814// CHECK-NEXT:           <dict>
5815// CHECK-NEXT:            <key>line</key><integer>328</integer>
5816// CHECK-NEXT:            <key>col</key><integer>7</integer>
5817// CHECK-NEXT:            <key>file</key><integer>0</integer>
5818// CHECK-NEXT:           </dict>
5819// CHECK-NEXT:           <dict>
5820// CHECK-NEXT:            <key>line</key><integer>328</integer>
5821// CHECK-NEXT:            <key>col</key><integer>7</integer>
5822// CHECK-NEXT:            <key>file</key><integer>0</integer>
5823// CHECK-NEXT:           </dict>
5824// CHECK-NEXT:          </array>
5825// CHECK-NEXT:        </dict>
5826// CHECK-NEXT:       </array>
5827// CHECK-NEXT:     </dict>
5828// CHECK-NEXT:     <dict>
5829// CHECK-NEXT:      <key>kind</key><string>event</string>
5830// CHECK-NEXT:      <key>location</key>
5831// CHECK-NEXT:      <dict>
5832// CHECK-NEXT:       <key>line</key><integer>328</integer>
5833// CHECK-NEXT:       <key>col</key><integer>7</integer>
5834// CHECK-NEXT:       <key>file</key><integer>0</integer>
5835// CHECK-NEXT:      </dict>
5836// CHECK-NEXT:      <key>ranges</key>
5837// CHECK-NEXT:      <array>
5838// CHECK-NEXT:        <array>
5839// CHECK-NEXT:         <dict>
5840// CHECK-NEXT:          <key>line</key><integer>328</integer>
5841// CHECK-NEXT:          <key>col</key><integer>7</integer>
5842// CHECK-NEXT:          <key>file</key><integer>0</integer>
5843// CHECK-NEXT:         </dict>
5844// CHECK-NEXT:         <dict>
5845// CHECK-NEXT:          <key>line</key><integer>328</integer>
5846// CHECK-NEXT:          <key>col</key><integer>19</integer>
5847// CHECK-NEXT:          <key>file</key><integer>0</integer>
5848// CHECK-NEXT:         </dict>
5849// CHECK-NEXT:        </array>
5850// CHECK-NEXT:      </array>
5851// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5852// CHECK-NEXT:      <key>extended_message</key>
5853// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5854// CHECK-NEXT:      <key>message</key>
5855// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5856// CHECK-NEXT:     </dict>
5857// CHECK-NEXT:     <dict>
5858// CHECK-NEXT:      <key>kind</key><string>event</string>
5859// CHECK-NEXT:      <key>location</key>
5860// CHECK-NEXT:      <dict>
5861// CHECK-NEXT:       <key>line</key><integer>328</integer>
5862// CHECK-NEXT:       <key>col</key><integer>7</integer>
5863// CHECK-NEXT:       <key>file</key><integer>0</integer>
5864// CHECK-NEXT:      </dict>
5865// CHECK-NEXT:      <key>ranges</key>
5866// CHECK-NEXT:      <array>
5867// CHECK-NEXT:        <array>
5868// CHECK-NEXT:         <dict>
5869// CHECK-NEXT:          <key>line</key><integer>328</integer>
5870// CHECK-NEXT:          <key>col</key><integer>7</integer>
5871// CHECK-NEXT:          <key>file</key><integer>0</integer>
5872// CHECK-NEXT:         </dict>
5873// CHECK-NEXT:         <dict>
5874// CHECK-NEXT:          <key>line</key><integer>328</integer>
5875// CHECK-NEXT:          <key>col</key><integer>19</integer>
5876// CHECK-NEXT:          <key>file</key><integer>0</integer>
5877// CHECK-NEXT:         </dict>
5878// CHECK-NEXT:        </array>
5879// CHECK-NEXT:      </array>
5880// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5881// CHECK-NEXT:      <key>extended_message</key>
5882// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5883// CHECK-NEXT:      <key>message</key>
5884// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5885// CHECK-NEXT:     </dict>
5886// CHECK-NEXT:    </array>
5887// 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>
5888// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
5889// CHECK-NEXT:    <key>type</key><string>Generics</string>
5890// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
5891// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
5892// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>a759006d1ce88e15fcd6de6a29e2579c</string>
5893// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
5894// CHECK-NEXT:   <key>issue_context</key><string>trackedClassVariables</string>
5895// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
5896// CHECK-NEXT:   <key>location</key>
5897// CHECK-NEXT:   <dict>
5898// CHECK-NEXT:    <key>line</key><integer>328</integer>
5899// CHECK-NEXT:    <key>col</key><integer>7</integer>
5900// CHECK-NEXT:    <key>file</key><integer>0</integer>
5901// CHECK-NEXT:   </dict>
5902// CHECK-NEXT:   </dict>
5903// CHECK-NEXT:   <dict>
5904// CHECK-NEXT:    <key>path</key>
5905// CHECK-NEXT:    <array>
5906// CHECK-NEXT:     <dict>
5907// CHECK-NEXT:      <key>kind</key><string>event</string>
5908// CHECK-NEXT:      <key>location</key>
5909// CHECK-NEXT:      <dict>
5910// CHECK-NEXT:       <key>line</key><integer>332</integer>
5911// CHECK-NEXT:       <key>col</key><integer>13</integer>
5912// CHECK-NEXT:       <key>file</key><integer>0</integer>
5913// CHECK-NEXT:      </dict>
5914// CHECK-NEXT:      <key>ranges</key>
5915// CHECK-NEXT:      <array>
5916// CHECK-NEXT:        <array>
5917// CHECK-NEXT:         <dict>
5918// CHECK-NEXT:          <key>line</key><integer>332</integer>
5919// CHECK-NEXT:          <key>col</key><integer>13</integer>
5920// CHECK-NEXT:          <key>file</key><integer>0</integer>
5921// CHECK-NEXT:         </dict>
5922// CHECK-NEXT:         <dict>
5923// CHECK-NEXT:          <key>line</key><integer>332</integer>
5924// CHECK-NEXT:          <key>col</key><integer>15</integer>
5925// CHECK-NEXT:          <key>file</key><integer>0</integer>
5926// CHECK-NEXT:         </dict>
5927// CHECK-NEXT:        </array>
5928// CHECK-NEXT:      </array>
5929// CHECK-NEXT:      <key>depth</key><integer>0</integer>
5930// CHECK-NEXT:      <key>extended_message</key>
5931// 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>
5932// CHECK-NEXT:      <key>message</key>
5933// 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>
5934// CHECK-NEXT:     </dict>
5935// CHECK-NEXT:     <dict>
5936// CHECK-NEXT:      <key>kind</key><string>control</string>
5937// CHECK-NEXT:      <key>edges</key>
5938// CHECK-NEXT:       <array>
5939// CHECK-NEXT:        <dict>
5940// CHECK-NEXT:         <key>start</key>
5941// CHECK-NEXT:          <array>
5942// CHECK-NEXT:           <dict>
5943// CHECK-NEXT:            <key>line</key><integer>332</integer>
5944// CHECK-NEXT:            <key>col</key><integer>3</integer>
5945// CHECK-NEXT:            <key>file</key><integer>0</integer>
5946// CHECK-NEXT:           </dict>
5947// CHECK-NEXT:           <dict>
5948// CHECK-NEXT:            <key>line</key><integer>332</integer>
5949// CHECK-NEXT:            <key>col</key><integer>4</integer>
5950// CHECK-NEXT:            <key>file</key><integer>0</integer>
5951// CHECK-NEXT:           </dict>
5952// CHECK-NEXT:          </array>
5953// CHECK-NEXT:         <key>end</key>
5954// CHECK-NEXT:          <array>
5955// CHECK-NEXT:           <dict>
5956// CHECK-NEXT:            <key>line</key><integer>333</integer>
5957// CHECK-NEXT:            <key>col</key><integer>3</integer>
5958// CHECK-NEXT:            <key>file</key><integer>0</integer>
5959// CHECK-NEXT:           </dict>
5960// CHECK-NEXT:           <dict>
5961// CHECK-NEXT:            <key>line</key><integer>333</integer>
5962// CHECK-NEXT:            <key>col</key><integer>3</integer>
5963// CHECK-NEXT:            <key>file</key><integer>0</integer>
5964// CHECK-NEXT:           </dict>
5965// CHECK-NEXT:          </array>
5966// CHECK-NEXT:        </dict>
5967// CHECK-NEXT:       </array>
5968// CHECK-NEXT:     </dict>
5969// CHECK-NEXT:     <dict>
5970// CHECK-NEXT:      <key>kind</key><string>control</string>
5971// CHECK-NEXT:      <key>edges</key>
5972// CHECK-NEXT:       <array>
5973// CHECK-NEXT:        <dict>
5974// CHECK-NEXT:         <key>start</key>
5975// CHECK-NEXT:          <array>
5976// CHECK-NEXT:           <dict>
5977// CHECK-NEXT:            <key>line</key><integer>333</integer>
5978// CHECK-NEXT:            <key>col</key><integer>3</integer>
5979// CHECK-NEXT:            <key>file</key><integer>0</integer>
5980// CHECK-NEXT:           </dict>
5981// CHECK-NEXT:           <dict>
5982// CHECK-NEXT:            <key>line</key><integer>333</integer>
5983// CHECK-NEXT:            <key>col</key><integer>3</integer>
5984// CHECK-NEXT:            <key>file</key><integer>0</integer>
5985// CHECK-NEXT:           </dict>
5986// CHECK-NEXT:          </array>
5987// CHECK-NEXT:         <key>end</key>
5988// CHECK-NEXT:          <array>
5989// CHECK-NEXT:           <dict>
5990// CHECK-NEXT:            <key>line</key><integer>333</integer>
5991// CHECK-NEXT:            <key>col</key><integer>18</integer>
5992// CHECK-NEXT:            <key>file</key><integer>0</integer>
5993// CHECK-NEXT:           </dict>
5994// CHECK-NEXT:           <dict>
5995// CHECK-NEXT:            <key>line</key><integer>333</integer>
5996// CHECK-NEXT:            <key>col</key><integer>21</integer>
5997// CHECK-NEXT:            <key>file</key><integer>0</integer>
5998// CHECK-NEXT:           </dict>
5999// CHECK-NEXT:          </array>
6000// CHECK-NEXT:        </dict>
6001// CHECK-NEXT:       </array>
6002// CHECK-NEXT:     </dict>
6003// CHECK-NEXT:     <dict>
6004// CHECK-NEXT:      <key>kind</key><string>event</string>
6005// CHECK-NEXT:      <key>location</key>
6006// CHECK-NEXT:      <dict>
6007// CHECK-NEXT:       <key>line</key><integer>333</integer>
6008// CHECK-NEXT:       <key>col</key><integer>18</integer>
6009// CHECK-NEXT:       <key>file</key><integer>0</integer>
6010// CHECK-NEXT:      </dict>
6011// CHECK-NEXT:      <key>ranges</key>
6012// CHECK-NEXT:      <array>
6013// CHECK-NEXT:        <array>
6014// CHECK-NEXT:         <dict>
6015// CHECK-NEXT:          <key>line</key><integer>333</integer>
6016// CHECK-NEXT:          <key>col</key><integer>18</integer>
6017// CHECK-NEXT:          <key>file</key><integer>0</integer>
6018// CHECK-NEXT:         </dict>
6019// CHECK-NEXT:         <dict>
6020// CHECK-NEXT:          <key>line</key><integer>333</integer>
6021// CHECK-NEXT:          <key>col</key><integer>21</integer>
6022// CHECK-NEXT:          <key>file</key><integer>0</integer>
6023// CHECK-NEXT:         </dict>
6024// CHECK-NEXT:        </array>
6025// CHECK-NEXT:      </array>
6026// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6027// CHECK-NEXT:      <key>extended_message</key>
6028// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6029// CHECK-NEXT:      <key>message</key>
6030// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6031// CHECK-NEXT:     </dict>
6032// CHECK-NEXT:    </array>
6033// 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>
6034// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6035// CHECK-NEXT:    <key>type</key><string>Generics</string>
6036// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6037// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6038// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>4bb1729ff86647750b458e6f8d883f08</string>
6039// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6040// CHECK-NEXT:   <key>issue_context</key><string>nestedCollections</string>
6041// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
6042// CHECK-NEXT:   <key>location</key>
6043// CHECK-NEXT:   <dict>
6044// CHECK-NEXT:    <key>line</key><integer>333</integer>
6045// CHECK-NEXT:    <key>col</key><integer>18</integer>
6046// CHECK-NEXT:    <key>file</key><integer>0</integer>
6047// CHECK-NEXT:   </dict>
6048// CHECK-NEXT:   </dict>
6049// CHECK-NEXT:   <dict>
6050// CHECK-NEXT:    <key>path</key>
6051// CHECK-NEXT:    <array>
6052// CHECK-NEXT:     <dict>
6053// CHECK-NEXT:      <key>kind</key><string>control</string>
6054// CHECK-NEXT:      <key>edges</key>
6055// CHECK-NEXT:       <array>
6056// CHECK-NEXT:        <dict>
6057// CHECK-NEXT:         <key>start</key>
6058// CHECK-NEXT:          <array>
6059// CHECK-NEXT:           <dict>
6060// CHECK-NEXT:            <key>line</key><integer>345</integer>
6061// CHECK-NEXT:            <key>col</key><integer>3</integer>
6062// CHECK-NEXT:            <key>file</key><integer>0</integer>
6063// CHECK-NEXT:           </dict>
6064// CHECK-NEXT:           <dict>
6065// CHECK-NEXT:            <key>line</key><integer>345</integer>
6066// CHECK-NEXT:            <key>col</key><integer>9</integer>
6067// CHECK-NEXT:            <key>file</key><integer>0</integer>
6068// CHECK-NEXT:           </dict>
6069// CHECK-NEXT:          </array>
6070// CHECK-NEXT:         <key>end</key>
6071// CHECK-NEXT:          <array>
6072// CHECK-NEXT:           <dict>
6073// CHECK-NEXT:            <key>line</key><integer>346</integer>
6074// CHECK-NEXT:            <key>col</key><integer>3</integer>
6075// CHECK-NEXT:            <key>file</key><integer>0</integer>
6076// CHECK-NEXT:           </dict>
6077// CHECK-NEXT:           <dict>
6078// CHECK-NEXT:            <key>line</key><integer>346</integer>
6079// CHECK-NEXT:            <key>col</key><integer>4</integer>
6080// CHECK-NEXT:            <key>file</key><integer>0</integer>
6081// CHECK-NEXT:           </dict>
6082// CHECK-NEXT:          </array>
6083// CHECK-NEXT:        </dict>
6084// CHECK-NEXT:       </array>
6085// CHECK-NEXT:     </dict>
6086// CHECK-NEXT:     <dict>
6087// CHECK-NEXT:      <key>kind</key><string>event</string>
6088// CHECK-NEXT:      <key>location</key>
6089// CHECK-NEXT:      <dict>
6090// CHECK-NEXT:       <key>line</key><integer>346</integer>
6091// CHECK-NEXT:       <key>col</key><integer>10</integer>
6092// CHECK-NEXT:       <key>file</key><integer>0</integer>
6093// CHECK-NEXT:      </dict>
6094// CHECK-NEXT:      <key>ranges</key>
6095// CHECK-NEXT:      <array>
6096// CHECK-NEXT:        <array>
6097// CHECK-NEXT:         <dict>
6098// CHECK-NEXT:          <key>line</key><integer>346</integer>
6099// CHECK-NEXT:          <key>col</key><integer>10</integer>
6100// CHECK-NEXT:          <key>file</key><integer>0</integer>
6101// CHECK-NEXT:         </dict>
6102// CHECK-NEXT:         <dict>
6103// CHECK-NEXT:          <key>line</key><integer>346</integer>
6104// CHECK-NEXT:          <key>col</key><integer>29</integer>
6105// CHECK-NEXT:          <key>file</key><integer>0</integer>
6106// CHECK-NEXT:         </dict>
6107// CHECK-NEXT:        </array>
6108// CHECK-NEXT:      </array>
6109// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6110// CHECK-NEXT:      <key>extended_message</key>
6111// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6112// CHECK-NEXT:      <key>message</key>
6113// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6114// CHECK-NEXT:     </dict>
6115// CHECK-NEXT:     <dict>
6116// CHECK-NEXT:      <key>kind</key><string>control</string>
6117// CHECK-NEXT:      <key>edges</key>
6118// CHECK-NEXT:       <array>
6119// CHECK-NEXT:        <dict>
6120// CHECK-NEXT:         <key>start</key>
6121// CHECK-NEXT:          <array>
6122// CHECK-NEXT:           <dict>
6123// CHECK-NEXT:            <key>line</key><integer>346</integer>
6124// CHECK-NEXT:            <key>col</key><integer>3</integer>
6125// CHECK-NEXT:            <key>file</key><integer>0</integer>
6126// CHECK-NEXT:           </dict>
6127// CHECK-NEXT:           <dict>
6128// CHECK-NEXT:            <key>line</key><integer>346</integer>
6129// CHECK-NEXT:            <key>col</key><integer>4</integer>
6130// CHECK-NEXT:            <key>file</key><integer>0</integer>
6131// CHECK-NEXT:           </dict>
6132// CHECK-NEXT:          </array>
6133// CHECK-NEXT:         <key>end</key>
6134// CHECK-NEXT:          <array>
6135// CHECK-NEXT:           <dict>
6136// CHECK-NEXT:            <key>line</key><integer>347</integer>
6137// CHECK-NEXT:            <key>col</key><integer>3</integer>
6138// CHECK-NEXT:            <key>file</key><integer>0</integer>
6139// CHECK-NEXT:           </dict>
6140// CHECK-NEXT:           <dict>
6141// CHECK-NEXT:            <key>line</key><integer>347</integer>
6142// CHECK-NEXT:            <key>col</key><integer>9</integer>
6143// CHECK-NEXT:            <key>file</key><integer>0</integer>
6144// CHECK-NEXT:           </dict>
6145// CHECK-NEXT:          </array>
6146// CHECK-NEXT:        </dict>
6147// CHECK-NEXT:       </array>
6148// CHECK-NEXT:     </dict>
6149// CHECK-NEXT:     <dict>
6150// CHECK-NEXT:      <key>kind</key><string>control</string>
6151// CHECK-NEXT:      <key>edges</key>
6152// CHECK-NEXT:       <array>
6153// CHECK-NEXT:        <dict>
6154// CHECK-NEXT:         <key>start</key>
6155// CHECK-NEXT:          <array>
6156// CHECK-NEXT:           <dict>
6157// CHECK-NEXT:            <key>line</key><integer>347</integer>
6158// CHECK-NEXT:            <key>col</key><integer>3</integer>
6159// CHECK-NEXT:            <key>file</key><integer>0</integer>
6160// CHECK-NEXT:           </dict>
6161// CHECK-NEXT:           <dict>
6162// CHECK-NEXT:            <key>line</key><integer>347</integer>
6163// CHECK-NEXT:            <key>col</key><integer>9</integer>
6164// CHECK-NEXT:            <key>file</key><integer>0</integer>
6165// CHECK-NEXT:           </dict>
6166// CHECK-NEXT:          </array>
6167// CHECK-NEXT:         <key>end</key>
6168// CHECK-NEXT:          <array>
6169// CHECK-NEXT:           <dict>
6170// CHECK-NEXT:            <key>line</key><integer>347</integer>
6171// CHECK-NEXT:            <key>col</key><integer>30</integer>
6172// CHECK-NEXT:            <key>file</key><integer>0</integer>
6173// CHECK-NEXT:           </dict>
6174// CHECK-NEXT:           <dict>
6175// CHECK-NEXT:            <key>line</key><integer>347</integer>
6176// CHECK-NEXT:            <key>col</key><integer>30</integer>
6177// CHECK-NEXT:            <key>file</key><integer>0</integer>
6178// CHECK-NEXT:           </dict>
6179// CHECK-NEXT:          </array>
6180// CHECK-NEXT:        </dict>
6181// CHECK-NEXT:       </array>
6182// CHECK-NEXT:     </dict>
6183// CHECK-NEXT:     <dict>
6184// CHECK-NEXT:      <key>kind</key><string>event</string>
6185// CHECK-NEXT:      <key>location</key>
6186// CHECK-NEXT:      <dict>
6187// CHECK-NEXT:       <key>line</key><integer>347</integer>
6188// CHECK-NEXT:       <key>col</key><integer>30</integer>
6189// CHECK-NEXT:       <key>file</key><integer>0</integer>
6190// CHECK-NEXT:      </dict>
6191// CHECK-NEXT:      <key>ranges</key>
6192// CHECK-NEXT:      <array>
6193// CHECK-NEXT:        <array>
6194// CHECK-NEXT:         <dict>
6195// CHECK-NEXT:          <key>line</key><integer>347</integer>
6196// CHECK-NEXT:          <key>col</key><integer>30</integer>
6197// CHECK-NEXT:          <key>file</key><integer>0</integer>
6198// CHECK-NEXT:         </dict>
6199// CHECK-NEXT:         <dict>
6200// CHECK-NEXT:          <key>line</key><integer>347</integer>
6201// CHECK-NEXT:          <key>col</key><integer>30</integer>
6202// CHECK-NEXT:          <key>file</key><integer>0</integer>
6203// CHECK-NEXT:         </dict>
6204// CHECK-NEXT:        </array>
6205// CHECK-NEXT:      </array>
6206// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6207// CHECK-NEXT:      <key>extended_message</key>
6208// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6209// CHECK-NEXT:      <key>message</key>
6210// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6211// CHECK-NEXT:     </dict>
6212// CHECK-NEXT:    </array>
6213// 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>
6214// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6215// CHECK-NEXT:    <key>type</key><string>Generics</string>
6216// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6217// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6218// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>38831553eaecfb6c02b51e71d21ec6ea</string>
6219// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6220// CHECK-NEXT:   <key>issue_context</key><string>returnCollectionToIdVariable</string>
6221// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
6222// CHECK-NEXT:   <key>location</key>
6223// CHECK-NEXT:   <dict>
6224// CHECK-NEXT:    <key>line</key><integer>347</integer>
6225// CHECK-NEXT:    <key>col</key><integer>30</integer>
6226// CHECK-NEXT:    <key>file</key><integer>0</integer>
6227// CHECK-NEXT:   </dict>
6228// CHECK-NEXT:   </dict>
6229// CHECK-NEXT:   <dict>
6230// CHECK-NEXT:    <key>path</key>
6231// CHECK-NEXT:    <array>
6232// CHECK-NEXT:     <dict>
6233// CHECK-NEXT:      <key>kind</key><string>control</string>
6234// CHECK-NEXT:      <key>edges</key>
6235// CHECK-NEXT:       <array>
6236// CHECK-NEXT:        <dict>
6237// CHECK-NEXT:         <key>start</key>
6238// CHECK-NEXT:          <array>
6239// CHECK-NEXT:           <dict>
6240// CHECK-NEXT:            <key>line</key><integer>351</integer>
6241// CHECK-NEXT:            <key>col</key><integer>3</integer>
6242// CHECK-NEXT:            <key>file</key><integer>0</integer>
6243// CHECK-NEXT:           </dict>
6244// CHECK-NEXT:           <dict>
6245// CHECK-NEXT:            <key>line</key><integer>351</integer>
6246// CHECK-NEXT:            <key>col</key><integer>9</integer>
6247// CHECK-NEXT:            <key>file</key><integer>0</integer>
6248// CHECK-NEXT:           </dict>
6249// CHECK-NEXT:          </array>
6250// CHECK-NEXT:         <key>end</key>
6251// CHECK-NEXT:          <array>
6252// CHECK-NEXT:           <dict>
6253// CHECK-NEXT:            <key>line</key><integer>352</integer>
6254// CHECK-NEXT:            <key>col</key><integer>3</integer>
6255// CHECK-NEXT:            <key>file</key><integer>0</integer>
6256// CHECK-NEXT:           </dict>
6257// CHECK-NEXT:           <dict>
6258// CHECK-NEXT:            <key>line</key><integer>352</integer>
6259// CHECK-NEXT:            <key>col</key><integer>9</integer>
6260// CHECK-NEXT:            <key>file</key><integer>0</integer>
6261// CHECK-NEXT:           </dict>
6262// CHECK-NEXT:          </array>
6263// CHECK-NEXT:        </dict>
6264// CHECK-NEXT:       </array>
6265// CHECK-NEXT:     </dict>
6266// CHECK-NEXT:     <dict>
6267// CHECK-NEXT:      <key>kind</key><string>event</string>
6268// CHECK-NEXT:      <key>location</key>
6269// CHECK-NEXT:      <dict>
6270// CHECK-NEXT:       <key>line</key><integer>352</integer>
6271// CHECK-NEXT:       <key>col</key><integer>16</integer>
6272// CHECK-NEXT:       <key>file</key><integer>0</integer>
6273// CHECK-NEXT:      </dict>
6274// CHECK-NEXT:      <key>ranges</key>
6275// CHECK-NEXT:      <array>
6276// CHECK-NEXT:        <array>
6277// CHECK-NEXT:         <dict>
6278// CHECK-NEXT:          <key>line</key><integer>352</integer>
6279// CHECK-NEXT:          <key>col</key><integer>16</integer>
6280// CHECK-NEXT:          <key>file</key><integer>0</integer>
6281// CHECK-NEXT:         </dict>
6282// CHECK-NEXT:         <dict>
6283// CHECK-NEXT:          <key>line</key><integer>352</integer>
6284// CHECK-NEXT:          <key>col</key><integer>35</integer>
6285// CHECK-NEXT:          <key>file</key><integer>0</integer>
6286// CHECK-NEXT:         </dict>
6287// CHECK-NEXT:        </array>
6288// CHECK-NEXT:      </array>
6289// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6290// CHECK-NEXT:      <key>extended_message</key>
6291// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6292// CHECK-NEXT:      <key>message</key>
6293// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6294// CHECK-NEXT:     </dict>
6295// CHECK-NEXT:     <dict>
6296// CHECK-NEXT:      <key>kind</key><string>control</string>
6297// CHECK-NEXT:      <key>edges</key>
6298// CHECK-NEXT:       <array>
6299// CHECK-NEXT:        <dict>
6300// CHECK-NEXT:         <key>start</key>
6301// CHECK-NEXT:          <array>
6302// CHECK-NEXT:           <dict>
6303// CHECK-NEXT:            <key>line</key><integer>352</integer>
6304// CHECK-NEXT:            <key>col</key><integer>3</integer>
6305// CHECK-NEXT:            <key>file</key><integer>0</integer>
6306// CHECK-NEXT:           </dict>
6307// CHECK-NEXT:           <dict>
6308// CHECK-NEXT:            <key>line</key><integer>352</integer>
6309// CHECK-NEXT:            <key>col</key><integer>9</integer>
6310// CHECK-NEXT:            <key>file</key><integer>0</integer>
6311// CHECK-NEXT:           </dict>
6312// CHECK-NEXT:          </array>
6313// CHECK-NEXT:         <key>end</key>
6314// CHECK-NEXT:          <array>
6315// CHECK-NEXT:           <dict>
6316// CHECK-NEXT:            <key>line</key><integer>353</integer>
6317// CHECK-NEXT:            <key>col</key><integer>3</integer>
6318// CHECK-NEXT:            <key>file</key><integer>0</integer>
6319// CHECK-NEXT:           </dict>
6320// CHECK-NEXT:           <dict>
6321// CHECK-NEXT:            <key>line</key><integer>353</integer>
6322// CHECK-NEXT:            <key>col</key><integer>9</integer>
6323// CHECK-NEXT:            <key>file</key><integer>0</integer>
6324// CHECK-NEXT:           </dict>
6325// CHECK-NEXT:          </array>
6326// CHECK-NEXT:        </dict>
6327// CHECK-NEXT:       </array>
6328// CHECK-NEXT:     </dict>
6329// CHECK-NEXT:     <dict>
6330// CHECK-NEXT:      <key>kind</key><string>control</string>
6331// CHECK-NEXT:      <key>edges</key>
6332// CHECK-NEXT:       <array>
6333// CHECK-NEXT:        <dict>
6334// CHECK-NEXT:         <key>start</key>
6335// CHECK-NEXT:          <array>
6336// CHECK-NEXT:           <dict>
6337// CHECK-NEXT:            <key>line</key><integer>353</integer>
6338// CHECK-NEXT:            <key>col</key><integer>3</integer>
6339// CHECK-NEXT:            <key>file</key><integer>0</integer>
6340// CHECK-NEXT:           </dict>
6341// CHECK-NEXT:           <dict>
6342// CHECK-NEXT:            <key>line</key><integer>353</integer>
6343// CHECK-NEXT:            <key>col</key><integer>9</integer>
6344// CHECK-NEXT:            <key>file</key><integer>0</integer>
6345// CHECK-NEXT:           </dict>
6346// CHECK-NEXT:          </array>
6347// CHECK-NEXT:         <key>end</key>
6348// CHECK-NEXT:          <array>
6349// CHECK-NEXT:           <dict>
6350// CHECK-NEXT:            <key>line</key><integer>353</integer>
6351// CHECK-NEXT:            <key>col</key><integer>30</integer>
6352// CHECK-NEXT:            <key>file</key><integer>0</integer>
6353// CHECK-NEXT:           </dict>
6354// CHECK-NEXT:           <dict>
6355// CHECK-NEXT:            <key>line</key><integer>353</integer>
6356// CHECK-NEXT:            <key>col</key><integer>30</integer>
6357// CHECK-NEXT:            <key>file</key><integer>0</integer>
6358// CHECK-NEXT:           </dict>
6359// CHECK-NEXT:          </array>
6360// CHECK-NEXT:        </dict>
6361// CHECK-NEXT:       </array>
6362// CHECK-NEXT:     </dict>
6363// CHECK-NEXT:     <dict>
6364// CHECK-NEXT:      <key>kind</key><string>event</string>
6365// CHECK-NEXT:      <key>location</key>
6366// CHECK-NEXT:      <dict>
6367// CHECK-NEXT:       <key>line</key><integer>353</integer>
6368// CHECK-NEXT:       <key>col</key><integer>30</integer>
6369// CHECK-NEXT:       <key>file</key><integer>0</integer>
6370// CHECK-NEXT:      </dict>
6371// CHECK-NEXT:      <key>ranges</key>
6372// CHECK-NEXT:      <array>
6373// CHECK-NEXT:        <array>
6374// CHECK-NEXT:         <dict>
6375// CHECK-NEXT:          <key>line</key><integer>353</integer>
6376// CHECK-NEXT:          <key>col</key><integer>30</integer>
6377// CHECK-NEXT:          <key>file</key><integer>0</integer>
6378// CHECK-NEXT:         </dict>
6379// CHECK-NEXT:         <dict>
6380// CHECK-NEXT:          <key>line</key><integer>353</integer>
6381// CHECK-NEXT:          <key>col</key><integer>30</integer>
6382// CHECK-NEXT:          <key>file</key><integer>0</integer>
6383// CHECK-NEXT:         </dict>
6384// CHECK-NEXT:        </array>
6385// CHECK-NEXT:      </array>
6386// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6387// CHECK-NEXT:      <key>extended_message</key>
6388// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6389// CHECK-NEXT:      <key>message</key>
6390// CHECK-NEXT:      <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6391// CHECK-NEXT:     </dict>
6392// CHECK-NEXT:    </array>
6393// 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>
6394// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6395// CHECK-NEXT:    <key>type</key><string>Generics</string>
6396// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6397// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6398// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>9fcbd4dcf212f004877292aa5085322b</string>
6399// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6400// CHECK-NEXT:   <key>issue_context</key><string>eraseSpecialization</string>
6401// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
6402// CHECK-NEXT:   <key>location</key>
6403// CHECK-NEXT:   <dict>
6404// CHECK-NEXT:    <key>line</key><integer>353</integer>
6405// CHECK-NEXT:    <key>col</key><integer>30</integer>
6406// CHECK-NEXT:    <key>file</key><integer>0</integer>
6407// CHECK-NEXT:   </dict>
6408// CHECK-NEXT:   </dict>
6409// CHECK-NEXT:   <dict>
6410// CHECK-NEXT:    <key>path</key>
6411// CHECK-NEXT:    <array>
6412// CHECK-NEXT:     <dict>
6413// CHECK-NEXT:      <key>kind</key><string>control</string>
6414// CHECK-NEXT:      <key>edges</key>
6415// CHECK-NEXT:       <array>
6416// CHECK-NEXT:        <dict>
6417// CHECK-NEXT:         <key>start</key>
6418// CHECK-NEXT:          <array>
6419// CHECK-NEXT:           <dict>
6420// CHECK-NEXT:            <key>line</key><integer>357</integer>
6421// CHECK-NEXT:            <key>col</key><integer>3</integer>
6422// CHECK-NEXT:            <key>file</key><integer>0</integer>
6423// CHECK-NEXT:           </dict>
6424// CHECK-NEXT:           <dict>
6425// CHECK-NEXT:            <key>line</key><integer>357</integer>
6426// CHECK-NEXT:            <key>col</key><integer>9</integer>
6427// CHECK-NEXT:            <key>file</key><integer>0</integer>
6428// CHECK-NEXT:           </dict>
6429// CHECK-NEXT:          </array>
6430// CHECK-NEXT:         <key>end</key>
6431// CHECK-NEXT:          <array>
6432// CHECK-NEXT:           <dict>
6433// CHECK-NEXT:            <key>line</key><integer>358</integer>
6434// CHECK-NEXT:            <key>col</key><integer>3</integer>
6435// CHECK-NEXT:            <key>file</key><integer>0</integer>
6436// CHECK-NEXT:           </dict>
6437// CHECK-NEXT:           <dict>
6438// CHECK-NEXT:            <key>line</key><integer>358</integer>
6439// CHECK-NEXT:            <key>col</key><integer>7</integer>
6440// CHECK-NEXT:            <key>file</key><integer>0</integer>
6441// CHECK-NEXT:           </dict>
6442// CHECK-NEXT:          </array>
6443// CHECK-NEXT:        </dict>
6444// CHECK-NEXT:       </array>
6445// CHECK-NEXT:     </dict>
6446// CHECK-NEXT:     <dict>
6447// CHECK-NEXT:      <key>kind</key><string>control</string>
6448// CHECK-NEXT:      <key>edges</key>
6449// CHECK-NEXT:       <array>
6450// CHECK-NEXT:        <dict>
6451// CHECK-NEXT:         <key>start</key>
6452// CHECK-NEXT:          <array>
6453// CHECK-NEXT:           <dict>
6454// CHECK-NEXT:            <key>line</key><integer>358</integer>
6455// CHECK-NEXT:            <key>col</key><integer>3</integer>
6456// CHECK-NEXT:            <key>file</key><integer>0</integer>
6457// CHECK-NEXT:           </dict>
6458// CHECK-NEXT:           <dict>
6459// CHECK-NEXT:            <key>line</key><integer>358</integer>
6460// CHECK-NEXT:            <key>col</key><integer>7</integer>
6461// CHECK-NEXT:            <key>file</key><integer>0</integer>
6462// CHECK-NEXT:           </dict>
6463// CHECK-NEXT:          </array>
6464// CHECK-NEXT:         <key>end</key>
6465// CHECK-NEXT:          <array>
6466// CHECK-NEXT:           <dict>
6467// CHECK-NEXT:            <key>line</key><integer>358</integer>
6468// CHECK-NEXT:            <key>col</key><integer>14</integer>
6469// CHECK-NEXT:            <key>file</key><integer>0</integer>
6470// CHECK-NEXT:           </dict>
6471// CHECK-NEXT:           <dict>
6472// CHECK-NEXT:            <key>line</key><integer>358</integer>
6473// CHECK-NEXT:            <key>col</key><integer>14</integer>
6474// CHECK-NEXT:            <key>file</key><integer>0</integer>
6475// CHECK-NEXT:           </dict>
6476// CHECK-NEXT:          </array>
6477// CHECK-NEXT:        </dict>
6478// CHECK-NEXT:       </array>
6479// CHECK-NEXT:     </dict>
6480// CHECK-NEXT:     <dict>
6481// CHECK-NEXT:      <key>kind</key><string>event</string>
6482// CHECK-NEXT:      <key>location</key>
6483// CHECK-NEXT:      <dict>
6484// CHECK-NEXT:       <key>line</key><integer>358</integer>
6485// CHECK-NEXT:       <key>col</key><integer>14</integer>
6486// CHECK-NEXT:       <key>file</key><integer>0</integer>
6487// CHECK-NEXT:      </dict>
6488// CHECK-NEXT:      <key>ranges</key>
6489// CHECK-NEXT:      <array>
6490// CHECK-NEXT:        <array>
6491// CHECK-NEXT:         <dict>
6492// CHECK-NEXT:          <key>line</key><integer>358</integer>
6493// CHECK-NEXT:          <key>col</key><integer>14</integer>
6494// CHECK-NEXT:          <key>file</key><integer>0</integer>
6495// CHECK-NEXT:         </dict>
6496// CHECK-NEXT:         <dict>
6497// CHECK-NEXT:          <key>line</key><integer>358</integer>
6498// CHECK-NEXT:          <key>col</key><integer>33</integer>
6499// CHECK-NEXT:          <key>file</key><integer>0</integer>
6500// CHECK-NEXT:         </dict>
6501// CHECK-NEXT:        </array>
6502// CHECK-NEXT:      </array>
6503// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6504// CHECK-NEXT:      <key>extended_message</key>
6505// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6506// CHECK-NEXT:      <key>message</key>
6507// CHECK-NEXT:      <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6508// CHECK-NEXT:     </dict>
6509// CHECK-NEXT:     <dict>
6510// CHECK-NEXT:      <key>kind</key><string>event</string>
6511// CHECK-NEXT:      <key>location</key>
6512// CHECK-NEXT:      <dict>
6513// CHECK-NEXT:       <key>line</key><integer>358</integer>
6514// CHECK-NEXT:       <key>col</key><integer>14</integer>
6515// CHECK-NEXT:       <key>file</key><integer>0</integer>
6516// CHECK-NEXT:      </dict>
6517// CHECK-NEXT:      <key>ranges</key>
6518// CHECK-NEXT:      <array>
6519// CHECK-NEXT:        <array>
6520// CHECK-NEXT:         <dict>
6521// CHECK-NEXT:          <key>line</key><integer>358</integer>
6522// CHECK-NEXT:          <key>col</key><integer>14</integer>
6523// CHECK-NEXT:          <key>file</key><integer>0</integer>
6524// CHECK-NEXT:         </dict>
6525// CHECK-NEXT:         <dict>
6526// CHECK-NEXT:          <key>line</key><integer>358</integer>
6527// CHECK-NEXT:          <key>col</key><integer>33</integer>
6528// CHECK-NEXT:          <key>file</key><integer>0</integer>
6529// CHECK-NEXT:         </dict>
6530// CHECK-NEXT:        </array>
6531// CHECK-NEXT:      </array>
6532// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6533// CHECK-NEXT:      <key>extended_message</key>
6534// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6535// CHECK-NEXT:      <key>message</key>
6536// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6537// CHECK-NEXT:     </dict>
6538// CHECK-NEXT:    </array>
6539// 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>
6540// CHECK-NEXT:    <key>category</key><string>Type Error</string>
6541// CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
6542// CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6543// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6544// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>be6714fed24af6e7ac522b87a5098de0</string>
6545// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6546// CHECK-NEXT:   <key>issue_context</key><string>returnToUnrelatedType</string>
6547// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
6548// CHECK-NEXT:   <key>location</key>
6549// CHECK-NEXT:   <dict>
6550// CHECK-NEXT:    <key>line</key><integer>358</integer>
6551// CHECK-NEXT:    <key>col</key><integer>14</integer>
6552// CHECK-NEXT:    <key>file</key><integer>0</integer>
6553// CHECK-NEXT:   </dict>
6554// CHECK-NEXT:   </dict>
6555// CHECK-NEXT:   <dict>
6556// CHECK-NEXT:    <key>path</key>
6557// CHECK-NEXT:    <array>
6558// CHECK-NEXT:     <dict>
6559// CHECK-NEXT:      <key>kind</key><string>control</string>
6560// CHECK-NEXT:      <key>edges</key>
6561// CHECK-NEXT:       <array>
6562// CHECK-NEXT:        <dict>
6563// CHECK-NEXT:         <key>start</key>
6564// CHECK-NEXT:          <array>
6565// CHECK-NEXT:           <dict>
6566// CHECK-NEXT:            <key>line</key><integer>363</integer>
6567// CHECK-NEXT:            <key>col</key><integer>3</integer>
6568// CHECK-NEXT:            <key>file</key><integer>0</integer>
6569// CHECK-NEXT:           </dict>
6570// CHECK-NEXT:           <dict>
6571// CHECK-NEXT:            <key>line</key><integer>363</integer>
6572// CHECK-NEXT:            <key>col</key><integer>9</integer>
6573// CHECK-NEXT:            <key>file</key><integer>0</integer>
6574// CHECK-NEXT:           </dict>
6575// CHECK-NEXT:          </array>
6576// CHECK-NEXT:         <key>end</key>
6577// CHECK-NEXT:          <array>
6578// CHECK-NEXT:           <dict>
6579// CHECK-NEXT:            <key>line</key><integer>364</integer>
6580// CHECK-NEXT:            <key>col</key><integer>3</integer>
6581// CHECK-NEXT:            <key>file</key><integer>0</integer>
6582// CHECK-NEXT:           </dict>
6583// CHECK-NEXT:           <dict>
6584// CHECK-NEXT:            <key>line</key><integer>364</integer>
6585// CHECK-NEXT:            <key>col</key><integer>4</integer>
6586// CHECK-NEXT:            <key>file</key><integer>0</integer>
6587// CHECK-NEXT:           </dict>
6588// CHECK-NEXT:          </array>
6589// CHECK-NEXT:        </dict>
6590// CHECK-NEXT:       </array>
6591// CHECK-NEXT:     </dict>
6592// CHECK-NEXT:     <dict>
6593// CHECK-NEXT:      <key>kind</key><string>event</string>
6594// CHECK-NEXT:      <key>location</key>
6595// CHECK-NEXT:      <dict>
6596// CHECK-NEXT:       <key>line</key><integer>364</integer>
6597// CHECK-NEXT:       <key>col</key><integer>10</integer>
6598// CHECK-NEXT:       <key>file</key><integer>0</integer>
6599// CHECK-NEXT:      </dict>
6600// CHECK-NEXT:      <key>ranges</key>
6601// CHECK-NEXT:      <array>
6602// CHECK-NEXT:        <array>
6603// CHECK-NEXT:         <dict>
6604// CHECK-NEXT:          <key>line</key><integer>364</integer>
6605// CHECK-NEXT:          <key>col</key><integer>10</integer>
6606// CHECK-NEXT:          <key>file</key><integer>0</integer>
6607// CHECK-NEXT:         </dict>
6608// CHECK-NEXT:         <dict>
6609// CHECK-NEXT:          <key>line</key><integer>364</integer>
6610// CHECK-NEXT:          <key>col</key><integer>29</integer>
6611// CHECK-NEXT:          <key>file</key><integer>0</integer>
6612// CHECK-NEXT:         </dict>
6613// CHECK-NEXT:        </array>
6614// CHECK-NEXT:      </array>
6615// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6616// CHECK-NEXT:      <key>extended_message</key>
6617// CHECK-NEXT:      <string>Type &apos;NSString *&apos; is inferred from this context</string>
6618// CHECK-NEXT:      <key>message</key>
6619// CHECK-NEXT:      <string>Type &apos;NSString *&apos; is inferred from this context</string>
6620// CHECK-NEXT:     </dict>
6621// CHECK-NEXT:     <dict>
6622// CHECK-NEXT:      <key>kind</key><string>control</string>
6623// CHECK-NEXT:      <key>edges</key>
6624// CHECK-NEXT:       <array>
6625// CHECK-NEXT:        <dict>
6626// CHECK-NEXT:         <key>start</key>
6627// CHECK-NEXT:          <array>
6628// CHECK-NEXT:           <dict>
6629// CHECK-NEXT:            <key>line</key><integer>364</integer>
6630// CHECK-NEXT:            <key>col</key><integer>3</integer>
6631// CHECK-NEXT:            <key>file</key><integer>0</integer>
6632// CHECK-NEXT:           </dict>
6633// CHECK-NEXT:           <dict>
6634// CHECK-NEXT:            <key>line</key><integer>364</integer>
6635// CHECK-NEXT:            <key>col</key><integer>4</integer>
6636// CHECK-NEXT:            <key>file</key><integer>0</integer>
6637// CHECK-NEXT:           </dict>
6638// CHECK-NEXT:          </array>
6639// CHECK-NEXT:         <key>end</key>
6640// CHECK-NEXT:          <array>
6641// CHECK-NEXT:           <dict>
6642// CHECK-NEXT:            <key>line</key><integer>365</integer>
6643// CHECK-NEXT:            <key>col</key><integer>3</integer>
6644// CHECK-NEXT:            <key>file</key><integer>0</integer>
6645// CHECK-NEXT:           </dict>
6646// CHECK-NEXT:           <dict>
6647// CHECK-NEXT:            <key>line</key><integer>365</integer>
6648// CHECK-NEXT:            <key>col</key><integer>10</integer>
6649// CHECK-NEXT:            <key>file</key><integer>0</integer>
6650// CHECK-NEXT:           </dict>
6651// CHECK-NEXT:          </array>
6652// CHECK-NEXT:        </dict>
6653// CHECK-NEXT:       </array>
6654// CHECK-NEXT:     </dict>
6655// CHECK-NEXT:     <dict>
6656// CHECK-NEXT:      <key>kind</key><string>control</string>
6657// CHECK-NEXT:      <key>edges</key>
6658// CHECK-NEXT:       <array>
6659// CHECK-NEXT:        <dict>
6660// CHECK-NEXT:         <key>start</key>
6661// CHECK-NEXT:          <array>
6662// CHECK-NEXT:           <dict>
6663// CHECK-NEXT:            <key>line</key><integer>365</integer>
6664// CHECK-NEXT:            <key>col</key><integer>3</integer>
6665// CHECK-NEXT:            <key>file</key><integer>0</integer>
6666// CHECK-NEXT:           </dict>
6667// CHECK-NEXT:           <dict>
6668// CHECK-NEXT:            <key>line</key><integer>365</integer>
6669// CHECK-NEXT:            <key>col</key><integer>10</integer>
6670// CHECK-NEXT:            <key>file</key><integer>0</integer>
6671// CHECK-NEXT:           </dict>
6672// CHECK-NEXT:          </array>
6673// CHECK-NEXT:         <key>end</key>
6674// CHECK-NEXT:          <array>
6675// CHECK-NEXT:           <dict>
6676// CHECK-NEXT:            <key>line</key><integer>365</integer>
6677// CHECK-NEXT:            <key>col</key><integer>19</integer>
6678// CHECK-NEXT:            <key>file</key><integer>0</integer>
6679// CHECK-NEXT:           </dict>
6680// CHECK-NEXT:           <dict>
6681// CHECK-NEXT:            <key>line</key><integer>365</integer>
6682// CHECK-NEXT:            <key>col</key><integer>19</integer>
6683// CHECK-NEXT:            <key>file</key><integer>0</integer>
6684// CHECK-NEXT:           </dict>
6685// CHECK-NEXT:          </array>
6686// CHECK-NEXT:        </dict>
6687// CHECK-NEXT:       </array>
6688// CHECK-NEXT:     </dict>
6689// CHECK-NEXT:     <dict>
6690// CHECK-NEXT:      <key>kind</key><string>event</string>
6691// CHECK-NEXT:      <key>location</key>
6692// CHECK-NEXT:      <dict>
6693// CHECK-NEXT:       <key>line</key><integer>365</integer>
6694// CHECK-NEXT:       <key>col</key><integer>19</integer>
6695// CHECK-NEXT:       <key>file</key><integer>0</integer>
6696// CHECK-NEXT:      </dict>
6697// CHECK-NEXT:      <key>ranges</key>
6698// CHECK-NEXT:      <array>
6699// CHECK-NEXT:        <array>
6700// CHECK-NEXT:         <dict>
6701// CHECK-NEXT:          <key>line</key><integer>365</integer>
6702// CHECK-NEXT:          <key>col</key><integer>19</integer>
6703// CHECK-NEXT:          <key>file</key><integer>0</integer>
6704// CHECK-NEXT:         </dict>
6705// CHECK-NEXT:         <dict>
6706// CHECK-NEXT:          <key>line</key><integer>365</integer>
6707// CHECK-NEXT:          <key>col</key><integer>19</integer>
6708// CHECK-NEXT:          <key>file</key><integer>0</integer>
6709// CHECK-NEXT:         </dict>
6710// CHECK-NEXT:        </array>
6711// CHECK-NEXT:      </array>
6712// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6713// CHECK-NEXT:      <key>extended_message</key>
6714// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6715// CHECK-NEXT:      <key>message</key>
6716// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6717// CHECK-NEXT:     </dict>
6718// CHECK-NEXT:    </array>
6719// CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6720// CHECK-NEXT:    <key>category</key><string>Type Error</string>
6721// CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
6722// CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6723// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6724// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>5e96ef711c8f115bc64f69baa3f6ea7a</string>
6725// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6726// CHECK-NEXT:   <key>issue_context</key><string>returnToIdVariable</string>
6727// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
6728// CHECK-NEXT:   <key>location</key>
6729// CHECK-NEXT:   <dict>
6730// CHECK-NEXT:    <key>line</key><integer>365</integer>
6731// CHECK-NEXT:    <key>col</key><integer>19</integer>
6732// CHECK-NEXT:    <key>file</key><integer>0</integer>
6733// CHECK-NEXT:   </dict>
6734// CHECK-NEXT:   </dict>
6735// CHECK-NEXT:   <dict>
6736// CHECK-NEXT:    <key>path</key>
6737// CHECK-NEXT:    <array>
6738// CHECK-NEXT:     <dict>
6739// CHECK-NEXT:      <key>kind</key><string>event</string>
6740// CHECK-NEXT:      <key>location</key>
6741// CHECK-NEXT:      <dict>
6742// CHECK-NEXT:       <key>line</key><integer>374</integer>
6743// CHECK-NEXT:       <key>col</key><integer>12</integer>
6744// CHECK-NEXT:       <key>file</key><integer>0</integer>
6745// CHECK-NEXT:      </dict>
6746// CHECK-NEXT:      <key>ranges</key>
6747// CHECK-NEXT:      <array>
6748// CHECK-NEXT:        <array>
6749// CHECK-NEXT:         <dict>
6750// CHECK-NEXT:          <key>line</key><integer>374</integer>
6751// CHECK-NEXT:          <key>col</key><integer>12</integer>
6752// CHECK-NEXT:          <key>file</key><integer>0</integer>
6753// CHECK-NEXT:         </dict>
6754// CHECK-NEXT:         <dict>
6755// CHECK-NEXT:          <key>line</key><integer>374</integer>
6756// CHECK-NEXT:          <key>col</key><integer>12</integer>
6757// CHECK-NEXT:          <key>file</key><integer>0</integer>
6758// CHECK-NEXT:         </dict>
6759// CHECK-NEXT:        </array>
6760// CHECK-NEXT:      </array>
6761// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6762// CHECK-NEXT:      <key>extended_message</key>
6763// 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>
6764// CHECK-NEXT:      <key>message</key>
6765// 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>
6766// CHECK-NEXT:     </dict>
6767// CHECK-NEXT:     <dict>
6768// CHECK-NEXT:      <key>kind</key><string>control</string>
6769// CHECK-NEXT:      <key>edges</key>
6770// CHECK-NEXT:       <array>
6771// CHECK-NEXT:        <dict>
6772// CHECK-NEXT:         <key>start</key>
6773// CHECK-NEXT:          <array>
6774// CHECK-NEXT:           <dict>
6775// CHECK-NEXT:            <key>line</key><integer>374</integer>
6776// CHECK-NEXT:            <key>col</key><integer>3</integer>
6777// CHECK-NEXT:            <key>file</key><integer>0</integer>
6778// CHECK-NEXT:           </dict>
6779// CHECK-NEXT:           <dict>
6780// CHECK-NEXT:            <key>line</key><integer>374</integer>
6781// CHECK-NEXT:            <key>col</key><integer>4</integer>
6782// CHECK-NEXT:            <key>file</key><integer>0</integer>
6783// CHECK-NEXT:           </dict>
6784// CHECK-NEXT:          </array>
6785// CHECK-NEXT:         <key>end</key>
6786// CHECK-NEXT:          <array>
6787// CHECK-NEXT:           <dict>
6788// CHECK-NEXT:            <key>line</key><integer>375</integer>
6789// CHECK-NEXT:            <key>col</key><integer>3</integer>
6790// CHECK-NEXT:            <key>file</key><integer>0</integer>
6791// CHECK-NEXT:           </dict>
6792// CHECK-NEXT:           <dict>
6793// CHECK-NEXT:            <key>line</key><integer>375</integer>
6794// CHECK-NEXT:            <key>col</key><integer>3</integer>
6795// CHECK-NEXT:            <key>file</key><integer>0</integer>
6796// CHECK-NEXT:           </dict>
6797// CHECK-NEXT:          </array>
6798// CHECK-NEXT:        </dict>
6799// CHECK-NEXT:       </array>
6800// CHECK-NEXT:     </dict>
6801// CHECK-NEXT:     <dict>
6802// CHECK-NEXT:      <key>kind</key><string>control</string>
6803// CHECK-NEXT:      <key>edges</key>
6804// CHECK-NEXT:       <array>
6805// CHECK-NEXT:        <dict>
6806// CHECK-NEXT:         <key>start</key>
6807// CHECK-NEXT:          <array>
6808// CHECK-NEXT:           <dict>
6809// CHECK-NEXT:            <key>line</key><integer>375</integer>
6810// CHECK-NEXT:            <key>col</key><integer>3</integer>
6811// CHECK-NEXT:            <key>file</key><integer>0</integer>
6812// CHECK-NEXT:           </dict>
6813// CHECK-NEXT:           <dict>
6814// CHECK-NEXT:            <key>line</key><integer>375</integer>
6815// CHECK-NEXT:            <key>col</key><integer>3</integer>
6816// CHECK-NEXT:            <key>file</key><integer>0</integer>
6817// CHECK-NEXT:           </dict>
6818// CHECK-NEXT:          </array>
6819// CHECK-NEXT:         <key>end</key>
6820// CHECK-NEXT:          <array>
6821// CHECK-NEXT:           <dict>
6822// CHECK-NEXT:            <key>line</key><integer>375</integer>
6823// CHECK-NEXT:            <key>col</key><integer>7</integer>
6824// CHECK-NEXT:            <key>file</key><integer>0</integer>
6825// CHECK-NEXT:           </dict>
6826// CHECK-NEXT:           <dict>
6827// CHECK-NEXT:            <key>line</key><integer>375</integer>
6828// CHECK-NEXT:            <key>col</key><integer>9</integer>
6829// CHECK-NEXT:            <key>file</key><integer>0</integer>
6830// CHECK-NEXT:           </dict>
6831// CHECK-NEXT:          </array>
6832// CHECK-NEXT:        </dict>
6833// CHECK-NEXT:       </array>
6834// CHECK-NEXT:     </dict>
6835// CHECK-NEXT:     <dict>
6836// CHECK-NEXT:      <key>kind</key><string>event</string>
6837// CHECK-NEXT:      <key>location</key>
6838// CHECK-NEXT:      <dict>
6839// CHECK-NEXT:       <key>line</key><integer>375</integer>
6840// CHECK-NEXT:       <key>col</key><integer>7</integer>
6841// CHECK-NEXT:       <key>file</key><integer>0</integer>
6842// CHECK-NEXT:      </dict>
6843// CHECK-NEXT:      <key>ranges</key>
6844// CHECK-NEXT:      <array>
6845// CHECK-NEXT:        <array>
6846// CHECK-NEXT:         <dict>
6847// CHECK-NEXT:          <key>line</key><integer>375</integer>
6848// CHECK-NEXT:          <key>col</key><integer>7</integer>
6849// CHECK-NEXT:          <key>file</key><integer>0</integer>
6850// CHECK-NEXT:         </dict>
6851// CHECK-NEXT:         <dict>
6852// CHECK-NEXT:          <key>line</key><integer>375</integer>
6853// CHECK-NEXT:          <key>col</key><integer>9</integer>
6854// CHECK-NEXT:          <key>file</key><integer>0</integer>
6855// CHECK-NEXT:         </dict>
6856// CHECK-NEXT:        </array>
6857// CHECK-NEXT:      </array>
6858// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6859// CHECK-NEXT:      <key>extended_message</key>
6860// CHECK-NEXT:      <string>Conversion from value of type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
6861// CHECK-NEXT:      <key>message</key>
6862// CHECK-NEXT:      <string>Conversion from value of type &apos;UnrelatedTypeGeneric&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
6863// CHECK-NEXT:     </dict>
6864// CHECK-NEXT:    </array>
6865// 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>
6866// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6867// CHECK-NEXT:    <key>type</key><string>Generics</string>
6868// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6869// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6870// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>8347f65fb51a85ccd462d75ffd761078</string>
6871// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6872// CHECK-NEXT:   <key>issue_context</key><string>testGetMostInformativeDerivedForId</string>
6873// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>2</string>
6874// CHECK-NEXT:   <key>location</key>
6875// CHECK-NEXT:   <dict>
6876// CHECK-NEXT:    <key>line</key><integer>375</integer>
6877// CHECK-NEXT:    <key>col</key><integer>7</integer>
6878// CHECK-NEXT:    <key>file</key><integer>0</integer>
6879// CHECK-NEXT:   </dict>
6880// CHECK-NEXT:   </dict>
6881// CHECK-NEXT:   <dict>
6882// CHECK-NEXT:    <key>path</key>
6883// CHECK-NEXT:    <array>
6884// CHECK-NEXT:     <dict>
6885// CHECK-NEXT:      <key>kind</key><string>event</string>
6886// CHECK-NEXT:      <key>location</key>
6887// CHECK-NEXT:      <dict>
6888// CHECK-NEXT:       <key>line</key><integer>374</integer>
6889// CHECK-NEXT:       <key>col</key><integer>12</integer>
6890// CHECK-NEXT:       <key>file</key><integer>0</integer>
6891// CHECK-NEXT:      </dict>
6892// CHECK-NEXT:      <key>ranges</key>
6893// CHECK-NEXT:      <array>
6894// CHECK-NEXT:        <array>
6895// CHECK-NEXT:         <dict>
6896// CHECK-NEXT:          <key>line</key><integer>374</integer>
6897// CHECK-NEXT:          <key>col</key><integer>12</integer>
6898// CHECK-NEXT:          <key>file</key><integer>0</integer>
6899// CHECK-NEXT:         </dict>
6900// CHECK-NEXT:         <dict>
6901// CHECK-NEXT:          <key>line</key><integer>374</integer>
6902// CHECK-NEXT:          <key>col</key><integer>12</integer>
6903// CHECK-NEXT:          <key>file</key><integer>0</integer>
6904// CHECK-NEXT:         </dict>
6905// CHECK-NEXT:        </array>
6906// CHECK-NEXT:      </array>
6907// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6908// CHECK-NEXT:      <key>extended_message</key>
6909// 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>
6910// CHECK-NEXT:      <key>message</key>
6911// 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>
6912// CHECK-NEXT:     </dict>
6913// CHECK-NEXT:     <dict>
6914// CHECK-NEXT:      <key>kind</key><string>control</string>
6915// CHECK-NEXT:      <key>edges</key>
6916// CHECK-NEXT:       <array>
6917// CHECK-NEXT:        <dict>
6918// CHECK-NEXT:         <key>start</key>
6919// CHECK-NEXT:          <array>
6920// CHECK-NEXT:           <dict>
6921// CHECK-NEXT:            <key>line</key><integer>374</integer>
6922// CHECK-NEXT:            <key>col</key><integer>3</integer>
6923// CHECK-NEXT:            <key>file</key><integer>0</integer>
6924// CHECK-NEXT:           </dict>
6925// CHECK-NEXT:           <dict>
6926// CHECK-NEXT:            <key>line</key><integer>374</integer>
6927// CHECK-NEXT:            <key>col</key><integer>4</integer>
6928// CHECK-NEXT:            <key>file</key><integer>0</integer>
6929// CHECK-NEXT:           </dict>
6930// CHECK-NEXT:          </array>
6931// CHECK-NEXT:         <key>end</key>
6932// CHECK-NEXT:          <array>
6933// CHECK-NEXT:           <dict>
6934// CHECK-NEXT:            <key>line</key><integer>380</integer>
6935// CHECK-NEXT:            <key>col</key><integer>3</integer>
6936// CHECK-NEXT:            <key>file</key><integer>0</integer>
6937// CHECK-NEXT:           </dict>
6938// CHECK-NEXT:           <dict>
6939// CHECK-NEXT:            <key>line</key><integer>380</integer>
6940// CHECK-NEXT:            <key>col</key><integer>3</integer>
6941// CHECK-NEXT:            <key>file</key><integer>0</integer>
6942// CHECK-NEXT:           </dict>
6943// CHECK-NEXT:          </array>
6944// CHECK-NEXT:        </dict>
6945// CHECK-NEXT:       </array>
6946// CHECK-NEXT:     </dict>
6947// CHECK-NEXT:     <dict>
6948// CHECK-NEXT:      <key>kind</key><string>event</string>
6949// CHECK-NEXT:      <key>location</key>
6950// CHECK-NEXT:      <dict>
6951// CHECK-NEXT:       <key>line</key><integer>380</integer>
6952// CHECK-NEXT:       <key>col</key><integer>3</integer>
6953// CHECK-NEXT:       <key>file</key><integer>0</integer>
6954// CHECK-NEXT:      </dict>
6955// CHECK-NEXT:      <key>ranges</key>
6956// CHECK-NEXT:      <array>
6957// CHECK-NEXT:        <array>
6958// CHECK-NEXT:         <dict>
6959// CHECK-NEXT:          <key>line</key><integer>380</integer>
6960// CHECK-NEXT:          <key>col</key><integer>16</integer>
6961// CHECK-NEXT:          <key>file</key><integer>0</integer>
6962// CHECK-NEXT:         </dict>
6963// CHECK-NEXT:         <dict>
6964// CHECK-NEXT:          <key>line</key><integer>380</integer>
6965// CHECK-NEXT:          <key>col</key><integer>38</integer>
6966// CHECK-NEXT:          <key>file</key><integer>0</integer>
6967// CHECK-NEXT:         </dict>
6968// CHECK-NEXT:        </array>
6969// CHECK-NEXT:      </array>
6970// CHECK-NEXT:      <key>depth</key><integer>0</integer>
6971// CHECK-NEXT:      <key>extended_message</key>
6972// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
6973// CHECK-NEXT:      <key>message</key>
6974// CHECK-NEXT:      <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
6975// CHECK-NEXT:     </dict>
6976// CHECK-NEXT:    </array>
6977// CHECK-NEXT:    <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
6978// CHECK-NEXT:    <key>category</key><string>Core Foundation/Objective-C</string>
6979// CHECK-NEXT:    <key>type</key><string>Generics</string>
6980// CHECK-NEXT:    <key>check_name</key><string>core.DynamicTypePropagation</string>
6981// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
6982// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>6528db66f562ac0c2a94933f3ca5f6a8</string>
6983// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
6984// CHECK-NEXT:   <key>issue_context</key><string>testGetMostInformativeDerivedForId</string>
6985// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>7</string>
6986// CHECK-NEXT:   <key>location</key>
6987// CHECK-NEXT:   <dict>
6988// CHECK-NEXT:    <key>line</key><integer>380</integer>
6989// CHECK-NEXT:    <key>col</key><integer>3</integer>
6990// CHECK-NEXT:    <key>file</key><integer>0</integer>
6991// CHECK-NEXT:   </dict>
6992// CHECK-NEXT:   </dict>
6993// CHECK-NEXT:   <dict>
6994// CHECK-NEXT:    <key>path</key>
6995// CHECK-NEXT:    <array>
6996// CHECK-NEXT:     <dict>
6997// CHECK-NEXT:      <key>kind</key><string>control</string>
6998// CHECK-NEXT:      <key>edges</key>
6999// CHECK-NEXT:       <array>
7000// CHECK-NEXT:        <dict>
7001// CHECK-NEXT:         <key>start</key>
7002// CHECK-NEXT:          <array>
7003// CHECK-NEXT:           <dict>
7004// CHECK-NEXT:            <key>line</key><integer>389</integer>
7005// CHECK-NEXT:            <key>col</key><integer>3</integer>
7006// CHECK-NEXT:            <key>file</key><integer>0</integer>
7007// CHECK-NEXT:           </dict>
7008// CHECK-NEXT:           <dict>
7009// CHECK-NEXT:            <key>line</key><integer>389</integer>
7010// CHECK-NEXT:            <key>col</key><integer>9</integer>
7011// CHECK-NEXT:            <key>file</key><integer>0</integer>
7012// CHECK-NEXT:           </dict>
7013// CHECK-NEXT:          </array>
7014// CHECK-NEXT:         <key>end</key>
7015// CHECK-NEXT:          <array>
7016// CHECK-NEXT:           <dict>
7017// CHECK-NEXT:            <key>line</key><integer>391</integer>
7018// CHECK-NEXT:            <key>col</key><integer>3</integer>
7019// CHECK-NEXT:            <key>file</key><integer>0</integer>
7020// CHECK-NEXT:           </dict>
7021// CHECK-NEXT:           <dict>
7022// CHECK-NEXT:            <key>line</key><integer>391</integer>
7023// CHECK-NEXT:            <key>col</key><integer>9</integer>
7024// CHECK-NEXT:            <key>file</key><integer>0</integer>
7025// CHECK-NEXT:           </dict>
7026// CHECK-NEXT:          </array>
7027// CHECK-NEXT:        </dict>
7028// CHECK-NEXT:       </array>
7029// CHECK-NEXT:     </dict>
7030// CHECK-NEXT:     <dict>
7031// CHECK-NEXT:      <key>kind</key><string>control</string>
7032// CHECK-NEXT:      <key>edges</key>
7033// CHECK-NEXT:       <array>
7034// CHECK-NEXT:        <dict>
7035// CHECK-NEXT:         <key>start</key>
7036// CHECK-NEXT:          <array>
7037// CHECK-NEXT:           <dict>
7038// CHECK-NEXT:            <key>line</key><integer>391</integer>
7039// CHECK-NEXT:            <key>col</key><integer>3</integer>
7040// CHECK-NEXT:            <key>file</key><integer>0</integer>
7041// CHECK-NEXT:           </dict>
7042// CHECK-NEXT:           <dict>
7043// CHECK-NEXT:            <key>line</key><integer>391</integer>
7044// CHECK-NEXT:            <key>col</key><integer>9</integer>
7045// CHECK-NEXT:            <key>file</key><integer>0</integer>
7046// CHECK-NEXT:           </dict>
7047// CHECK-NEXT:          </array>
7048// CHECK-NEXT:         <key>end</key>
7049// CHECK-NEXT:          <array>
7050// CHECK-NEXT:           <dict>
7051// CHECK-NEXT:            <key>line</key><integer>391</integer>
7052// CHECK-NEXT:            <key>col</key><integer>70</integer>
7053// CHECK-NEXT:            <key>file</key><integer>0</integer>
7054// CHECK-NEXT:           </dict>
7055// CHECK-NEXT:           <dict>
7056// CHECK-NEXT:            <key>line</key><integer>391</integer>
7057// CHECK-NEXT:            <key>col</key><integer>79</integer>
7058// CHECK-NEXT:            <key>file</key><integer>0</integer>
7059// CHECK-NEXT:           </dict>
7060// CHECK-NEXT:          </array>
7061// CHECK-NEXT:        </dict>
7062// CHECK-NEXT:       </array>
7063// CHECK-NEXT:     </dict>
7064// CHECK-NEXT:     <dict>
7065// CHECK-NEXT:      <key>kind</key><string>event</string>
7066// CHECK-NEXT:      <key>location</key>
7067// CHECK-NEXT:      <dict>
7068// CHECK-NEXT:       <key>line</key><integer>391</integer>
7069// CHECK-NEXT:       <key>col</key><integer>70</integer>
7070// CHECK-NEXT:       <key>file</key><integer>0</integer>
7071// CHECK-NEXT:      </dict>
7072// CHECK-NEXT:      <key>ranges</key>
7073// CHECK-NEXT:      <array>
7074// CHECK-NEXT:        <array>
7075// CHECK-NEXT:         <dict>
7076// CHECK-NEXT:          <key>line</key><integer>391</integer>
7077// CHECK-NEXT:          <key>col</key><integer>70</integer>
7078// CHECK-NEXT:          <key>file</key><integer>0</integer>
7079// CHECK-NEXT:         </dict>
7080// CHECK-NEXT:         <dict>
7081// CHECK-NEXT:          <key>line</key><integer>391</integer>
7082// CHECK-NEXT:          <key>col</key><integer>79</integer>
7083// CHECK-NEXT:          <key>file</key><integer>0</integer>
7084// CHECK-NEXT:         </dict>
7085// CHECK-NEXT:        </array>
7086// CHECK-NEXT:      </array>
7087// CHECK-NEXT:      <key>depth</key><integer>0</integer>
7088// CHECK-NEXT:      <key>extended_message</key>
7089// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
7090// CHECK-NEXT:      <key>message</key>
7091// CHECK-NEXT:      <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
7092// CHECK-NEXT:     </dict>
7093// CHECK-NEXT:    </array>
7094// CHECK-NEXT:    <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
7095// CHECK-NEXT:    <key>category</key><string>Type Error</string>
7096// CHECK-NEXT:    <key>type</key><string>Dynamic and static type mismatch</string>
7097// CHECK-NEXT:    <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
7098// CHECK-NEXT:    <!-- This hash is experimental and going to change! -->
7099// CHECK-NEXT:    <key>issue_hash_content_of_line_in_context</key><string>56326e7b73d049256717eba7005ccc4d</string>
7100// CHECK-NEXT:   <key>issue_context_kind</key><string>function</string>
7101// CHECK-NEXT:   <key>issue_context</key><string>testArgumentAfterUpcastWithCovariantTypeParameter</string>
7102// CHECK-NEXT:   <key>issue_hash_function_offset</key><string>3</string>
7103// CHECK-NEXT:   <key>location</key>
7104// CHECK-NEXT:   <dict>
7105// CHECK-NEXT:    <key>line</key><integer>391</integer>
7106// CHECK-NEXT:    <key>col</key><integer>70</integer>
7107// CHECK-NEXT:    <key>file</key><integer>0</integer>
7108// CHECK-NEXT:   </dict>
7109// CHECK-NEXT:   </dict>
7110// CHECK-NEXT:  </array>
7111