• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.ObjCGenerics,alpha.core.DynamicTypeChecker -verify -Wno-objc-method-access %s
2// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.ObjCGenerics,alpha.core.DynamicTypeChecker -verify -Wno-objc-method-access %s -analyzer-output=plist -o %t.plist
3// RUN: FileCheck --input-file %t.plist %s
4
5#if !__has_feature(objc_generics)
6#  error Compiler does not support Objective-C generics?
7#endif
8
9#if !__has_feature(objc_generics_variance)
10#  error Compiler does not support co- and contr-variance?
11#endif
12
13#define nil 0
14typedef unsigned long NSUInteger;
15typedef int BOOL;
16
17@protocol NSObject
18+ (id)alloc;
19- (id)init;
20@end
21
22@protocol NSCopying
23@end
24
25__attribute__((objc_root_class))
26@interface NSObject <NSObject>
27@end
28
29@interface NSString : NSObject <NSCopying>
30@end
31
32@interface NSMutableString : NSString
33@end
34
35@interface NSNumber : NSObject <NSCopying>
36@end
37
38@interface NSSet : NSObject <NSCopying>
39@end
40
41@interface NSArray<__covariant ObjectType> : NSObject
42+ (instancetype)arrayWithObjects:(const ObjectType [])objects count:(NSUInteger)count;
43+ (instancetype)getEmpty;
44+ (NSArray<ObjectType> *)getEmpty2;
45- (BOOL)contains:(ObjectType)obj;
46- (ObjectType)getObjAtIndex:(NSUInteger)idx;
47- (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx;
48@property(readonly) ObjectType firstObject;
49@end
50
51@interface MutableArray<ObjectType> : NSArray<ObjectType>
52- (void)addObject:(ObjectType)anObject;
53@end
54
55@interface LegacyMutableArray : MutableArray
56@end
57
58@interface LegacySpecialMutableArray : LegacyMutableArray
59@end
60
61@interface BuggyMutableArray<T> : MutableArray
62@end
63
64@interface BuggySpecialMutableArray<T> : BuggyMutableArray<T>
65@end
66
67@interface MyMutableStringArray : MutableArray<NSString *>
68@end
69
70@interface ExceptionalArray<ExceptionType> : MutableArray<NSString *>
71- (ExceptionType) getException;
72@end
73
74@interface UnrelatedType : NSObject<NSCopying>
75@end
76
77int getUnknown();
78NSArray *getStuff();
79NSArray *getTypedStuff() {
80  NSArray<NSNumber *> *c = getStuff();
81  return c;
82}
83
84void doStuff(NSArray<NSNumber *> *);
85void withArrString(NSArray<NSString *> *);
86void withArrMutableString(NSArray<NSMutableString *> *);
87void withMutArrString(MutableArray<NSString *> *);
88void withMutArrMutableString(MutableArray<NSMutableString *> *);
89
90void incompatibleTypesErased(NSArray *a, NSArray<NSString *> *b,
91                             NSArray<NSNumber *> *c) {
92  a = b;
93  c = a; // expected-warning  {{Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'}}
94  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
95  [a contains: [[NSString alloc] init]];
96  doStuff(a); // expected-warning {{Conversion}}
97}
98
99void crossProceduralErasedTypes() {
100  NSArray<NSString *> *a = getTypedStuff(); // expected-warning {{Conversion}}
101}
102
103void incompatibleTypesErasedReverseConversion(NSArray *a,
104                                              NSArray<NSString *> *b) {
105  b = a;
106  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
107  [a contains: [[NSString alloc] init]];
108  doStuff(a); // expected-warning {{Conversion}}
109}
110
111void idErasedIncompatibleTypesReverseConversion(id a, NSArray<NSString *> *b) {
112  b = a;
113  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
114  [a contains: [[NSString alloc] init]];
115  doStuff(a); // expected-warning {{Conversion}}
116}
117
118void idErasedIncompatibleTypes(id a, NSArray<NSString *> *b,
119                               NSArray<NSNumber *> *c) {
120  a = b;
121  c = a; // expected-warning {{Conversion}}
122  [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
123  [a contains: [[NSString alloc] init]];
124  doStuff(a); // expected-warning {{Conversion}}
125}
126
127void pathSensitiveInference(MutableArray *m, MutableArray<NSString *> *a,
128                            MutableArray<NSMutableString *> *b) {
129  if (getUnknown() == 5) {
130    m = a;
131    [m contains: [[NSString alloc] init]];
132  } else {
133    m = b;
134    [m contains: [[NSMutableString alloc] init]];
135  }
136  [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
137  [m addObject: [[NSMutableString alloc] init]];
138}
139
140void verifyAPIusage(id a, MutableArray<NSString *> *b) {
141  b = a;
142  doStuff(a); // expected-warning {{Conversion}}
143}
144
145void trustExplicitCasts(MutableArray *a,
146                        MutableArray<NSMutableString *> *b) {
147  b = (MutableArray<NSMutableString *> *)a;
148  [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
149}
150
151void subtypeOfGeneric(id d, MyMutableStringArray *a,
152                       MutableArray<NSString *> *b,
153                       MutableArray<NSNumber *> *c) {
154  d = a;
155  b = d;
156  c = d; // expected-warning {{Conversion}}
157}
158
159void genericSubtypeOfGeneric(id d, ExceptionalArray<NSString *> *a,
160                             MutableArray<NSString *> *b,
161                             MutableArray<NSNumber *> *c) {
162  d = a;
163  [d contains: [[NSString alloc] init]];
164  [d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
165  b = d;
166  c = d; // expected-warning {{Conversion}}
167}
168
169void genericSubtypeOfGenericReverse(id d, ExceptionalArray<NSString *> *a,
170                                    MutableArray<NSString *> *b,
171                                    MutableArray<NSNumber *> *c) {
172  a = d;
173  [d contains: [[NSString alloc] init]];
174  [d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
175  b = d;
176  c = d; // expected-warning {{Conversion}}
177}
178
179void inferenceFromAPI(id a) {
180  // Here the type parameter is invariant. There should be a warning every time
181  // when the type parameter changes during the conversions.
182  withMutArrString(a);
183  withMutArrMutableString(a); // expected-warning {{Conversion}}
184}
185
186void inferenceFromAPI2(id a) {
187  withMutArrMutableString(a);
188  withMutArrString(a); // expected-warning {{Conversion}}
189}
190
191void inferenceFromAPIWithLegacyTypes(LegacyMutableArray *a) {
192  withMutArrMutableString(a);
193  withMutArrString(a); // expected-warning {{Conversion}}
194}
195
196void inferenceFromAPIWithLegacyTypes2(LegacySpecialMutableArray *a) {
197  withMutArrString(a);
198  withMutArrMutableString(a); // expected-warning {{Conversion}}
199}
200
201void inferenceFromAPIWithLegacyTypes3(__kindof NSArray<NSString *> *a) {
202  LegacyMutableArray *b = a;
203  withMutArrString(b);
204  withMutArrMutableString(b); // expected-warning {{Conversion}}
205}
206
207void inferenceFromAPIWithBuggyTypes(BuggyMutableArray<NSMutableString *> *a) {
208  withMutArrString(a);
209  withMutArrMutableString(a); // expected-warning {{Conversion}}
210}
211
212void InferenceFromAPIWithBuggyTypes2(BuggySpecialMutableArray<NSMutableString *> *a) {
213  withMutArrMutableString(a);
214  withMutArrString(a); // expected-warning {{Conversion}}
215}
216
217void InferenceFromAPIWithBuggyTypes3(MutableArray<NSMutableString *> *a) {
218  id b = a;
219  withMutArrMutableString((BuggyMutableArray<NSMutableString *> *)b);
220  withMutArrString(b); // expected-warning {{Conversion}}
221}
222
223void InferenceFromAPIWithBuggyTypes4(__kindof NSArray<NSString *> *a) {
224  BuggyMutableArray<NSMutableString *> *b = a;
225  withMutArrString(b);
226  withMutArrMutableString(b); // expected-warning {{Conversion}}
227}
228
229NSArray<NSString *> *getStrings();
230void enforceDynamicRulesInsteadOfStatic(NSArray<NSNumber *> *a) {
231  NSArray *b = a;
232  // Valid uses of NSArray of NSNumbers.
233  b = getStrings();
234  // Valid uses of NSArray of NSStrings.
235}
236
237void workWithProperties(NSArray<NSNumber *> *a) {
238  NSArray *b = a;
239  NSString *str = [b getObjAtIndex: 0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
240  NSNumber *num = [b getObjAtIndex: 0];
241  str = [b firstObject]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
242  num = [b firstObject];
243  str = b.firstObject; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
244  num = b.firstObject;
245  str = b[0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}}
246  num = b[0];
247}
248
249void findMethodDeclInTrackedType(id m, NSArray<NSMutableString *> *a,
250                                 MutableArray<NSMutableString *> *b) {
251  a = b;
252  if (getUnknown() == 5) {
253    m = a;
254    [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
255  } else {
256    m = b;
257    [m addObject: [[NSMutableString alloc] init]];
258  }
259}
260
261void findMethodDeclInTrackedType2(__kindof NSArray<NSString *> *a,
262                                  MutableArray<NSMutableString *> *b) {
263  a = b;
264  if (getUnknown() == 5) {
265    [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
266  } else {
267    [a addObject: [[NSMutableString alloc] init]];
268  }
269}
270
271void testUnannotatedLiterals() {
272  // ObjCArrayLiterals are not specialized in the AST.
273  NSArray *arr = @[@"A", @"B"];
274  [arr contains: [[NSNumber alloc] init]];
275}
276
277void testAnnotatedLiterals() {
278  NSArray<NSString *> *arr = @[@"A", @"B"];
279  NSArray *arr2 = arr;
280  [arr2 contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
281}
282
283void nonExistentMethodDoesNotCrash(id a, MutableArray<NSMutableString *> *b) {
284  a = b;
285  [a nonExistentMethod];
286}
287
288void trackedClassVariables() {
289  Class c = [NSArray<NSString *> class];
290  NSArray<NSNumber *> *a = [c getEmpty]; // expected-warning {{Conversion}}
291  a = [c getEmpty2]; // expected-warning {{Conversion}}
292}
293
294void nestedCollections(NSArray<NSArray<NSNumber *> *> *mat, NSArray<NSString *> *row) {
295  id temp = row;
296  [mat contains: temp]; // expected-warning {{Conversion}}
297}
298
299void testMistmatchedTypeCast(MutableArray<NSMutableString *> *a) {
300  MutableArray *b = (MutableArray<NSNumber *> *)a;
301  [b addObject: [[NSNumber alloc] init]];
302  id c = (UnrelatedType *)a;
303  [c addObject: [[NSNumber alloc] init]];
304  [c addObject: [[NSString alloc] init]];
305}
306
307void returnCollectionToIdVariable(NSArray<NSArray<NSString *> *> *arr) {
308  NSArray *erased = arr;
309  id a = [erased firstObject];
310  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
311}
312
313void eraseSpecialization(NSArray<NSArray<NSString *> *> *arr) {
314  NSArray *erased = arr;
315  NSArray* a = [erased firstObject];
316  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
317}
318
319void returnToUnrelatedType(NSArray<NSArray<NSString *> *> *arr) {
320  NSArray *erased = arr;
321  NSSet* a = [erased firstObject]; // expected-warning {{Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'}}
322  (void)a;
323}
324
325void returnToIdVariable(NSArray<NSString *> *arr) {
326  NSArray *erased = arr;
327  id a = [erased firstObject];
328  NSNumber *res = a; // expected-warning {{Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'}}
329}
330
331// CHECK: <key>diagnostics</key>
332// CHECK-NEXT: <array>
333// CHECK-NEXT:  <dict>
334// CHECK-NEXT:   <key>path</key>
335// CHECK-NEXT:   <array>
336// CHECK-NEXT:    <dict>
337// CHECK-NEXT:     <key>kind</key><string>event</string>
338// CHECK-NEXT:     <key>location</key>
339// CHECK-NEXT:     <dict>
340// CHECK-NEXT:      <key>line</key><integer>92</integer>
341// CHECK-NEXT:      <key>col</key><integer>7</integer>
342// CHECK-NEXT:      <key>file</key><integer>0</integer>
343// CHECK-NEXT:     </dict>
344// CHECK-NEXT:     <key>ranges</key>
345// CHECK-NEXT:     <array>
346// CHECK-NEXT:       <array>
347// CHECK-NEXT:        <dict>
348// CHECK-NEXT:         <key>line</key><integer>92</integer>
349// CHECK-NEXT:         <key>col</key><integer>7</integer>
350// CHECK-NEXT:         <key>file</key><integer>0</integer>
351// CHECK-NEXT:        </dict>
352// CHECK-NEXT:        <dict>
353// CHECK-NEXT:         <key>line</key><integer>92</integer>
354// CHECK-NEXT:         <key>col</key><integer>7</integer>
355// CHECK-NEXT:         <key>file</key><integer>0</integer>
356// CHECK-NEXT:        </dict>
357// CHECK-NEXT:       </array>
358// CHECK-NEXT:     </array>
359// CHECK-NEXT:     <key>depth</key><integer>0</integer>
360// CHECK-NEXT:     <key>extended_message</key>
361// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
362// CHECK-NEXT:     <key>message</key>
363// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
364// CHECK-NEXT:    </dict>
365// CHECK-NEXT:    <dict>
366// CHECK-NEXT:     <key>kind</key><string>control</string>
367// CHECK-NEXT:     <key>edges</key>
368// CHECK-NEXT:      <array>
369// CHECK-NEXT:       <dict>
370// CHECK-NEXT:        <key>start</key>
371// CHECK-NEXT:         <array>
372// CHECK-NEXT:          <dict>
373// CHECK-NEXT:           <key>line</key><integer>92</integer>
374// CHECK-NEXT:           <key>col</key><integer>3</integer>
375// CHECK-NEXT:           <key>file</key><integer>0</integer>
376// CHECK-NEXT:          </dict>
377// CHECK-NEXT:          <dict>
378// CHECK-NEXT:           <key>line</key><integer>92</integer>
379// CHECK-NEXT:           <key>col</key><integer>3</integer>
380// CHECK-NEXT:           <key>file</key><integer>0</integer>
381// CHECK-NEXT:          </dict>
382// CHECK-NEXT:         </array>
383// CHECK-NEXT:        <key>end</key>
384// CHECK-NEXT:         <array>
385// CHECK-NEXT:          <dict>
386// CHECK-NEXT:           <key>line</key><integer>93</integer>
387// CHECK-NEXT:           <key>col</key><integer>3</integer>
388// CHECK-NEXT:           <key>file</key><integer>0</integer>
389// CHECK-NEXT:          </dict>
390// CHECK-NEXT:          <dict>
391// CHECK-NEXT:           <key>line</key><integer>93</integer>
392// CHECK-NEXT:           <key>col</key><integer>3</integer>
393// CHECK-NEXT:           <key>file</key><integer>0</integer>
394// CHECK-NEXT:          </dict>
395// CHECK-NEXT:         </array>
396// CHECK-NEXT:       </dict>
397// CHECK-NEXT:      </array>
398// CHECK-NEXT:    </dict>
399// CHECK-NEXT:    <dict>
400// CHECK-NEXT:     <key>kind</key><string>control</string>
401// CHECK-NEXT:     <key>edges</key>
402// CHECK-NEXT:      <array>
403// CHECK-NEXT:       <dict>
404// CHECK-NEXT:        <key>start</key>
405// CHECK-NEXT:         <array>
406// CHECK-NEXT:          <dict>
407// CHECK-NEXT:           <key>line</key><integer>93</integer>
408// CHECK-NEXT:           <key>col</key><integer>3</integer>
409// CHECK-NEXT:           <key>file</key><integer>0</integer>
410// CHECK-NEXT:          </dict>
411// CHECK-NEXT:          <dict>
412// CHECK-NEXT:           <key>line</key><integer>93</integer>
413// CHECK-NEXT:           <key>col</key><integer>3</integer>
414// CHECK-NEXT:           <key>file</key><integer>0</integer>
415// CHECK-NEXT:          </dict>
416// CHECK-NEXT:         </array>
417// CHECK-NEXT:        <key>end</key>
418// CHECK-NEXT:         <array>
419// CHECK-NEXT:          <dict>
420// CHECK-NEXT:           <key>line</key><integer>93</integer>
421// CHECK-NEXT:           <key>col</key><integer>7</integer>
422// CHECK-NEXT:           <key>file</key><integer>0</integer>
423// CHECK-NEXT:          </dict>
424// CHECK-NEXT:          <dict>
425// CHECK-NEXT:           <key>line</key><integer>93</integer>
426// CHECK-NEXT:           <key>col</key><integer>7</integer>
427// CHECK-NEXT:           <key>file</key><integer>0</integer>
428// CHECK-NEXT:          </dict>
429// CHECK-NEXT:         </array>
430// CHECK-NEXT:       </dict>
431// CHECK-NEXT:      </array>
432// CHECK-NEXT:    </dict>
433// CHECK-NEXT:    <dict>
434// CHECK-NEXT:     <key>kind</key><string>event</string>
435// CHECK-NEXT:     <key>location</key>
436// CHECK-NEXT:     <dict>
437// CHECK-NEXT:      <key>line</key><integer>93</integer>
438// CHECK-NEXT:      <key>col</key><integer>7</integer>
439// CHECK-NEXT:      <key>file</key><integer>0</integer>
440// CHECK-NEXT:     </dict>
441// CHECK-NEXT:     <key>ranges</key>
442// CHECK-NEXT:     <array>
443// CHECK-NEXT:       <array>
444// CHECK-NEXT:        <dict>
445// CHECK-NEXT:         <key>line</key><integer>93</integer>
446// CHECK-NEXT:         <key>col</key><integer>7</integer>
447// CHECK-NEXT:         <key>file</key><integer>0</integer>
448// CHECK-NEXT:        </dict>
449// CHECK-NEXT:        <dict>
450// CHECK-NEXT:         <key>line</key><integer>93</integer>
451// CHECK-NEXT:         <key>col</key><integer>7</integer>
452// CHECK-NEXT:         <key>file</key><integer>0</integer>
453// CHECK-NEXT:        </dict>
454// CHECK-NEXT:       </array>
455// CHECK-NEXT:     </array>
456// CHECK-NEXT:     <key>depth</key><integer>0</integer>
457// CHECK-NEXT:     <key>extended_message</key>
458// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
459// CHECK-NEXT:     <key>message</key>
460// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
461// CHECK-NEXT:    </dict>
462// CHECK-NEXT:   </array>
463// 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>
464// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
465// CHECK-NEXT:   <key>type</key><string>Generics</string>
466// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
467// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
468// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>9632a21d129601d531e0b4585a27c686</string>
469// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
470// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErased</string>
471// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
472// CHECK-NEXT:  <key>location</key>
473// CHECK-NEXT:  <dict>
474// CHECK-NEXT:   <key>line</key><integer>93</integer>
475// CHECK-NEXT:   <key>col</key><integer>7</integer>
476// CHECK-NEXT:   <key>file</key><integer>0</integer>
477// CHECK-NEXT:  </dict>
478// CHECK-NEXT:  </dict>
479// CHECK-NEXT:  <dict>
480// CHECK-NEXT:   <key>path</key>
481// CHECK-NEXT:   <array>
482// CHECK-NEXT:    <dict>
483// CHECK-NEXT:     <key>kind</key><string>event</string>
484// CHECK-NEXT:     <key>location</key>
485// CHECK-NEXT:     <dict>
486// CHECK-NEXT:      <key>line</key><integer>92</integer>
487// CHECK-NEXT:      <key>col</key><integer>7</integer>
488// CHECK-NEXT:      <key>file</key><integer>0</integer>
489// CHECK-NEXT:     </dict>
490// CHECK-NEXT:     <key>ranges</key>
491// CHECK-NEXT:     <array>
492// CHECK-NEXT:       <array>
493// CHECK-NEXT:        <dict>
494// CHECK-NEXT:         <key>line</key><integer>92</integer>
495// CHECK-NEXT:         <key>col</key><integer>7</integer>
496// CHECK-NEXT:         <key>file</key><integer>0</integer>
497// CHECK-NEXT:        </dict>
498// CHECK-NEXT:        <dict>
499// CHECK-NEXT:         <key>line</key><integer>92</integer>
500// CHECK-NEXT:         <key>col</key><integer>7</integer>
501// CHECK-NEXT:         <key>file</key><integer>0</integer>
502// CHECK-NEXT:        </dict>
503// CHECK-NEXT:       </array>
504// CHECK-NEXT:     </array>
505// CHECK-NEXT:     <key>depth</key><integer>0</integer>
506// CHECK-NEXT:     <key>extended_message</key>
507// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
508// CHECK-NEXT:     <key>message</key>
509// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
510// CHECK-NEXT:    </dict>
511// CHECK-NEXT:    <dict>
512// CHECK-NEXT:     <key>kind</key><string>control</string>
513// CHECK-NEXT:     <key>edges</key>
514// CHECK-NEXT:      <array>
515// CHECK-NEXT:       <dict>
516// CHECK-NEXT:        <key>start</key>
517// CHECK-NEXT:         <array>
518// CHECK-NEXT:          <dict>
519// CHECK-NEXT:           <key>line</key><integer>92</integer>
520// CHECK-NEXT:           <key>col</key><integer>3</integer>
521// CHECK-NEXT:           <key>file</key><integer>0</integer>
522// CHECK-NEXT:          </dict>
523// CHECK-NEXT:          <dict>
524// CHECK-NEXT:           <key>line</key><integer>92</integer>
525// CHECK-NEXT:           <key>col</key><integer>3</integer>
526// CHECK-NEXT:           <key>file</key><integer>0</integer>
527// CHECK-NEXT:          </dict>
528// CHECK-NEXT:         </array>
529// CHECK-NEXT:        <key>end</key>
530// CHECK-NEXT:         <array>
531// CHECK-NEXT:          <dict>
532// CHECK-NEXT:           <key>line</key><integer>94</integer>
533// CHECK-NEXT:           <key>col</key><integer>3</integer>
534// CHECK-NEXT:           <key>file</key><integer>0</integer>
535// CHECK-NEXT:          </dict>
536// CHECK-NEXT:          <dict>
537// CHECK-NEXT:           <key>line</key><integer>94</integer>
538// CHECK-NEXT:           <key>col</key><integer>3</integer>
539// CHECK-NEXT:           <key>file</key><integer>0</integer>
540// CHECK-NEXT:          </dict>
541// CHECK-NEXT:         </array>
542// CHECK-NEXT:       </dict>
543// CHECK-NEXT:      </array>
544// CHECK-NEXT:    </dict>
545// CHECK-NEXT:    <dict>
546// CHECK-NEXT:     <key>kind</key><string>event</string>
547// CHECK-NEXT:     <key>location</key>
548// CHECK-NEXT:     <dict>
549// CHECK-NEXT:      <key>line</key><integer>94</integer>
550// CHECK-NEXT:      <key>col</key><integer>3</integer>
551// CHECK-NEXT:      <key>file</key><integer>0</integer>
552// CHECK-NEXT:     </dict>
553// CHECK-NEXT:     <key>ranges</key>
554// CHECK-NEXT:     <array>
555// CHECK-NEXT:       <array>
556// CHECK-NEXT:        <dict>
557// CHECK-NEXT:         <key>line</key><integer>94</integer>
558// CHECK-NEXT:         <key>col</key><integer>16</integer>
559// CHECK-NEXT:         <key>file</key><integer>0</integer>
560// CHECK-NEXT:        </dict>
561// CHECK-NEXT:        <dict>
562// CHECK-NEXT:         <key>line</key><integer>94</integer>
563// CHECK-NEXT:         <key>col</key><integer>38</integer>
564// CHECK-NEXT:         <key>file</key><integer>0</integer>
565// CHECK-NEXT:        </dict>
566// CHECK-NEXT:       </array>
567// CHECK-NEXT:     </array>
568// CHECK-NEXT:     <key>depth</key><integer>0</integer>
569// CHECK-NEXT:     <key>extended_message</key>
570// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
571// CHECK-NEXT:     <key>message</key>
572// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
573// CHECK-NEXT:    </dict>
574// CHECK-NEXT:   </array>
575// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
576// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
577// CHECK-NEXT:   <key>type</key><string>Generics</string>
578// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
579// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
580// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>3c9499ea9f5adc148d5c4b684e3dcc5a</string>
581// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
582// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErased</string>
583// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
584// CHECK-NEXT:  <key>location</key>
585// CHECK-NEXT:  <dict>
586// CHECK-NEXT:   <key>line</key><integer>94</integer>
587// CHECK-NEXT:   <key>col</key><integer>3</integer>
588// CHECK-NEXT:   <key>file</key><integer>0</integer>
589// CHECK-NEXT:  </dict>
590// CHECK-NEXT:  </dict>
591// CHECK-NEXT:  <dict>
592// CHECK-NEXT:   <key>path</key>
593// CHECK-NEXT:   <array>
594// CHECK-NEXT:    <dict>
595// CHECK-NEXT:     <key>kind</key><string>event</string>
596// CHECK-NEXT:     <key>location</key>
597// CHECK-NEXT:     <dict>
598// CHECK-NEXT:      <key>line</key><integer>92</integer>
599// CHECK-NEXT:      <key>col</key><integer>7</integer>
600// CHECK-NEXT:      <key>file</key><integer>0</integer>
601// CHECK-NEXT:     </dict>
602// CHECK-NEXT:     <key>ranges</key>
603// CHECK-NEXT:     <array>
604// CHECK-NEXT:       <array>
605// CHECK-NEXT:        <dict>
606// CHECK-NEXT:         <key>line</key><integer>92</integer>
607// CHECK-NEXT:         <key>col</key><integer>7</integer>
608// CHECK-NEXT:         <key>file</key><integer>0</integer>
609// CHECK-NEXT:        </dict>
610// CHECK-NEXT:        <dict>
611// CHECK-NEXT:         <key>line</key><integer>92</integer>
612// CHECK-NEXT:         <key>col</key><integer>7</integer>
613// CHECK-NEXT:         <key>file</key><integer>0</integer>
614// CHECK-NEXT:        </dict>
615// CHECK-NEXT:       </array>
616// CHECK-NEXT:     </array>
617// CHECK-NEXT:     <key>depth</key><integer>0</integer>
618// CHECK-NEXT:     <key>extended_message</key>
619// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
620// CHECK-NEXT:     <key>message</key>
621// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray&lt;NSString *&gt; *&apos; to &apos;NSArray *&apos;)</string>
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>92</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>92</integer>
637// CHECK-NEXT:           <key>col</key><integer>3</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>96</integer>
645// CHECK-NEXT:           <key>col</key><integer>3</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>96</integer>
650// CHECK-NEXT:           <key>col</key><integer>9</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>control</string>
659// CHECK-NEXT:     <key>edges</key>
660// CHECK-NEXT:      <array>
661// CHECK-NEXT:       <dict>
662// CHECK-NEXT:        <key>start</key>
663// CHECK-NEXT:         <array>
664// CHECK-NEXT:          <dict>
665// CHECK-NEXT:           <key>line</key><integer>96</integer>
666// CHECK-NEXT:           <key>col</key><integer>3</integer>
667// CHECK-NEXT:           <key>file</key><integer>0</integer>
668// CHECK-NEXT:          </dict>
669// CHECK-NEXT:          <dict>
670// CHECK-NEXT:           <key>line</key><integer>96</integer>
671// CHECK-NEXT:           <key>col</key><integer>9</integer>
672// CHECK-NEXT:           <key>file</key><integer>0</integer>
673// CHECK-NEXT:          </dict>
674// CHECK-NEXT:         </array>
675// CHECK-NEXT:        <key>end</key>
676// CHECK-NEXT:         <array>
677// CHECK-NEXT:          <dict>
678// CHECK-NEXT:           <key>line</key><integer>96</integer>
679// CHECK-NEXT:           <key>col</key><integer>11</integer>
680// CHECK-NEXT:           <key>file</key><integer>0</integer>
681// CHECK-NEXT:          </dict>
682// CHECK-NEXT:          <dict>
683// CHECK-NEXT:           <key>line</key><integer>96</integer>
684// CHECK-NEXT:           <key>col</key><integer>11</integer>
685// CHECK-NEXT:           <key>file</key><integer>0</integer>
686// CHECK-NEXT:          </dict>
687// CHECK-NEXT:         </array>
688// CHECK-NEXT:       </dict>
689// CHECK-NEXT:      </array>
690// CHECK-NEXT:    </dict>
691// CHECK-NEXT:    <dict>
692// CHECK-NEXT:     <key>kind</key><string>event</string>
693// CHECK-NEXT:     <key>location</key>
694// CHECK-NEXT:     <dict>
695// CHECK-NEXT:      <key>line</key><integer>96</integer>
696// CHECK-NEXT:      <key>col</key><integer>11</integer>
697// CHECK-NEXT:      <key>file</key><integer>0</integer>
698// CHECK-NEXT:     </dict>
699// CHECK-NEXT:     <key>ranges</key>
700// CHECK-NEXT:     <array>
701// CHECK-NEXT:       <array>
702// CHECK-NEXT:        <dict>
703// CHECK-NEXT:         <key>line</key><integer>96</integer>
704// CHECK-NEXT:         <key>col</key><integer>11</integer>
705// CHECK-NEXT:         <key>file</key><integer>0</integer>
706// CHECK-NEXT:        </dict>
707// CHECK-NEXT:        <dict>
708// CHECK-NEXT:         <key>line</key><integer>96</integer>
709// CHECK-NEXT:         <key>col</key><integer>11</integer>
710// CHECK-NEXT:         <key>file</key><integer>0</integer>
711// CHECK-NEXT:        </dict>
712// CHECK-NEXT:       </array>
713// CHECK-NEXT:     </array>
714// CHECK-NEXT:     <key>depth</key><integer>0</integer>
715// CHECK-NEXT:     <key>extended_message</key>
716// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
717// CHECK-NEXT:     <key>message</key>
718// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
719// CHECK-NEXT:    </dict>
720// CHECK-NEXT:   </array>
721// 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>
722// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
723// CHECK-NEXT:   <key>type</key><string>Generics</string>
724// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
725// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
726// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>1d8497465a98d7cc2067a916e217d5bc</string>
727// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
728// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErased</string>
729// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
730// CHECK-NEXT:  <key>location</key>
731// CHECK-NEXT:  <dict>
732// CHECK-NEXT:   <key>line</key><integer>96</integer>
733// CHECK-NEXT:   <key>col</key><integer>11</integer>
734// CHECK-NEXT:   <key>file</key><integer>0</integer>
735// CHECK-NEXT:  </dict>
736// CHECK-NEXT:  </dict>
737// CHECK-NEXT:  <dict>
738// CHECK-NEXT:   <key>path</key>
739// CHECK-NEXT:   <array>
740// CHECK-NEXT:    <dict>
741// CHECK-NEXT:     <key>kind</key><string>control</string>
742// CHECK-NEXT:     <key>edges</key>
743// CHECK-NEXT:      <array>
744// CHECK-NEXT:       <dict>
745// CHECK-NEXT:        <key>start</key>
746// CHECK-NEXT:         <array>
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:          <dict>
753// CHECK-NEXT:           <key>line</key><integer>100</integer>
754// CHECK-NEXT:           <key>col</key><integer>9</integer>
755// CHECK-NEXT:           <key>file</key><integer>0</integer>
756// CHECK-NEXT:          </dict>
757// CHECK-NEXT:         </array>
758// CHECK-NEXT:        <key>end</key>
759// CHECK-NEXT:         <array>
760// CHECK-NEXT:          <dict>
761// CHECK-NEXT:           <key>line</key><integer>100</integer>
762// CHECK-NEXT:           <key>col</key><integer>28</integer>
763// CHECK-NEXT:           <key>file</key><integer>0</integer>
764// CHECK-NEXT:          </dict>
765// CHECK-NEXT:          <dict>
766// CHECK-NEXT:           <key>line</key><integer>100</integer>
767// CHECK-NEXT:           <key>col</key><integer>40</integer>
768// CHECK-NEXT:           <key>file</key><integer>0</integer>
769// CHECK-NEXT:          </dict>
770// CHECK-NEXT:         </array>
771// CHECK-NEXT:       </dict>
772// CHECK-NEXT:      </array>
773// CHECK-NEXT:    </dict>
774// CHECK-NEXT:    <dict>
775// CHECK-NEXT:     <key>kind</key><string>event</string>
776// CHECK-NEXT:     <key>location</key>
777// CHECK-NEXT:     <dict>
778// CHECK-NEXT:      <key>line</key><integer>100</integer>
779// CHECK-NEXT:      <key>col</key><integer>28</integer>
780// CHECK-NEXT:      <key>file</key><integer>0</integer>
781// CHECK-NEXT:     </dict>
782// CHECK-NEXT:     <key>ranges</key>
783// CHECK-NEXT:     <array>
784// CHECK-NEXT:       <array>
785// CHECK-NEXT:        <dict>
786// CHECK-NEXT:         <key>line</key><integer>100</integer>
787// CHECK-NEXT:         <key>col</key><integer>28</integer>
788// CHECK-NEXT:         <key>file</key><integer>0</integer>
789// CHECK-NEXT:        </dict>
790// CHECK-NEXT:        <dict>
791// CHECK-NEXT:         <key>line</key><integer>100</integer>
792// CHECK-NEXT:         <key>col</key><integer>42</integer>
793// CHECK-NEXT:         <key>file</key><integer>0</integer>
794// CHECK-NEXT:        </dict>
795// CHECK-NEXT:       </array>
796// CHECK-NEXT:     </array>
797// CHECK-NEXT:     <key>depth</key><integer>0</integer>
798// CHECK-NEXT:     <key>extended_message</key>
799// CHECK-NEXT:     <string>Calling &apos;getTypedStuff&apos;</string>
800// CHECK-NEXT:     <key>message</key>
801// CHECK-NEXT:     <string>Calling &apos;getTypedStuff&apos;</string>
802// CHECK-NEXT:    </dict>
803// CHECK-NEXT:    <dict>
804// CHECK-NEXT:     <key>kind</key><string>event</string>
805// CHECK-NEXT:     <key>location</key>
806// CHECK-NEXT:     <dict>
807// CHECK-NEXT:      <key>line</key><integer>79</integer>
808// CHECK-NEXT:      <key>col</key><integer>1</integer>
809// CHECK-NEXT:      <key>file</key><integer>0</integer>
810// CHECK-NEXT:     </dict>
811// CHECK-NEXT:     <key>depth</key><integer>1</integer>
812// CHECK-NEXT:     <key>extended_message</key>
813// CHECK-NEXT:     <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
814// CHECK-NEXT:     <key>message</key>
815// CHECK-NEXT:     <string>Entered call from &apos;crossProceduralErasedTypes&apos;</string>
816// CHECK-NEXT:    </dict>
817// CHECK-NEXT:    <dict>
818// CHECK-NEXT:     <key>kind</key><string>control</string>
819// CHECK-NEXT:     <key>edges</key>
820// CHECK-NEXT:      <array>
821// CHECK-NEXT:       <dict>
822// CHECK-NEXT:        <key>start</key>
823// CHECK-NEXT:         <array>
824// CHECK-NEXT:          <dict>
825// CHECK-NEXT:           <key>line</key><integer>79</integer>
826// CHECK-NEXT:           <key>col</key><integer>1</integer>
827// CHECK-NEXT:           <key>file</key><integer>0</integer>
828// CHECK-NEXT:          </dict>
829// CHECK-NEXT:          <dict>
830// CHECK-NEXT:           <key>line</key><integer>79</integer>
831// CHECK-NEXT:           <key>col</key><integer>7</integer>
832// CHECK-NEXT:           <key>file</key><integer>0</integer>
833// CHECK-NEXT:          </dict>
834// CHECK-NEXT:         </array>
835// CHECK-NEXT:        <key>end</key>
836// CHECK-NEXT:         <array>
837// CHECK-NEXT:          <dict>
838// CHECK-NEXT:           <key>line</key><integer>80</integer>
839// CHECK-NEXT:           <key>col</key><integer>3</integer>
840// CHECK-NEXT:           <key>file</key><integer>0</integer>
841// CHECK-NEXT:          </dict>
842// CHECK-NEXT:          <dict>
843// CHECK-NEXT:           <key>line</key><integer>80</integer>
844// CHECK-NEXT:           <key>col</key><integer>9</integer>
845// CHECK-NEXT:           <key>file</key><integer>0</integer>
846// CHECK-NEXT:          </dict>
847// CHECK-NEXT:         </array>
848// CHECK-NEXT:       </dict>
849// CHECK-NEXT:      </array>
850// CHECK-NEXT:    </dict>
851// CHECK-NEXT:    <dict>
852// CHECK-NEXT:     <key>kind</key><string>event</string>
853// CHECK-NEXT:     <key>location</key>
854// CHECK-NEXT:     <dict>
855// CHECK-NEXT:      <key>line</key><integer>80</integer>
856// CHECK-NEXT:      <key>col</key><integer>28</integer>
857// CHECK-NEXT:      <key>file</key><integer>0</integer>
858// CHECK-NEXT:     </dict>
859// CHECK-NEXT:     <key>ranges</key>
860// CHECK-NEXT:     <array>
861// CHECK-NEXT:       <array>
862// CHECK-NEXT:        <dict>
863// CHECK-NEXT:         <key>line</key><integer>80</integer>
864// CHECK-NEXT:         <key>col</key><integer>28</integer>
865// CHECK-NEXT:         <key>file</key><integer>0</integer>
866// CHECK-NEXT:        </dict>
867// CHECK-NEXT:        <dict>
868// CHECK-NEXT:         <key>line</key><integer>80</integer>
869// CHECK-NEXT:         <key>col</key><integer>37</integer>
870// CHECK-NEXT:         <key>file</key><integer>0</integer>
871// CHECK-NEXT:        </dict>
872// CHECK-NEXT:       </array>
873// CHECK-NEXT:     </array>
874// CHECK-NEXT:     <key>depth</key><integer>1</integer>
875// CHECK-NEXT:     <key>extended_message</key>
876// 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>
877// CHECK-NEXT:     <key>message</key>
878// 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>
879// CHECK-NEXT:    </dict>
880// CHECK-NEXT:    <dict>
881// CHECK-NEXT:     <key>kind</key><string>control</string>
882// CHECK-NEXT:     <key>edges</key>
883// CHECK-NEXT:      <array>
884// CHECK-NEXT:       <dict>
885// CHECK-NEXT:        <key>start</key>
886// CHECK-NEXT:         <array>
887// CHECK-NEXT:          <dict>
888// CHECK-NEXT:           <key>line</key><integer>80</integer>
889// CHECK-NEXT:           <key>col</key><integer>3</integer>
890// CHECK-NEXT:           <key>file</key><integer>0</integer>
891// CHECK-NEXT:          </dict>
892// CHECK-NEXT:          <dict>
893// CHECK-NEXT:           <key>line</key><integer>80</integer>
894// CHECK-NEXT:           <key>col</key><integer>9</integer>
895// CHECK-NEXT:           <key>file</key><integer>0</integer>
896// CHECK-NEXT:          </dict>
897// CHECK-NEXT:         </array>
898// CHECK-NEXT:        <key>end</key>
899// CHECK-NEXT:         <array>
900// CHECK-NEXT:          <dict>
901// CHECK-NEXT:           <key>line</key><integer>81</integer>
902// CHECK-NEXT:           <key>col</key><integer>3</integer>
903// CHECK-NEXT:           <key>file</key><integer>0</integer>
904// CHECK-NEXT:          </dict>
905// CHECK-NEXT:          <dict>
906// CHECK-NEXT:           <key>line</key><integer>81</integer>
907// CHECK-NEXT:           <key>col</key><integer>8</integer>
908// CHECK-NEXT:           <key>file</key><integer>0</integer>
909// CHECK-NEXT:          </dict>
910// CHECK-NEXT:         </array>
911// CHECK-NEXT:       </dict>
912// CHECK-NEXT:      </array>
913// CHECK-NEXT:    </dict>
914// CHECK-NEXT:    <dict>
915// CHECK-NEXT:     <key>kind</key><string>event</string>
916// CHECK-NEXT:     <key>location</key>
917// CHECK-NEXT:     <dict>
918// CHECK-NEXT:      <key>line</key><integer>100</integer>
919// CHECK-NEXT:      <key>col</key><integer>28</integer>
920// CHECK-NEXT:      <key>file</key><integer>0</integer>
921// CHECK-NEXT:     </dict>
922// CHECK-NEXT:     <key>ranges</key>
923// CHECK-NEXT:     <array>
924// CHECK-NEXT:       <array>
925// CHECK-NEXT:        <dict>
926// CHECK-NEXT:         <key>line</key><integer>100</integer>
927// CHECK-NEXT:         <key>col</key><integer>28</integer>
928// CHECK-NEXT:         <key>file</key><integer>0</integer>
929// CHECK-NEXT:        </dict>
930// CHECK-NEXT:        <dict>
931// CHECK-NEXT:         <key>line</key><integer>100</integer>
932// CHECK-NEXT:         <key>col</key><integer>42</integer>
933// CHECK-NEXT:         <key>file</key><integer>0</integer>
934// CHECK-NEXT:        </dict>
935// CHECK-NEXT:       </array>
936// CHECK-NEXT:     </array>
937// CHECK-NEXT:     <key>depth</key><integer>0</integer>
938// CHECK-NEXT:     <key>extended_message</key>
939// CHECK-NEXT:     <string>Returning from &apos;getTypedStuff&apos;</string>
940// CHECK-NEXT:     <key>message</key>
941// CHECK-NEXT:     <string>Returning from &apos;getTypedStuff&apos;</string>
942// CHECK-NEXT:    </dict>
943// CHECK-NEXT:    <dict>
944// CHECK-NEXT:     <key>kind</key><string>event</string>
945// CHECK-NEXT:     <key>location</key>
946// CHECK-NEXT:     <dict>
947// CHECK-NEXT:      <key>line</key><integer>100</integer>
948// CHECK-NEXT:      <key>col</key><integer>28</integer>
949// CHECK-NEXT:      <key>file</key><integer>0</integer>
950// CHECK-NEXT:     </dict>
951// CHECK-NEXT:     <key>ranges</key>
952// CHECK-NEXT:     <array>
953// CHECK-NEXT:       <array>
954// CHECK-NEXT:        <dict>
955// CHECK-NEXT:         <key>line</key><integer>100</integer>
956// CHECK-NEXT:         <key>col</key><integer>28</integer>
957// CHECK-NEXT:         <key>file</key><integer>0</integer>
958// CHECK-NEXT:        </dict>
959// CHECK-NEXT:        <dict>
960// CHECK-NEXT:         <key>line</key><integer>100</integer>
961// CHECK-NEXT:         <key>col</key><integer>42</integer>
962// CHECK-NEXT:         <key>file</key><integer>0</integer>
963// CHECK-NEXT:        </dict>
964// CHECK-NEXT:       </array>
965// CHECK-NEXT:     </array>
966// CHECK-NEXT:     <key>depth</key><integer>0</integer>
967// CHECK-NEXT:     <key>extended_message</key>
968// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
969// CHECK-NEXT:     <key>message</key>
970// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSNumber *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSString *&gt; *&apos;</string>
971// CHECK-NEXT:    </dict>
972// CHECK-NEXT:   </array>
973// 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>
974// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
975// CHECK-NEXT:   <key>type</key><string>Generics</string>
976// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
977// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
978// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>82c378fdcfcc5c0318d2f3ca46420ec1</string>
979// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
980// CHECK-NEXT:  <key>issue_context</key><string>crossProceduralErasedTypes</string>
981// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>1</string>
982// CHECK-NEXT:  <key>location</key>
983// CHECK-NEXT:  <dict>
984// CHECK-NEXT:   <key>line</key><integer>100</integer>
985// CHECK-NEXT:   <key>col</key><integer>28</integer>
986// CHECK-NEXT:   <key>file</key><integer>0</integer>
987// CHECK-NEXT:  </dict>
988// CHECK-NEXT:  </dict>
989// CHECK-NEXT:  <dict>
990// CHECK-NEXT:   <key>path</key>
991// CHECK-NEXT:   <array>
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>105</integer>
997// CHECK-NEXT:      <key>col</key><integer>7</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>105</integer>
1005// CHECK-NEXT:         <key>col</key><integer>7</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>105</integer>
1010// CHECK-NEXT:         <key>col</key><integer>7</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>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1018// CHECK-NEXT:     <key>message</key>
1019// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1020// CHECK-NEXT:    </dict>
1021// CHECK-NEXT:    <dict>
1022// CHECK-NEXT:     <key>kind</key><string>control</string>
1023// CHECK-NEXT:     <key>edges</key>
1024// CHECK-NEXT:      <array>
1025// CHECK-NEXT:       <dict>
1026// CHECK-NEXT:        <key>start</key>
1027// CHECK-NEXT:         <array>
1028// CHECK-NEXT:          <dict>
1029// CHECK-NEXT:           <key>line</key><integer>105</integer>
1030// CHECK-NEXT:           <key>col</key><integer>3</integer>
1031// CHECK-NEXT:           <key>file</key><integer>0</integer>
1032// CHECK-NEXT:          </dict>
1033// CHECK-NEXT:          <dict>
1034// CHECK-NEXT:           <key>line</key><integer>105</integer>
1035// CHECK-NEXT:           <key>col</key><integer>3</integer>
1036// CHECK-NEXT:           <key>file</key><integer>0</integer>
1037// CHECK-NEXT:          </dict>
1038// CHECK-NEXT:         </array>
1039// CHECK-NEXT:        <key>end</key>
1040// CHECK-NEXT:         <array>
1041// CHECK-NEXT:          <dict>
1042// CHECK-NEXT:           <key>line</key><integer>106</integer>
1043// CHECK-NEXT:           <key>col</key><integer>3</integer>
1044// CHECK-NEXT:           <key>file</key><integer>0</integer>
1045// CHECK-NEXT:          </dict>
1046// CHECK-NEXT:          <dict>
1047// CHECK-NEXT:           <key>line</key><integer>106</integer>
1048// CHECK-NEXT:           <key>col</key><integer>3</integer>
1049// CHECK-NEXT:           <key>file</key><integer>0</integer>
1050// CHECK-NEXT:          </dict>
1051// CHECK-NEXT:         </array>
1052// CHECK-NEXT:       </dict>
1053// CHECK-NEXT:      </array>
1054// CHECK-NEXT:    </dict>
1055// CHECK-NEXT:    <dict>
1056// CHECK-NEXT:     <key>kind</key><string>event</string>
1057// CHECK-NEXT:     <key>location</key>
1058// CHECK-NEXT:     <dict>
1059// CHECK-NEXT:      <key>line</key><integer>106</integer>
1060// CHECK-NEXT:      <key>col</key><integer>3</integer>
1061// CHECK-NEXT:      <key>file</key><integer>0</integer>
1062// CHECK-NEXT:     </dict>
1063// CHECK-NEXT:     <key>ranges</key>
1064// CHECK-NEXT:     <array>
1065// CHECK-NEXT:       <array>
1066// CHECK-NEXT:        <dict>
1067// CHECK-NEXT:         <key>line</key><integer>106</integer>
1068// CHECK-NEXT:         <key>col</key><integer>16</integer>
1069// CHECK-NEXT:         <key>file</key><integer>0</integer>
1070// CHECK-NEXT:        </dict>
1071// CHECK-NEXT:        <dict>
1072// CHECK-NEXT:         <key>line</key><integer>106</integer>
1073// CHECK-NEXT:         <key>col</key><integer>38</integer>
1074// CHECK-NEXT:         <key>file</key><integer>0</integer>
1075// CHECK-NEXT:        </dict>
1076// CHECK-NEXT:       </array>
1077// CHECK-NEXT:     </array>
1078// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1079// CHECK-NEXT:     <key>extended_message</key>
1080// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1081// CHECK-NEXT:     <key>message</key>
1082// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1083// CHECK-NEXT:    </dict>
1084// CHECK-NEXT:   </array>
1085// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1086// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1087// CHECK-NEXT:   <key>type</key><string>Generics</string>
1088// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1089// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1090// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>97a49604cb3d640307a104f14b6d950d</string>
1091// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1092// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1093// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
1094// CHECK-NEXT:  <key>location</key>
1095// CHECK-NEXT:  <dict>
1096// CHECK-NEXT:   <key>line</key><integer>106</integer>
1097// CHECK-NEXT:   <key>col</key><integer>3</integer>
1098// CHECK-NEXT:   <key>file</key><integer>0</integer>
1099// CHECK-NEXT:  </dict>
1100// CHECK-NEXT:  </dict>
1101// CHECK-NEXT:  <dict>
1102// CHECK-NEXT:   <key>path</key>
1103// CHECK-NEXT:   <array>
1104// CHECK-NEXT:    <dict>
1105// CHECK-NEXT:     <key>kind</key><string>event</string>
1106// CHECK-NEXT:     <key>location</key>
1107// CHECK-NEXT:     <dict>
1108// CHECK-NEXT:      <key>line</key><integer>105</integer>
1109// CHECK-NEXT:      <key>col</key><integer>7</integer>
1110// CHECK-NEXT:      <key>file</key><integer>0</integer>
1111// CHECK-NEXT:     </dict>
1112// CHECK-NEXT:     <key>ranges</key>
1113// CHECK-NEXT:     <array>
1114// CHECK-NEXT:       <array>
1115// CHECK-NEXT:        <dict>
1116// CHECK-NEXT:         <key>line</key><integer>105</integer>
1117// CHECK-NEXT:         <key>col</key><integer>7</integer>
1118// CHECK-NEXT:         <key>file</key><integer>0</integer>
1119// CHECK-NEXT:        </dict>
1120// CHECK-NEXT:        <dict>
1121// CHECK-NEXT:         <key>line</key><integer>105</integer>
1122// CHECK-NEXT:         <key>col</key><integer>7</integer>
1123// CHECK-NEXT:         <key>file</key><integer>0</integer>
1124// CHECK-NEXT:        </dict>
1125// CHECK-NEXT:       </array>
1126// CHECK-NEXT:     </array>
1127// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1128// CHECK-NEXT:     <key>extended_message</key>
1129// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1130// CHECK-NEXT:     <key>message</key>
1131// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
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>105</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>105</integer>
1147// CHECK-NEXT:           <key>col</key><integer>3</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>108</integer>
1155// CHECK-NEXT:           <key>col</key><integer>3</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>108</integer>
1160// CHECK-NEXT:           <key>col</key><integer>9</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>control</string>
1169// CHECK-NEXT:     <key>edges</key>
1170// CHECK-NEXT:      <array>
1171// CHECK-NEXT:       <dict>
1172// CHECK-NEXT:        <key>start</key>
1173// CHECK-NEXT:         <array>
1174// CHECK-NEXT:          <dict>
1175// CHECK-NEXT:           <key>line</key><integer>108</integer>
1176// CHECK-NEXT:           <key>col</key><integer>3</integer>
1177// CHECK-NEXT:           <key>file</key><integer>0</integer>
1178// CHECK-NEXT:          </dict>
1179// CHECK-NEXT:          <dict>
1180// CHECK-NEXT:           <key>line</key><integer>108</integer>
1181// CHECK-NEXT:           <key>col</key><integer>9</integer>
1182// CHECK-NEXT:           <key>file</key><integer>0</integer>
1183// CHECK-NEXT:          </dict>
1184// CHECK-NEXT:         </array>
1185// CHECK-NEXT:        <key>end</key>
1186// CHECK-NEXT:         <array>
1187// CHECK-NEXT:          <dict>
1188// CHECK-NEXT:           <key>line</key><integer>108</integer>
1189// CHECK-NEXT:           <key>col</key><integer>11</integer>
1190// CHECK-NEXT:           <key>file</key><integer>0</integer>
1191// CHECK-NEXT:          </dict>
1192// CHECK-NEXT:          <dict>
1193// CHECK-NEXT:           <key>line</key><integer>108</integer>
1194// CHECK-NEXT:           <key>col</key><integer>11</integer>
1195// CHECK-NEXT:           <key>file</key><integer>0</integer>
1196// CHECK-NEXT:          </dict>
1197// CHECK-NEXT:         </array>
1198// CHECK-NEXT:       </dict>
1199// CHECK-NEXT:      </array>
1200// CHECK-NEXT:    </dict>
1201// CHECK-NEXT:    <dict>
1202// CHECK-NEXT:     <key>kind</key><string>event</string>
1203// CHECK-NEXT:     <key>location</key>
1204// CHECK-NEXT:     <dict>
1205// CHECK-NEXT:      <key>line</key><integer>108</integer>
1206// CHECK-NEXT:      <key>col</key><integer>11</integer>
1207// CHECK-NEXT:      <key>file</key><integer>0</integer>
1208// CHECK-NEXT:     </dict>
1209// CHECK-NEXT:     <key>ranges</key>
1210// CHECK-NEXT:     <array>
1211// CHECK-NEXT:       <array>
1212// CHECK-NEXT:        <dict>
1213// CHECK-NEXT:         <key>line</key><integer>108</integer>
1214// CHECK-NEXT:         <key>col</key><integer>11</integer>
1215// CHECK-NEXT:         <key>file</key><integer>0</integer>
1216// CHECK-NEXT:        </dict>
1217// CHECK-NEXT:        <dict>
1218// CHECK-NEXT:         <key>line</key><integer>108</integer>
1219// CHECK-NEXT:         <key>col</key><integer>11</integer>
1220// CHECK-NEXT:         <key>file</key><integer>0</integer>
1221// CHECK-NEXT:        </dict>
1222// CHECK-NEXT:       </array>
1223// CHECK-NEXT:     </array>
1224// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1225// CHECK-NEXT:     <key>extended_message</key>
1226// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1227// CHECK-NEXT:     <key>message</key>
1228// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1229// CHECK-NEXT:    </dict>
1230// CHECK-NEXT:   </array>
1231// 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>
1232// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1233// CHECK-NEXT:   <key>type</key><string>Generics</string>
1234// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1235// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1236// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>b358a659d36c93a9fba593cf6d866a2b</string>
1237// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1238// CHECK-NEXT:  <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
1239// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
1240// CHECK-NEXT:  <key>location</key>
1241// CHECK-NEXT:  <dict>
1242// CHECK-NEXT:   <key>line</key><integer>108</integer>
1243// CHECK-NEXT:   <key>col</key><integer>11</integer>
1244// CHECK-NEXT:   <key>file</key><integer>0</integer>
1245// CHECK-NEXT:  </dict>
1246// CHECK-NEXT:  </dict>
1247// CHECK-NEXT:  <dict>
1248// CHECK-NEXT:   <key>path</key>
1249// CHECK-NEXT:   <array>
1250// CHECK-NEXT:    <dict>
1251// CHECK-NEXT:     <key>kind</key><string>event</string>
1252// CHECK-NEXT:     <key>location</key>
1253// CHECK-NEXT:     <dict>
1254// CHECK-NEXT:      <key>line</key><integer>112</integer>
1255// CHECK-NEXT:      <key>col</key><integer>7</integer>
1256// CHECK-NEXT:      <key>file</key><integer>0</integer>
1257// CHECK-NEXT:     </dict>
1258// CHECK-NEXT:     <key>ranges</key>
1259// CHECK-NEXT:     <array>
1260// CHECK-NEXT:       <array>
1261// CHECK-NEXT:        <dict>
1262// CHECK-NEXT:         <key>line</key><integer>112</integer>
1263// CHECK-NEXT:         <key>col</key><integer>7</integer>
1264// CHECK-NEXT:         <key>file</key><integer>0</integer>
1265// CHECK-NEXT:        </dict>
1266// CHECK-NEXT:        <dict>
1267// CHECK-NEXT:         <key>line</key><integer>112</integer>
1268// CHECK-NEXT:         <key>col</key><integer>7</integer>
1269// CHECK-NEXT:         <key>file</key><integer>0</integer>
1270// CHECK-NEXT:        </dict>
1271// CHECK-NEXT:       </array>
1272// CHECK-NEXT:     </array>
1273// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1274// CHECK-NEXT:     <key>extended_message</key>
1275// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1276// CHECK-NEXT:     <key>message</key>
1277// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1278// CHECK-NEXT:    </dict>
1279// CHECK-NEXT:    <dict>
1280// CHECK-NEXT:     <key>kind</key><string>control</string>
1281// CHECK-NEXT:     <key>edges</key>
1282// CHECK-NEXT:      <array>
1283// CHECK-NEXT:       <dict>
1284// CHECK-NEXT:        <key>start</key>
1285// CHECK-NEXT:         <array>
1286// CHECK-NEXT:          <dict>
1287// CHECK-NEXT:           <key>line</key><integer>112</integer>
1288// CHECK-NEXT:           <key>col</key><integer>3</integer>
1289// CHECK-NEXT:           <key>file</key><integer>0</integer>
1290// CHECK-NEXT:          </dict>
1291// CHECK-NEXT:          <dict>
1292// CHECK-NEXT:           <key>line</key><integer>112</integer>
1293// CHECK-NEXT:           <key>col</key><integer>3</integer>
1294// CHECK-NEXT:           <key>file</key><integer>0</integer>
1295// CHECK-NEXT:          </dict>
1296// CHECK-NEXT:         </array>
1297// CHECK-NEXT:        <key>end</key>
1298// CHECK-NEXT:         <array>
1299// CHECK-NEXT:          <dict>
1300// CHECK-NEXT:           <key>line</key><integer>113</integer>
1301// CHECK-NEXT:           <key>col</key><integer>3</integer>
1302// CHECK-NEXT:           <key>file</key><integer>0</integer>
1303// CHECK-NEXT:          </dict>
1304// CHECK-NEXT:          <dict>
1305// CHECK-NEXT:           <key>line</key><integer>113</integer>
1306// CHECK-NEXT:           <key>col</key><integer>3</integer>
1307// CHECK-NEXT:           <key>file</key><integer>0</integer>
1308// CHECK-NEXT:          </dict>
1309// CHECK-NEXT:         </array>
1310// CHECK-NEXT:       </dict>
1311// CHECK-NEXT:      </array>
1312// CHECK-NEXT:    </dict>
1313// CHECK-NEXT:    <dict>
1314// CHECK-NEXT:     <key>kind</key><string>event</string>
1315// CHECK-NEXT:     <key>location</key>
1316// CHECK-NEXT:     <dict>
1317// CHECK-NEXT:      <key>line</key><integer>113</integer>
1318// CHECK-NEXT:      <key>col</key><integer>3</integer>
1319// CHECK-NEXT:      <key>file</key><integer>0</integer>
1320// CHECK-NEXT:     </dict>
1321// CHECK-NEXT:     <key>ranges</key>
1322// CHECK-NEXT:     <array>
1323// CHECK-NEXT:       <array>
1324// CHECK-NEXT:        <dict>
1325// CHECK-NEXT:         <key>line</key><integer>113</integer>
1326// CHECK-NEXT:         <key>col</key><integer>16</integer>
1327// CHECK-NEXT:         <key>file</key><integer>0</integer>
1328// CHECK-NEXT:        </dict>
1329// CHECK-NEXT:        <dict>
1330// CHECK-NEXT:         <key>line</key><integer>113</integer>
1331// CHECK-NEXT:         <key>col</key><integer>38</integer>
1332// CHECK-NEXT:         <key>file</key><integer>0</integer>
1333// CHECK-NEXT:        </dict>
1334// CHECK-NEXT:       </array>
1335// CHECK-NEXT:     </array>
1336// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1337// CHECK-NEXT:     <key>extended_message</key>
1338// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1339// CHECK-NEXT:     <key>message</key>
1340// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1341// CHECK-NEXT:    </dict>
1342// CHECK-NEXT:   </array>
1343// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1344// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1345// CHECK-NEXT:   <key>type</key><string>Generics</string>
1346// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1347// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1348// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a57d9309397250421e9b96afe80c2045</string>
1349// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1350// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1351// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
1352// CHECK-NEXT:  <key>location</key>
1353// CHECK-NEXT:  <dict>
1354// CHECK-NEXT:   <key>line</key><integer>113</integer>
1355// CHECK-NEXT:   <key>col</key><integer>3</integer>
1356// CHECK-NEXT:   <key>file</key><integer>0</integer>
1357// CHECK-NEXT:  </dict>
1358// CHECK-NEXT:  </dict>
1359// CHECK-NEXT:  <dict>
1360// CHECK-NEXT:   <key>path</key>
1361// CHECK-NEXT:   <array>
1362// CHECK-NEXT:    <dict>
1363// CHECK-NEXT:     <key>kind</key><string>event</string>
1364// CHECK-NEXT:     <key>location</key>
1365// CHECK-NEXT:     <dict>
1366// CHECK-NEXT:      <key>line</key><integer>112</integer>
1367// CHECK-NEXT:      <key>col</key><integer>7</integer>
1368// CHECK-NEXT:      <key>file</key><integer>0</integer>
1369// CHECK-NEXT:     </dict>
1370// CHECK-NEXT:     <key>ranges</key>
1371// CHECK-NEXT:     <array>
1372// CHECK-NEXT:       <array>
1373// CHECK-NEXT:        <dict>
1374// CHECK-NEXT:         <key>line</key><integer>112</integer>
1375// CHECK-NEXT:         <key>col</key><integer>7</integer>
1376// CHECK-NEXT:         <key>file</key><integer>0</integer>
1377// CHECK-NEXT:        </dict>
1378// CHECK-NEXT:        <dict>
1379// CHECK-NEXT:         <key>line</key><integer>112</integer>
1380// CHECK-NEXT:         <key>col</key><integer>7</integer>
1381// CHECK-NEXT:         <key>file</key><integer>0</integer>
1382// CHECK-NEXT:        </dict>
1383// CHECK-NEXT:       </array>
1384// CHECK-NEXT:     </array>
1385// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1386// CHECK-NEXT:     <key>extended_message</key>
1387// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
1388// CHECK-NEXT:     <key>message</key>
1389// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;id&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
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>112</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>112</integer>
1405// CHECK-NEXT:           <key>col</key><integer>3</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>115</integer>
1413// CHECK-NEXT:           <key>col</key><integer>3</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>115</integer>
1418// CHECK-NEXT:           <key>col</key><integer>9</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>control</string>
1427// CHECK-NEXT:     <key>edges</key>
1428// CHECK-NEXT:      <array>
1429// CHECK-NEXT:       <dict>
1430// CHECK-NEXT:        <key>start</key>
1431// CHECK-NEXT:         <array>
1432// CHECK-NEXT:          <dict>
1433// CHECK-NEXT:           <key>line</key><integer>115</integer>
1434// CHECK-NEXT:           <key>col</key><integer>3</integer>
1435// CHECK-NEXT:           <key>file</key><integer>0</integer>
1436// CHECK-NEXT:          </dict>
1437// CHECK-NEXT:          <dict>
1438// CHECK-NEXT:           <key>line</key><integer>115</integer>
1439// CHECK-NEXT:           <key>col</key><integer>9</integer>
1440// CHECK-NEXT:           <key>file</key><integer>0</integer>
1441// CHECK-NEXT:          </dict>
1442// CHECK-NEXT:         </array>
1443// CHECK-NEXT:        <key>end</key>
1444// CHECK-NEXT:         <array>
1445// CHECK-NEXT:          <dict>
1446// CHECK-NEXT:           <key>line</key><integer>115</integer>
1447// CHECK-NEXT:           <key>col</key><integer>11</integer>
1448// CHECK-NEXT:           <key>file</key><integer>0</integer>
1449// CHECK-NEXT:          </dict>
1450// CHECK-NEXT:          <dict>
1451// CHECK-NEXT:           <key>line</key><integer>115</integer>
1452// CHECK-NEXT:           <key>col</key><integer>11</integer>
1453// CHECK-NEXT:           <key>file</key><integer>0</integer>
1454// CHECK-NEXT:          </dict>
1455// CHECK-NEXT:         </array>
1456// CHECK-NEXT:       </dict>
1457// CHECK-NEXT:      </array>
1458// CHECK-NEXT:    </dict>
1459// CHECK-NEXT:    <dict>
1460// CHECK-NEXT:     <key>kind</key><string>event</string>
1461// CHECK-NEXT:     <key>location</key>
1462// CHECK-NEXT:     <dict>
1463// CHECK-NEXT:      <key>line</key><integer>115</integer>
1464// CHECK-NEXT:      <key>col</key><integer>11</integer>
1465// CHECK-NEXT:      <key>file</key><integer>0</integer>
1466// CHECK-NEXT:     </dict>
1467// CHECK-NEXT:     <key>ranges</key>
1468// CHECK-NEXT:     <array>
1469// CHECK-NEXT:       <array>
1470// CHECK-NEXT:        <dict>
1471// CHECK-NEXT:         <key>line</key><integer>115</integer>
1472// CHECK-NEXT:         <key>col</key><integer>11</integer>
1473// CHECK-NEXT:         <key>file</key><integer>0</integer>
1474// CHECK-NEXT:        </dict>
1475// CHECK-NEXT:        <dict>
1476// CHECK-NEXT:         <key>line</key><integer>115</integer>
1477// CHECK-NEXT:         <key>col</key><integer>11</integer>
1478// CHECK-NEXT:         <key>file</key><integer>0</integer>
1479// CHECK-NEXT:        </dict>
1480// CHECK-NEXT:       </array>
1481// CHECK-NEXT:     </array>
1482// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1483// CHECK-NEXT:     <key>extended_message</key>
1484// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1485// CHECK-NEXT:     <key>message</key>
1486// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1487// CHECK-NEXT:    </dict>
1488// CHECK-NEXT:   </array>
1489// 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>
1490// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1491// CHECK-NEXT:   <key>type</key><string>Generics</string>
1492// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1493// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1494// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>3c86c79284e67f28d04b7ef88bedbb8b</string>
1495// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1496// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
1497// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
1498// CHECK-NEXT:  <key>location</key>
1499// CHECK-NEXT:  <dict>
1500// CHECK-NEXT:   <key>line</key><integer>115</integer>
1501// CHECK-NEXT:   <key>col</key><integer>11</integer>
1502// CHECK-NEXT:   <key>file</key><integer>0</integer>
1503// CHECK-NEXT:  </dict>
1504// CHECK-NEXT:  </dict>
1505// CHECK-NEXT:  <dict>
1506// CHECK-NEXT:   <key>path</key>
1507// CHECK-NEXT:   <array>
1508// CHECK-NEXT:    <dict>
1509// CHECK-NEXT:     <key>kind</key><string>event</string>
1510// CHECK-NEXT:     <key>location</key>
1511// CHECK-NEXT:     <dict>
1512// CHECK-NEXT:      <key>line</key><integer>120</integer>
1513// CHECK-NEXT:      <key>col</key><integer>7</integer>
1514// CHECK-NEXT:      <key>file</key><integer>0</integer>
1515// CHECK-NEXT:     </dict>
1516// CHECK-NEXT:     <key>ranges</key>
1517// CHECK-NEXT:     <array>
1518// CHECK-NEXT:       <array>
1519// CHECK-NEXT:        <dict>
1520// CHECK-NEXT:         <key>line</key><integer>120</integer>
1521// CHECK-NEXT:         <key>col</key><integer>7</integer>
1522// CHECK-NEXT:         <key>file</key><integer>0</integer>
1523// CHECK-NEXT:        </dict>
1524// CHECK-NEXT:        <dict>
1525// CHECK-NEXT:         <key>line</key><integer>120</integer>
1526// CHECK-NEXT:         <key>col</key><integer>7</integer>
1527// CHECK-NEXT:         <key>file</key><integer>0</integer>
1528// CHECK-NEXT:        </dict>
1529// CHECK-NEXT:       </array>
1530// CHECK-NEXT:     </array>
1531// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1532// CHECK-NEXT:     <key>extended_message</key>
1533// 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>
1534// CHECK-NEXT:     <key>message</key>
1535// 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>
1536// CHECK-NEXT:    </dict>
1537// CHECK-NEXT:    <dict>
1538// CHECK-NEXT:     <key>kind</key><string>control</string>
1539// CHECK-NEXT:     <key>edges</key>
1540// CHECK-NEXT:      <array>
1541// CHECK-NEXT:       <dict>
1542// CHECK-NEXT:        <key>start</key>
1543// CHECK-NEXT:         <array>
1544// CHECK-NEXT:          <dict>
1545// CHECK-NEXT:           <key>line</key><integer>120</integer>
1546// CHECK-NEXT:           <key>col</key><integer>3</integer>
1547// CHECK-NEXT:           <key>file</key><integer>0</integer>
1548// CHECK-NEXT:          </dict>
1549// CHECK-NEXT:          <dict>
1550// CHECK-NEXT:           <key>line</key><integer>120</integer>
1551// CHECK-NEXT:           <key>col</key><integer>3</integer>
1552// CHECK-NEXT:           <key>file</key><integer>0</integer>
1553// CHECK-NEXT:          </dict>
1554// CHECK-NEXT:         </array>
1555// CHECK-NEXT:        <key>end</key>
1556// CHECK-NEXT:         <array>
1557// CHECK-NEXT:          <dict>
1558// CHECK-NEXT:           <key>line</key><integer>121</integer>
1559// CHECK-NEXT:           <key>col</key><integer>3</integer>
1560// CHECK-NEXT:           <key>file</key><integer>0</integer>
1561// CHECK-NEXT:          </dict>
1562// CHECK-NEXT:          <dict>
1563// CHECK-NEXT:           <key>line</key><integer>121</integer>
1564// CHECK-NEXT:           <key>col</key><integer>3</integer>
1565// CHECK-NEXT:           <key>file</key><integer>0</integer>
1566// CHECK-NEXT:          </dict>
1567// CHECK-NEXT:         </array>
1568// CHECK-NEXT:       </dict>
1569// CHECK-NEXT:      </array>
1570// CHECK-NEXT:    </dict>
1571// CHECK-NEXT:    <dict>
1572// CHECK-NEXT:     <key>kind</key><string>control</string>
1573// CHECK-NEXT:     <key>edges</key>
1574// CHECK-NEXT:      <array>
1575// CHECK-NEXT:       <dict>
1576// CHECK-NEXT:        <key>start</key>
1577// CHECK-NEXT:         <array>
1578// CHECK-NEXT:          <dict>
1579// CHECK-NEXT:           <key>line</key><integer>121</integer>
1580// CHECK-NEXT:           <key>col</key><integer>3</integer>
1581// CHECK-NEXT:           <key>file</key><integer>0</integer>
1582// CHECK-NEXT:          </dict>
1583// CHECK-NEXT:          <dict>
1584// CHECK-NEXT:           <key>line</key><integer>121</integer>
1585// CHECK-NEXT:           <key>col</key><integer>3</integer>
1586// CHECK-NEXT:           <key>file</key><integer>0</integer>
1587// CHECK-NEXT:          </dict>
1588// CHECK-NEXT:         </array>
1589// CHECK-NEXT:        <key>end</key>
1590// CHECK-NEXT:         <array>
1591// CHECK-NEXT:          <dict>
1592// CHECK-NEXT:           <key>line</key><integer>121</integer>
1593// CHECK-NEXT:           <key>col</key><integer>7</integer>
1594// CHECK-NEXT:           <key>file</key><integer>0</integer>
1595// CHECK-NEXT:          </dict>
1596// CHECK-NEXT:          <dict>
1597// CHECK-NEXT:           <key>line</key><integer>121</integer>
1598// CHECK-NEXT:           <key>col</key><integer>7</integer>
1599// CHECK-NEXT:           <key>file</key><integer>0</integer>
1600// CHECK-NEXT:          </dict>
1601// CHECK-NEXT:         </array>
1602// CHECK-NEXT:       </dict>
1603// CHECK-NEXT:      </array>
1604// CHECK-NEXT:    </dict>
1605// CHECK-NEXT:    <dict>
1606// CHECK-NEXT:     <key>kind</key><string>event</string>
1607// CHECK-NEXT:     <key>location</key>
1608// CHECK-NEXT:     <dict>
1609// CHECK-NEXT:      <key>line</key><integer>121</integer>
1610// CHECK-NEXT:      <key>col</key><integer>7</integer>
1611// CHECK-NEXT:      <key>file</key><integer>0</integer>
1612// CHECK-NEXT:     </dict>
1613// CHECK-NEXT:     <key>ranges</key>
1614// CHECK-NEXT:     <array>
1615// CHECK-NEXT:       <array>
1616// CHECK-NEXT:        <dict>
1617// CHECK-NEXT:         <key>line</key><integer>121</integer>
1618// CHECK-NEXT:         <key>col</key><integer>7</integer>
1619// CHECK-NEXT:         <key>file</key><integer>0</integer>
1620// CHECK-NEXT:        </dict>
1621// CHECK-NEXT:        <dict>
1622// CHECK-NEXT:         <key>line</key><integer>121</integer>
1623// CHECK-NEXT:         <key>col</key><integer>7</integer>
1624// CHECK-NEXT:         <key>file</key><integer>0</integer>
1625// CHECK-NEXT:        </dict>
1626// CHECK-NEXT:       </array>
1627// CHECK-NEXT:     </array>
1628// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1629// CHECK-NEXT:     <key>extended_message</key>
1630// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1631// CHECK-NEXT:     <key>message</key>
1632// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1633// CHECK-NEXT:    </dict>
1634// CHECK-NEXT:   </array>
1635// 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>
1636// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1637// CHECK-NEXT:   <key>type</key><string>Generics</string>
1638// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1639// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1640// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a669a3ca1da5a07458c0186f43a295cb</string>
1641// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1642// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1643// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
1644// CHECK-NEXT:  <key>location</key>
1645// CHECK-NEXT:  <dict>
1646// CHECK-NEXT:   <key>line</key><integer>121</integer>
1647// CHECK-NEXT:   <key>col</key><integer>7</integer>
1648// CHECK-NEXT:   <key>file</key><integer>0</integer>
1649// CHECK-NEXT:  </dict>
1650// CHECK-NEXT:  </dict>
1651// CHECK-NEXT:  <dict>
1652// CHECK-NEXT:   <key>path</key>
1653// CHECK-NEXT:   <array>
1654// CHECK-NEXT:    <dict>
1655// CHECK-NEXT:     <key>kind</key><string>event</string>
1656// CHECK-NEXT:     <key>location</key>
1657// CHECK-NEXT:     <dict>
1658// CHECK-NEXT:      <key>line</key><integer>120</integer>
1659// CHECK-NEXT:      <key>col</key><integer>7</integer>
1660// CHECK-NEXT:      <key>file</key><integer>0</integer>
1661// CHECK-NEXT:     </dict>
1662// CHECK-NEXT:     <key>ranges</key>
1663// CHECK-NEXT:     <array>
1664// CHECK-NEXT:       <array>
1665// CHECK-NEXT:        <dict>
1666// CHECK-NEXT:         <key>line</key><integer>120</integer>
1667// CHECK-NEXT:         <key>col</key><integer>7</integer>
1668// CHECK-NEXT:         <key>file</key><integer>0</integer>
1669// CHECK-NEXT:        </dict>
1670// CHECK-NEXT:        <dict>
1671// CHECK-NEXT:         <key>line</key><integer>120</integer>
1672// CHECK-NEXT:         <key>col</key><integer>7</integer>
1673// CHECK-NEXT:         <key>file</key><integer>0</integer>
1674// CHECK-NEXT:        </dict>
1675// CHECK-NEXT:       </array>
1676// CHECK-NEXT:     </array>
1677// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1678// CHECK-NEXT:     <key>extended_message</key>
1679// 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>
1680// CHECK-NEXT:     <key>message</key>
1681// 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>
1682// CHECK-NEXT:    </dict>
1683// CHECK-NEXT:    <dict>
1684// CHECK-NEXT:     <key>kind</key><string>control</string>
1685// CHECK-NEXT:     <key>edges</key>
1686// CHECK-NEXT:      <array>
1687// CHECK-NEXT:       <dict>
1688// CHECK-NEXT:        <key>start</key>
1689// CHECK-NEXT:         <array>
1690// CHECK-NEXT:          <dict>
1691// CHECK-NEXT:           <key>line</key><integer>120</integer>
1692// CHECK-NEXT:           <key>col</key><integer>3</integer>
1693// CHECK-NEXT:           <key>file</key><integer>0</integer>
1694// CHECK-NEXT:          </dict>
1695// CHECK-NEXT:          <dict>
1696// CHECK-NEXT:           <key>line</key><integer>120</integer>
1697// CHECK-NEXT:           <key>col</key><integer>3</integer>
1698// CHECK-NEXT:           <key>file</key><integer>0</integer>
1699// CHECK-NEXT:          </dict>
1700// CHECK-NEXT:         </array>
1701// CHECK-NEXT:        <key>end</key>
1702// CHECK-NEXT:         <array>
1703// CHECK-NEXT:          <dict>
1704// CHECK-NEXT:           <key>line</key><integer>122</integer>
1705// CHECK-NEXT:           <key>col</key><integer>3</integer>
1706// CHECK-NEXT:           <key>file</key><integer>0</integer>
1707// CHECK-NEXT:          </dict>
1708// CHECK-NEXT:          <dict>
1709// CHECK-NEXT:           <key>line</key><integer>122</integer>
1710// CHECK-NEXT:           <key>col</key><integer>3</integer>
1711// CHECK-NEXT:           <key>file</key><integer>0</integer>
1712// CHECK-NEXT:          </dict>
1713// CHECK-NEXT:         </array>
1714// CHECK-NEXT:       </dict>
1715// CHECK-NEXT:      </array>
1716// CHECK-NEXT:    </dict>
1717// CHECK-NEXT:    <dict>
1718// CHECK-NEXT:     <key>kind</key><string>event</string>
1719// CHECK-NEXT:     <key>location</key>
1720// CHECK-NEXT:     <dict>
1721// CHECK-NEXT:      <key>line</key><integer>122</integer>
1722// CHECK-NEXT:      <key>col</key><integer>3</integer>
1723// CHECK-NEXT:      <key>file</key><integer>0</integer>
1724// CHECK-NEXT:     </dict>
1725// CHECK-NEXT:     <key>ranges</key>
1726// CHECK-NEXT:     <array>
1727// CHECK-NEXT:       <array>
1728// CHECK-NEXT:        <dict>
1729// CHECK-NEXT:         <key>line</key><integer>122</integer>
1730// CHECK-NEXT:         <key>col</key><integer>16</integer>
1731// CHECK-NEXT:         <key>file</key><integer>0</integer>
1732// CHECK-NEXT:        </dict>
1733// CHECK-NEXT:        <dict>
1734// CHECK-NEXT:         <key>line</key><integer>122</integer>
1735// CHECK-NEXT:         <key>col</key><integer>38</integer>
1736// CHECK-NEXT:         <key>file</key><integer>0</integer>
1737// CHECK-NEXT:        </dict>
1738// CHECK-NEXT:       </array>
1739// CHECK-NEXT:     </array>
1740// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1741// CHECK-NEXT:     <key>extended_message</key>
1742// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1743// CHECK-NEXT:     <key>message</key>
1744// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1745// CHECK-NEXT:    </dict>
1746// CHECK-NEXT:   </array>
1747// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
1748// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1749// CHECK-NEXT:   <key>type</key><string>Generics</string>
1750// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1751// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1752// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>7ab912bd3fb03b47dc9489cac0297e2a</string>
1753// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1754// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1755// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
1756// CHECK-NEXT:  <key>location</key>
1757// CHECK-NEXT:  <dict>
1758// CHECK-NEXT:   <key>line</key><integer>122</integer>
1759// CHECK-NEXT:   <key>col</key><integer>3</integer>
1760// CHECK-NEXT:   <key>file</key><integer>0</integer>
1761// CHECK-NEXT:  </dict>
1762// CHECK-NEXT:  </dict>
1763// CHECK-NEXT:  <dict>
1764// CHECK-NEXT:   <key>path</key>
1765// CHECK-NEXT:   <array>
1766// CHECK-NEXT:    <dict>
1767// CHECK-NEXT:     <key>kind</key><string>event</string>
1768// CHECK-NEXT:     <key>location</key>
1769// CHECK-NEXT:     <dict>
1770// CHECK-NEXT:      <key>line</key><integer>120</integer>
1771// CHECK-NEXT:      <key>col</key><integer>7</integer>
1772// CHECK-NEXT:      <key>file</key><integer>0</integer>
1773// CHECK-NEXT:     </dict>
1774// CHECK-NEXT:     <key>ranges</key>
1775// CHECK-NEXT:     <array>
1776// CHECK-NEXT:       <array>
1777// CHECK-NEXT:        <dict>
1778// CHECK-NEXT:         <key>line</key><integer>120</integer>
1779// CHECK-NEXT:         <key>col</key><integer>7</integer>
1780// CHECK-NEXT:         <key>file</key><integer>0</integer>
1781// CHECK-NEXT:        </dict>
1782// CHECK-NEXT:        <dict>
1783// CHECK-NEXT:         <key>line</key><integer>120</integer>
1784// CHECK-NEXT:         <key>col</key><integer>7</integer>
1785// CHECK-NEXT:         <key>file</key><integer>0</integer>
1786// CHECK-NEXT:        </dict>
1787// CHECK-NEXT:       </array>
1788// CHECK-NEXT:     </array>
1789// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1790// CHECK-NEXT:     <key>extended_message</key>
1791// 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>
1792// CHECK-NEXT:     <key>message</key>
1793// 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>
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>120</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>120</integer>
1809// CHECK-NEXT:           <key>col</key><integer>3</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>124</integer>
1817// CHECK-NEXT:           <key>col</key><integer>3</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>124</integer>
1822// CHECK-NEXT:           <key>col</key><integer>9</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>control</string>
1831// CHECK-NEXT:     <key>edges</key>
1832// CHECK-NEXT:      <array>
1833// CHECK-NEXT:       <dict>
1834// CHECK-NEXT:        <key>start</key>
1835// CHECK-NEXT:         <array>
1836// CHECK-NEXT:          <dict>
1837// CHECK-NEXT:           <key>line</key><integer>124</integer>
1838// CHECK-NEXT:           <key>col</key><integer>3</integer>
1839// CHECK-NEXT:           <key>file</key><integer>0</integer>
1840// CHECK-NEXT:          </dict>
1841// CHECK-NEXT:          <dict>
1842// CHECK-NEXT:           <key>line</key><integer>124</integer>
1843// CHECK-NEXT:           <key>col</key><integer>9</integer>
1844// CHECK-NEXT:           <key>file</key><integer>0</integer>
1845// CHECK-NEXT:          </dict>
1846// CHECK-NEXT:         </array>
1847// CHECK-NEXT:        <key>end</key>
1848// CHECK-NEXT:         <array>
1849// CHECK-NEXT:          <dict>
1850// CHECK-NEXT:           <key>line</key><integer>124</integer>
1851// CHECK-NEXT:           <key>col</key><integer>11</integer>
1852// CHECK-NEXT:           <key>file</key><integer>0</integer>
1853// CHECK-NEXT:          </dict>
1854// CHECK-NEXT:          <dict>
1855// CHECK-NEXT:           <key>line</key><integer>124</integer>
1856// CHECK-NEXT:           <key>col</key><integer>11</integer>
1857// CHECK-NEXT:           <key>file</key><integer>0</integer>
1858// CHECK-NEXT:          </dict>
1859// CHECK-NEXT:         </array>
1860// CHECK-NEXT:       </dict>
1861// CHECK-NEXT:      </array>
1862// CHECK-NEXT:    </dict>
1863// CHECK-NEXT:    <dict>
1864// CHECK-NEXT:     <key>kind</key><string>event</string>
1865// CHECK-NEXT:     <key>location</key>
1866// CHECK-NEXT:     <dict>
1867// CHECK-NEXT:      <key>line</key><integer>124</integer>
1868// CHECK-NEXT:      <key>col</key><integer>11</integer>
1869// CHECK-NEXT:      <key>file</key><integer>0</integer>
1870// CHECK-NEXT:     </dict>
1871// CHECK-NEXT:     <key>ranges</key>
1872// CHECK-NEXT:     <array>
1873// CHECK-NEXT:       <array>
1874// CHECK-NEXT:        <dict>
1875// CHECK-NEXT:         <key>line</key><integer>124</integer>
1876// CHECK-NEXT:         <key>col</key><integer>11</integer>
1877// CHECK-NEXT:         <key>file</key><integer>0</integer>
1878// CHECK-NEXT:        </dict>
1879// CHECK-NEXT:        <dict>
1880// CHECK-NEXT:         <key>line</key><integer>124</integer>
1881// CHECK-NEXT:         <key>col</key><integer>11</integer>
1882// CHECK-NEXT:         <key>file</key><integer>0</integer>
1883// CHECK-NEXT:        </dict>
1884// CHECK-NEXT:       </array>
1885// CHECK-NEXT:     </array>
1886// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1887// CHECK-NEXT:     <key>extended_message</key>
1888// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1889// CHECK-NEXT:     <key>message</key>
1890// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
1891// CHECK-NEXT:    </dict>
1892// CHECK-NEXT:   </array>
1893// 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>
1894// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
1895// CHECK-NEXT:   <key>type</key><string>Generics</string>
1896// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
1897// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
1898// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>0c7b4313b8b720c914b04863f47f971f</string>
1899// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
1900// CHECK-NEXT:  <key>issue_context</key><string>idErasedIncompatibleTypes</string>
1901// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
1902// CHECK-NEXT:  <key>location</key>
1903// CHECK-NEXT:  <dict>
1904// CHECK-NEXT:   <key>line</key><integer>124</integer>
1905// CHECK-NEXT:   <key>col</key><integer>11</integer>
1906// CHECK-NEXT:   <key>file</key><integer>0</integer>
1907// CHECK-NEXT:  </dict>
1908// CHECK-NEXT:  </dict>
1909// CHECK-NEXT:  <dict>
1910// CHECK-NEXT:   <key>path</key>
1911// CHECK-NEXT:   <array>
1912// CHECK-NEXT:    <dict>
1913// CHECK-NEXT:     <key>kind</key><string>control</string>
1914// CHECK-NEXT:     <key>edges</key>
1915// CHECK-NEXT:      <array>
1916// CHECK-NEXT:       <dict>
1917// CHECK-NEXT:        <key>start</key>
1918// CHECK-NEXT:         <array>
1919// CHECK-NEXT:          <dict>
1920// CHECK-NEXT:           <key>line</key><integer>129</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:          <dict>
1925// CHECK-NEXT:           <key>line</key><integer>129</integer>
1926// CHECK-NEXT:           <key>col</key><integer>4</integer>
1927// CHECK-NEXT:           <key>file</key><integer>0</integer>
1928// CHECK-NEXT:          </dict>
1929// CHECK-NEXT:         </array>
1930// CHECK-NEXT:        <key>end</key>
1931// CHECK-NEXT:         <array>
1932// CHECK-NEXT:          <dict>
1933// CHECK-NEXT:           <key>line</key><integer>133</integer>
1934// CHECK-NEXT:           <key>col</key><integer>5</integer>
1935// CHECK-NEXT:           <key>file</key><integer>0</integer>
1936// CHECK-NEXT:          </dict>
1937// CHECK-NEXT:          <dict>
1938// CHECK-NEXT:           <key>line</key><integer>133</integer>
1939// CHECK-NEXT:           <key>col</key><integer>5</integer>
1940// CHECK-NEXT:           <key>file</key><integer>0</integer>
1941// CHECK-NEXT:          </dict>
1942// CHECK-NEXT:         </array>
1943// CHECK-NEXT:       </dict>
1944// CHECK-NEXT:      </array>
1945// CHECK-NEXT:    </dict>
1946// CHECK-NEXT:    <dict>
1947// CHECK-NEXT:     <key>kind</key><string>event</string>
1948// CHECK-NEXT:     <key>location</key>
1949// CHECK-NEXT:     <dict>
1950// CHECK-NEXT:      <key>line</key><integer>133</integer>
1951// CHECK-NEXT:      <key>col</key><integer>9</integer>
1952// CHECK-NEXT:      <key>file</key><integer>0</integer>
1953// CHECK-NEXT:     </dict>
1954// CHECK-NEXT:     <key>ranges</key>
1955// CHECK-NEXT:     <array>
1956// CHECK-NEXT:       <array>
1957// CHECK-NEXT:        <dict>
1958// CHECK-NEXT:         <key>line</key><integer>133</integer>
1959// CHECK-NEXT:         <key>col</key><integer>9</integer>
1960// CHECK-NEXT:         <key>file</key><integer>0</integer>
1961// CHECK-NEXT:        </dict>
1962// CHECK-NEXT:        <dict>
1963// CHECK-NEXT:         <key>line</key><integer>133</integer>
1964// CHECK-NEXT:         <key>col</key><integer>9</integer>
1965// CHECK-NEXT:         <key>file</key><integer>0</integer>
1966// CHECK-NEXT:        </dict>
1967// CHECK-NEXT:       </array>
1968// CHECK-NEXT:     </array>
1969// CHECK-NEXT:     <key>depth</key><integer>0</integer>
1970// CHECK-NEXT:     <key>extended_message</key>
1971// 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>
1972// CHECK-NEXT:     <key>message</key>
1973// 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>
1974// CHECK-NEXT:    </dict>
1975// CHECK-NEXT:    <dict>
1976// CHECK-NEXT:     <key>kind</key><string>control</string>
1977// CHECK-NEXT:     <key>edges</key>
1978// CHECK-NEXT:      <array>
1979// CHECK-NEXT:       <dict>
1980// CHECK-NEXT:        <key>start</key>
1981// CHECK-NEXT:         <array>
1982// CHECK-NEXT:          <dict>
1983// CHECK-NEXT:           <key>line</key><integer>133</integer>
1984// CHECK-NEXT:           <key>col</key><integer>5</integer>
1985// CHECK-NEXT:           <key>file</key><integer>0</integer>
1986// CHECK-NEXT:          </dict>
1987// CHECK-NEXT:          <dict>
1988// CHECK-NEXT:           <key>line</key><integer>133</integer>
1989// CHECK-NEXT:           <key>col</key><integer>5</integer>
1990// CHECK-NEXT:           <key>file</key><integer>0</integer>
1991// CHECK-NEXT:          </dict>
1992// CHECK-NEXT:         </array>
1993// CHECK-NEXT:        <key>end</key>
1994// CHECK-NEXT:         <array>
1995// CHECK-NEXT:          <dict>
1996// CHECK-NEXT:           <key>line</key><integer>134</integer>
1997// CHECK-NEXT:           <key>col</key><integer>5</integer>
1998// CHECK-NEXT:           <key>file</key><integer>0</integer>
1999// CHECK-NEXT:          </dict>
2000// CHECK-NEXT:          <dict>
2001// CHECK-NEXT:           <key>line</key><integer>134</integer>
2002// CHECK-NEXT:           <key>col</key><integer>5</integer>
2003// CHECK-NEXT:           <key>file</key><integer>0</integer>
2004// CHECK-NEXT:          </dict>
2005// CHECK-NEXT:         </array>
2006// CHECK-NEXT:       </dict>
2007// CHECK-NEXT:      </array>
2008// CHECK-NEXT:    </dict>
2009// CHECK-NEXT:    <dict>
2010// CHECK-NEXT:     <key>kind</key><string>control</string>
2011// CHECK-NEXT:     <key>edges</key>
2012// CHECK-NEXT:      <array>
2013// CHECK-NEXT:       <dict>
2014// CHECK-NEXT:        <key>start</key>
2015// CHECK-NEXT:         <array>
2016// CHECK-NEXT:          <dict>
2017// CHECK-NEXT:           <key>line</key><integer>134</integer>
2018// CHECK-NEXT:           <key>col</key><integer>5</integer>
2019// CHECK-NEXT:           <key>file</key><integer>0</integer>
2020// CHECK-NEXT:          </dict>
2021// CHECK-NEXT:          <dict>
2022// CHECK-NEXT:           <key>line</key><integer>134</integer>
2023// CHECK-NEXT:           <key>col</key><integer>5</integer>
2024// CHECK-NEXT:           <key>file</key><integer>0</integer>
2025// CHECK-NEXT:          </dict>
2026// CHECK-NEXT:         </array>
2027// CHECK-NEXT:        <key>end</key>
2028// CHECK-NEXT:         <array>
2029// CHECK-NEXT:          <dict>
2030// CHECK-NEXT:           <key>line</key><integer>136</integer>
2031// CHECK-NEXT:           <key>col</key><integer>3</integer>
2032// CHECK-NEXT:           <key>file</key><integer>0</integer>
2033// CHECK-NEXT:          </dict>
2034// CHECK-NEXT:          <dict>
2035// CHECK-NEXT:           <key>line</key><integer>136</integer>
2036// CHECK-NEXT:           <key>col</key><integer>3</integer>
2037// CHECK-NEXT:           <key>file</key><integer>0</integer>
2038// CHECK-NEXT:          </dict>
2039// CHECK-NEXT:         </array>
2040// CHECK-NEXT:       </dict>
2041// CHECK-NEXT:      </array>
2042// CHECK-NEXT:    </dict>
2043// CHECK-NEXT:    <dict>
2044// CHECK-NEXT:     <key>kind</key><string>event</string>
2045// CHECK-NEXT:     <key>location</key>
2046// CHECK-NEXT:     <dict>
2047// CHECK-NEXT:      <key>line</key><integer>136</integer>
2048// CHECK-NEXT:      <key>col</key><integer>3</integer>
2049// CHECK-NEXT:      <key>file</key><integer>0</integer>
2050// CHECK-NEXT:     </dict>
2051// CHECK-NEXT:     <key>ranges</key>
2052// CHECK-NEXT:     <array>
2053// CHECK-NEXT:       <array>
2054// CHECK-NEXT:        <dict>
2055// CHECK-NEXT:         <key>line</key><integer>136</integer>
2056// CHECK-NEXT:         <key>col</key><integer>17</integer>
2057// CHECK-NEXT:         <key>file</key><integer>0</integer>
2058// CHECK-NEXT:        </dict>
2059// CHECK-NEXT:        <dict>
2060// CHECK-NEXT:         <key>line</key><integer>136</integer>
2061// CHECK-NEXT:         <key>col</key><integer>39</integer>
2062// CHECK-NEXT:         <key>file</key><integer>0</integer>
2063// CHECK-NEXT:        </dict>
2064// CHECK-NEXT:       </array>
2065// CHECK-NEXT:     </array>
2066// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2067// CHECK-NEXT:     <key>extended_message</key>
2068// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2069// CHECK-NEXT:     <key>message</key>
2070// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2071// CHECK-NEXT:    </dict>
2072// CHECK-NEXT:   </array>
2073// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2074// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2075// CHECK-NEXT:   <key>type</key><string>Generics</string>
2076// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2077// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2078// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>24a08781e7d8971a7d8f8f607ce40074</string>
2079// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2080// CHECK-NEXT:  <key>issue_context</key><string>pathSensitiveInference</string>
2081// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>8</string>
2082// CHECK-NEXT:  <key>location</key>
2083// CHECK-NEXT:  <dict>
2084// CHECK-NEXT:   <key>line</key><integer>136</integer>
2085// CHECK-NEXT:   <key>col</key><integer>3</integer>
2086// CHECK-NEXT:   <key>file</key><integer>0</integer>
2087// CHECK-NEXT:  </dict>
2088// CHECK-NEXT:  </dict>
2089// CHECK-NEXT:  <dict>
2090// CHECK-NEXT:   <key>path</key>
2091// CHECK-NEXT:   <array>
2092// CHECK-NEXT:    <dict>
2093// CHECK-NEXT:     <key>kind</key><string>event</string>
2094// CHECK-NEXT:     <key>location</key>
2095// CHECK-NEXT:     <dict>
2096// CHECK-NEXT:      <key>line</key><integer>141</integer>
2097// CHECK-NEXT:      <key>col</key><integer>7</integer>
2098// CHECK-NEXT:      <key>file</key><integer>0</integer>
2099// CHECK-NEXT:     </dict>
2100// CHECK-NEXT:     <key>ranges</key>
2101// CHECK-NEXT:     <array>
2102// CHECK-NEXT:       <array>
2103// CHECK-NEXT:        <dict>
2104// CHECK-NEXT:         <key>line</key><integer>141</integer>
2105// CHECK-NEXT:         <key>col</key><integer>7</integer>
2106// CHECK-NEXT:         <key>file</key><integer>0</integer>
2107// CHECK-NEXT:        </dict>
2108// CHECK-NEXT:        <dict>
2109// CHECK-NEXT:         <key>line</key><integer>141</integer>
2110// CHECK-NEXT:         <key>col</key><integer>7</integer>
2111// CHECK-NEXT:         <key>file</key><integer>0</integer>
2112// CHECK-NEXT:        </dict>
2113// CHECK-NEXT:       </array>
2114// CHECK-NEXT:     </array>
2115// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2116// CHECK-NEXT:     <key>extended_message</key>
2117// 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>
2118// CHECK-NEXT:     <key>message</key>
2119// 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>
2120// CHECK-NEXT:    </dict>
2121// CHECK-NEXT:    <dict>
2122// CHECK-NEXT:     <key>kind</key><string>control</string>
2123// CHECK-NEXT:     <key>edges</key>
2124// CHECK-NEXT:      <array>
2125// CHECK-NEXT:       <dict>
2126// CHECK-NEXT:        <key>start</key>
2127// CHECK-NEXT:         <array>
2128// CHECK-NEXT:          <dict>
2129// CHECK-NEXT:           <key>line</key><integer>141</integer>
2130// CHECK-NEXT:           <key>col</key><integer>3</integer>
2131// CHECK-NEXT:           <key>file</key><integer>0</integer>
2132// CHECK-NEXT:          </dict>
2133// CHECK-NEXT:          <dict>
2134// CHECK-NEXT:           <key>line</key><integer>141</integer>
2135// CHECK-NEXT:           <key>col</key><integer>3</integer>
2136// CHECK-NEXT:           <key>file</key><integer>0</integer>
2137// CHECK-NEXT:          </dict>
2138// CHECK-NEXT:         </array>
2139// CHECK-NEXT:        <key>end</key>
2140// CHECK-NEXT:         <array>
2141// CHECK-NEXT:          <dict>
2142// CHECK-NEXT:           <key>line</key><integer>142</integer>
2143// CHECK-NEXT:           <key>col</key><integer>3</integer>
2144// CHECK-NEXT:           <key>file</key><integer>0</integer>
2145// CHECK-NEXT:          </dict>
2146// CHECK-NEXT:          <dict>
2147// CHECK-NEXT:           <key>line</key><integer>142</integer>
2148// CHECK-NEXT:           <key>col</key><integer>9</integer>
2149// CHECK-NEXT:           <key>file</key><integer>0</integer>
2150// CHECK-NEXT:          </dict>
2151// CHECK-NEXT:         </array>
2152// CHECK-NEXT:       </dict>
2153// CHECK-NEXT:      </array>
2154// CHECK-NEXT:    </dict>
2155// CHECK-NEXT:    <dict>
2156// CHECK-NEXT:     <key>kind</key><string>control</string>
2157// CHECK-NEXT:     <key>edges</key>
2158// CHECK-NEXT:      <array>
2159// CHECK-NEXT:       <dict>
2160// CHECK-NEXT:        <key>start</key>
2161// CHECK-NEXT:         <array>
2162// CHECK-NEXT:          <dict>
2163// CHECK-NEXT:           <key>line</key><integer>142</integer>
2164// CHECK-NEXT:           <key>col</key><integer>3</integer>
2165// CHECK-NEXT:           <key>file</key><integer>0</integer>
2166// CHECK-NEXT:          </dict>
2167// CHECK-NEXT:          <dict>
2168// CHECK-NEXT:           <key>line</key><integer>142</integer>
2169// CHECK-NEXT:           <key>col</key><integer>9</integer>
2170// CHECK-NEXT:           <key>file</key><integer>0</integer>
2171// CHECK-NEXT:          </dict>
2172// CHECK-NEXT:         </array>
2173// CHECK-NEXT:        <key>end</key>
2174// CHECK-NEXT:         <array>
2175// CHECK-NEXT:          <dict>
2176// CHECK-NEXT:           <key>line</key><integer>142</integer>
2177// CHECK-NEXT:           <key>col</key><integer>11</integer>
2178// CHECK-NEXT:           <key>file</key><integer>0</integer>
2179// CHECK-NEXT:          </dict>
2180// CHECK-NEXT:          <dict>
2181// CHECK-NEXT:           <key>line</key><integer>142</integer>
2182// CHECK-NEXT:           <key>col</key><integer>11</integer>
2183// CHECK-NEXT:           <key>file</key><integer>0</integer>
2184// CHECK-NEXT:          </dict>
2185// CHECK-NEXT:         </array>
2186// CHECK-NEXT:       </dict>
2187// CHECK-NEXT:      </array>
2188// CHECK-NEXT:    </dict>
2189// CHECK-NEXT:    <dict>
2190// CHECK-NEXT:     <key>kind</key><string>event</string>
2191// CHECK-NEXT:     <key>location</key>
2192// CHECK-NEXT:     <dict>
2193// CHECK-NEXT:      <key>line</key><integer>142</integer>
2194// CHECK-NEXT:      <key>col</key><integer>11</integer>
2195// CHECK-NEXT:      <key>file</key><integer>0</integer>
2196// CHECK-NEXT:     </dict>
2197// CHECK-NEXT:     <key>ranges</key>
2198// CHECK-NEXT:     <array>
2199// CHECK-NEXT:       <array>
2200// CHECK-NEXT:        <dict>
2201// CHECK-NEXT:         <key>line</key><integer>142</integer>
2202// CHECK-NEXT:         <key>col</key><integer>11</integer>
2203// CHECK-NEXT:         <key>file</key><integer>0</integer>
2204// CHECK-NEXT:        </dict>
2205// CHECK-NEXT:        <dict>
2206// CHECK-NEXT:         <key>line</key><integer>142</integer>
2207// CHECK-NEXT:         <key>col</key><integer>11</integer>
2208// CHECK-NEXT:         <key>file</key><integer>0</integer>
2209// CHECK-NEXT:        </dict>
2210// CHECK-NEXT:       </array>
2211// CHECK-NEXT:     </array>
2212// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2213// CHECK-NEXT:     <key>extended_message</key>
2214// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2215// CHECK-NEXT:     <key>message</key>
2216// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
2217// CHECK-NEXT:    </dict>
2218// CHECK-NEXT:   </array>
2219// 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>
2220// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2221// CHECK-NEXT:   <key>type</key><string>Generics</string>
2222// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2223// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2224// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a8534f675404d57d833dc3c371d49845</string>
2225// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2226// CHECK-NEXT:  <key>issue_context</key><string>verifyAPIusage</string>
2227// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
2228// CHECK-NEXT:  <key>location</key>
2229// CHECK-NEXT:  <dict>
2230// CHECK-NEXT:   <key>line</key><integer>142</integer>
2231// CHECK-NEXT:   <key>col</key><integer>11</integer>
2232// CHECK-NEXT:   <key>file</key><integer>0</integer>
2233// CHECK-NEXT:  </dict>
2234// CHECK-NEXT:  </dict>
2235// CHECK-NEXT:  <dict>
2236// CHECK-NEXT:   <key>path</key>
2237// CHECK-NEXT:   <array>
2238// CHECK-NEXT:    <dict>
2239// CHECK-NEXT:     <key>kind</key><string>event</string>
2240// CHECK-NEXT:     <key>location</key>
2241// CHECK-NEXT:     <dict>
2242// CHECK-NEXT:      <key>line</key><integer>147</integer>
2243// CHECK-NEXT:      <key>col</key><integer>7</integer>
2244// CHECK-NEXT:      <key>file</key><integer>0</integer>
2245// CHECK-NEXT:     </dict>
2246// CHECK-NEXT:     <key>ranges</key>
2247// CHECK-NEXT:     <array>
2248// CHECK-NEXT:       <array>
2249// CHECK-NEXT:        <dict>
2250// CHECK-NEXT:         <key>line</key><integer>147</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:        <dict>
2255// CHECK-NEXT:         <key>line</key><integer>147</integer>
2256// CHECK-NEXT:         <key>col</key><integer>42</integer>
2257// CHECK-NEXT:         <key>file</key><integer>0</integer>
2258// CHECK-NEXT:        </dict>
2259// CHECK-NEXT:       </array>
2260// CHECK-NEXT:     </array>
2261// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2262// CHECK-NEXT:     <key>extended_message</key>
2263// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from explicit cast (from &apos;MutableArray *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
2264// CHECK-NEXT:     <key>message</key>
2265// CHECK-NEXT:     <string>Type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; is inferred from explicit cast (from &apos;MutableArray *&apos; to &apos;MutableArray&lt;NSMutableString *&gt; *&apos;)</string>
2266// CHECK-NEXT:    </dict>
2267// CHECK-NEXT:    <dict>
2268// CHECK-NEXT:     <key>kind</key><string>control</string>
2269// CHECK-NEXT:     <key>edges</key>
2270// CHECK-NEXT:      <array>
2271// CHECK-NEXT:       <dict>
2272// CHECK-NEXT:        <key>start</key>
2273// CHECK-NEXT:         <array>
2274// CHECK-NEXT:          <dict>
2275// CHECK-NEXT:           <key>line</key><integer>147</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:          <dict>
2280// CHECK-NEXT:           <key>line</key><integer>147</integer>
2281// CHECK-NEXT:           <key>col</key><integer>3</integer>
2282// CHECK-NEXT:           <key>file</key><integer>0</integer>
2283// CHECK-NEXT:          </dict>
2284// CHECK-NEXT:         </array>
2285// CHECK-NEXT:        <key>end</key>
2286// CHECK-NEXT:         <array>
2287// CHECK-NEXT:          <dict>
2288// CHECK-NEXT:           <key>line</key><integer>148</integer>
2289// CHECK-NEXT:           <key>col</key><integer>3</integer>
2290// CHECK-NEXT:           <key>file</key><integer>0</integer>
2291// CHECK-NEXT:          </dict>
2292// CHECK-NEXT:          <dict>
2293// CHECK-NEXT:           <key>line</key><integer>148</integer>
2294// CHECK-NEXT:           <key>col</key><integer>3</integer>
2295// CHECK-NEXT:           <key>file</key><integer>0</integer>
2296// CHECK-NEXT:          </dict>
2297// CHECK-NEXT:         </array>
2298// CHECK-NEXT:       </dict>
2299// CHECK-NEXT:      </array>
2300// CHECK-NEXT:    </dict>
2301// CHECK-NEXT:    <dict>
2302// CHECK-NEXT:     <key>kind</key><string>event</string>
2303// CHECK-NEXT:     <key>location</key>
2304// CHECK-NEXT:     <dict>
2305// CHECK-NEXT:      <key>line</key><integer>148</integer>
2306// CHECK-NEXT:      <key>col</key><integer>3</integer>
2307// CHECK-NEXT:      <key>file</key><integer>0</integer>
2308// CHECK-NEXT:     </dict>
2309// CHECK-NEXT:     <key>ranges</key>
2310// CHECK-NEXT:     <array>
2311// CHECK-NEXT:       <array>
2312// CHECK-NEXT:        <dict>
2313// CHECK-NEXT:         <key>line</key><integer>148</integer>
2314// CHECK-NEXT:         <key>col</key><integer>17</integer>
2315// CHECK-NEXT:         <key>file</key><integer>0</integer>
2316// CHECK-NEXT:        </dict>
2317// CHECK-NEXT:        <dict>
2318// CHECK-NEXT:         <key>line</key><integer>148</integer>
2319// CHECK-NEXT:         <key>col</key><integer>39</integer>
2320// CHECK-NEXT:         <key>file</key><integer>0</integer>
2321// CHECK-NEXT:        </dict>
2322// CHECK-NEXT:       </array>
2323// CHECK-NEXT:     </array>
2324// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2325// CHECK-NEXT:     <key>extended_message</key>
2326// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2327// CHECK-NEXT:     <key>message</key>
2328// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2329// CHECK-NEXT:    </dict>
2330// CHECK-NEXT:   </array>
2331// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
2332// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2333// CHECK-NEXT:   <key>type</key><string>Generics</string>
2334// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2335// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2336// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>0549631e5a7fa668375061b6c898e438</string>
2337// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2338// CHECK-NEXT:  <key>issue_context</key><string>trustExplicitCasts</string>
2339// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
2340// CHECK-NEXT:  <key>location</key>
2341// CHECK-NEXT:  <dict>
2342// CHECK-NEXT:   <key>line</key><integer>148</integer>
2343// CHECK-NEXT:   <key>col</key><integer>3</integer>
2344// CHECK-NEXT:   <key>file</key><integer>0</integer>
2345// CHECK-NEXT:  </dict>
2346// CHECK-NEXT:  </dict>
2347// CHECK-NEXT:  <dict>
2348// CHECK-NEXT:   <key>path</key>
2349// CHECK-NEXT:   <array>
2350// CHECK-NEXT:    <dict>
2351// CHECK-NEXT:     <key>kind</key><string>control</string>
2352// CHECK-NEXT:     <key>edges</key>
2353// CHECK-NEXT:      <array>
2354// CHECK-NEXT:       <dict>
2355// CHECK-NEXT:        <key>start</key>
2356// CHECK-NEXT:         <array>
2357// CHECK-NEXT:          <dict>
2358// CHECK-NEXT:           <key>line</key><integer>154</integer>
2359// CHECK-NEXT:           <key>col</key><integer>3</integer>
2360// CHECK-NEXT:           <key>file</key><integer>0</integer>
2361// CHECK-NEXT:          </dict>
2362// CHECK-NEXT:          <dict>
2363// CHECK-NEXT:           <key>line</key><integer>154</integer>
2364// CHECK-NEXT:           <key>col</key><integer>3</integer>
2365// CHECK-NEXT:           <key>file</key><integer>0</integer>
2366// CHECK-NEXT:          </dict>
2367// CHECK-NEXT:         </array>
2368// CHECK-NEXT:        <key>end</key>
2369// CHECK-NEXT:         <array>
2370// CHECK-NEXT:          <dict>
2371// CHECK-NEXT:           <key>line</key><integer>155</integer>
2372// CHECK-NEXT:           <key>col</key><integer>3</integer>
2373// CHECK-NEXT:           <key>file</key><integer>0</integer>
2374// CHECK-NEXT:          </dict>
2375// CHECK-NEXT:          <dict>
2376// CHECK-NEXT:           <key>line</key><integer>155</integer>
2377// CHECK-NEXT:           <key>col</key><integer>3</integer>
2378// CHECK-NEXT:           <key>file</key><integer>0</integer>
2379// CHECK-NEXT:          </dict>
2380// CHECK-NEXT:         </array>
2381// CHECK-NEXT:       </dict>
2382// CHECK-NEXT:      </array>
2383// CHECK-NEXT:    </dict>
2384// CHECK-NEXT:    <dict>
2385// CHECK-NEXT:     <key>kind</key><string>event</string>
2386// CHECK-NEXT:     <key>location</key>
2387// CHECK-NEXT:     <dict>
2388// CHECK-NEXT:      <key>line</key><integer>155</integer>
2389// CHECK-NEXT:      <key>col</key><integer>7</integer>
2390// CHECK-NEXT:      <key>file</key><integer>0</integer>
2391// CHECK-NEXT:     </dict>
2392// CHECK-NEXT:     <key>ranges</key>
2393// CHECK-NEXT:     <array>
2394// CHECK-NEXT:       <array>
2395// CHECK-NEXT:        <dict>
2396// CHECK-NEXT:         <key>line</key><integer>155</integer>
2397// CHECK-NEXT:         <key>col</key><integer>7</integer>
2398// CHECK-NEXT:         <key>file</key><integer>0</integer>
2399// CHECK-NEXT:        </dict>
2400// CHECK-NEXT:        <dict>
2401// CHECK-NEXT:         <key>line</key><integer>155</integer>
2402// CHECK-NEXT:         <key>col</key><integer>7</integer>
2403// CHECK-NEXT:         <key>file</key><integer>0</integer>
2404// CHECK-NEXT:        </dict>
2405// CHECK-NEXT:       </array>
2406// CHECK-NEXT:     </array>
2407// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2408// CHECK-NEXT:     <key>extended_message</key>
2409// 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>
2410// CHECK-NEXT:     <key>message</key>
2411// 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>
2412// CHECK-NEXT:    </dict>
2413// CHECK-NEXT:    <dict>
2414// CHECK-NEXT:     <key>kind</key><string>control</string>
2415// CHECK-NEXT:     <key>edges</key>
2416// CHECK-NEXT:      <array>
2417// CHECK-NEXT:       <dict>
2418// CHECK-NEXT:        <key>start</key>
2419// CHECK-NEXT:         <array>
2420// CHECK-NEXT:          <dict>
2421// CHECK-NEXT:           <key>line</key><integer>155</integer>
2422// CHECK-NEXT:           <key>col</key><integer>3</integer>
2423// CHECK-NEXT:           <key>file</key><integer>0</integer>
2424// CHECK-NEXT:          </dict>
2425// CHECK-NEXT:          <dict>
2426// CHECK-NEXT:           <key>line</key><integer>155</integer>
2427// CHECK-NEXT:           <key>col</key><integer>3</integer>
2428// CHECK-NEXT:           <key>file</key><integer>0</integer>
2429// CHECK-NEXT:          </dict>
2430// CHECK-NEXT:         </array>
2431// CHECK-NEXT:        <key>end</key>
2432// CHECK-NEXT:         <array>
2433// CHECK-NEXT:          <dict>
2434// CHECK-NEXT:           <key>line</key><integer>156</integer>
2435// CHECK-NEXT:           <key>col</key><integer>3</integer>
2436// CHECK-NEXT:           <key>file</key><integer>0</integer>
2437// CHECK-NEXT:          </dict>
2438// CHECK-NEXT:          <dict>
2439// CHECK-NEXT:           <key>line</key><integer>156</integer>
2440// CHECK-NEXT:           <key>col</key><integer>3</integer>
2441// CHECK-NEXT:           <key>file</key><integer>0</integer>
2442// CHECK-NEXT:          </dict>
2443// CHECK-NEXT:         </array>
2444// CHECK-NEXT:       </dict>
2445// CHECK-NEXT:      </array>
2446// CHECK-NEXT:    </dict>
2447// CHECK-NEXT:    <dict>
2448// CHECK-NEXT:     <key>kind</key><string>control</string>
2449// CHECK-NEXT:     <key>edges</key>
2450// CHECK-NEXT:      <array>
2451// CHECK-NEXT:       <dict>
2452// CHECK-NEXT:        <key>start</key>
2453// CHECK-NEXT:         <array>
2454// CHECK-NEXT:          <dict>
2455// CHECK-NEXT:           <key>line</key><integer>156</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:          <dict>
2460// CHECK-NEXT:           <key>line</key><integer>156</integer>
2461// CHECK-NEXT:           <key>col</key><integer>3</integer>
2462// CHECK-NEXT:           <key>file</key><integer>0</integer>
2463// CHECK-NEXT:          </dict>
2464// CHECK-NEXT:         </array>
2465// CHECK-NEXT:        <key>end</key>
2466// CHECK-NEXT:         <array>
2467// CHECK-NEXT:          <dict>
2468// CHECK-NEXT:           <key>line</key><integer>156</integer>
2469// CHECK-NEXT:           <key>col</key><integer>7</integer>
2470// CHECK-NEXT:           <key>file</key><integer>0</integer>
2471// CHECK-NEXT:          </dict>
2472// CHECK-NEXT:          <dict>
2473// CHECK-NEXT:           <key>line</key><integer>156</integer>
2474// CHECK-NEXT:           <key>col</key><integer>7</integer>
2475// CHECK-NEXT:           <key>file</key><integer>0</integer>
2476// CHECK-NEXT:          </dict>
2477// CHECK-NEXT:         </array>
2478// CHECK-NEXT:       </dict>
2479// CHECK-NEXT:      </array>
2480// CHECK-NEXT:    </dict>
2481// CHECK-NEXT:    <dict>
2482// CHECK-NEXT:     <key>kind</key><string>event</string>
2483// CHECK-NEXT:     <key>location</key>
2484// CHECK-NEXT:     <dict>
2485// CHECK-NEXT:      <key>line</key><integer>156</integer>
2486// CHECK-NEXT:      <key>col</key><integer>7</integer>
2487// CHECK-NEXT:      <key>file</key><integer>0</integer>
2488// CHECK-NEXT:     </dict>
2489// CHECK-NEXT:     <key>ranges</key>
2490// CHECK-NEXT:     <array>
2491// CHECK-NEXT:       <array>
2492// CHECK-NEXT:        <dict>
2493// CHECK-NEXT:         <key>line</key><integer>156</integer>
2494// CHECK-NEXT:         <key>col</key><integer>7</integer>
2495// CHECK-NEXT:         <key>file</key><integer>0</integer>
2496// CHECK-NEXT:        </dict>
2497// CHECK-NEXT:        <dict>
2498// CHECK-NEXT:         <key>line</key><integer>156</integer>
2499// CHECK-NEXT:         <key>col</key><integer>7</integer>
2500// CHECK-NEXT:         <key>file</key><integer>0</integer>
2501// CHECK-NEXT:        </dict>
2502// CHECK-NEXT:       </array>
2503// CHECK-NEXT:     </array>
2504// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2505// CHECK-NEXT:     <key>extended_message</key>
2506// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2507// CHECK-NEXT:     <key>message</key>
2508// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2509// CHECK-NEXT:    </dict>
2510// CHECK-NEXT:   </array>
2511// 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>
2512// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2513// CHECK-NEXT:   <key>type</key><string>Generics</string>
2514// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2515// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2516// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>d113e22b9ee9ded1cd94750c3557eff4</string>
2517// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2518// CHECK-NEXT:  <key>issue_context</key><string>subtypeOfGeneric</string>
2519// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
2520// CHECK-NEXT:  <key>location</key>
2521// CHECK-NEXT:  <dict>
2522// CHECK-NEXT:   <key>line</key><integer>156</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:  <dict>
2528// CHECK-NEXT:   <key>path</key>
2529// CHECK-NEXT:   <array>
2530// CHECK-NEXT:    <dict>
2531// CHECK-NEXT:     <key>kind</key><string>event</string>
2532// CHECK-NEXT:     <key>location</key>
2533// CHECK-NEXT:     <dict>
2534// CHECK-NEXT:      <key>line</key><integer>162</integer>
2535// CHECK-NEXT:      <key>col</key><integer>7</integer>
2536// CHECK-NEXT:      <key>file</key><integer>0</integer>
2537// CHECK-NEXT:     </dict>
2538// CHECK-NEXT:     <key>ranges</key>
2539// CHECK-NEXT:     <array>
2540// CHECK-NEXT:       <array>
2541// CHECK-NEXT:        <dict>
2542// CHECK-NEXT:         <key>line</key><integer>162</integer>
2543// CHECK-NEXT:         <key>col</key><integer>7</integer>
2544// CHECK-NEXT:         <key>file</key><integer>0</integer>
2545// CHECK-NEXT:        </dict>
2546// CHECK-NEXT:        <dict>
2547// CHECK-NEXT:         <key>line</key><integer>162</integer>
2548// CHECK-NEXT:         <key>col</key><integer>7</integer>
2549// CHECK-NEXT:         <key>file</key><integer>0</integer>
2550// CHECK-NEXT:        </dict>
2551// CHECK-NEXT:       </array>
2552// CHECK-NEXT:     </array>
2553// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2554// CHECK-NEXT:     <key>extended_message</key>
2555// 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>
2556// CHECK-NEXT:     <key>message</key>
2557// 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>
2558// CHECK-NEXT:    </dict>
2559// CHECK-NEXT:    <dict>
2560// CHECK-NEXT:     <key>kind</key><string>control</string>
2561// CHECK-NEXT:     <key>edges</key>
2562// CHECK-NEXT:      <array>
2563// CHECK-NEXT:       <dict>
2564// CHECK-NEXT:        <key>start</key>
2565// CHECK-NEXT:         <array>
2566// CHECK-NEXT:          <dict>
2567// CHECK-NEXT:           <key>line</key><integer>162</integer>
2568// CHECK-NEXT:           <key>col</key><integer>3</integer>
2569// CHECK-NEXT:           <key>file</key><integer>0</integer>
2570// CHECK-NEXT:          </dict>
2571// CHECK-NEXT:          <dict>
2572// CHECK-NEXT:           <key>line</key><integer>162</integer>
2573// CHECK-NEXT:           <key>col</key><integer>3</integer>
2574// CHECK-NEXT:           <key>file</key><integer>0</integer>
2575// CHECK-NEXT:          </dict>
2576// CHECK-NEXT:         </array>
2577// CHECK-NEXT:        <key>end</key>
2578// CHECK-NEXT:         <array>
2579// CHECK-NEXT:          <dict>
2580// CHECK-NEXT:           <key>line</key><integer>164</integer>
2581// CHECK-NEXT:           <key>col</key><integer>3</integer>
2582// CHECK-NEXT:           <key>file</key><integer>0</integer>
2583// CHECK-NEXT:          </dict>
2584// CHECK-NEXT:          <dict>
2585// CHECK-NEXT:           <key>line</key><integer>164</integer>
2586// CHECK-NEXT:           <key>col</key><integer>3</integer>
2587// CHECK-NEXT:           <key>file</key><integer>0</integer>
2588// CHECK-NEXT:          </dict>
2589// CHECK-NEXT:         </array>
2590// CHECK-NEXT:       </dict>
2591// CHECK-NEXT:      </array>
2592// CHECK-NEXT:    </dict>
2593// CHECK-NEXT:    <dict>
2594// CHECK-NEXT:     <key>kind</key><string>event</string>
2595// CHECK-NEXT:     <key>location</key>
2596// CHECK-NEXT:     <dict>
2597// CHECK-NEXT:      <key>line</key><integer>164</integer>
2598// CHECK-NEXT:      <key>col</key><integer>3</integer>
2599// CHECK-NEXT:      <key>file</key><integer>0</integer>
2600// CHECK-NEXT:     </dict>
2601// CHECK-NEXT:     <key>ranges</key>
2602// CHECK-NEXT:     <array>
2603// CHECK-NEXT:       <array>
2604// CHECK-NEXT:        <dict>
2605// CHECK-NEXT:         <key>line</key><integer>164</integer>
2606// CHECK-NEXT:         <key>col</key><integer>16</integer>
2607// CHECK-NEXT:         <key>file</key><integer>0</integer>
2608// CHECK-NEXT:        </dict>
2609// CHECK-NEXT:        <dict>
2610// CHECK-NEXT:         <key>line</key><integer>164</integer>
2611// CHECK-NEXT:         <key>col</key><integer>38</integer>
2612// CHECK-NEXT:         <key>file</key><integer>0</integer>
2613// CHECK-NEXT:        </dict>
2614// CHECK-NEXT:       </array>
2615// CHECK-NEXT:     </array>
2616// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2617// CHECK-NEXT:     <key>extended_message</key>
2618// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2619// CHECK-NEXT:     <key>message</key>
2620// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2621// CHECK-NEXT:    </dict>
2622// CHECK-NEXT:   </array>
2623// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2624// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2625// CHECK-NEXT:   <key>type</key><string>Generics</string>
2626// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2627// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2628// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>22fad8121164716006b2a12f4ddc494e</string>
2629// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2630// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2631// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
2632// CHECK-NEXT:  <key>location</key>
2633// CHECK-NEXT:  <dict>
2634// CHECK-NEXT:   <key>line</key><integer>164</integer>
2635// CHECK-NEXT:   <key>col</key><integer>3</integer>
2636// CHECK-NEXT:   <key>file</key><integer>0</integer>
2637// CHECK-NEXT:  </dict>
2638// CHECK-NEXT:  </dict>
2639// CHECK-NEXT:  <dict>
2640// CHECK-NEXT:   <key>path</key>
2641// CHECK-NEXT:   <array>
2642// CHECK-NEXT:    <dict>
2643// CHECK-NEXT:     <key>kind</key><string>event</string>
2644// CHECK-NEXT:     <key>location</key>
2645// CHECK-NEXT:     <dict>
2646// CHECK-NEXT:      <key>line</key><integer>162</integer>
2647// CHECK-NEXT:      <key>col</key><integer>7</integer>
2648// CHECK-NEXT:      <key>file</key><integer>0</integer>
2649// CHECK-NEXT:     </dict>
2650// CHECK-NEXT:     <key>ranges</key>
2651// CHECK-NEXT:     <array>
2652// CHECK-NEXT:       <array>
2653// CHECK-NEXT:        <dict>
2654// CHECK-NEXT:         <key>line</key><integer>162</integer>
2655// CHECK-NEXT:         <key>col</key><integer>7</integer>
2656// CHECK-NEXT:         <key>file</key><integer>0</integer>
2657// CHECK-NEXT:        </dict>
2658// CHECK-NEXT:        <dict>
2659// CHECK-NEXT:         <key>line</key><integer>162</integer>
2660// CHECK-NEXT:         <key>col</key><integer>7</integer>
2661// CHECK-NEXT:         <key>file</key><integer>0</integer>
2662// CHECK-NEXT:        </dict>
2663// CHECK-NEXT:       </array>
2664// CHECK-NEXT:     </array>
2665// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2666// CHECK-NEXT:     <key>extended_message</key>
2667// 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>
2668// CHECK-NEXT:     <key>message</key>
2669// 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>
2670// CHECK-NEXT:    </dict>
2671// CHECK-NEXT:    <dict>
2672// CHECK-NEXT:     <key>kind</key><string>control</string>
2673// CHECK-NEXT:     <key>edges</key>
2674// CHECK-NEXT:      <array>
2675// CHECK-NEXT:       <dict>
2676// CHECK-NEXT:        <key>start</key>
2677// CHECK-NEXT:         <array>
2678// CHECK-NEXT:          <dict>
2679// CHECK-NEXT:           <key>line</key><integer>162</integer>
2680// CHECK-NEXT:           <key>col</key><integer>3</integer>
2681// CHECK-NEXT:           <key>file</key><integer>0</integer>
2682// CHECK-NEXT:          </dict>
2683// CHECK-NEXT:          <dict>
2684// CHECK-NEXT:           <key>line</key><integer>162</integer>
2685// CHECK-NEXT:           <key>col</key><integer>3</integer>
2686// CHECK-NEXT:           <key>file</key><integer>0</integer>
2687// CHECK-NEXT:          </dict>
2688// CHECK-NEXT:         </array>
2689// CHECK-NEXT:        <key>end</key>
2690// CHECK-NEXT:         <array>
2691// CHECK-NEXT:          <dict>
2692// CHECK-NEXT:           <key>line</key><integer>166</integer>
2693// CHECK-NEXT:           <key>col</key><integer>3</integer>
2694// CHECK-NEXT:           <key>file</key><integer>0</integer>
2695// CHECK-NEXT:          </dict>
2696// CHECK-NEXT:          <dict>
2697// CHECK-NEXT:           <key>line</key><integer>166</integer>
2698// CHECK-NEXT:           <key>col</key><integer>3</integer>
2699// CHECK-NEXT:           <key>file</key><integer>0</integer>
2700// CHECK-NEXT:          </dict>
2701// CHECK-NEXT:         </array>
2702// CHECK-NEXT:       </dict>
2703// CHECK-NEXT:      </array>
2704// CHECK-NEXT:    </dict>
2705// CHECK-NEXT:    <dict>
2706// CHECK-NEXT:     <key>kind</key><string>control</string>
2707// CHECK-NEXT:     <key>edges</key>
2708// CHECK-NEXT:      <array>
2709// CHECK-NEXT:       <dict>
2710// CHECK-NEXT:        <key>start</key>
2711// CHECK-NEXT:         <array>
2712// CHECK-NEXT:          <dict>
2713// CHECK-NEXT:           <key>line</key><integer>166</integer>
2714// CHECK-NEXT:           <key>col</key><integer>3</integer>
2715// CHECK-NEXT:           <key>file</key><integer>0</integer>
2716// CHECK-NEXT:          </dict>
2717// CHECK-NEXT:          <dict>
2718// CHECK-NEXT:           <key>line</key><integer>166</integer>
2719// CHECK-NEXT:           <key>col</key><integer>3</integer>
2720// CHECK-NEXT:           <key>file</key><integer>0</integer>
2721// CHECK-NEXT:          </dict>
2722// CHECK-NEXT:         </array>
2723// CHECK-NEXT:        <key>end</key>
2724// CHECK-NEXT:         <array>
2725// CHECK-NEXT:          <dict>
2726// CHECK-NEXT:           <key>line</key><integer>166</integer>
2727// CHECK-NEXT:           <key>col</key><integer>7</integer>
2728// CHECK-NEXT:           <key>file</key><integer>0</integer>
2729// CHECK-NEXT:          </dict>
2730// CHECK-NEXT:          <dict>
2731// CHECK-NEXT:           <key>line</key><integer>166</integer>
2732// CHECK-NEXT:           <key>col</key><integer>7</integer>
2733// CHECK-NEXT:           <key>file</key><integer>0</integer>
2734// CHECK-NEXT:          </dict>
2735// CHECK-NEXT:         </array>
2736// CHECK-NEXT:       </dict>
2737// CHECK-NEXT:      </array>
2738// CHECK-NEXT:    </dict>
2739// CHECK-NEXT:    <dict>
2740// CHECK-NEXT:     <key>kind</key><string>event</string>
2741// CHECK-NEXT:     <key>location</key>
2742// CHECK-NEXT:     <dict>
2743// CHECK-NEXT:      <key>line</key><integer>166</integer>
2744// CHECK-NEXT:      <key>col</key><integer>7</integer>
2745// CHECK-NEXT:      <key>file</key><integer>0</integer>
2746// CHECK-NEXT:     </dict>
2747// CHECK-NEXT:     <key>ranges</key>
2748// CHECK-NEXT:     <array>
2749// CHECK-NEXT:       <array>
2750// CHECK-NEXT:        <dict>
2751// CHECK-NEXT:         <key>line</key><integer>166</integer>
2752// CHECK-NEXT:         <key>col</key><integer>7</integer>
2753// CHECK-NEXT:         <key>file</key><integer>0</integer>
2754// CHECK-NEXT:        </dict>
2755// CHECK-NEXT:        <dict>
2756// CHECK-NEXT:         <key>line</key><integer>166</integer>
2757// CHECK-NEXT:         <key>col</key><integer>7</integer>
2758// CHECK-NEXT:         <key>file</key><integer>0</integer>
2759// CHECK-NEXT:        </dict>
2760// CHECK-NEXT:       </array>
2761// CHECK-NEXT:     </array>
2762// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2763// CHECK-NEXT:     <key>extended_message</key>
2764// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2765// CHECK-NEXT:     <key>message</key>
2766// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
2767// CHECK-NEXT:    </dict>
2768// CHECK-NEXT:   </array>
2769// 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>
2770// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2771// CHECK-NEXT:   <key>type</key><string>Generics</string>
2772// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2773// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2774// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>f1b900572a63726a729714a765595c38</string>
2775// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2776// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGeneric</string>
2777// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
2778// CHECK-NEXT:  <key>location</key>
2779// CHECK-NEXT:  <dict>
2780// CHECK-NEXT:   <key>line</key><integer>166</integer>
2781// CHECK-NEXT:   <key>col</key><integer>7</integer>
2782// CHECK-NEXT:   <key>file</key><integer>0</integer>
2783// CHECK-NEXT:  </dict>
2784// CHECK-NEXT:  </dict>
2785// CHECK-NEXT:  <dict>
2786// CHECK-NEXT:   <key>path</key>
2787// CHECK-NEXT:   <array>
2788// CHECK-NEXT:    <dict>
2789// CHECK-NEXT:     <key>kind</key><string>event</string>
2790// CHECK-NEXT:     <key>location</key>
2791// CHECK-NEXT:     <dict>
2792// CHECK-NEXT:      <key>line</key><integer>172</integer>
2793// CHECK-NEXT:      <key>col</key><integer>7</integer>
2794// CHECK-NEXT:      <key>file</key><integer>0</integer>
2795// CHECK-NEXT:     </dict>
2796// CHECK-NEXT:     <key>ranges</key>
2797// CHECK-NEXT:     <array>
2798// CHECK-NEXT:       <array>
2799// CHECK-NEXT:        <dict>
2800// CHECK-NEXT:         <key>line</key><integer>172</integer>
2801// CHECK-NEXT:         <key>col</key><integer>7</integer>
2802// CHECK-NEXT:         <key>file</key><integer>0</integer>
2803// CHECK-NEXT:        </dict>
2804// CHECK-NEXT:        <dict>
2805// CHECK-NEXT:         <key>line</key><integer>172</integer>
2806// CHECK-NEXT:         <key>col</key><integer>7</integer>
2807// CHECK-NEXT:         <key>file</key><integer>0</integer>
2808// CHECK-NEXT:        </dict>
2809// CHECK-NEXT:       </array>
2810// CHECK-NEXT:     </array>
2811// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2812// CHECK-NEXT:     <key>extended_message</key>
2813// 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>
2814// CHECK-NEXT:     <key>message</key>
2815// 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>
2816// CHECK-NEXT:    </dict>
2817// CHECK-NEXT:    <dict>
2818// CHECK-NEXT:     <key>kind</key><string>control</string>
2819// CHECK-NEXT:     <key>edges</key>
2820// CHECK-NEXT:      <array>
2821// CHECK-NEXT:       <dict>
2822// CHECK-NEXT:        <key>start</key>
2823// CHECK-NEXT:         <array>
2824// CHECK-NEXT:          <dict>
2825// CHECK-NEXT:           <key>line</key><integer>172</integer>
2826// CHECK-NEXT:           <key>col</key><integer>3</integer>
2827// CHECK-NEXT:           <key>file</key><integer>0</integer>
2828// CHECK-NEXT:          </dict>
2829// CHECK-NEXT:          <dict>
2830// CHECK-NEXT:           <key>line</key><integer>172</integer>
2831// CHECK-NEXT:           <key>col</key><integer>3</integer>
2832// CHECK-NEXT:           <key>file</key><integer>0</integer>
2833// CHECK-NEXT:          </dict>
2834// CHECK-NEXT:         </array>
2835// CHECK-NEXT:        <key>end</key>
2836// CHECK-NEXT:         <array>
2837// CHECK-NEXT:          <dict>
2838// CHECK-NEXT:           <key>line</key><integer>174</integer>
2839// CHECK-NEXT:           <key>col</key><integer>3</integer>
2840// CHECK-NEXT:           <key>file</key><integer>0</integer>
2841// CHECK-NEXT:          </dict>
2842// CHECK-NEXT:          <dict>
2843// CHECK-NEXT:           <key>line</key><integer>174</integer>
2844// CHECK-NEXT:           <key>col</key><integer>3</integer>
2845// CHECK-NEXT:           <key>file</key><integer>0</integer>
2846// CHECK-NEXT:          </dict>
2847// CHECK-NEXT:         </array>
2848// CHECK-NEXT:       </dict>
2849// CHECK-NEXT:      </array>
2850// CHECK-NEXT:    </dict>
2851// CHECK-NEXT:    <dict>
2852// CHECK-NEXT:     <key>kind</key><string>event</string>
2853// CHECK-NEXT:     <key>location</key>
2854// CHECK-NEXT:     <dict>
2855// CHECK-NEXT:      <key>line</key><integer>174</integer>
2856// CHECK-NEXT:      <key>col</key><integer>3</integer>
2857// CHECK-NEXT:      <key>file</key><integer>0</integer>
2858// CHECK-NEXT:     </dict>
2859// CHECK-NEXT:     <key>ranges</key>
2860// CHECK-NEXT:     <array>
2861// CHECK-NEXT:       <array>
2862// CHECK-NEXT:        <dict>
2863// CHECK-NEXT:         <key>line</key><integer>174</integer>
2864// CHECK-NEXT:         <key>col</key><integer>16</integer>
2865// CHECK-NEXT:         <key>file</key><integer>0</integer>
2866// CHECK-NEXT:        </dict>
2867// CHECK-NEXT:        <dict>
2868// CHECK-NEXT:         <key>line</key><integer>174</integer>
2869// CHECK-NEXT:         <key>col</key><integer>38</integer>
2870// CHECK-NEXT:         <key>file</key><integer>0</integer>
2871// CHECK-NEXT:        </dict>
2872// CHECK-NEXT:       </array>
2873// CHECK-NEXT:     </array>
2874// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2875// CHECK-NEXT:     <key>extended_message</key>
2876// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2877// CHECK-NEXT:     <key>message</key>
2878// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2879// CHECK-NEXT:    </dict>
2880// CHECK-NEXT:   </array>
2881// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
2882// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
2883// CHECK-NEXT:   <key>type</key><string>Generics</string>
2884// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
2885// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
2886// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>c70c13fbce3e6a90637decd9d0e19d95</string>
2887// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
2888// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
2889// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
2890// CHECK-NEXT:  <key>location</key>
2891// CHECK-NEXT:  <dict>
2892// CHECK-NEXT:   <key>line</key><integer>174</integer>
2893// CHECK-NEXT:   <key>col</key><integer>3</integer>
2894// CHECK-NEXT:   <key>file</key><integer>0</integer>
2895// CHECK-NEXT:  </dict>
2896// CHECK-NEXT:  </dict>
2897// CHECK-NEXT:  <dict>
2898// CHECK-NEXT:   <key>path</key>
2899// CHECK-NEXT:   <array>
2900// CHECK-NEXT:    <dict>
2901// CHECK-NEXT:     <key>kind</key><string>event</string>
2902// CHECK-NEXT:     <key>location</key>
2903// CHECK-NEXT:     <dict>
2904// CHECK-NEXT:      <key>line</key><integer>172</integer>
2905// CHECK-NEXT:      <key>col</key><integer>7</integer>
2906// CHECK-NEXT:      <key>file</key><integer>0</integer>
2907// CHECK-NEXT:     </dict>
2908// CHECK-NEXT:     <key>ranges</key>
2909// CHECK-NEXT:     <array>
2910// CHECK-NEXT:       <array>
2911// CHECK-NEXT:        <dict>
2912// CHECK-NEXT:         <key>line</key><integer>172</integer>
2913// CHECK-NEXT:         <key>col</key><integer>7</integer>
2914// CHECK-NEXT:         <key>file</key><integer>0</integer>
2915// CHECK-NEXT:        </dict>
2916// CHECK-NEXT:        <dict>
2917// CHECK-NEXT:         <key>line</key><integer>172</integer>
2918// CHECK-NEXT:         <key>col</key><integer>7</integer>
2919// CHECK-NEXT:         <key>file</key><integer>0</integer>
2920// CHECK-NEXT:        </dict>
2921// CHECK-NEXT:       </array>
2922// CHECK-NEXT:     </array>
2923// CHECK-NEXT:     <key>depth</key><integer>0</integer>
2924// CHECK-NEXT:     <key>extended_message</key>
2925// 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>
2926// CHECK-NEXT:     <key>message</key>
2927// 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>
2928// CHECK-NEXT:    </dict>
2929// CHECK-NEXT:    <dict>
2930// CHECK-NEXT:     <key>kind</key><string>control</string>
2931// CHECK-NEXT:     <key>edges</key>
2932// CHECK-NEXT:      <array>
2933// CHECK-NEXT:       <dict>
2934// CHECK-NEXT:        <key>start</key>
2935// CHECK-NEXT:         <array>
2936// CHECK-NEXT:          <dict>
2937// CHECK-NEXT:           <key>line</key><integer>172</integer>
2938// CHECK-NEXT:           <key>col</key><integer>3</integer>
2939// CHECK-NEXT:           <key>file</key><integer>0</integer>
2940// CHECK-NEXT:          </dict>
2941// CHECK-NEXT:          <dict>
2942// CHECK-NEXT:           <key>line</key><integer>172</integer>
2943// CHECK-NEXT:           <key>col</key><integer>3</integer>
2944// CHECK-NEXT:           <key>file</key><integer>0</integer>
2945// CHECK-NEXT:          </dict>
2946// CHECK-NEXT:         </array>
2947// CHECK-NEXT:        <key>end</key>
2948// CHECK-NEXT:         <array>
2949// CHECK-NEXT:          <dict>
2950// CHECK-NEXT:           <key>line</key><integer>176</integer>
2951// CHECK-NEXT:           <key>col</key><integer>3</integer>
2952// CHECK-NEXT:           <key>file</key><integer>0</integer>
2953// CHECK-NEXT:          </dict>
2954// CHECK-NEXT:          <dict>
2955// CHECK-NEXT:           <key>line</key><integer>176</integer>
2956// CHECK-NEXT:           <key>col</key><integer>3</integer>
2957// CHECK-NEXT:           <key>file</key><integer>0</integer>
2958// CHECK-NEXT:          </dict>
2959// CHECK-NEXT:         </array>
2960// CHECK-NEXT:       </dict>
2961// CHECK-NEXT:      </array>
2962// CHECK-NEXT:    </dict>
2963// CHECK-NEXT:    <dict>
2964// CHECK-NEXT:     <key>kind</key><string>control</string>
2965// CHECK-NEXT:     <key>edges</key>
2966// CHECK-NEXT:      <array>
2967// CHECK-NEXT:       <dict>
2968// CHECK-NEXT:        <key>start</key>
2969// CHECK-NEXT:         <array>
2970// CHECK-NEXT:          <dict>
2971// CHECK-NEXT:           <key>line</key><integer>176</integer>
2972// CHECK-NEXT:           <key>col</key><integer>3</integer>
2973// CHECK-NEXT:           <key>file</key><integer>0</integer>
2974// CHECK-NEXT:          </dict>
2975// CHECK-NEXT:          <dict>
2976// CHECK-NEXT:           <key>line</key><integer>176</integer>
2977// CHECK-NEXT:           <key>col</key><integer>3</integer>
2978// CHECK-NEXT:           <key>file</key><integer>0</integer>
2979// CHECK-NEXT:          </dict>
2980// CHECK-NEXT:         </array>
2981// CHECK-NEXT:        <key>end</key>
2982// CHECK-NEXT:         <array>
2983// CHECK-NEXT:          <dict>
2984// CHECK-NEXT:           <key>line</key><integer>176</integer>
2985// CHECK-NEXT:           <key>col</key><integer>7</integer>
2986// CHECK-NEXT:           <key>file</key><integer>0</integer>
2987// CHECK-NEXT:          </dict>
2988// CHECK-NEXT:          <dict>
2989// CHECK-NEXT:           <key>line</key><integer>176</integer>
2990// CHECK-NEXT:           <key>col</key><integer>7</integer>
2991// CHECK-NEXT:           <key>file</key><integer>0</integer>
2992// CHECK-NEXT:          </dict>
2993// CHECK-NEXT:         </array>
2994// CHECK-NEXT:       </dict>
2995// CHECK-NEXT:      </array>
2996// CHECK-NEXT:    </dict>
2997// CHECK-NEXT:    <dict>
2998// CHECK-NEXT:     <key>kind</key><string>event</string>
2999// CHECK-NEXT:     <key>location</key>
3000// CHECK-NEXT:     <dict>
3001// CHECK-NEXT:      <key>line</key><integer>176</integer>
3002// CHECK-NEXT:      <key>col</key><integer>7</integer>
3003// CHECK-NEXT:      <key>file</key><integer>0</integer>
3004// CHECK-NEXT:     </dict>
3005// CHECK-NEXT:     <key>ranges</key>
3006// CHECK-NEXT:     <array>
3007// CHECK-NEXT:       <array>
3008// CHECK-NEXT:        <dict>
3009// CHECK-NEXT:         <key>line</key><integer>176</integer>
3010// CHECK-NEXT:         <key>col</key><integer>7</integer>
3011// CHECK-NEXT:         <key>file</key><integer>0</integer>
3012// CHECK-NEXT:        </dict>
3013// CHECK-NEXT:        <dict>
3014// CHECK-NEXT:         <key>line</key><integer>176</integer>
3015// CHECK-NEXT:         <key>col</key><integer>7</integer>
3016// CHECK-NEXT:         <key>file</key><integer>0</integer>
3017// CHECK-NEXT:        </dict>
3018// CHECK-NEXT:       </array>
3019// CHECK-NEXT:     </array>
3020// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3021// CHECK-NEXT:     <key>extended_message</key>
3022// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
3023// CHECK-NEXT:     <key>message</key>
3024// CHECK-NEXT:     <string>Conversion from value of type &apos;ExceptionalArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSNumber *&gt; *&apos;</string>
3025// CHECK-NEXT:    </dict>
3026// CHECK-NEXT:   </array>
3027// 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>
3028// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3029// CHECK-NEXT:   <key>type</key><string>Generics</string>
3030// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3031// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3032// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>b6ee3b22fbad45f213b4bf14bec7eeaf</string>
3033// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3034// CHECK-NEXT:  <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
3035// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>5</string>
3036// CHECK-NEXT:  <key>location</key>
3037// CHECK-NEXT:  <dict>
3038// CHECK-NEXT:   <key>line</key><integer>176</integer>
3039// CHECK-NEXT:   <key>col</key><integer>7</integer>
3040// CHECK-NEXT:   <key>file</key><integer>0</integer>
3041// CHECK-NEXT:  </dict>
3042// CHECK-NEXT:  </dict>
3043// CHECK-NEXT:  <dict>
3044// CHECK-NEXT:   <key>path</key>
3045// CHECK-NEXT:   <array>
3046// CHECK-NEXT:    <dict>
3047// CHECK-NEXT:     <key>kind</key><string>event</string>
3048// CHECK-NEXT:     <key>location</key>
3049// CHECK-NEXT:     <dict>
3050// CHECK-NEXT:      <key>line</key><integer>182</integer>
3051// CHECK-NEXT:      <key>col</key><integer>20</integer>
3052// CHECK-NEXT:      <key>file</key><integer>0</integer>
3053// CHECK-NEXT:     </dict>
3054// CHECK-NEXT:     <key>ranges</key>
3055// CHECK-NEXT:     <array>
3056// CHECK-NEXT:       <array>
3057// CHECK-NEXT:        <dict>
3058// CHECK-NEXT:         <key>line</key><integer>182</integer>
3059// CHECK-NEXT:         <key>col</key><integer>20</integer>
3060// CHECK-NEXT:         <key>file</key><integer>0</integer>
3061// CHECK-NEXT:        </dict>
3062// CHECK-NEXT:        <dict>
3063// CHECK-NEXT:         <key>line</key><integer>182</integer>
3064// CHECK-NEXT:         <key>col</key><integer>20</integer>
3065// CHECK-NEXT:         <key>file</key><integer>0</integer>
3066// CHECK-NEXT:        </dict>
3067// CHECK-NEXT:       </array>
3068// CHECK-NEXT:     </array>
3069// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3070// CHECK-NEXT:     <key>extended_message</key>
3071// 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>
3072// CHECK-NEXT:     <key>message</key>
3073// 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>
3074// CHECK-NEXT:    </dict>
3075// CHECK-NEXT:    <dict>
3076// CHECK-NEXT:     <key>kind</key><string>control</string>
3077// CHECK-NEXT:     <key>edges</key>
3078// CHECK-NEXT:      <array>
3079// CHECK-NEXT:       <dict>
3080// CHECK-NEXT:        <key>start</key>
3081// CHECK-NEXT:         <array>
3082// CHECK-NEXT:          <dict>
3083// CHECK-NEXT:           <key>line</key><integer>182</integer>
3084// CHECK-NEXT:           <key>col</key><integer>3</integer>
3085// CHECK-NEXT:           <key>file</key><integer>0</integer>
3086// CHECK-NEXT:          </dict>
3087// CHECK-NEXT:          <dict>
3088// CHECK-NEXT:           <key>line</key><integer>182</integer>
3089// CHECK-NEXT:           <key>col</key><integer>18</integer>
3090// CHECK-NEXT:           <key>file</key><integer>0</integer>
3091// CHECK-NEXT:          </dict>
3092// CHECK-NEXT:         </array>
3093// CHECK-NEXT:        <key>end</key>
3094// CHECK-NEXT:         <array>
3095// CHECK-NEXT:          <dict>
3096// CHECK-NEXT:           <key>line</key><integer>183</integer>
3097// CHECK-NEXT:           <key>col</key><integer>3</integer>
3098// CHECK-NEXT:           <key>file</key><integer>0</integer>
3099// CHECK-NEXT:          </dict>
3100// CHECK-NEXT:          <dict>
3101// CHECK-NEXT:           <key>line</key><integer>183</integer>
3102// CHECK-NEXT:           <key>col</key><integer>25</integer>
3103// CHECK-NEXT:           <key>file</key><integer>0</integer>
3104// CHECK-NEXT:          </dict>
3105// CHECK-NEXT:         </array>
3106// CHECK-NEXT:       </dict>
3107// CHECK-NEXT:      </array>
3108// CHECK-NEXT:    </dict>
3109// CHECK-NEXT:    <dict>
3110// CHECK-NEXT:     <key>kind</key><string>control</string>
3111// CHECK-NEXT:     <key>edges</key>
3112// CHECK-NEXT:      <array>
3113// CHECK-NEXT:       <dict>
3114// CHECK-NEXT:        <key>start</key>
3115// CHECK-NEXT:         <array>
3116// CHECK-NEXT:          <dict>
3117// CHECK-NEXT:           <key>line</key><integer>183</integer>
3118// CHECK-NEXT:           <key>col</key><integer>3</integer>
3119// CHECK-NEXT:           <key>file</key><integer>0</integer>
3120// CHECK-NEXT:          </dict>
3121// CHECK-NEXT:          <dict>
3122// CHECK-NEXT:           <key>line</key><integer>183</integer>
3123// CHECK-NEXT:           <key>col</key><integer>25</integer>
3124// CHECK-NEXT:           <key>file</key><integer>0</integer>
3125// CHECK-NEXT:          </dict>
3126// CHECK-NEXT:         </array>
3127// CHECK-NEXT:        <key>end</key>
3128// CHECK-NEXT:         <array>
3129// CHECK-NEXT:          <dict>
3130// CHECK-NEXT:           <key>line</key><integer>183</integer>
3131// CHECK-NEXT:           <key>col</key><integer>27</integer>
3132// CHECK-NEXT:           <key>file</key><integer>0</integer>
3133// CHECK-NEXT:          </dict>
3134// CHECK-NEXT:          <dict>
3135// CHECK-NEXT:           <key>line</key><integer>183</integer>
3136// CHECK-NEXT:           <key>col</key><integer>27</integer>
3137// CHECK-NEXT:           <key>file</key><integer>0</integer>
3138// CHECK-NEXT:          </dict>
3139// CHECK-NEXT:         </array>
3140// CHECK-NEXT:       </dict>
3141// CHECK-NEXT:      </array>
3142// CHECK-NEXT:    </dict>
3143// CHECK-NEXT:    <dict>
3144// CHECK-NEXT:     <key>kind</key><string>event</string>
3145// CHECK-NEXT:     <key>location</key>
3146// CHECK-NEXT:     <dict>
3147// CHECK-NEXT:      <key>line</key><integer>183</integer>
3148// CHECK-NEXT:      <key>col</key><integer>27</integer>
3149// CHECK-NEXT:      <key>file</key><integer>0</integer>
3150// CHECK-NEXT:     </dict>
3151// CHECK-NEXT:     <key>ranges</key>
3152// CHECK-NEXT:     <array>
3153// CHECK-NEXT:       <array>
3154// CHECK-NEXT:        <dict>
3155// CHECK-NEXT:         <key>line</key><integer>183</integer>
3156// CHECK-NEXT:         <key>col</key><integer>27</integer>
3157// CHECK-NEXT:         <key>file</key><integer>0</integer>
3158// CHECK-NEXT:        </dict>
3159// CHECK-NEXT:        <dict>
3160// CHECK-NEXT:         <key>line</key><integer>183</integer>
3161// CHECK-NEXT:         <key>col</key><integer>27</integer>
3162// CHECK-NEXT:         <key>file</key><integer>0</integer>
3163// CHECK-NEXT:        </dict>
3164// CHECK-NEXT:       </array>
3165// CHECK-NEXT:     </array>
3166// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3167// CHECK-NEXT:     <key>extended_message</key>
3168// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3169// CHECK-NEXT:     <key>message</key>
3170// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3171// CHECK-NEXT:    </dict>
3172// CHECK-NEXT:   </array>
3173// 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>
3174// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3175// CHECK-NEXT:   <key>type</key><string>Generics</string>
3176// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3177// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3178// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>6aab15d40b39ec0a6b749e561d486e6a</string>
3179// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3180// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPI</string>
3181// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
3182// CHECK-NEXT:  <key>location</key>
3183// CHECK-NEXT:  <dict>
3184// CHECK-NEXT:   <key>line</key><integer>183</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:  <dict>
3190// CHECK-NEXT:   <key>path</key>
3191// CHECK-NEXT:   <array>
3192// CHECK-NEXT:    <dict>
3193// CHECK-NEXT:     <key>kind</key><string>event</string>
3194// CHECK-NEXT:     <key>location</key>
3195// CHECK-NEXT:     <dict>
3196// CHECK-NEXT:      <key>line</key><integer>187</integer>
3197// CHECK-NEXT:      <key>col</key><integer>27</integer>
3198// CHECK-NEXT:      <key>file</key><integer>0</integer>
3199// CHECK-NEXT:     </dict>
3200// CHECK-NEXT:     <key>ranges</key>
3201// CHECK-NEXT:     <array>
3202// CHECK-NEXT:       <array>
3203// CHECK-NEXT:        <dict>
3204// CHECK-NEXT:         <key>line</key><integer>187</integer>
3205// CHECK-NEXT:         <key>col</key><integer>27</integer>
3206// CHECK-NEXT:         <key>file</key><integer>0</integer>
3207// CHECK-NEXT:        </dict>
3208// CHECK-NEXT:        <dict>
3209// CHECK-NEXT:         <key>line</key><integer>187</integer>
3210// CHECK-NEXT:         <key>col</key><integer>27</integer>
3211// CHECK-NEXT:         <key>file</key><integer>0</integer>
3212// CHECK-NEXT:        </dict>
3213// CHECK-NEXT:       </array>
3214// CHECK-NEXT:     </array>
3215// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3216// CHECK-NEXT:     <key>extended_message</key>
3217// 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>
3218// CHECK-NEXT:     <key>message</key>
3219// 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>
3220// CHECK-NEXT:    </dict>
3221// CHECK-NEXT:    <dict>
3222// CHECK-NEXT:     <key>kind</key><string>control</string>
3223// CHECK-NEXT:     <key>edges</key>
3224// CHECK-NEXT:      <array>
3225// CHECK-NEXT:       <dict>
3226// CHECK-NEXT:        <key>start</key>
3227// CHECK-NEXT:         <array>
3228// CHECK-NEXT:          <dict>
3229// CHECK-NEXT:           <key>line</key><integer>187</integer>
3230// CHECK-NEXT:           <key>col</key><integer>3</integer>
3231// CHECK-NEXT:           <key>file</key><integer>0</integer>
3232// CHECK-NEXT:          </dict>
3233// CHECK-NEXT:          <dict>
3234// CHECK-NEXT:           <key>line</key><integer>187</integer>
3235// CHECK-NEXT:           <key>col</key><integer>25</integer>
3236// CHECK-NEXT:           <key>file</key><integer>0</integer>
3237// CHECK-NEXT:          </dict>
3238// CHECK-NEXT:         </array>
3239// CHECK-NEXT:        <key>end</key>
3240// CHECK-NEXT:         <array>
3241// CHECK-NEXT:          <dict>
3242// CHECK-NEXT:           <key>line</key><integer>188</integer>
3243// CHECK-NEXT:           <key>col</key><integer>3</integer>
3244// CHECK-NEXT:           <key>file</key><integer>0</integer>
3245// CHECK-NEXT:          </dict>
3246// CHECK-NEXT:          <dict>
3247// CHECK-NEXT:           <key>line</key><integer>188</integer>
3248// CHECK-NEXT:           <key>col</key><integer>18</integer>
3249// CHECK-NEXT:           <key>file</key><integer>0</integer>
3250// CHECK-NEXT:          </dict>
3251// CHECK-NEXT:         </array>
3252// CHECK-NEXT:       </dict>
3253// CHECK-NEXT:      </array>
3254// CHECK-NEXT:    </dict>
3255// CHECK-NEXT:    <dict>
3256// CHECK-NEXT:     <key>kind</key><string>control</string>
3257// CHECK-NEXT:     <key>edges</key>
3258// CHECK-NEXT:      <array>
3259// CHECK-NEXT:       <dict>
3260// CHECK-NEXT:        <key>start</key>
3261// CHECK-NEXT:         <array>
3262// CHECK-NEXT:          <dict>
3263// CHECK-NEXT:           <key>line</key><integer>188</integer>
3264// CHECK-NEXT:           <key>col</key><integer>3</integer>
3265// CHECK-NEXT:           <key>file</key><integer>0</integer>
3266// CHECK-NEXT:          </dict>
3267// CHECK-NEXT:          <dict>
3268// CHECK-NEXT:           <key>line</key><integer>188</integer>
3269// CHECK-NEXT:           <key>col</key><integer>18</integer>
3270// CHECK-NEXT:           <key>file</key><integer>0</integer>
3271// CHECK-NEXT:          </dict>
3272// CHECK-NEXT:         </array>
3273// CHECK-NEXT:        <key>end</key>
3274// CHECK-NEXT:         <array>
3275// CHECK-NEXT:          <dict>
3276// CHECK-NEXT:           <key>line</key><integer>188</integer>
3277// CHECK-NEXT:           <key>col</key><integer>20</integer>
3278// CHECK-NEXT:           <key>file</key><integer>0</integer>
3279// CHECK-NEXT:          </dict>
3280// CHECK-NEXT:          <dict>
3281// CHECK-NEXT:           <key>line</key><integer>188</integer>
3282// CHECK-NEXT:           <key>col</key><integer>20</integer>
3283// CHECK-NEXT:           <key>file</key><integer>0</integer>
3284// CHECK-NEXT:          </dict>
3285// CHECK-NEXT:         </array>
3286// CHECK-NEXT:       </dict>
3287// CHECK-NEXT:      </array>
3288// CHECK-NEXT:    </dict>
3289// CHECK-NEXT:    <dict>
3290// CHECK-NEXT:     <key>kind</key><string>event</string>
3291// CHECK-NEXT:     <key>location</key>
3292// CHECK-NEXT:     <dict>
3293// CHECK-NEXT:      <key>line</key><integer>188</integer>
3294// CHECK-NEXT:      <key>col</key><integer>20</integer>
3295// CHECK-NEXT:      <key>file</key><integer>0</integer>
3296// CHECK-NEXT:     </dict>
3297// CHECK-NEXT:     <key>ranges</key>
3298// CHECK-NEXT:     <array>
3299// CHECK-NEXT:       <array>
3300// CHECK-NEXT:        <dict>
3301// CHECK-NEXT:         <key>line</key><integer>188</integer>
3302// CHECK-NEXT:         <key>col</key><integer>20</integer>
3303// CHECK-NEXT:         <key>file</key><integer>0</integer>
3304// CHECK-NEXT:        </dict>
3305// CHECK-NEXT:        <dict>
3306// CHECK-NEXT:         <key>line</key><integer>188</integer>
3307// CHECK-NEXT:         <key>col</key><integer>20</integer>
3308// CHECK-NEXT:         <key>file</key><integer>0</integer>
3309// CHECK-NEXT:        </dict>
3310// CHECK-NEXT:       </array>
3311// CHECK-NEXT:     </array>
3312// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3313// CHECK-NEXT:     <key>extended_message</key>
3314// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3315// CHECK-NEXT:     <key>message</key>
3316// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3317// CHECK-NEXT:    </dict>
3318// CHECK-NEXT:   </array>
3319// 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>
3320// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3321// CHECK-NEXT:   <key>type</key><string>Generics</string>
3322// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3323// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3324// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>bd1da1b7775323773555e5d5c122661f</string>
3325// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3326// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPI2</string>
3327// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3328// CHECK-NEXT:  <key>location</key>
3329// CHECK-NEXT:  <dict>
3330// CHECK-NEXT:   <key>line</key><integer>188</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:  <dict>
3336// CHECK-NEXT:   <key>path</key>
3337// CHECK-NEXT:   <array>
3338// CHECK-NEXT:    <dict>
3339// CHECK-NEXT:     <key>kind</key><string>event</string>
3340// CHECK-NEXT:     <key>location</key>
3341// CHECK-NEXT:     <dict>
3342// CHECK-NEXT:      <key>line</key><integer>192</integer>
3343// CHECK-NEXT:      <key>col</key><integer>27</integer>
3344// CHECK-NEXT:      <key>file</key><integer>0</integer>
3345// CHECK-NEXT:     </dict>
3346// CHECK-NEXT:     <key>ranges</key>
3347// CHECK-NEXT:     <array>
3348// CHECK-NEXT:       <array>
3349// CHECK-NEXT:        <dict>
3350// CHECK-NEXT:         <key>line</key><integer>192</integer>
3351// CHECK-NEXT:         <key>col</key><integer>27</integer>
3352// CHECK-NEXT:         <key>file</key><integer>0</integer>
3353// CHECK-NEXT:        </dict>
3354// CHECK-NEXT:        <dict>
3355// CHECK-NEXT:         <key>line</key><integer>192</integer>
3356// CHECK-NEXT:         <key>col</key><integer>27</integer>
3357// CHECK-NEXT:         <key>file</key><integer>0</integer>
3358// CHECK-NEXT:        </dict>
3359// CHECK-NEXT:       </array>
3360// CHECK-NEXT:     </array>
3361// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3362// CHECK-NEXT:     <key>extended_message</key>
3363// 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>
3364// CHECK-NEXT:     <key>message</key>
3365// 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>
3366// CHECK-NEXT:    </dict>
3367// CHECK-NEXT:    <dict>
3368// CHECK-NEXT:     <key>kind</key><string>control</string>
3369// CHECK-NEXT:     <key>edges</key>
3370// CHECK-NEXT:      <array>
3371// CHECK-NEXT:       <dict>
3372// CHECK-NEXT:        <key>start</key>
3373// CHECK-NEXT:         <array>
3374// CHECK-NEXT:          <dict>
3375// CHECK-NEXT:           <key>line</key><integer>192</integer>
3376// CHECK-NEXT:           <key>col</key><integer>3</integer>
3377// CHECK-NEXT:           <key>file</key><integer>0</integer>
3378// CHECK-NEXT:          </dict>
3379// CHECK-NEXT:          <dict>
3380// CHECK-NEXT:           <key>line</key><integer>192</integer>
3381// CHECK-NEXT:           <key>col</key><integer>25</integer>
3382// CHECK-NEXT:           <key>file</key><integer>0</integer>
3383// CHECK-NEXT:          </dict>
3384// CHECK-NEXT:         </array>
3385// CHECK-NEXT:        <key>end</key>
3386// CHECK-NEXT:         <array>
3387// CHECK-NEXT:          <dict>
3388// CHECK-NEXT:           <key>line</key><integer>193</integer>
3389// CHECK-NEXT:           <key>col</key><integer>3</integer>
3390// CHECK-NEXT:           <key>file</key><integer>0</integer>
3391// CHECK-NEXT:          </dict>
3392// CHECK-NEXT:          <dict>
3393// CHECK-NEXT:           <key>line</key><integer>193</integer>
3394// CHECK-NEXT:           <key>col</key><integer>18</integer>
3395// CHECK-NEXT:           <key>file</key><integer>0</integer>
3396// CHECK-NEXT:          </dict>
3397// CHECK-NEXT:         </array>
3398// CHECK-NEXT:       </dict>
3399// CHECK-NEXT:      </array>
3400// CHECK-NEXT:    </dict>
3401// CHECK-NEXT:    <dict>
3402// CHECK-NEXT:     <key>kind</key><string>control</string>
3403// CHECK-NEXT:     <key>edges</key>
3404// CHECK-NEXT:      <array>
3405// CHECK-NEXT:       <dict>
3406// CHECK-NEXT:        <key>start</key>
3407// CHECK-NEXT:         <array>
3408// CHECK-NEXT:          <dict>
3409// CHECK-NEXT:           <key>line</key><integer>193</integer>
3410// CHECK-NEXT:           <key>col</key><integer>3</integer>
3411// CHECK-NEXT:           <key>file</key><integer>0</integer>
3412// CHECK-NEXT:          </dict>
3413// CHECK-NEXT:          <dict>
3414// CHECK-NEXT:           <key>line</key><integer>193</integer>
3415// CHECK-NEXT:           <key>col</key><integer>18</integer>
3416// CHECK-NEXT:           <key>file</key><integer>0</integer>
3417// CHECK-NEXT:          </dict>
3418// CHECK-NEXT:         </array>
3419// CHECK-NEXT:        <key>end</key>
3420// CHECK-NEXT:         <array>
3421// CHECK-NEXT:          <dict>
3422// CHECK-NEXT:           <key>line</key><integer>193</integer>
3423// CHECK-NEXT:           <key>col</key><integer>20</integer>
3424// CHECK-NEXT:           <key>file</key><integer>0</integer>
3425// CHECK-NEXT:          </dict>
3426// CHECK-NEXT:          <dict>
3427// CHECK-NEXT:           <key>line</key><integer>193</integer>
3428// CHECK-NEXT:           <key>col</key><integer>20</integer>
3429// CHECK-NEXT:           <key>file</key><integer>0</integer>
3430// CHECK-NEXT:          </dict>
3431// CHECK-NEXT:         </array>
3432// CHECK-NEXT:       </dict>
3433// CHECK-NEXT:      </array>
3434// CHECK-NEXT:    </dict>
3435// CHECK-NEXT:    <dict>
3436// CHECK-NEXT:     <key>kind</key><string>event</string>
3437// CHECK-NEXT:     <key>location</key>
3438// CHECK-NEXT:     <dict>
3439// CHECK-NEXT:      <key>line</key><integer>193</integer>
3440// CHECK-NEXT:      <key>col</key><integer>20</integer>
3441// CHECK-NEXT:      <key>file</key><integer>0</integer>
3442// CHECK-NEXT:     </dict>
3443// CHECK-NEXT:     <key>ranges</key>
3444// CHECK-NEXT:     <array>
3445// CHECK-NEXT:       <array>
3446// CHECK-NEXT:        <dict>
3447// CHECK-NEXT:         <key>line</key><integer>193</integer>
3448// CHECK-NEXT:         <key>col</key><integer>20</integer>
3449// CHECK-NEXT:         <key>file</key><integer>0</integer>
3450// CHECK-NEXT:        </dict>
3451// CHECK-NEXT:        <dict>
3452// CHECK-NEXT:         <key>line</key><integer>193</integer>
3453// CHECK-NEXT:         <key>col</key><integer>20</integer>
3454// CHECK-NEXT:         <key>file</key><integer>0</integer>
3455// CHECK-NEXT:        </dict>
3456// CHECK-NEXT:       </array>
3457// CHECK-NEXT:     </array>
3458// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3459// CHECK-NEXT:     <key>extended_message</key>
3460// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3461// CHECK-NEXT:     <key>message</key>
3462// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
3463// CHECK-NEXT:    </dict>
3464// CHECK-NEXT:   </array>
3465// 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>
3466// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3467// CHECK-NEXT:   <key>type</key><string>Generics</string>
3468// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3469// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3470// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>3f2abd3c0b4b4a80a71bcbb668124ffb</string>
3471// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3472// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes</string>
3473// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3474// CHECK-NEXT:  <key>location</key>
3475// CHECK-NEXT:  <dict>
3476// CHECK-NEXT:   <key>line</key><integer>193</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:  <dict>
3482// CHECK-NEXT:   <key>path</key>
3483// CHECK-NEXT:   <array>
3484// CHECK-NEXT:    <dict>
3485// CHECK-NEXT:     <key>kind</key><string>event</string>
3486// CHECK-NEXT:     <key>location</key>
3487// CHECK-NEXT:     <dict>
3488// CHECK-NEXT:      <key>line</key><integer>197</integer>
3489// CHECK-NEXT:      <key>col</key><integer>20</integer>
3490// CHECK-NEXT:      <key>file</key><integer>0</integer>
3491// CHECK-NEXT:     </dict>
3492// CHECK-NEXT:     <key>ranges</key>
3493// CHECK-NEXT:     <array>
3494// CHECK-NEXT:       <array>
3495// CHECK-NEXT:        <dict>
3496// CHECK-NEXT:         <key>line</key><integer>197</integer>
3497// CHECK-NEXT:         <key>col</key><integer>20</integer>
3498// CHECK-NEXT:         <key>file</key><integer>0</integer>
3499// CHECK-NEXT:        </dict>
3500// CHECK-NEXT:        <dict>
3501// CHECK-NEXT:         <key>line</key><integer>197</integer>
3502// CHECK-NEXT:         <key>col</key><integer>20</integer>
3503// CHECK-NEXT:         <key>file</key><integer>0</integer>
3504// CHECK-NEXT:        </dict>
3505// CHECK-NEXT:       </array>
3506// CHECK-NEXT:     </array>
3507// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3508// CHECK-NEXT:     <key>extended_message</key>
3509// 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>
3510// CHECK-NEXT:     <key>message</key>
3511// 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>
3512// CHECK-NEXT:    </dict>
3513// CHECK-NEXT:    <dict>
3514// CHECK-NEXT:     <key>kind</key><string>control</string>
3515// CHECK-NEXT:     <key>edges</key>
3516// CHECK-NEXT:      <array>
3517// CHECK-NEXT:       <dict>
3518// CHECK-NEXT:        <key>start</key>
3519// CHECK-NEXT:         <array>
3520// CHECK-NEXT:          <dict>
3521// CHECK-NEXT:           <key>line</key><integer>197</integer>
3522// CHECK-NEXT:           <key>col</key><integer>3</integer>
3523// CHECK-NEXT:           <key>file</key><integer>0</integer>
3524// CHECK-NEXT:          </dict>
3525// CHECK-NEXT:          <dict>
3526// CHECK-NEXT:           <key>line</key><integer>197</integer>
3527// CHECK-NEXT:           <key>col</key><integer>18</integer>
3528// CHECK-NEXT:           <key>file</key><integer>0</integer>
3529// CHECK-NEXT:          </dict>
3530// CHECK-NEXT:         </array>
3531// CHECK-NEXT:        <key>end</key>
3532// CHECK-NEXT:         <array>
3533// CHECK-NEXT:          <dict>
3534// CHECK-NEXT:           <key>line</key><integer>198</integer>
3535// CHECK-NEXT:           <key>col</key><integer>3</integer>
3536// CHECK-NEXT:           <key>file</key><integer>0</integer>
3537// CHECK-NEXT:          </dict>
3538// CHECK-NEXT:          <dict>
3539// CHECK-NEXT:           <key>line</key><integer>198</integer>
3540// CHECK-NEXT:           <key>col</key><integer>25</integer>
3541// CHECK-NEXT:           <key>file</key><integer>0</integer>
3542// CHECK-NEXT:          </dict>
3543// CHECK-NEXT:         </array>
3544// CHECK-NEXT:       </dict>
3545// CHECK-NEXT:      </array>
3546// CHECK-NEXT:    </dict>
3547// CHECK-NEXT:    <dict>
3548// CHECK-NEXT:     <key>kind</key><string>control</string>
3549// CHECK-NEXT:     <key>edges</key>
3550// CHECK-NEXT:      <array>
3551// CHECK-NEXT:       <dict>
3552// CHECK-NEXT:        <key>start</key>
3553// CHECK-NEXT:         <array>
3554// CHECK-NEXT:          <dict>
3555// CHECK-NEXT:           <key>line</key><integer>198</integer>
3556// CHECK-NEXT:           <key>col</key><integer>3</integer>
3557// CHECK-NEXT:           <key>file</key><integer>0</integer>
3558// CHECK-NEXT:          </dict>
3559// CHECK-NEXT:          <dict>
3560// CHECK-NEXT:           <key>line</key><integer>198</integer>
3561// CHECK-NEXT:           <key>col</key><integer>25</integer>
3562// CHECK-NEXT:           <key>file</key><integer>0</integer>
3563// CHECK-NEXT:          </dict>
3564// CHECK-NEXT:         </array>
3565// CHECK-NEXT:        <key>end</key>
3566// CHECK-NEXT:         <array>
3567// CHECK-NEXT:          <dict>
3568// CHECK-NEXT:           <key>line</key><integer>198</integer>
3569// CHECK-NEXT:           <key>col</key><integer>27</integer>
3570// CHECK-NEXT:           <key>file</key><integer>0</integer>
3571// CHECK-NEXT:          </dict>
3572// CHECK-NEXT:          <dict>
3573// CHECK-NEXT:           <key>line</key><integer>198</integer>
3574// CHECK-NEXT:           <key>col</key><integer>27</integer>
3575// CHECK-NEXT:           <key>file</key><integer>0</integer>
3576// CHECK-NEXT:          </dict>
3577// CHECK-NEXT:         </array>
3578// CHECK-NEXT:       </dict>
3579// CHECK-NEXT:      </array>
3580// CHECK-NEXT:    </dict>
3581// CHECK-NEXT:    <dict>
3582// CHECK-NEXT:     <key>kind</key><string>event</string>
3583// CHECK-NEXT:     <key>location</key>
3584// CHECK-NEXT:     <dict>
3585// CHECK-NEXT:      <key>line</key><integer>198</integer>
3586// CHECK-NEXT:      <key>col</key><integer>27</integer>
3587// CHECK-NEXT:      <key>file</key><integer>0</integer>
3588// CHECK-NEXT:     </dict>
3589// CHECK-NEXT:     <key>ranges</key>
3590// CHECK-NEXT:     <array>
3591// CHECK-NEXT:       <array>
3592// CHECK-NEXT:        <dict>
3593// CHECK-NEXT:         <key>line</key><integer>198</integer>
3594// CHECK-NEXT:         <key>col</key><integer>27</integer>
3595// CHECK-NEXT:         <key>file</key><integer>0</integer>
3596// CHECK-NEXT:        </dict>
3597// CHECK-NEXT:        <dict>
3598// CHECK-NEXT:         <key>line</key><integer>198</integer>
3599// CHECK-NEXT:         <key>col</key><integer>27</integer>
3600// CHECK-NEXT:         <key>file</key><integer>0</integer>
3601// CHECK-NEXT:        </dict>
3602// CHECK-NEXT:       </array>
3603// CHECK-NEXT:     </array>
3604// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3605// CHECK-NEXT:     <key>extended_message</key>
3606// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3607// CHECK-NEXT:     <key>message</key>
3608// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3609// CHECK-NEXT:    </dict>
3610// CHECK-NEXT:   </array>
3611// 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>
3612// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3613// CHECK-NEXT:   <key>type</key><string>Generics</string>
3614// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3615// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3616// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>73a50f2592e8b3c9af898749f24176f7</string>
3617// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3618// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes2</string>
3619// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3620// CHECK-NEXT:  <key>location</key>
3621// CHECK-NEXT:  <dict>
3622// CHECK-NEXT:   <key>line</key><integer>198</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:  <dict>
3628// CHECK-NEXT:   <key>path</key>
3629// CHECK-NEXT:   <array>
3630// CHECK-NEXT:    <dict>
3631// CHECK-NEXT:     <key>kind</key><string>event</string>
3632// CHECK-NEXT:     <key>location</key>
3633// CHECK-NEXT:     <dict>
3634// CHECK-NEXT:      <key>line</key><integer>202</integer>
3635// CHECK-NEXT:      <key>col</key><integer>27</integer>
3636// CHECK-NEXT:      <key>file</key><integer>0</integer>
3637// CHECK-NEXT:     </dict>
3638// CHECK-NEXT:     <key>ranges</key>
3639// CHECK-NEXT:     <array>
3640// CHECK-NEXT:       <array>
3641// CHECK-NEXT:        <dict>
3642// CHECK-NEXT:         <key>line</key><integer>202</integer>
3643// CHECK-NEXT:         <key>col</key><integer>27</integer>
3644// CHECK-NEXT:         <key>file</key><integer>0</integer>
3645// CHECK-NEXT:        </dict>
3646// CHECK-NEXT:        <dict>
3647// CHECK-NEXT:         <key>line</key><integer>202</integer>
3648// CHECK-NEXT:         <key>col</key><integer>27</integer>
3649// CHECK-NEXT:         <key>file</key><integer>0</integer>
3650// CHECK-NEXT:        </dict>
3651// CHECK-NEXT:       </array>
3652// CHECK-NEXT:     </array>
3653// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3654// CHECK-NEXT:     <key>extended_message</key>
3655// 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>
3656// CHECK-NEXT:     <key>message</key>
3657// 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>
3658// CHECK-NEXT:    </dict>
3659// CHECK-NEXT:    <dict>
3660// CHECK-NEXT:     <key>kind</key><string>control</string>
3661// CHECK-NEXT:     <key>edges</key>
3662// CHECK-NEXT:      <array>
3663// CHECK-NEXT:       <dict>
3664// CHECK-NEXT:        <key>start</key>
3665// CHECK-NEXT:         <array>
3666// CHECK-NEXT:          <dict>
3667// CHECK-NEXT:           <key>line</key><integer>202</integer>
3668// CHECK-NEXT:           <key>col</key><integer>3</integer>
3669// CHECK-NEXT:           <key>file</key><integer>0</integer>
3670// CHECK-NEXT:          </dict>
3671// CHECK-NEXT:          <dict>
3672// CHECK-NEXT:           <key>line</key><integer>202</integer>
3673// CHECK-NEXT:           <key>col</key><integer>20</integer>
3674// CHECK-NEXT:           <key>file</key><integer>0</integer>
3675// CHECK-NEXT:          </dict>
3676// CHECK-NEXT:         </array>
3677// CHECK-NEXT:        <key>end</key>
3678// CHECK-NEXT:         <array>
3679// CHECK-NEXT:          <dict>
3680// CHECK-NEXT:           <key>line</key><integer>203</integer>
3681// CHECK-NEXT:           <key>col</key><integer>3</integer>
3682// CHECK-NEXT:           <key>file</key><integer>0</integer>
3683// CHECK-NEXT:          </dict>
3684// CHECK-NEXT:          <dict>
3685// CHECK-NEXT:           <key>line</key><integer>203</integer>
3686// CHECK-NEXT:           <key>col</key><integer>18</integer>
3687// CHECK-NEXT:           <key>file</key><integer>0</integer>
3688// CHECK-NEXT:          </dict>
3689// CHECK-NEXT:         </array>
3690// CHECK-NEXT:       </dict>
3691// CHECK-NEXT:      </array>
3692// CHECK-NEXT:    </dict>
3693// CHECK-NEXT:    <dict>
3694// CHECK-NEXT:     <key>kind</key><string>event</string>
3695// CHECK-NEXT:     <key>location</key>
3696// CHECK-NEXT:     <dict>
3697// CHECK-NEXT:      <key>line</key><integer>203</integer>
3698// CHECK-NEXT:      <key>col</key><integer>20</integer>
3699// CHECK-NEXT:      <key>file</key><integer>0</integer>
3700// CHECK-NEXT:     </dict>
3701// CHECK-NEXT:     <key>ranges</key>
3702// CHECK-NEXT:     <array>
3703// CHECK-NEXT:       <array>
3704// CHECK-NEXT:        <dict>
3705// CHECK-NEXT:         <key>line</key><integer>203</integer>
3706// CHECK-NEXT:         <key>col</key><integer>20</integer>
3707// CHECK-NEXT:         <key>file</key><integer>0</integer>
3708// CHECK-NEXT:        </dict>
3709// CHECK-NEXT:        <dict>
3710// CHECK-NEXT:         <key>line</key><integer>203</integer>
3711// CHECK-NEXT:         <key>col</key><integer>20</integer>
3712// CHECK-NEXT:         <key>file</key><integer>0</integer>
3713// CHECK-NEXT:        </dict>
3714// CHECK-NEXT:       </array>
3715// CHECK-NEXT:     </array>
3716// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3717// CHECK-NEXT:     <key>extended_message</key>
3718// 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>
3719// CHECK-NEXT:     <key>message</key>
3720// 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>
3721// CHECK-NEXT:    </dict>
3722// CHECK-NEXT:    <dict>
3723// CHECK-NEXT:     <key>kind</key><string>control</string>
3724// CHECK-NEXT:     <key>edges</key>
3725// CHECK-NEXT:      <array>
3726// CHECK-NEXT:       <dict>
3727// CHECK-NEXT:        <key>start</key>
3728// CHECK-NEXT:         <array>
3729// CHECK-NEXT:          <dict>
3730// CHECK-NEXT:           <key>line</key><integer>203</integer>
3731// CHECK-NEXT:           <key>col</key><integer>3</integer>
3732// CHECK-NEXT:           <key>file</key><integer>0</integer>
3733// CHECK-NEXT:          </dict>
3734// CHECK-NEXT:          <dict>
3735// CHECK-NEXT:           <key>line</key><integer>203</integer>
3736// CHECK-NEXT:           <key>col</key><integer>18</integer>
3737// CHECK-NEXT:           <key>file</key><integer>0</integer>
3738// CHECK-NEXT:          </dict>
3739// CHECK-NEXT:         </array>
3740// CHECK-NEXT:        <key>end</key>
3741// CHECK-NEXT:         <array>
3742// CHECK-NEXT:          <dict>
3743// CHECK-NEXT:           <key>line</key><integer>204</integer>
3744// CHECK-NEXT:           <key>col</key><integer>3</integer>
3745// CHECK-NEXT:           <key>file</key><integer>0</integer>
3746// CHECK-NEXT:          </dict>
3747// CHECK-NEXT:          <dict>
3748// CHECK-NEXT:           <key>line</key><integer>204</integer>
3749// CHECK-NEXT:           <key>col</key><integer>25</integer>
3750// CHECK-NEXT:           <key>file</key><integer>0</integer>
3751// CHECK-NEXT:          </dict>
3752// CHECK-NEXT:         </array>
3753// CHECK-NEXT:       </dict>
3754// CHECK-NEXT:      </array>
3755// CHECK-NEXT:    </dict>
3756// CHECK-NEXT:    <dict>
3757// CHECK-NEXT:     <key>kind</key><string>control</string>
3758// CHECK-NEXT:     <key>edges</key>
3759// CHECK-NEXT:      <array>
3760// CHECK-NEXT:       <dict>
3761// CHECK-NEXT:        <key>start</key>
3762// CHECK-NEXT:         <array>
3763// CHECK-NEXT:          <dict>
3764// CHECK-NEXT:           <key>line</key><integer>204</integer>
3765// CHECK-NEXT:           <key>col</key><integer>3</integer>
3766// CHECK-NEXT:           <key>file</key><integer>0</integer>
3767// CHECK-NEXT:          </dict>
3768// CHECK-NEXT:          <dict>
3769// CHECK-NEXT:           <key>line</key><integer>204</integer>
3770// CHECK-NEXT:           <key>col</key><integer>25</integer>
3771// CHECK-NEXT:           <key>file</key><integer>0</integer>
3772// CHECK-NEXT:          </dict>
3773// CHECK-NEXT:         </array>
3774// CHECK-NEXT:        <key>end</key>
3775// CHECK-NEXT:         <array>
3776// CHECK-NEXT:          <dict>
3777// CHECK-NEXT:           <key>line</key><integer>204</integer>
3778// CHECK-NEXT:           <key>col</key><integer>27</integer>
3779// CHECK-NEXT:           <key>file</key><integer>0</integer>
3780// CHECK-NEXT:          </dict>
3781// CHECK-NEXT:          <dict>
3782// CHECK-NEXT:           <key>line</key><integer>204</integer>
3783// CHECK-NEXT:           <key>col</key><integer>27</integer>
3784// CHECK-NEXT:           <key>file</key><integer>0</integer>
3785// CHECK-NEXT:          </dict>
3786// CHECK-NEXT:         </array>
3787// CHECK-NEXT:       </dict>
3788// CHECK-NEXT:      </array>
3789// CHECK-NEXT:    </dict>
3790// CHECK-NEXT:    <dict>
3791// CHECK-NEXT:     <key>kind</key><string>event</string>
3792// CHECK-NEXT:     <key>location</key>
3793// CHECK-NEXT:     <dict>
3794// CHECK-NEXT:      <key>line</key><integer>204</integer>
3795// CHECK-NEXT:      <key>col</key><integer>27</integer>
3796// CHECK-NEXT:      <key>file</key><integer>0</integer>
3797// CHECK-NEXT:     </dict>
3798// CHECK-NEXT:     <key>ranges</key>
3799// CHECK-NEXT:     <array>
3800// CHECK-NEXT:       <array>
3801// CHECK-NEXT:        <dict>
3802// CHECK-NEXT:         <key>line</key><integer>204</integer>
3803// CHECK-NEXT:         <key>col</key><integer>27</integer>
3804// CHECK-NEXT:         <key>file</key><integer>0</integer>
3805// CHECK-NEXT:        </dict>
3806// CHECK-NEXT:        <dict>
3807// CHECK-NEXT:         <key>line</key><integer>204</integer>
3808// CHECK-NEXT:         <key>col</key><integer>27</integer>
3809// CHECK-NEXT:         <key>file</key><integer>0</integer>
3810// CHECK-NEXT:        </dict>
3811// CHECK-NEXT:       </array>
3812// CHECK-NEXT:     </array>
3813// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3814// CHECK-NEXT:     <key>extended_message</key>
3815// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3816// CHECK-NEXT:     <key>message</key>
3817// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3818// CHECK-NEXT:    </dict>
3819// CHECK-NEXT:   </array>
3820// 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>
3821// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3822// CHECK-NEXT:   <key>type</key><string>Generics</string>
3823// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3824// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3825// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>23ca540c8961ab9a362a194e1e895f86</string>
3826// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3827// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes3</string>
3828// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
3829// CHECK-NEXT:  <key>location</key>
3830// CHECK-NEXT:  <dict>
3831// CHECK-NEXT:   <key>line</key><integer>204</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:  <dict>
3837// CHECK-NEXT:   <key>path</key>
3838// CHECK-NEXT:   <array>
3839// CHECK-NEXT:    <dict>
3840// CHECK-NEXT:     <key>kind</key><string>event</string>
3841// CHECK-NEXT:     <key>location</key>
3842// CHECK-NEXT:     <dict>
3843// CHECK-NEXT:      <key>line</key><integer>208</integer>
3844// CHECK-NEXT:      <key>col</key><integer>20</integer>
3845// CHECK-NEXT:      <key>file</key><integer>0</integer>
3846// CHECK-NEXT:     </dict>
3847// CHECK-NEXT:     <key>ranges</key>
3848// CHECK-NEXT:     <array>
3849// CHECK-NEXT:       <array>
3850// CHECK-NEXT:        <dict>
3851// CHECK-NEXT:         <key>line</key><integer>208</integer>
3852// CHECK-NEXT:         <key>col</key><integer>20</integer>
3853// CHECK-NEXT:         <key>file</key><integer>0</integer>
3854// CHECK-NEXT:        </dict>
3855// CHECK-NEXT:        <dict>
3856// CHECK-NEXT:         <key>line</key><integer>208</integer>
3857// CHECK-NEXT:         <key>col</key><integer>20</integer>
3858// CHECK-NEXT:         <key>file</key><integer>0</integer>
3859// CHECK-NEXT:        </dict>
3860// CHECK-NEXT:       </array>
3861// CHECK-NEXT:     </array>
3862// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3863// CHECK-NEXT:     <key>extended_message</key>
3864// 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>
3865// CHECK-NEXT:     <key>message</key>
3866// 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>
3867// CHECK-NEXT:    </dict>
3868// CHECK-NEXT:    <dict>
3869// CHECK-NEXT:     <key>kind</key><string>control</string>
3870// CHECK-NEXT:     <key>edges</key>
3871// CHECK-NEXT:      <array>
3872// CHECK-NEXT:       <dict>
3873// CHECK-NEXT:        <key>start</key>
3874// CHECK-NEXT:         <array>
3875// CHECK-NEXT:          <dict>
3876// CHECK-NEXT:           <key>line</key><integer>208</integer>
3877// CHECK-NEXT:           <key>col</key><integer>3</integer>
3878// CHECK-NEXT:           <key>file</key><integer>0</integer>
3879// CHECK-NEXT:          </dict>
3880// CHECK-NEXT:          <dict>
3881// CHECK-NEXT:           <key>line</key><integer>208</integer>
3882// CHECK-NEXT:           <key>col</key><integer>18</integer>
3883// CHECK-NEXT:           <key>file</key><integer>0</integer>
3884// CHECK-NEXT:          </dict>
3885// CHECK-NEXT:         </array>
3886// CHECK-NEXT:        <key>end</key>
3887// CHECK-NEXT:         <array>
3888// CHECK-NEXT:          <dict>
3889// CHECK-NEXT:           <key>line</key><integer>209</integer>
3890// CHECK-NEXT:           <key>col</key><integer>3</integer>
3891// CHECK-NEXT:           <key>file</key><integer>0</integer>
3892// CHECK-NEXT:          </dict>
3893// CHECK-NEXT:          <dict>
3894// CHECK-NEXT:           <key>line</key><integer>209</integer>
3895// CHECK-NEXT:           <key>col</key><integer>25</integer>
3896// CHECK-NEXT:           <key>file</key><integer>0</integer>
3897// CHECK-NEXT:          </dict>
3898// CHECK-NEXT:         </array>
3899// CHECK-NEXT:       </dict>
3900// CHECK-NEXT:      </array>
3901// CHECK-NEXT:    </dict>
3902// CHECK-NEXT:    <dict>
3903// CHECK-NEXT:     <key>kind</key><string>control</string>
3904// CHECK-NEXT:     <key>edges</key>
3905// CHECK-NEXT:      <array>
3906// CHECK-NEXT:       <dict>
3907// CHECK-NEXT:        <key>start</key>
3908// CHECK-NEXT:         <array>
3909// CHECK-NEXT:          <dict>
3910// CHECK-NEXT:           <key>line</key><integer>209</integer>
3911// CHECK-NEXT:           <key>col</key><integer>3</integer>
3912// CHECK-NEXT:           <key>file</key><integer>0</integer>
3913// CHECK-NEXT:          </dict>
3914// CHECK-NEXT:          <dict>
3915// CHECK-NEXT:           <key>line</key><integer>209</integer>
3916// CHECK-NEXT:           <key>col</key><integer>25</integer>
3917// CHECK-NEXT:           <key>file</key><integer>0</integer>
3918// CHECK-NEXT:          </dict>
3919// CHECK-NEXT:         </array>
3920// CHECK-NEXT:        <key>end</key>
3921// CHECK-NEXT:         <array>
3922// CHECK-NEXT:          <dict>
3923// CHECK-NEXT:           <key>line</key><integer>209</integer>
3924// CHECK-NEXT:           <key>col</key><integer>27</integer>
3925// CHECK-NEXT:           <key>file</key><integer>0</integer>
3926// CHECK-NEXT:          </dict>
3927// CHECK-NEXT:          <dict>
3928// CHECK-NEXT:           <key>line</key><integer>209</integer>
3929// CHECK-NEXT:           <key>col</key><integer>27</integer>
3930// CHECK-NEXT:           <key>file</key><integer>0</integer>
3931// CHECK-NEXT:          </dict>
3932// CHECK-NEXT:         </array>
3933// CHECK-NEXT:       </dict>
3934// CHECK-NEXT:      </array>
3935// CHECK-NEXT:    </dict>
3936// CHECK-NEXT:    <dict>
3937// CHECK-NEXT:     <key>kind</key><string>event</string>
3938// CHECK-NEXT:     <key>location</key>
3939// CHECK-NEXT:     <dict>
3940// CHECK-NEXT:      <key>line</key><integer>209</integer>
3941// CHECK-NEXT:      <key>col</key><integer>27</integer>
3942// CHECK-NEXT:      <key>file</key><integer>0</integer>
3943// CHECK-NEXT:     </dict>
3944// CHECK-NEXT:     <key>ranges</key>
3945// CHECK-NEXT:     <array>
3946// CHECK-NEXT:       <array>
3947// CHECK-NEXT:        <dict>
3948// CHECK-NEXT:         <key>line</key><integer>209</integer>
3949// CHECK-NEXT:         <key>col</key><integer>27</integer>
3950// CHECK-NEXT:         <key>file</key><integer>0</integer>
3951// CHECK-NEXT:        </dict>
3952// CHECK-NEXT:        <dict>
3953// CHECK-NEXT:         <key>line</key><integer>209</integer>
3954// CHECK-NEXT:         <key>col</key><integer>27</integer>
3955// CHECK-NEXT:         <key>file</key><integer>0</integer>
3956// CHECK-NEXT:        </dict>
3957// CHECK-NEXT:       </array>
3958// CHECK-NEXT:     </array>
3959// CHECK-NEXT:     <key>depth</key><integer>0</integer>
3960// CHECK-NEXT:     <key>extended_message</key>
3961// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3962// CHECK-NEXT:     <key>message</key>
3963// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
3964// CHECK-NEXT:    </dict>
3965// CHECK-NEXT:   </array>
3966// 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>
3967// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
3968// CHECK-NEXT:   <key>type</key><string>Generics</string>
3969// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
3970// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
3971// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>be7e9426f827314f05fd4e15b25909df</string>
3972// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
3973// CHECK-NEXT:  <key>issue_context</key><string>inferenceFromAPIWithBuggyTypes</string>
3974// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
3975// CHECK-NEXT:  <key>location</key>
3976// CHECK-NEXT:  <dict>
3977// CHECK-NEXT:   <key>line</key><integer>209</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:  <dict>
3983// CHECK-NEXT:   <key>path</key>
3984// CHECK-NEXT:   <array>
3985// CHECK-NEXT:    <dict>
3986// CHECK-NEXT:     <key>kind</key><string>event</string>
3987// CHECK-NEXT:     <key>location</key>
3988// CHECK-NEXT:     <dict>
3989// CHECK-NEXT:      <key>line</key><integer>213</integer>
3990// CHECK-NEXT:      <key>col</key><integer>27</integer>
3991// CHECK-NEXT:      <key>file</key><integer>0</integer>
3992// CHECK-NEXT:     </dict>
3993// CHECK-NEXT:     <key>ranges</key>
3994// CHECK-NEXT:     <array>
3995// CHECK-NEXT:       <array>
3996// CHECK-NEXT:        <dict>
3997// CHECK-NEXT:         <key>line</key><integer>213</integer>
3998// CHECK-NEXT:         <key>col</key><integer>27</integer>
3999// CHECK-NEXT:         <key>file</key><integer>0</integer>
4000// CHECK-NEXT:        </dict>
4001// CHECK-NEXT:        <dict>
4002// CHECK-NEXT:         <key>line</key><integer>213</integer>
4003// CHECK-NEXT:         <key>col</key><integer>27</integer>
4004// CHECK-NEXT:         <key>file</key><integer>0</integer>
4005// CHECK-NEXT:        </dict>
4006// CHECK-NEXT:       </array>
4007// CHECK-NEXT:     </array>
4008// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4009// CHECK-NEXT:     <key>extended_message</key>
4010// 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>
4011// CHECK-NEXT:     <key>message</key>
4012// 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>
4013// CHECK-NEXT:    </dict>
4014// CHECK-NEXT:    <dict>
4015// CHECK-NEXT:     <key>kind</key><string>control</string>
4016// CHECK-NEXT:     <key>edges</key>
4017// CHECK-NEXT:      <array>
4018// CHECK-NEXT:       <dict>
4019// CHECK-NEXT:        <key>start</key>
4020// CHECK-NEXT:         <array>
4021// CHECK-NEXT:          <dict>
4022// CHECK-NEXT:           <key>line</key><integer>213</integer>
4023// CHECK-NEXT:           <key>col</key><integer>3</integer>
4024// CHECK-NEXT:           <key>file</key><integer>0</integer>
4025// CHECK-NEXT:          </dict>
4026// CHECK-NEXT:          <dict>
4027// CHECK-NEXT:           <key>line</key><integer>213</integer>
4028// CHECK-NEXT:           <key>col</key><integer>25</integer>
4029// CHECK-NEXT:           <key>file</key><integer>0</integer>
4030// CHECK-NEXT:          </dict>
4031// CHECK-NEXT:         </array>
4032// CHECK-NEXT:        <key>end</key>
4033// CHECK-NEXT:         <array>
4034// CHECK-NEXT:          <dict>
4035// CHECK-NEXT:           <key>line</key><integer>214</integer>
4036// CHECK-NEXT:           <key>col</key><integer>3</integer>
4037// CHECK-NEXT:           <key>file</key><integer>0</integer>
4038// CHECK-NEXT:          </dict>
4039// CHECK-NEXT:          <dict>
4040// CHECK-NEXT:           <key>line</key><integer>214</integer>
4041// CHECK-NEXT:           <key>col</key><integer>18</integer>
4042// CHECK-NEXT:           <key>file</key><integer>0</integer>
4043// CHECK-NEXT:          </dict>
4044// CHECK-NEXT:         </array>
4045// CHECK-NEXT:       </dict>
4046// CHECK-NEXT:      </array>
4047// CHECK-NEXT:    </dict>
4048// CHECK-NEXT:    <dict>
4049// CHECK-NEXT:     <key>kind</key><string>control</string>
4050// CHECK-NEXT:     <key>edges</key>
4051// CHECK-NEXT:      <array>
4052// CHECK-NEXT:       <dict>
4053// CHECK-NEXT:        <key>start</key>
4054// CHECK-NEXT:         <array>
4055// CHECK-NEXT:          <dict>
4056// CHECK-NEXT:           <key>line</key><integer>214</integer>
4057// CHECK-NEXT:           <key>col</key><integer>3</integer>
4058// CHECK-NEXT:           <key>file</key><integer>0</integer>
4059// CHECK-NEXT:          </dict>
4060// CHECK-NEXT:          <dict>
4061// CHECK-NEXT:           <key>line</key><integer>214</integer>
4062// CHECK-NEXT:           <key>col</key><integer>18</integer>
4063// CHECK-NEXT:           <key>file</key><integer>0</integer>
4064// CHECK-NEXT:          </dict>
4065// CHECK-NEXT:         </array>
4066// CHECK-NEXT:        <key>end</key>
4067// CHECK-NEXT:         <array>
4068// CHECK-NEXT:          <dict>
4069// CHECK-NEXT:           <key>line</key><integer>214</integer>
4070// CHECK-NEXT:           <key>col</key><integer>20</integer>
4071// CHECK-NEXT:           <key>file</key><integer>0</integer>
4072// CHECK-NEXT:          </dict>
4073// CHECK-NEXT:          <dict>
4074// CHECK-NEXT:           <key>line</key><integer>214</integer>
4075// CHECK-NEXT:           <key>col</key><integer>20</integer>
4076// CHECK-NEXT:           <key>file</key><integer>0</integer>
4077// CHECK-NEXT:          </dict>
4078// CHECK-NEXT:         </array>
4079// CHECK-NEXT:       </dict>
4080// CHECK-NEXT:      </array>
4081// CHECK-NEXT:    </dict>
4082// CHECK-NEXT:    <dict>
4083// CHECK-NEXT:     <key>kind</key><string>event</string>
4084// CHECK-NEXT:     <key>location</key>
4085// CHECK-NEXT:     <dict>
4086// CHECK-NEXT:      <key>line</key><integer>214</integer>
4087// CHECK-NEXT:      <key>col</key><integer>20</integer>
4088// CHECK-NEXT:      <key>file</key><integer>0</integer>
4089// CHECK-NEXT:     </dict>
4090// CHECK-NEXT:     <key>ranges</key>
4091// CHECK-NEXT:     <array>
4092// CHECK-NEXT:       <array>
4093// CHECK-NEXT:        <dict>
4094// CHECK-NEXT:         <key>line</key><integer>214</integer>
4095// CHECK-NEXT:         <key>col</key><integer>20</integer>
4096// CHECK-NEXT:         <key>file</key><integer>0</integer>
4097// CHECK-NEXT:        </dict>
4098// CHECK-NEXT:        <dict>
4099// CHECK-NEXT:         <key>line</key><integer>214</integer>
4100// CHECK-NEXT:         <key>col</key><integer>20</integer>
4101// CHECK-NEXT:         <key>file</key><integer>0</integer>
4102// CHECK-NEXT:        </dict>
4103// CHECK-NEXT:       </array>
4104// CHECK-NEXT:     </array>
4105// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4106// CHECK-NEXT:     <key>extended_message</key>
4107// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4108// CHECK-NEXT:     <key>message</key>
4109// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4110// CHECK-NEXT:    </dict>
4111// CHECK-NEXT:   </array>
4112// 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>
4113// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
4114// CHECK-NEXT:   <key>type</key><string>Generics</string>
4115// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
4116// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4117// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>0f97a618ccac913d7c8631b5b86a133e</string>
4118// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4119// CHECK-NEXT:  <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes2</string>
4120// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
4121// CHECK-NEXT:  <key>location</key>
4122// CHECK-NEXT:  <dict>
4123// CHECK-NEXT:   <key>line</key><integer>214</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:  <dict>
4129// CHECK-NEXT:   <key>path</key>
4130// CHECK-NEXT:   <array>
4131// CHECK-NEXT:    <dict>
4132// CHECK-NEXT:     <key>kind</key><string>event</string>
4133// CHECK-NEXT:     <key>location</key>
4134// CHECK-NEXT:     <dict>
4135// CHECK-NEXT:      <key>line</key><integer>218</integer>
4136// CHECK-NEXT:      <key>col</key><integer>10</integer>
4137// CHECK-NEXT:      <key>file</key><integer>0</integer>
4138// CHECK-NEXT:     </dict>
4139// CHECK-NEXT:     <key>ranges</key>
4140// CHECK-NEXT:     <array>
4141// CHECK-NEXT:       <array>
4142// CHECK-NEXT:        <dict>
4143// CHECK-NEXT:         <key>line</key><integer>218</integer>
4144// CHECK-NEXT:         <key>col</key><integer>10</integer>
4145// CHECK-NEXT:         <key>file</key><integer>0</integer>
4146// CHECK-NEXT:        </dict>
4147// CHECK-NEXT:        <dict>
4148// CHECK-NEXT:         <key>line</key><integer>218</integer>
4149// CHECK-NEXT:         <key>col</key><integer>10</integer>
4150// CHECK-NEXT:         <key>file</key><integer>0</integer>
4151// CHECK-NEXT:        </dict>
4152// CHECK-NEXT:       </array>
4153// CHECK-NEXT:     </array>
4154// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4155// CHECK-NEXT:     <key>extended_message</key>
4156// 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>
4157// CHECK-NEXT:     <key>message</key>
4158// 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>
4159// CHECK-NEXT:    </dict>
4160// CHECK-NEXT:    <dict>
4161// CHECK-NEXT:     <key>kind</key><string>control</string>
4162// CHECK-NEXT:     <key>edges</key>
4163// CHECK-NEXT:      <array>
4164// CHECK-NEXT:       <dict>
4165// CHECK-NEXT:        <key>start</key>
4166// CHECK-NEXT:         <array>
4167// CHECK-NEXT:          <dict>
4168// CHECK-NEXT:           <key>line</key><integer>218</integer>
4169// CHECK-NEXT:           <key>col</key><integer>3</integer>
4170// CHECK-NEXT:           <key>file</key><integer>0</integer>
4171// CHECK-NEXT:          </dict>
4172// CHECK-NEXT:          <dict>
4173// CHECK-NEXT:           <key>line</key><integer>218</integer>
4174// CHECK-NEXT:           <key>col</key><integer>4</integer>
4175// CHECK-NEXT:           <key>file</key><integer>0</integer>
4176// CHECK-NEXT:          </dict>
4177// CHECK-NEXT:         </array>
4178// CHECK-NEXT:        <key>end</key>
4179// CHECK-NEXT:         <array>
4180// CHECK-NEXT:          <dict>
4181// CHECK-NEXT:           <key>line</key><integer>220</integer>
4182// CHECK-NEXT:           <key>col</key><integer>3</integer>
4183// CHECK-NEXT:           <key>file</key><integer>0</integer>
4184// CHECK-NEXT:          </dict>
4185// CHECK-NEXT:          <dict>
4186// CHECK-NEXT:           <key>line</key><integer>220</integer>
4187// CHECK-NEXT:           <key>col</key><integer>18</integer>
4188// CHECK-NEXT:           <key>file</key><integer>0</integer>
4189// CHECK-NEXT:          </dict>
4190// CHECK-NEXT:         </array>
4191// CHECK-NEXT:       </dict>
4192// CHECK-NEXT:      </array>
4193// CHECK-NEXT:    </dict>
4194// CHECK-NEXT:    <dict>
4195// CHECK-NEXT:     <key>kind</key><string>control</string>
4196// CHECK-NEXT:     <key>edges</key>
4197// CHECK-NEXT:      <array>
4198// CHECK-NEXT:       <dict>
4199// CHECK-NEXT:        <key>start</key>
4200// CHECK-NEXT:         <array>
4201// CHECK-NEXT:          <dict>
4202// CHECK-NEXT:           <key>line</key><integer>220</integer>
4203// CHECK-NEXT:           <key>col</key><integer>3</integer>
4204// CHECK-NEXT:           <key>file</key><integer>0</integer>
4205// CHECK-NEXT:          </dict>
4206// CHECK-NEXT:          <dict>
4207// CHECK-NEXT:           <key>line</key><integer>220</integer>
4208// CHECK-NEXT:           <key>col</key><integer>18</integer>
4209// CHECK-NEXT:           <key>file</key><integer>0</integer>
4210// CHECK-NEXT:          </dict>
4211// CHECK-NEXT:         </array>
4212// CHECK-NEXT:        <key>end</key>
4213// CHECK-NEXT:         <array>
4214// CHECK-NEXT:          <dict>
4215// CHECK-NEXT:           <key>line</key><integer>220</integer>
4216// CHECK-NEXT:           <key>col</key><integer>20</integer>
4217// CHECK-NEXT:           <key>file</key><integer>0</integer>
4218// CHECK-NEXT:          </dict>
4219// CHECK-NEXT:          <dict>
4220// CHECK-NEXT:           <key>line</key><integer>220</integer>
4221// CHECK-NEXT:           <key>col</key><integer>20</integer>
4222// CHECK-NEXT:           <key>file</key><integer>0</integer>
4223// CHECK-NEXT:          </dict>
4224// CHECK-NEXT:         </array>
4225// CHECK-NEXT:       </dict>
4226// CHECK-NEXT:      </array>
4227// CHECK-NEXT:    </dict>
4228// CHECK-NEXT:    <dict>
4229// CHECK-NEXT:     <key>kind</key><string>event</string>
4230// CHECK-NEXT:     <key>location</key>
4231// CHECK-NEXT:     <dict>
4232// CHECK-NEXT:      <key>line</key><integer>220</integer>
4233// CHECK-NEXT:      <key>col</key><integer>20</integer>
4234// CHECK-NEXT:      <key>file</key><integer>0</integer>
4235// CHECK-NEXT:     </dict>
4236// CHECK-NEXT:     <key>ranges</key>
4237// CHECK-NEXT:     <array>
4238// CHECK-NEXT:       <array>
4239// CHECK-NEXT:        <dict>
4240// CHECK-NEXT:         <key>line</key><integer>220</integer>
4241// CHECK-NEXT:         <key>col</key><integer>20</integer>
4242// CHECK-NEXT:         <key>file</key><integer>0</integer>
4243// CHECK-NEXT:        </dict>
4244// CHECK-NEXT:        <dict>
4245// CHECK-NEXT:         <key>line</key><integer>220</integer>
4246// CHECK-NEXT:         <key>col</key><integer>20</integer>
4247// CHECK-NEXT:         <key>file</key><integer>0</integer>
4248// CHECK-NEXT:        </dict>
4249// CHECK-NEXT:       </array>
4250// CHECK-NEXT:     </array>
4251// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4252// CHECK-NEXT:     <key>extended_message</key>
4253// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4254// CHECK-NEXT:     <key>message</key>
4255// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSMutableString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSString *&gt; *&apos;</string>
4256// CHECK-NEXT:    </dict>
4257// CHECK-NEXT:   </array>
4258// 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>
4259// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
4260// CHECK-NEXT:   <key>type</key><string>Generics</string>
4261// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
4262// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4263// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>725c54c88bb271138b1de545ee59a8aa</string>
4264// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4265// CHECK-NEXT:  <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes3</string>
4266// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
4267// CHECK-NEXT:  <key>location</key>
4268// CHECK-NEXT:  <dict>
4269// CHECK-NEXT:   <key>line</key><integer>220</integer>
4270// CHECK-NEXT:   <key>col</key><integer>20</integer>
4271// CHECK-NEXT:   <key>file</key><integer>0</integer>
4272// CHECK-NEXT:  </dict>
4273// CHECK-NEXT:  </dict>
4274// CHECK-NEXT:  <dict>
4275// CHECK-NEXT:   <key>path</key>
4276// CHECK-NEXT:   <array>
4277// CHECK-NEXT:    <dict>
4278// CHECK-NEXT:     <key>kind</key><string>event</string>
4279// CHECK-NEXT:     <key>location</key>
4280// CHECK-NEXT:     <dict>
4281// CHECK-NEXT:      <key>line</key><integer>224</integer>
4282// CHECK-NEXT:      <key>col</key><integer>45</integer>
4283// CHECK-NEXT:      <key>file</key><integer>0</integer>
4284// CHECK-NEXT:     </dict>
4285// CHECK-NEXT:     <key>ranges</key>
4286// CHECK-NEXT:     <array>
4287// CHECK-NEXT:       <array>
4288// CHECK-NEXT:        <dict>
4289// CHECK-NEXT:         <key>line</key><integer>224</integer>
4290// CHECK-NEXT:         <key>col</key><integer>45</integer>
4291// CHECK-NEXT:         <key>file</key><integer>0</integer>
4292// CHECK-NEXT:        </dict>
4293// CHECK-NEXT:        <dict>
4294// CHECK-NEXT:         <key>line</key><integer>224</integer>
4295// CHECK-NEXT:         <key>col</key><integer>45</integer>
4296// CHECK-NEXT:         <key>file</key><integer>0</integer>
4297// CHECK-NEXT:        </dict>
4298// CHECK-NEXT:       </array>
4299// CHECK-NEXT:     </array>
4300// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4301// CHECK-NEXT:     <key>extended_message</key>
4302// 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>
4303// CHECK-NEXT:     <key>message</key>
4304// 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>
4305// CHECK-NEXT:    </dict>
4306// CHECK-NEXT:    <dict>
4307// CHECK-NEXT:     <key>kind</key><string>control</string>
4308// CHECK-NEXT:     <key>edges</key>
4309// CHECK-NEXT:      <array>
4310// CHECK-NEXT:       <dict>
4311// CHECK-NEXT:        <key>start</key>
4312// CHECK-NEXT:         <array>
4313// CHECK-NEXT:          <dict>
4314// CHECK-NEXT:           <key>line</key><integer>224</integer>
4315// CHECK-NEXT:           <key>col</key><integer>3</integer>
4316// CHECK-NEXT:           <key>file</key><integer>0</integer>
4317// CHECK-NEXT:          </dict>
4318// CHECK-NEXT:          <dict>
4319// CHECK-NEXT:           <key>line</key><integer>224</integer>
4320// CHECK-NEXT:           <key>col</key><integer>19</integer>
4321// CHECK-NEXT:           <key>file</key><integer>0</integer>
4322// CHECK-NEXT:          </dict>
4323// CHECK-NEXT:         </array>
4324// CHECK-NEXT:        <key>end</key>
4325// CHECK-NEXT:         <array>
4326// CHECK-NEXT:          <dict>
4327// CHECK-NEXT:           <key>line</key><integer>225</integer>
4328// CHECK-NEXT:           <key>col</key><integer>3</integer>
4329// CHECK-NEXT:           <key>file</key><integer>0</integer>
4330// CHECK-NEXT:          </dict>
4331// CHECK-NEXT:          <dict>
4332// CHECK-NEXT:           <key>line</key><integer>225</integer>
4333// CHECK-NEXT:           <key>col</key><integer>18</integer>
4334// CHECK-NEXT:           <key>file</key><integer>0</integer>
4335// CHECK-NEXT:          </dict>
4336// CHECK-NEXT:         </array>
4337// CHECK-NEXT:       </dict>
4338// CHECK-NEXT:      </array>
4339// CHECK-NEXT:    </dict>
4340// CHECK-NEXT:    <dict>
4341// CHECK-NEXT:     <key>kind</key><string>event</string>
4342// CHECK-NEXT:     <key>location</key>
4343// CHECK-NEXT:     <dict>
4344// CHECK-NEXT:      <key>line</key><integer>225</integer>
4345// CHECK-NEXT:      <key>col</key><integer>20</integer>
4346// CHECK-NEXT:      <key>file</key><integer>0</integer>
4347// CHECK-NEXT:     </dict>
4348// CHECK-NEXT:     <key>ranges</key>
4349// CHECK-NEXT:     <array>
4350// CHECK-NEXT:       <array>
4351// CHECK-NEXT:        <dict>
4352// CHECK-NEXT:         <key>line</key><integer>225</integer>
4353// CHECK-NEXT:         <key>col</key><integer>20</integer>
4354// CHECK-NEXT:         <key>file</key><integer>0</integer>
4355// CHECK-NEXT:        </dict>
4356// CHECK-NEXT:        <dict>
4357// CHECK-NEXT:         <key>line</key><integer>225</integer>
4358// CHECK-NEXT:         <key>col</key><integer>20</integer>
4359// CHECK-NEXT:         <key>file</key><integer>0</integer>
4360// CHECK-NEXT:        </dict>
4361// CHECK-NEXT:       </array>
4362// CHECK-NEXT:     </array>
4363// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4364// CHECK-NEXT:     <key>extended_message</key>
4365// 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>
4366// CHECK-NEXT:     <key>message</key>
4367// 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>
4368// CHECK-NEXT:    </dict>
4369// CHECK-NEXT:    <dict>
4370// CHECK-NEXT:     <key>kind</key><string>control</string>
4371// CHECK-NEXT:     <key>edges</key>
4372// CHECK-NEXT:      <array>
4373// CHECK-NEXT:       <dict>
4374// CHECK-NEXT:        <key>start</key>
4375// CHECK-NEXT:         <array>
4376// CHECK-NEXT:          <dict>
4377// CHECK-NEXT:           <key>line</key><integer>225</integer>
4378// CHECK-NEXT:           <key>col</key><integer>3</integer>
4379// CHECK-NEXT:           <key>file</key><integer>0</integer>
4380// CHECK-NEXT:          </dict>
4381// CHECK-NEXT:          <dict>
4382// CHECK-NEXT:           <key>line</key><integer>225</integer>
4383// CHECK-NEXT:           <key>col</key><integer>18</integer>
4384// CHECK-NEXT:           <key>file</key><integer>0</integer>
4385// CHECK-NEXT:          </dict>
4386// CHECK-NEXT:         </array>
4387// CHECK-NEXT:        <key>end</key>
4388// CHECK-NEXT:         <array>
4389// CHECK-NEXT:          <dict>
4390// CHECK-NEXT:           <key>line</key><integer>226</integer>
4391// CHECK-NEXT:           <key>col</key><integer>3</integer>
4392// CHECK-NEXT:           <key>file</key><integer>0</integer>
4393// CHECK-NEXT:          </dict>
4394// CHECK-NEXT:          <dict>
4395// CHECK-NEXT:           <key>line</key><integer>226</integer>
4396// CHECK-NEXT:           <key>col</key><integer>25</integer>
4397// CHECK-NEXT:           <key>file</key><integer>0</integer>
4398// CHECK-NEXT:          </dict>
4399// CHECK-NEXT:         </array>
4400// CHECK-NEXT:       </dict>
4401// CHECK-NEXT:      </array>
4402// CHECK-NEXT:    </dict>
4403// CHECK-NEXT:    <dict>
4404// CHECK-NEXT:     <key>kind</key><string>control</string>
4405// CHECK-NEXT:     <key>edges</key>
4406// CHECK-NEXT:      <array>
4407// CHECK-NEXT:       <dict>
4408// CHECK-NEXT:        <key>start</key>
4409// CHECK-NEXT:         <array>
4410// CHECK-NEXT:          <dict>
4411// CHECK-NEXT:           <key>line</key><integer>226</integer>
4412// CHECK-NEXT:           <key>col</key><integer>3</integer>
4413// CHECK-NEXT:           <key>file</key><integer>0</integer>
4414// CHECK-NEXT:          </dict>
4415// CHECK-NEXT:          <dict>
4416// CHECK-NEXT:           <key>line</key><integer>226</integer>
4417// CHECK-NEXT:           <key>col</key><integer>25</integer>
4418// CHECK-NEXT:           <key>file</key><integer>0</integer>
4419// CHECK-NEXT:          </dict>
4420// CHECK-NEXT:         </array>
4421// CHECK-NEXT:        <key>end</key>
4422// CHECK-NEXT:         <array>
4423// CHECK-NEXT:          <dict>
4424// CHECK-NEXT:           <key>line</key><integer>226</integer>
4425// CHECK-NEXT:           <key>col</key><integer>27</integer>
4426// CHECK-NEXT:           <key>file</key><integer>0</integer>
4427// CHECK-NEXT:          </dict>
4428// CHECK-NEXT:          <dict>
4429// CHECK-NEXT:           <key>line</key><integer>226</integer>
4430// CHECK-NEXT:           <key>col</key><integer>27</integer>
4431// CHECK-NEXT:           <key>file</key><integer>0</integer>
4432// CHECK-NEXT:          </dict>
4433// CHECK-NEXT:         </array>
4434// CHECK-NEXT:       </dict>
4435// CHECK-NEXT:      </array>
4436// CHECK-NEXT:    </dict>
4437// CHECK-NEXT:    <dict>
4438// CHECK-NEXT:     <key>kind</key><string>event</string>
4439// CHECK-NEXT:     <key>location</key>
4440// CHECK-NEXT:     <dict>
4441// CHECK-NEXT:      <key>line</key><integer>226</integer>
4442// CHECK-NEXT:      <key>col</key><integer>27</integer>
4443// CHECK-NEXT:      <key>file</key><integer>0</integer>
4444// CHECK-NEXT:     </dict>
4445// CHECK-NEXT:     <key>ranges</key>
4446// CHECK-NEXT:     <array>
4447// CHECK-NEXT:       <array>
4448// CHECK-NEXT:        <dict>
4449// CHECK-NEXT:         <key>line</key><integer>226</integer>
4450// CHECK-NEXT:         <key>col</key><integer>27</integer>
4451// CHECK-NEXT:         <key>file</key><integer>0</integer>
4452// CHECK-NEXT:        </dict>
4453// CHECK-NEXT:        <dict>
4454// CHECK-NEXT:         <key>line</key><integer>226</integer>
4455// CHECK-NEXT:         <key>col</key><integer>27</integer>
4456// CHECK-NEXT:         <key>file</key><integer>0</integer>
4457// CHECK-NEXT:        </dict>
4458// CHECK-NEXT:       </array>
4459// CHECK-NEXT:     </array>
4460// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4461// CHECK-NEXT:     <key>extended_message</key>
4462// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4463// CHECK-NEXT:     <key>message</key>
4464// CHECK-NEXT:     <string>Conversion from value of type &apos;MutableArray&lt;NSString *&gt; *&apos; to incompatible type &apos;MutableArray&lt;NSMutableString *&gt; *&apos;</string>
4465// CHECK-NEXT:    </dict>
4466// CHECK-NEXT:   </array>
4467// 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>
4468// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
4469// CHECK-NEXT:   <key>type</key><string>Generics</string>
4470// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
4471// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4472// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>fb867af384c612fe5c09f821127eeaf0</string>
4473// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4474// CHECK-NEXT:  <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes4</string>
4475// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
4476// CHECK-NEXT:  <key>location</key>
4477// CHECK-NEXT:  <dict>
4478// CHECK-NEXT:   <key>line</key><integer>226</integer>
4479// CHECK-NEXT:   <key>col</key><integer>27</integer>
4480// CHECK-NEXT:   <key>file</key><integer>0</integer>
4481// CHECK-NEXT:  </dict>
4482// CHECK-NEXT:  </dict>
4483// CHECK-NEXT:  <dict>
4484// CHECK-NEXT:   <key>path</key>
4485// CHECK-NEXT:   <array>
4486// CHECK-NEXT:    <dict>
4487// CHECK-NEXT:     <key>kind</key><string>control</string>
4488// CHECK-NEXT:     <key>edges</key>
4489// CHECK-NEXT:      <array>
4490// CHECK-NEXT:       <dict>
4491// CHECK-NEXT:        <key>start</key>
4492// CHECK-NEXT:         <array>
4493// CHECK-NEXT:          <dict>
4494// CHECK-NEXT:           <key>line</key><integer>238</integer>
4495// CHECK-NEXT:           <key>col</key><integer>3</integer>
4496// CHECK-NEXT:           <key>file</key><integer>0</integer>
4497// CHECK-NEXT:          </dict>
4498// CHECK-NEXT:          <dict>
4499// CHECK-NEXT:           <key>line</key><integer>238</integer>
4500// CHECK-NEXT:           <key>col</key><integer>9</integer>
4501// CHECK-NEXT:           <key>file</key><integer>0</integer>
4502// CHECK-NEXT:          </dict>
4503// CHECK-NEXT:         </array>
4504// CHECK-NEXT:        <key>end</key>
4505// CHECK-NEXT:         <array>
4506// CHECK-NEXT:          <dict>
4507// CHECK-NEXT:           <key>line</key><integer>239</integer>
4508// CHECK-NEXT:           <key>col</key><integer>3</integer>
4509// CHECK-NEXT:           <key>file</key><integer>0</integer>
4510// CHECK-NEXT:          </dict>
4511// CHECK-NEXT:          <dict>
4512// CHECK-NEXT:           <key>line</key><integer>239</integer>
4513// CHECK-NEXT:           <key>col</key><integer>10</integer>
4514// CHECK-NEXT:           <key>file</key><integer>0</integer>
4515// CHECK-NEXT:          </dict>
4516// CHECK-NEXT:         </array>
4517// CHECK-NEXT:       </dict>
4518// CHECK-NEXT:      </array>
4519// CHECK-NEXT:    </dict>
4520// CHECK-NEXT:    <dict>
4521// CHECK-NEXT:     <key>kind</key><string>control</string>
4522// CHECK-NEXT:     <key>edges</key>
4523// CHECK-NEXT:      <array>
4524// CHECK-NEXT:       <dict>
4525// CHECK-NEXT:        <key>start</key>
4526// CHECK-NEXT:         <array>
4527// CHECK-NEXT:          <dict>
4528// CHECK-NEXT:           <key>line</key><integer>239</integer>
4529// CHECK-NEXT:           <key>col</key><integer>3</integer>
4530// CHECK-NEXT:           <key>file</key><integer>0</integer>
4531// CHECK-NEXT:          </dict>
4532// CHECK-NEXT:          <dict>
4533// CHECK-NEXT:           <key>line</key><integer>239</integer>
4534// CHECK-NEXT:           <key>col</key><integer>10</integer>
4535// CHECK-NEXT:           <key>file</key><integer>0</integer>
4536// CHECK-NEXT:          </dict>
4537// CHECK-NEXT:         </array>
4538// CHECK-NEXT:        <key>end</key>
4539// CHECK-NEXT:         <array>
4540// CHECK-NEXT:          <dict>
4541// CHECK-NEXT:           <key>line</key><integer>239</integer>
4542// CHECK-NEXT:           <key>col</key><integer>19</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>239</integer>
4547// CHECK-NEXT:           <key>col</key><integer>19</integer>
4548// CHECK-NEXT:           <key>file</key><integer>0</integer>
4549// CHECK-NEXT:          </dict>
4550// CHECK-NEXT:         </array>
4551// CHECK-NEXT:       </dict>
4552// CHECK-NEXT:      </array>
4553// CHECK-NEXT:    </dict>
4554// CHECK-NEXT:    <dict>
4555// CHECK-NEXT:     <key>kind</key><string>event</string>
4556// CHECK-NEXT:     <key>location</key>
4557// CHECK-NEXT:     <dict>
4558// CHECK-NEXT:      <key>line</key><integer>239</integer>
4559// CHECK-NEXT:      <key>col</key><integer>19</integer>
4560// CHECK-NEXT:      <key>file</key><integer>0</integer>
4561// CHECK-NEXT:     </dict>
4562// CHECK-NEXT:     <key>ranges</key>
4563// CHECK-NEXT:     <array>
4564// CHECK-NEXT:       <array>
4565// CHECK-NEXT:        <dict>
4566// CHECK-NEXT:         <key>line</key><integer>239</integer>
4567// CHECK-NEXT:         <key>col</key><integer>19</integer>
4568// CHECK-NEXT:         <key>file</key><integer>0</integer>
4569// CHECK-NEXT:        </dict>
4570// CHECK-NEXT:        <dict>
4571// CHECK-NEXT:         <key>line</key><integer>239</integer>
4572// CHECK-NEXT:         <key>col</key><integer>38</integer>
4573// CHECK-NEXT:         <key>file</key><integer>0</integer>
4574// CHECK-NEXT:        </dict>
4575// CHECK-NEXT:       </array>
4576// CHECK-NEXT:     </array>
4577// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4578// CHECK-NEXT:     <key>extended_message</key>
4579// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4580// CHECK-NEXT:     <key>message</key>
4581// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4582// CHECK-NEXT:    </dict>
4583// CHECK-NEXT:    <dict>
4584// CHECK-NEXT:     <key>kind</key><string>event</string>
4585// CHECK-NEXT:     <key>location</key>
4586// CHECK-NEXT:     <dict>
4587// CHECK-NEXT:      <key>line</key><integer>239</integer>
4588// CHECK-NEXT:      <key>col</key><integer>19</integer>
4589// CHECK-NEXT:      <key>file</key><integer>0</integer>
4590// CHECK-NEXT:     </dict>
4591// CHECK-NEXT:     <key>ranges</key>
4592// CHECK-NEXT:     <array>
4593// CHECK-NEXT:       <array>
4594// CHECK-NEXT:        <dict>
4595// CHECK-NEXT:         <key>line</key><integer>239</integer>
4596// CHECK-NEXT:         <key>col</key><integer>19</integer>
4597// CHECK-NEXT:         <key>file</key><integer>0</integer>
4598// CHECK-NEXT:        </dict>
4599// CHECK-NEXT:        <dict>
4600// CHECK-NEXT:         <key>line</key><integer>239</integer>
4601// CHECK-NEXT:         <key>col</key><integer>38</integer>
4602// CHECK-NEXT:         <key>file</key><integer>0</integer>
4603// CHECK-NEXT:        </dict>
4604// CHECK-NEXT:       </array>
4605// CHECK-NEXT:     </array>
4606// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4607// CHECK-NEXT:     <key>extended_message</key>
4608// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4609// CHECK-NEXT:     <key>message</key>
4610// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4611// CHECK-NEXT:    </dict>
4612// CHECK-NEXT:   </array>
4613// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4614// CHECK-NEXT:   <key>category</key><string>Type Error</string>
4615// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
4616// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4617// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4618// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>2e9f738345d9fa7dae2324ff7accd1ae</string>
4619// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4620// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
4621// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
4622// CHECK-NEXT:  <key>location</key>
4623// CHECK-NEXT:  <dict>
4624// CHECK-NEXT:   <key>line</key><integer>239</integer>
4625// CHECK-NEXT:   <key>col</key><integer>19</integer>
4626// CHECK-NEXT:   <key>file</key><integer>0</integer>
4627// CHECK-NEXT:  </dict>
4628// CHECK-NEXT:  </dict>
4629// CHECK-NEXT:  <dict>
4630// CHECK-NEXT:   <key>path</key>
4631// CHECK-NEXT:   <array>
4632// CHECK-NEXT:    <dict>
4633// CHECK-NEXT:     <key>kind</key><string>control</string>
4634// CHECK-NEXT:     <key>edges</key>
4635// CHECK-NEXT:      <array>
4636// CHECK-NEXT:       <dict>
4637// CHECK-NEXT:        <key>start</key>
4638// CHECK-NEXT:         <array>
4639// CHECK-NEXT:          <dict>
4640// CHECK-NEXT:           <key>line</key><integer>238</integer>
4641// CHECK-NEXT:           <key>col</key><integer>3</integer>
4642// CHECK-NEXT:           <key>file</key><integer>0</integer>
4643// CHECK-NEXT:          </dict>
4644// CHECK-NEXT:          <dict>
4645// CHECK-NEXT:           <key>line</key><integer>238</integer>
4646// CHECK-NEXT:           <key>col</key><integer>9</integer>
4647// CHECK-NEXT:           <key>file</key><integer>0</integer>
4648// CHECK-NEXT:          </dict>
4649// CHECK-NEXT:         </array>
4650// CHECK-NEXT:        <key>end</key>
4651// CHECK-NEXT:         <array>
4652// CHECK-NEXT:          <dict>
4653// CHECK-NEXT:           <key>line</key><integer>241</integer>
4654// CHECK-NEXT:           <key>col</key><integer>3</integer>
4655// CHECK-NEXT:           <key>file</key><integer>0</integer>
4656// CHECK-NEXT:          </dict>
4657// CHECK-NEXT:          <dict>
4658// CHECK-NEXT:           <key>line</key><integer>241</integer>
4659// CHECK-NEXT:           <key>col</key><integer>5</integer>
4660// CHECK-NEXT:           <key>file</key><integer>0</integer>
4661// CHECK-NEXT:          </dict>
4662// CHECK-NEXT:         </array>
4663// CHECK-NEXT:       </dict>
4664// CHECK-NEXT:      </array>
4665// CHECK-NEXT:    </dict>
4666// CHECK-NEXT:    <dict>
4667// CHECK-NEXT:     <key>kind</key><string>control</string>
4668// CHECK-NEXT:     <key>edges</key>
4669// CHECK-NEXT:      <array>
4670// CHECK-NEXT:       <dict>
4671// CHECK-NEXT:        <key>start</key>
4672// CHECK-NEXT:         <array>
4673// CHECK-NEXT:          <dict>
4674// CHECK-NEXT:           <key>line</key><integer>241</integer>
4675// CHECK-NEXT:           <key>col</key><integer>3</integer>
4676// CHECK-NEXT:           <key>file</key><integer>0</integer>
4677// CHECK-NEXT:          </dict>
4678// CHECK-NEXT:          <dict>
4679// CHECK-NEXT:           <key>line</key><integer>241</integer>
4680// CHECK-NEXT:           <key>col</key><integer>5</integer>
4681// CHECK-NEXT:           <key>file</key><integer>0</integer>
4682// CHECK-NEXT:          </dict>
4683// CHECK-NEXT:         </array>
4684// CHECK-NEXT:        <key>end</key>
4685// CHECK-NEXT:         <array>
4686// CHECK-NEXT:          <dict>
4687// CHECK-NEXT:           <key>line</key><integer>241</integer>
4688// CHECK-NEXT:           <key>col</key><integer>9</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>241</integer>
4693// CHECK-NEXT:           <key>col</key><integer>9</integer>
4694// CHECK-NEXT:           <key>file</key><integer>0</integer>
4695// CHECK-NEXT:          </dict>
4696// CHECK-NEXT:         </array>
4697// CHECK-NEXT:       </dict>
4698// CHECK-NEXT:      </array>
4699// CHECK-NEXT:    </dict>
4700// CHECK-NEXT:    <dict>
4701// CHECK-NEXT:     <key>kind</key><string>event</string>
4702// CHECK-NEXT:     <key>location</key>
4703// CHECK-NEXT:     <dict>
4704// CHECK-NEXT:      <key>line</key><integer>241</integer>
4705// CHECK-NEXT:      <key>col</key><integer>9</integer>
4706// CHECK-NEXT:      <key>file</key><integer>0</integer>
4707// CHECK-NEXT:     </dict>
4708// CHECK-NEXT:     <key>ranges</key>
4709// CHECK-NEXT:     <array>
4710// CHECK-NEXT:       <array>
4711// CHECK-NEXT:        <dict>
4712// CHECK-NEXT:         <key>line</key><integer>241</integer>
4713// CHECK-NEXT:         <key>col</key><integer>9</integer>
4714// CHECK-NEXT:         <key>file</key><integer>0</integer>
4715// CHECK-NEXT:        </dict>
4716// CHECK-NEXT:        <dict>
4717// CHECK-NEXT:         <key>line</key><integer>241</integer>
4718// CHECK-NEXT:         <key>col</key><integer>23</integer>
4719// CHECK-NEXT:         <key>file</key><integer>0</integer>
4720// CHECK-NEXT:        </dict>
4721// CHECK-NEXT:       </array>
4722// CHECK-NEXT:     </array>
4723// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4724// CHECK-NEXT:     <key>extended_message</key>
4725// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4726// CHECK-NEXT:     <key>message</key>
4727// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4728// CHECK-NEXT:    </dict>
4729// CHECK-NEXT:    <dict>
4730// CHECK-NEXT:     <key>kind</key><string>event</string>
4731// CHECK-NEXT:     <key>location</key>
4732// CHECK-NEXT:     <dict>
4733// CHECK-NEXT:      <key>line</key><integer>241</integer>
4734// CHECK-NEXT:      <key>col</key><integer>9</integer>
4735// CHECK-NEXT:      <key>file</key><integer>0</integer>
4736// CHECK-NEXT:     </dict>
4737// CHECK-NEXT:     <key>ranges</key>
4738// CHECK-NEXT:     <array>
4739// CHECK-NEXT:       <array>
4740// CHECK-NEXT:        <dict>
4741// CHECK-NEXT:         <key>line</key><integer>241</integer>
4742// CHECK-NEXT:         <key>col</key><integer>9</integer>
4743// CHECK-NEXT:         <key>file</key><integer>0</integer>
4744// CHECK-NEXT:        </dict>
4745// CHECK-NEXT:        <dict>
4746// CHECK-NEXT:         <key>line</key><integer>241</integer>
4747// CHECK-NEXT:         <key>col</key><integer>23</integer>
4748// CHECK-NEXT:         <key>file</key><integer>0</integer>
4749// CHECK-NEXT:        </dict>
4750// CHECK-NEXT:       </array>
4751// CHECK-NEXT:     </array>
4752// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4753// CHECK-NEXT:     <key>extended_message</key>
4754// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4755// CHECK-NEXT:     <key>message</key>
4756// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4757// CHECK-NEXT:    </dict>
4758// CHECK-NEXT:   </array>
4759// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4760// CHECK-NEXT:   <key>category</key><string>Type Error</string>
4761// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
4762// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4763// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4764// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>d85392b4efadf710b8da65a043a65e24</string>
4765// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4766// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
4767// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
4768// CHECK-NEXT:  <key>location</key>
4769// CHECK-NEXT:  <dict>
4770// CHECK-NEXT:   <key>line</key><integer>241</integer>
4771// CHECK-NEXT:   <key>col</key><integer>9</integer>
4772// CHECK-NEXT:   <key>file</key><integer>0</integer>
4773// CHECK-NEXT:  </dict>
4774// CHECK-NEXT:  </dict>
4775// CHECK-NEXT:  <dict>
4776// CHECK-NEXT:   <key>path</key>
4777// CHECK-NEXT:   <array>
4778// CHECK-NEXT:    <dict>
4779// CHECK-NEXT:     <key>kind</key><string>control</string>
4780// CHECK-NEXT:     <key>edges</key>
4781// CHECK-NEXT:      <array>
4782// CHECK-NEXT:       <dict>
4783// CHECK-NEXT:        <key>start</key>
4784// CHECK-NEXT:         <array>
4785// CHECK-NEXT:          <dict>
4786// CHECK-NEXT:           <key>line</key><integer>238</integer>
4787// CHECK-NEXT:           <key>col</key><integer>3</integer>
4788// CHECK-NEXT:           <key>file</key><integer>0</integer>
4789// CHECK-NEXT:          </dict>
4790// CHECK-NEXT:          <dict>
4791// CHECK-NEXT:           <key>line</key><integer>238</integer>
4792// CHECK-NEXT:           <key>col</key><integer>9</integer>
4793// CHECK-NEXT:           <key>file</key><integer>0</integer>
4794// CHECK-NEXT:          </dict>
4795// CHECK-NEXT:         </array>
4796// CHECK-NEXT:        <key>end</key>
4797// CHECK-NEXT:         <array>
4798// CHECK-NEXT:          <dict>
4799// CHECK-NEXT:           <key>line</key><integer>243</integer>
4800// CHECK-NEXT:           <key>col</key><integer>3</integer>
4801// CHECK-NEXT:           <key>file</key><integer>0</integer>
4802// CHECK-NEXT:          </dict>
4803// CHECK-NEXT:          <dict>
4804// CHECK-NEXT:           <key>line</key><integer>243</integer>
4805// CHECK-NEXT:           <key>col</key><integer>5</integer>
4806// CHECK-NEXT:           <key>file</key><integer>0</integer>
4807// CHECK-NEXT:          </dict>
4808// CHECK-NEXT:         </array>
4809// CHECK-NEXT:       </dict>
4810// CHECK-NEXT:      </array>
4811// CHECK-NEXT:    </dict>
4812// CHECK-NEXT:    <dict>
4813// CHECK-NEXT:     <key>kind</key><string>control</string>
4814// CHECK-NEXT:     <key>edges</key>
4815// CHECK-NEXT:      <array>
4816// CHECK-NEXT:       <dict>
4817// CHECK-NEXT:        <key>start</key>
4818// CHECK-NEXT:         <array>
4819// CHECK-NEXT:          <dict>
4820// CHECK-NEXT:           <key>line</key><integer>243</integer>
4821// CHECK-NEXT:           <key>col</key><integer>3</integer>
4822// CHECK-NEXT:           <key>file</key><integer>0</integer>
4823// CHECK-NEXT:          </dict>
4824// CHECK-NEXT:          <dict>
4825// CHECK-NEXT:           <key>line</key><integer>243</integer>
4826// CHECK-NEXT:           <key>col</key><integer>5</integer>
4827// CHECK-NEXT:           <key>file</key><integer>0</integer>
4828// CHECK-NEXT:          </dict>
4829// CHECK-NEXT:         </array>
4830// CHECK-NEXT:        <key>end</key>
4831// CHECK-NEXT:         <array>
4832// CHECK-NEXT:          <dict>
4833// CHECK-NEXT:           <key>line</key><integer>243</integer>
4834// CHECK-NEXT:           <key>col</key><integer>11</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>243</integer>
4839// CHECK-NEXT:           <key>col</key><integer>21</integer>
4840// CHECK-NEXT:           <key>file</key><integer>0</integer>
4841// CHECK-NEXT:          </dict>
4842// CHECK-NEXT:         </array>
4843// CHECK-NEXT:       </dict>
4844// CHECK-NEXT:      </array>
4845// CHECK-NEXT:    </dict>
4846// CHECK-NEXT:    <dict>
4847// CHECK-NEXT:     <key>kind</key><string>event</string>
4848// CHECK-NEXT:     <key>location</key>
4849// CHECK-NEXT:     <dict>
4850// CHECK-NEXT:      <key>line</key><integer>243</integer>
4851// CHECK-NEXT:      <key>col</key><integer>11</integer>
4852// CHECK-NEXT:      <key>file</key><integer>0</integer>
4853// CHECK-NEXT:     </dict>
4854// CHECK-NEXT:     <key>ranges</key>
4855// CHECK-NEXT:     <array>
4856// CHECK-NEXT:       <array>
4857// CHECK-NEXT:        <dict>
4858// CHECK-NEXT:         <key>line</key><integer>243</integer>
4859// CHECK-NEXT:         <key>col</key><integer>11</integer>
4860// CHECK-NEXT:         <key>file</key><integer>0</integer>
4861// CHECK-NEXT:        </dict>
4862// CHECK-NEXT:        <dict>
4863// CHECK-NEXT:         <key>line</key><integer>243</integer>
4864// CHECK-NEXT:         <key>col</key><integer>21</integer>
4865// CHECK-NEXT:         <key>file</key><integer>0</integer>
4866// CHECK-NEXT:        </dict>
4867// CHECK-NEXT:       </array>
4868// CHECK-NEXT:     </array>
4869// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4870// CHECK-NEXT:     <key>extended_message</key>
4871// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4872// CHECK-NEXT:     <key>message</key>
4873// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
4874// CHECK-NEXT:    </dict>
4875// CHECK-NEXT:    <dict>
4876// CHECK-NEXT:     <key>kind</key><string>event</string>
4877// CHECK-NEXT:     <key>location</key>
4878// CHECK-NEXT:     <dict>
4879// CHECK-NEXT:      <key>line</key><integer>243</integer>
4880// CHECK-NEXT:      <key>col</key><integer>9</integer>
4881// CHECK-NEXT:      <key>file</key><integer>0</integer>
4882// CHECK-NEXT:     </dict>
4883// CHECK-NEXT:     <key>ranges</key>
4884// CHECK-NEXT:     <array>
4885// CHECK-NEXT:       <array>
4886// CHECK-NEXT:        <dict>
4887// CHECK-NEXT:         <key>line</key><integer>243</integer>
4888// CHECK-NEXT:         <key>col</key><integer>9</integer>
4889// CHECK-NEXT:         <key>file</key><integer>0</integer>
4890// CHECK-NEXT:        </dict>
4891// CHECK-NEXT:        <dict>
4892// CHECK-NEXT:         <key>line</key><integer>243</integer>
4893// CHECK-NEXT:         <key>col</key><integer>21</integer>
4894// CHECK-NEXT:         <key>file</key><integer>0</integer>
4895// CHECK-NEXT:        </dict>
4896// CHECK-NEXT:       </array>
4897// CHECK-NEXT:     </array>
4898// CHECK-NEXT:     <key>depth</key><integer>0</integer>
4899// CHECK-NEXT:     <key>extended_message</key>
4900// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4901// CHECK-NEXT:     <key>message</key>
4902// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4903// CHECK-NEXT:    </dict>
4904// CHECK-NEXT:   </array>
4905// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
4906// CHECK-NEXT:   <key>category</key><string>Type Error</string>
4907// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
4908// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
4909// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
4910// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>456c6227549a5e577088c9dce4cea452</string>
4911// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
4912// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
4913// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>6</string>
4914// CHECK-NEXT:  <key>location</key>
4915// CHECK-NEXT:  <dict>
4916// CHECK-NEXT:   <key>line</key><integer>243</integer>
4917// CHECK-NEXT:   <key>col</key><integer>9</integer>
4918// CHECK-NEXT:   <key>file</key><integer>0</integer>
4919// CHECK-NEXT:  </dict>
4920// CHECK-NEXT:  </dict>
4921// CHECK-NEXT:  <dict>
4922// CHECK-NEXT:   <key>path</key>
4923// CHECK-NEXT:   <array>
4924// CHECK-NEXT:    <dict>
4925// CHECK-NEXT:     <key>kind</key><string>control</string>
4926// CHECK-NEXT:     <key>edges</key>
4927// CHECK-NEXT:      <array>
4928// CHECK-NEXT:       <dict>
4929// CHECK-NEXT:        <key>start</key>
4930// CHECK-NEXT:         <array>
4931// CHECK-NEXT:          <dict>
4932// CHECK-NEXT:           <key>line</key><integer>238</integer>
4933// CHECK-NEXT:           <key>col</key><integer>3</integer>
4934// CHECK-NEXT:           <key>file</key><integer>0</integer>
4935// CHECK-NEXT:          </dict>
4936// CHECK-NEXT:          <dict>
4937// CHECK-NEXT:           <key>line</key><integer>238</integer>
4938// CHECK-NEXT:           <key>col</key><integer>9</integer>
4939// CHECK-NEXT:           <key>file</key><integer>0</integer>
4940// CHECK-NEXT:          </dict>
4941// CHECK-NEXT:         </array>
4942// CHECK-NEXT:        <key>end</key>
4943// CHECK-NEXT:         <array>
4944// CHECK-NEXT:          <dict>
4945// CHECK-NEXT:           <key>line</key><integer>245</integer>
4946// CHECK-NEXT:           <key>col</key><integer>3</integer>
4947// CHECK-NEXT:           <key>file</key><integer>0</integer>
4948// CHECK-NEXT:          </dict>
4949// CHECK-NEXT:          <dict>
4950// CHECK-NEXT:           <key>line</key><integer>245</integer>
4951// CHECK-NEXT:           <key>col</key><integer>5</integer>
4952// CHECK-NEXT:           <key>file</key><integer>0</integer>
4953// CHECK-NEXT:          </dict>
4954// CHECK-NEXT:         </array>
4955// CHECK-NEXT:       </dict>
4956// CHECK-NEXT:      </array>
4957// CHECK-NEXT:    </dict>
4958// CHECK-NEXT:    <dict>
4959// CHECK-NEXT:     <key>kind</key><string>control</string>
4960// CHECK-NEXT:     <key>edges</key>
4961// CHECK-NEXT:      <array>
4962// CHECK-NEXT:       <dict>
4963// CHECK-NEXT:        <key>start</key>
4964// CHECK-NEXT:         <array>
4965// CHECK-NEXT:          <dict>
4966// CHECK-NEXT:           <key>line</key><integer>245</integer>
4967// CHECK-NEXT:           <key>col</key><integer>3</integer>
4968// CHECK-NEXT:           <key>file</key><integer>0</integer>
4969// CHECK-NEXT:          </dict>
4970// CHECK-NEXT:          <dict>
4971// CHECK-NEXT:           <key>line</key><integer>245</integer>
4972// CHECK-NEXT:           <key>col</key><integer>5</integer>
4973// CHECK-NEXT:           <key>file</key><integer>0</integer>
4974// CHECK-NEXT:          </dict>
4975// CHECK-NEXT:         </array>
4976// CHECK-NEXT:        <key>end</key>
4977// CHECK-NEXT:         <array>
4978// CHECK-NEXT:          <dict>
4979// CHECK-NEXT:           <key>line</key><integer>245</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>245</integer>
4985// CHECK-NEXT:           <key>col</key><integer>9</integer>
4986// CHECK-NEXT:           <key>file</key><integer>0</integer>
4987// CHECK-NEXT:          </dict>
4988// CHECK-NEXT:         </array>
4989// CHECK-NEXT:       </dict>
4990// CHECK-NEXT:      </array>
4991// CHECK-NEXT:    </dict>
4992// CHECK-NEXT:    <dict>
4993// CHECK-NEXT:     <key>kind</key><string>event</string>
4994// CHECK-NEXT:     <key>location</key>
4995// CHECK-NEXT:     <dict>
4996// CHECK-NEXT:      <key>line</key><integer>245</integer>
4997// CHECK-NEXT:      <key>col</key><integer>9</integer>
4998// CHECK-NEXT:      <key>file</key><integer>0</integer>
4999// CHECK-NEXT:     </dict>
5000// CHECK-NEXT:     <key>ranges</key>
5001// CHECK-NEXT:     <array>
5002// CHECK-NEXT:       <array>
5003// CHECK-NEXT:        <dict>
5004// CHECK-NEXT:         <key>line</key><integer>245</integer>
5005// CHECK-NEXT:         <key>col</key><integer>9</integer>
5006// CHECK-NEXT:         <key>file</key><integer>0</integer>
5007// CHECK-NEXT:        </dict>
5008// CHECK-NEXT:        <dict>
5009// CHECK-NEXT:         <key>line</key><integer>245</integer>
5010// CHECK-NEXT:         <key>col</key><integer>9</integer>
5011// CHECK-NEXT:         <key>file</key><integer>0</integer>
5012// CHECK-NEXT:        </dict>
5013// CHECK-NEXT:       </array>
5014// CHECK-NEXT:     </array>
5015// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5016// CHECK-NEXT:     <key>extended_message</key>
5017// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5018// CHECK-NEXT:     <key>message</key>
5019// CHECK-NEXT:     <string>Type &apos;NSNumber *&apos; is inferred from this context</string>
5020// CHECK-NEXT:    </dict>
5021// CHECK-NEXT:    <dict>
5022// CHECK-NEXT:     <key>kind</key><string>event</string>
5023// CHECK-NEXT:     <key>location</key>
5024// CHECK-NEXT:     <dict>
5025// CHECK-NEXT:      <key>line</key><integer>245</integer>
5026// CHECK-NEXT:      <key>col</key><integer>9</integer>
5027// CHECK-NEXT:      <key>file</key><integer>0</integer>
5028// CHECK-NEXT:     </dict>
5029// CHECK-NEXT:     <key>ranges</key>
5030// CHECK-NEXT:     <array>
5031// CHECK-NEXT:       <array>
5032// CHECK-NEXT:        <dict>
5033// CHECK-NEXT:         <key>line</key><integer>245</integer>
5034// CHECK-NEXT:         <key>col</key><integer>9</integer>
5035// CHECK-NEXT:         <key>file</key><integer>0</integer>
5036// CHECK-NEXT:        </dict>
5037// CHECK-NEXT:        <dict>
5038// CHECK-NEXT:         <key>line</key><integer>245</integer>
5039// CHECK-NEXT:         <key>col</key><integer>12</integer>
5040// CHECK-NEXT:         <key>file</key><integer>0</integer>
5041// CHECK-NEXT:        </dict>
5042// CHECK-NEXT:       </array>
5043// CHECK-NEXT:     </array>
5044// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5045// CHECK-NEXT:     <key>extended_message</key>
5046// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5047// CHECK-NEXT:     <key>message</key>
5048// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5049// CHECK-NEXT:    </dict>
5050// CHECK-NEXT:   </array>
5051// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSNumber *&apos; which is incompatible with static type &apos;NSString *&apos;</string>
5052// CHECK-NEXT:   <key>category</key><string>Type Error</string>
5053// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
5054// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
5055// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5056// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>df7f090d2b72ac07bc2351177ed6552d</string>
5057// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5058// CHECK-NEXT:  <key>issue_context</key><string>workWithProperties</string>
5059// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>8</string>
5060// CHECK-NEXT:  <key>location</key>
5061// CHECK-NEXT:  <dict>
5062// CHECK-NEXT:   <key>line</key><integer>245</integer>
5063// CHECK-NEXT:   <key>col</key><integer>9</integer>
5064// CHECK-NEXT:   <key>file</key><integer>0</integer>
5065// CHECK-NEXT:  </dict>
5066// CHECK-NEXT:  </dict>
5067// CHECK-NEXT:  <dict>
5068// CHECK-NEXT:   <key>path</key>
5069// CHECK-NEXT:   <array>
5070// CHECK-NEXT:    <dict>
5071// CHECK-NEXT:     <key>kind</key><string>event</string>
5072// CHECK-NEXT:     <key>location</key>
5073// CHECK-NEXT:     <dict>
5074// CHECK-NEXT:      <key>line</key><integer>251</integer>
5075// CHECK-NEXT:      <key>col</key><integer>7</integer>
5076// CHECK-NEXT:      <key>file</key><integer>0</integer>
5077// CHECK-NEXT:     </dict>
5078// CHECK-NEXT:     <key>ranges</key>
5079// CHECK-NEXT:     <array>
5080// CHECK-NEXT:       <array>
5081// CHECK-NEXT:        <dict>
5082// CHECK-NEXT:         <key>line</key><integer>251</integer>
5083// CHECK-NEXT:         <key>col</key><integer>7</integer>
5084// CHECK-NEXT:         <key>file</key><integer>0</integer>
5085// CHECK-NEXT:        </dict>
5086// CHECK-NEXT:        <dict>
5087// CHECK-NEXT:         <key>line</key><integer>251</integer>
5088// CHECK-NEXT:         <key>col</key><integer>7</integer>
5089// CHECK-NEXT:         <key>file</key><integer>0</integer>
5090// CHECK-NEXT:        </dict>
5091// CHECK-NEXT:       </array>
5092// CHECK-NEXT:     </array>
5093// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5094// CHECK-NEXT:     <key>extended_message</key>
5095// 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>
5096// CHECK-NEXT:     <key>message</key>
5097// 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>
5098// CHECK-NEXT:    </dict>
5099// CHECK-NEXT:    <dict>
5100// CHECK-NEXT:     <key>kind</key><string>control</string>
5101// CHECK-NEXT:     <key>edges</key>
5102// CHECK-NEXT:      <array>
5103// CHECK-NEXT:       <dict>
5104// CHECK-NEXT:        <key>start</key>
5105// CHECK-NEXT:         <array>
5106// CHECK-NEXT:          <dict>
5107// CHECK-NEXT:           <key>line</key><integer>251</integer>
5108// CHECK-NEXT:           <key>col</key><integer>3</integer>
5109// CHECK-NEXT:           <key>file</key><integer>0</integer>
5110// CHECK-NEXT:          </dict>
5111// CHECK-NEXT:          <dict>
5112// CHECK-NEXT:           <key>line</key><integer>251</integer>
5113// CHECK-NEXT:           <key>col</key><integer>3</integer>
5114// CHECK-NEXT:           <key>file</key><integer>0</integer>
5115// CHECK-NEXT:          </dict>
5116// CHECK-NEXT:         </array>
5117// CHECK-NEXT:        <key>end</key>
5118// CHECK-NEXT:         <array>
5119// CHECK-NEXT:          <dict>
5120// CHECK-NEXT:           <key>line</key><integer>252</integer>
5121// CHECK-NEXT:           <key>col</key><integer>3</integer>
5122// CHECK-NEXT:           <key>file</key><integer>0</integer>
5123// CHECK-NEXT:          </dict>
5124// CHECK-NEXT:          <dict>
5125// CHECK-NEXT:           <key>line</key><integer>252</integer>
5126// CHECK-NEXT:           <key>col</key><integer>4</integer>
5127// CHECK-NEXT:           <key>file</key><integer>0</integer>
5128// CHECK-NEXT:          </dict>
5129// CHECK-NEXT:         </array>
5130// CHECK-NEXT:       </dict>
5131// CHECK-NEXT:      </array>
5132// CHECK-NEXT:    </dict>
5133// CHECK-NEXT:    <dict>
5134// CHECK-NEXT:     <key>kind</key><string>control</string>
5135// CHECK-NEXT:     <key>edges</key>
5136// CHECK-NEXT:      <array>
5137// CHECK-NEXT:       <dict>
5138// CHECK-NEXT:        <key>start</key>
5139// CHECK-NEXT:         <array>
5140// CHECK-NEXT:          <dict>
5141// CHECK-NEXT:           <key>line</key><integer>252</integer>
5142// CHECK-NEXT:           <key>col</key><integer>3</integer>
5143// CHECK-NEXT:           <key>file</key><integer>0</integer>
5144// CHECK-NEXT:          </dict>
5145// CHECK-NEXT:          <dict>
5146// CHECK-NEXT:           <key>line</key><integer>252</integer>
5147// CHECK-NEXT:           <key>col</key><integer>4</integer>
5148// CHECK-NEXT:           <key>file</key><integer>0</integer>
5149// CHECK-NEXT:          </dict>
5150// CHECK-NEXT:         </array>
5151// CHECK-NEXT:        <key>end</key>
5152// CHECK-NEXT:         <array>
5153// CHECK-NEXT:          <dict>
5154// CHECK-NEXT:           <key>line</key><integer>253</integer>
5155// CHECK-NEXT:           <key>col</key><integer>5</integer>
5156// CHECK-NEXT:           <key>file</key><integer>0</integer>
5157// CHECK-NEXT:          </dict>
5158// CHECK-NEXT:          <dict>
5159// CHECK-NEXT:           <key>line</key><integer>253</integer>
5160// CHECK-NEXT:           <key>col</key><integer>5</integer>
5161// CHECK-NEXT:           <key>file</key><integer>0</integer>
5162// CHECK-NEXT:          </dict>
5163// CHECK-NEXT:         </array>
5164// CHECK-NEXT:       </dict>
5165// CHECK-NEXT:      </array>
5166// CHECK-NEXT:    </dict>
5167// CHECK-NEXT:    <dict>
5168// CHECK-NEXT:     <key>kind</key><string>control</string>
5169// CHECK-NEXT:     <key>edges</key>
5170// CHECK-NEXT:      <array>
5171// CHECK-NEXT:       <dict>
5172// CHECK-NEXT:        <key>start</key>
5173// CHECK-NEXT:         <array>
5174// CHECK-NEXT:          <dict>
5175// CHECK-NEXT:           <key>line</key><integer>253</integer>
5176// CHECK-NEXT:           <key>col</key><integer>5</integer>
5177// CHECK-NEXT:           <key>file</key><integer>0</integer>
5178// CHECK-NEXT:          </dict>
5179// CHECK-NEXT:          <dict>
5180// CHECK-NEXT:           <key>line</key><integer>253</integer>
5181// CHECK-NEXT:           <key>col</key><integer>5</integer>
5182// CHECK-NEXT:           <key>file</key><integer>0</integer>
5183// CHECK-NEXT:          </dict>
5184// CHECK-NEXT:         </array>
5185// CHECK-NEXT:        <key>end</key>
5186// CHECK-NEXT:         <array>
5187// CHECK-NEXT:          <dict>
5188// CHECK-NEXT:           <key>line</key><integer>254</integer>
5189// CHECK-NEXT:           <key>col</key><integer>5</integer>
5190// CHECK-NEXT:           <key>file</key><integer>0</integer>
5191// CHECK-NEXT:          </dict>
5192// CHECK-NEXT:          <dict>
5193// CHECK-NEXT:           <key>line</key><integer>254</integer>
5194// CHECK-NEXT:           <key>col</key><integer>5</integer>
5195// CHECK-NEXT:           <key>file</key><integer>0</integer>
5196// CHECK-NEXT:          </dict>
5197// CHECK-NEXT:         </array>
5198// CHECK-NEXT:       </dict>
5199// CHECK-NEXT:      </array>
5200// CHECK-NEXT:    </dict>
5201// CHECK-NEXT:    <dict>
5202// CHECK-NEXT:     <key>kind</key><string>event</string>
5203// CHECK-NEXT:     <key>location</key>
5204// CHECK-NEXT:     <dict>
5205// CHECK-NEXT:      <key>line</key><integer>254</integer>
5206// CHECK-NEXT:      <key>col</key><integer>5</integer>
5207// CHECK-NEXT:      <key>file</key><integer>0</integer>
5208// CHECK-NEXT:     </dict>
5209// CHECK-NEXT:     <key>ranges</key>
5210// CHECK-NEXT:     <array>
5211// CHECK-NEXT:       <array>
5212// CHECK-NEXT:        <dict>
5213// CHECK-NEXT:         <key>line</key><integer>254</integer>
5214// CHECK-NEXT:         <key>col</key><integer>19</integer>
5215// CHECK-NEXT:         <key>file</key><integer>0</integer>
5216// CHECK-NEXT:        </dict>
5217// CHECK-NEXT:        <dict>
5218// CHECK-NEXT:         <key>line</key><integer>254</integer>
5219// CHECK-NEXT:         <key>col</key><integer>41</integer>
5220// CHECK-NEXT:         <key>file</key><integer>0</integer>
5221// CHECK-NEXT:        </dict>
5222// CHECK-NEXT:       </array>
5223// CHECK-NEXT:     </array>
5224// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5225// CHECK-NEXT:     <key>extended_message</key>
5226// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5227// CHECK-NEXT:     <key>message</key>
5228// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5229// CHECK-NEXT:    </dict>
5230// CHECK-NEXT:   </array>
5231// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5232// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5233// CHECK-NEXT:   <key>type</key><string>Generics</string>
5234// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5235// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5236// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a0fa75143d7a7ac234292642a6d93360</string>
5237// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5238// CHECK-NEXT:  <key>issue_context</key><string>findMethodDeclInTrackedType</string>
5239// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>4</string>
5240// CHECK-NEXT:  <key>location</key>
5241// CHECK-NEXT:  <dict>
5242// CHECK-NEXT:   <key>line</key><integer>254</integer>
5243// CHECK-NEXT:   <key>col</key><integer>5</integer>
5244// CHECK-NEXT:   <key>file</key><integer>0</integer>
5245// CHECK-NEXT:  </dict>
5246// CHECK-NEXT:  </dict>
5247// CHECK-NEXT:  <dict>
5248// CHECK-NEXT:   <key>path</key>
5249// CHECK-NEXT:   <array>
5250// CHECK-NEXT:    <dict>
5251// CHECK-NEXT:     <key>kind</key><string>event</string>
5252// CHECK-NEXT:     <key>location</key>
5253// CHECK-NEXT:     <dict>
5254// CHECK-NEXT:      <key>line</key><integer>263</integer>
5255// CHECK-NEXT:      <key>col</key><integer>7</integer>
5256// CHECK-NEXT:      <key>file</key><integer>0</integer>
5257// CHECK-NEXT:     </dict>
5258// CHECK-NEXT:     <key>ranges</key>
5259// CHECK-NEXT:     <array>
5260// CHECK-NEXT:       <array>
5261// CHECK-NEXT:        <dict>
5262// CHECK-NEXT:         <key>line</key><integer>263</integer>
5263// CHECK-NEXT:         <key>col</key><integer>7</integer>
5264// CHECK-NEXT:         <key>file</key><integer>0</integer>
5265// CHECK-NEXT:        </dict>
5266// CHECK-NEXT:        <dict>
5267// CHECK-NEXT:         <key>line</key><integer>263</integer>
5268// CHECK-NEXT:         <key>col</key><integer>7</integer>
5269// CHECK-NEXT:         <key>file</key><integer>0</integer>
5270// CHECK-NEXT:        </dict>
5271// CHECK-NEXT:       </array>
5272// CHECK-NEXT:     </array>
5273// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5274// CHECK-NEXT:     <key>extended_message</key>
5275// 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>
5276// CHECK-NEXT:     <key>message</key>
5277// 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>
5278// CHECK-NEXT:    </dict>
5279// CHECK-NEXT:    <dict>
5280// CHECK-NEXT:     <key>kind</key><string>control</string>
5281// CHECK-NEXT:     <key>edges</key>
5282// CHECK-NEXT:      <array>
5283// CHECK-NEXT:       <dict>
5284// CHECK-NEXT:        <key>start</key>
5285// CHECK-NEXT:         <array>
5286// CHECK-NEXT:          <dict>
5287// CHECK-NEXT:           <key>line</key><integer>263</integer>
5288// CHECK-NEXT:           <key>col</key><integer>3</integer>
5289// CHECK-NEXT:           <key>file</key><integer>0</integer>
5290// CHECK-NEXT:          </dict>
5291// CHECK-NEXT:          <dict>
5292// CHECK-NEXT:           <key>line</key><integer>263</integer>
5293// CHECK-NEXT:           <key>col</key><integer>3</integer>
5294// CHECK-NEXT:           <key>file</key><integer>0</integer>
5295// CHECK-NEXT:          </dict>
5296// CHECK-NEXT:         </array>
5297// CHECK-NEXT:        <key>end</key>
5298// CHECK-NEXT:         <array>
5299// CHECK-NEXT:          <dict>
5300// CHECK-NEXT:           <key>line</key><integer>264</integer>
5301// CHECK-NEXT:           <key>col</key><integer>3</integer>
5302// CHECK-NEXT:           <key>file</key><integer>0</integer>
5303// CHECK-NEXT:          </dict>
5304// CHECK-NEXT:          <dict>
5305// CHECK-NEXT:           <key>line</key><integer>264</integer>
5306// CHECK-NEXT:           <key>col</key><integer>4</integer>
5307// CHECK-NEXT:           <key>file</key><integer>0</integer>
5308// CHECK-NEXT:          </dict>
5309// CHECK-NEXT:         </array>
5310// CHECK-NEXT:       </dict>
5311// CHECK-NEXT:      </array>
5312// CHECK-NEXT:    </dict>
5313// CHECK-NEXT:    <dict>
5314// CHECK-NEXT:     <key>kind</key><string>control</string>
5315// CHECK-NEXT:     <key>edges</key>
5316// CHECK-NEXT:      <array>
5317// CHECK-NEXT:       <dict>
5318// CHECK-NEXT:        <key>start</key>
5319// CHECK-NEXT:         <array>
5320// CHECK-NEXT:          <dict>
5321// CHECK-NEXT:           <key>line</key><integer>264</integer>
5322// CHECK-NEXT:           <key>col</key><integer>3</integer>
5323// CHECK-NEXT:           <key>file</key><integer>0</integer>
5324// CHECK-NEXT:          </dict>
5325// CHECK-NEXT:          <dict>
5326// CHECK-NEXT:           <key>line</key><integer>264</integer>
5327// CHECK-NEXT:           <key>col</key><integer>4</integer>
5328// CHECK-NEXT:           <key>file</key><integer>0</integer>
5329// CHECK-NEXT:          </dict>
5330// CHECK-NEXT:         </array>
5331// CHECK-NEXT:        <key>end</key>
5332// CHECK-NEXT:         <array>
5333// CHECK-NEXT:          <dict>
5334// CHECK-NEXT:           <key>line</key><integer>265</integer>
5335// CHECK-NEXT:           <key>col</key><integer>5</integer>
5336// CHECK-NEXT:           <key>file</key><integer>0</integer>
5337// CHECK-NEXT:          </dict>
5338// CHECK-NEXT:          <dict>
5339// CHECK-NEXT:           <key>line</key><integer>265</integer>
5340// CHECK-NEXT:           <key>col</key><integer>5</integer>
5341// CHECK-NEXT:           <key>file</key><integer>0</integer>
5342// CHECK-NEXT:          </dict>
5343// CHECK-NEXT:         </array>
5344// CHECK-NEXT:       </dict>
5345// CHECK-NEXT:      </array>
5346// CHECK-NEXT:    </dict>
5347// CHECK-NEXT:    <dict>
5348// CHECK-NEXT:     <key>kind</key><string>event</string>
5349// CHECK-NEXT:     <key>location</key>
5350// CHECK-NEXT:     <dict>
5351// CHECK-NEXT:      <key>line</key><integer>265</integer>
5352// CHECK-NEXT:      <key>col</key><integer>5</integer>
5353// CHECK-NEXT:      <key>file</key><integer>0</integer>
5354// CHECK-NEXT:     </dict>
5355// CHECK-NEXT:     <key>ranges</key>
5356// CHECK-NEXT:     <array>
5357// CHECK-NEXT:       <array>
5358// CHECK-NEXT:        <dict>
5359// CHECK-NEXT:         <key>line</key><integer>265</integer>
5360// CHECK-NEXT:         <key>col</key><integer>19</integer>
5361// CHECK-NEXT:         <key>file</key><integer>0</integer>
5362// CHECK-NEXT:        </dict>
5363// CHECK-NEXT:        <dict>
5364// CHECK-NEXT:         <key>line</key><integer>265</integer>
5365// CHECK-NEXT:         <key>col</key><integer>41</integer>
5366// CHECK-NEXT:         <key>file</key><integer>0</integer>
5367// CHECK-NEXT:        </dict>
5368// CHECK-NEXT:       </array>
5369// CHECK-NEXT:     </array>
5370// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5371// CHECK-NEXT:     <key>extended_message</key>
5372// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5373// CHECK-NEXT:     <key>message</key>
5374// CHECK-NEXT:     <string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5375// CHECK-NEXT:    </dict>
5376// CHECK-NEXT:   </array>
5377// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSString *&apos; to incompatible type &apos;NSMutableString *&apos;</string>
5378// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5379// CHECK-NEXT:   <key>type</key><string>Generics</string>
5380// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5381// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5382// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>d0b99c8523e81ec43ba4ea80aeedef1b</string>
5383// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5384// CHECK-NEXT:  <key>issue_context</key><string>findMethodDeclInTrackedType2</string>
5385// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
5386// CHECK-NEXT:  <key>location</key>
5387// CHECK-NEXT:  <dict>
5388// CHECK-NEXT:   <key>line</key><integer>265</integer>
5389// CHECK-NEXT:   <key>col</key><integer>5</integer>
5390// CHECK-NEXT:   <key>file</key><integer>0</integer>
5391// CHECK-NEXT:  </dict>
5392// CHECK-NEXT:  </dict>
5393// CHECK-NEXT:  <dict>
5394// CHECK-NEXT:   <key>path</key>
5395// CHECK-NEXT:   <array>
5396// CHECK-NEXT:    <dict>
5397// CHECK-NEXT:     <key>kind</key><string>event</string>
5398// CHECK-NEXT:     <key>location</key>
5399// CHECK-NEXT:     <dict>
5400// CHECK-NEXT:      <key>line</key><integer>278</integer>
5401// CHECK-NEXT:      <key>col</key><integer>30</integer>
5402// CHECK-NEXT:      <key>file</key><integer>0</integer>
5403// CHECK-NEXT:     </dict>
5404// CHECK-NEXT:     <key>ranges</key>
5405// CHECK-NEXT:     <array>
5406// CHECK-NEXT:       <array>
5407// CHECK-NEXT:        <dict>
5408// CHECK-NEXT:         <key>line</key><integer>278</integer>
5409// CHECK-NEXT:         <key>col</key><integer>30</integer>
5410// CHECK-NEXT:         <key>file</key><integer>0</integer>
5411// CHECK-NEXT:        </dict>
5412// CHECK-NEXT:        <dict>
5413// CHECK-NEXT:         <key>line</key><integer>278</integer>
5414// CHECK-NEXT:         <key>col</key><integer>42</integer>
5415// CHECK-NEXT:         <key>file</key><integer>0</integer>
5416// CHECK-NEXT:        </dict>
5417// CHECK-NEXT:       </array>
5418// CHECK-NEXT:     </array>
5419// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5420// CHECK-NEXT:     <key>extended_message</key>
5421// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
5422// CHECK-NEXT:     <key>message</key>
5423// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from implicit cast (from &apos;NSArray *&apos; to &apos;NSArray&lt;NSString *&gt; *&apos;)</string>
5424// CHECK-NEXT:    </dict>
5425// CHECK-NEXT:    <dict>
5426// CHECK-NEXT:     <key>kind</key><string>control</string>
5427// CHECK-NEXT:     <key>edges</key>
5428// CHECK-NEXT:      <array>
5429// CHECK-NEXT:       <dict>
5430// CHECK-NEXT:        <key>start</key>
5431// CHECK-NEXT:         <array>
5432// CHECK-NEXT:          <dict>
5433// CHECK-NEXT:           <key>line</key><integer>278</integer>
5434// CHECK-NEXT:           <key>col</key><integer>3</integer>
5435// CHECK-NEXT:           <key>file</key><integer>0</integer>
5436// CHECK-NEXT:          </dict>
5437// CHECK-NEXT:          <dict>
5438// CHECK-NEXT:           <key>line</key><integer>278</integer>
5439// CHECK-NEXT:           <key>col</key><integer>9</integer>
5440// CHECK-NEXT:           <key>file</key><integer>0</integer>
5441// CHECK-NEXT:          </dict>
5442// CHECK-NEXT:         </array>
5443// CHECK-NEXT:        <key>end</key>
5444// CHECK-NEXT:         <array>
5445// CHECK-NEXT:          <dict>
5446// CHECK-NEXT:           <key>line</key><integer>280</integer>
5447// CHECK-NEXT:           <key>col</key><integer>3</integer>
5448// CHECK-NEXT:           <key>file</key><integer>0</integer>
5449// CHECK-NEXT:          </dict>
5450// CHECK-NEXT:          <dict>
5451// CHECK-NEXT:           <key>line</key><integer>280</integer>
5452// CHECK-NEXT:           <key>col</key><integer>3</integer>
5453// CHECK-NEXT:           <key>file</key><integer>0</integer>
5454// CHECK-NEXT:          </dict>
5455// CHECK-NEXT:         </array>
5456// CHECK-NEXT:       </dict>
5457// CHECK-NEXT:      </array>
5458// CHECK-NEXT:    </dict>
5459// CHECK-NEXT:    <dict>
5460// CHECK-NEXT:     <key>kind</key><string>event</string>
5461// CHECK-NEXT:     <key>location</key>
5462// CHECK-NEXT:     <dict>
5463// CHECK-NEXT:      <key>line</key><integer>280</integer>
5464// CHECK-NEXT:      <key>col</key><integer>3</integer>
5465// CHECK-NEXT:      <key>file</key><integer>0</integer>
5466// CHECK-NEXT:     </dict>
5467// CHECK-NEXT:     <key>ranges</key>
5468// CHECK-NEXT:     <array>
5469// CHECK-NEXT:       <array>
5470// CHECK-NEXT:        <dict>
5471// CHECK-NEXT:         <key>line</key><integer>280</integer>
5472// CHECK-NEXT:         <key>col</key><integer>19</integer>
5473// CHECK-NEXT:         <key>file</key><integer>0</integer>
5474// CHECK-NEXT:        </dict>
5475// CHECK-NEXT:        <dict>
5476// CHECK-NEXT:         <key>line</key><integer>280</integer>
5477// CHECK-NEXT:         <key>col</key><integer>41</integer>
5478// CHECK-NEXT:         <key>file</key><integer>0</integer>
5479// CHECK-NEXT:        </dict>
5480// CHECK-NEXT:       </array>
5481// CHECK-NEXT:     </array>
5482// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5483// CHECK-NEXT:     <key>extended_message</key>
5484// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
5485// CHECK-NEXT:     <key>message</key>
5486// CHECK-NEXT:     <string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
5487// CHECK-NEXT:    </dict>
5488// CHECK-NEXT:   </array>
5489// CHECK-NEXT:   <key>description</key><string>Conversion from value of type &apos;NSNumber *&apos; to incompatible type &apos;NSString *&apos;</string>
5490// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5491// CHECK-NEXT:   <key>type</key><string>Generics</string>
5492// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5493// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5494// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>ed543d4961e934fb4ac8db00e885fc7f</string>
5495// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5496// CHECK-NEXT:  <key>issue_context</key><string>testAnnotatedLiterals</string>
5497// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
5498// CHECK-NEXT:  <key>location</key>
5499// CHECK-NEXT:  <dict>
5500// CHECK-NEXT:   <key>line</key><integer>280</integer>
5501// CHECK-NEXT:   <key>col</key><integer>3</integer>
5502// CHECK-NEXT:   <key>file</key><integer>0</integer>
5503// CHECK-NEXT:  </dict>
5504// CHECK-NEXT:  </dict>
5505// CHECK-NEXT:  <dict>
5506// CHECK-NEXT:   <key>path</key>
5507// CHECK-NEXT:   <array>
5508// CHECK-NEXT:    <dict>
5509// CHECK-NEXT:     <key>kind</key><string>control</string>
5510// CHECK-NEXT:     <key>edges</key>
5511// CHECK-NEXT:      <array>
5512// CHECK-NEXT:       <dict>
5513// CHECK-NEXT:        <key>start</key>
5514// CHECK-NEXT:         <array>
5515// CHECK-NEXT:          <dict>
5516// CHECK-NEXT:           <key>line</key><integer>289</integer>
5517// CHECK-NEXT:           <key>col</key><integer>3</integer>
5518// CHECK-NEXT:           <key>file</key><integer>0</integer>
5519// CHECK-NEXT:          </dict>
5520// CHECK-NEXT:          <dict>
5521// CHECK-NEXT:           <key>line</key><integer>289</integer>
5522// CHECK-NEXT:           <key>col</key><integer>7</integer>
5523// CHECK-NEXT:           <key>file</key><integer>0</integer>
5524// CHECK-NEXT:          </dict>
5525// CHECK-NEXT:         </array>
5526// CHECK-NEXT:        <key>end</key>
5527// CHECK-NEXT:         <array>
5528// CHECK-NEXT:          <dict>
5529// CHECK-NEXT:           <key>line</key><integer>290</integer>
5530// CHECK-NEXT:           <key>col</key><integer>3</integer>
5531// CHECK-NEXT:           <key>file</key><integer>0</integer>
5532// CHECK-NEXT:          </dict>
5533// CHECK-NEXT:          <dict>
5534// CHECK-NEXT:           <key>line</key><integer>290</integer>
5535// CHECK-NEXT:           <key>col</key><integer>9</integer>
5536// CHECK-NEXT:           <key>file</key><integer>0</integer>
5537// CHECK-NEXT:          </dict>
5538// CHECK-NEXT:         </array>
5539// CHECK-NEXT:       </dict>
5540// CHECK-NEXT:      </array>
5541// CHECK-NEXT:    </dict>
5542// CHECK-NEXT:    <dict>
5543// CHECK-NEXT:     <key>kind</key><string>control</string>
5544// CHECK-NEXT:     <key>edges</key>
5545// CHECK-NEXT:      <array>
5546// CHECK-NEXT:       <dict>
5547// CHECK-NEXT:        <key>start</key>
5548// CHECK-NEXT:         <array>
5549// CHECK-NEXT:          <dict>
5550// CHECK-NEXT:           <key>line</key><integer>290</integer>
5551// CHECK-NEXT:           <key>col</key><integer>3</integer>
5552// CHECK-NEXT:           <key>file</key><integer>0</integer>
5553// CHECK-NEXT:          </dict>
5554// CHECK-NEXT:          <dict>
5555// CHECK-NEXT:           <key>line</key><integer>290</integer>
5556// CHECK-NEXT:           <key>col</key><integer>9</integer>
5557// CHECK-NEXT:           <key>file</key><integer>0</integer>
5558// CHECK-NEXT:          </dict>
5559// CHECK-NEXT:         </array>
5560// CHECK-NEXT:        <key>end</key>
5561// CHECK-NEXT:         <array>
5562// CHECK-NEXT:          <dict>
5563// CHECK-NEXT:           <key>line</key><integer>290</integer>
5564// CHECK-NEXT:           <key>col</key><integer>28</integer>
5565// CHECK-NEXT:           <key>file</key><integer>0</integer>
5566// CHECK-NEXT:          </dict>
5567// CHECK-NEXT:          <dict>
5568// CHECK-NEXT:           <key>line</key><integer>290</integer>
5569// CHECK-NEXT:           <key>col</key><integer>28</integer>
5570// CHECK-NEXT:           <key>file</key><integer>0</integer>
5571// CHECK-NEXT:          </dict>
5572// CHECK-NEXT:         </array>
5573// CHECK-NEXT:       </dict>
5574// CHECK-NEXT:      </array>
5575// CHECK-NEXT:    </dict>
5576// CHECK-NEXT:    <dict>
5577// CHECK-NEXT:     <key>kind</key><string>event</string>
5578// CHECK-NEXT:     <key>location</key>
5579// CHECK-NEXT:     <dict>
5580// CHECK-NEXT:      <key>line</key><integer>290</integer>
5581// CHECK-NEXT:      <key>col</key><integer>28</integer>
5582// CHECK-NEXT:      <key>file</key><integer>0</integer>
5583// CHECK-NEXT:     </dict>
5584// CHECK-NEXT:     <key>ranges</key>
5585// CHECK-NEXT:     <array>
5586// CHECK-NEXT:       <array>
5587// CHECK-NEXT:        <dict>
5588// CHECK-NEXT:         <key>line</key><integer>290</integer>
5589// CHECK-NEXT:         <key>col</key><integer>28</integer>
5590// CHECK-NEXT:         <key>file</key><integer>0</integer>
5591// CHECK-NEXT:        </dict>
5592// CHECK-NEXT:        <dict>
5593// CHECK-NEXT:         <key>line</key><integer>290</integer>
5594// CHECK-NEXT:         <key>col</key><integer>39</integer>
5595// CHECK-NEXT:         <key>file</key><integer>0</integer>
5596// CHECK-NEXT:        </dict>
5597// CHECK-NEXT:       </array>
5598// CHECK-NEXT:     </array>
5599// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5600// CHECK-NEXT:     <key>extended_message</key>
5601// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5602// CHECK-NEXT:     <key>message</key>
5603// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5604// CHECK-NEXT:    </dict>
5605// CHECK-NEXT:    <dict>
5606// CHECK-NEXT:     <key>kind</key><string>event</string>
5607// CHECK-NEXT:     <key>location</key>
5608// CHECK-NEXT:     <dict>
5609// CHECK-NEXT:      <key>line</key><integer>290</integer>
5610// CHECK-NEXT:      <key>col</key><integer>28</integer>
5611// CHECK-NEXT:      <key>file</key><integer>0</integer>
5612// CHECK-NEXT:     </dict>
5613// CHECK-NEXT:     <key>ranges</key>
5614// CHECK-NEXT:     <array>
5615// CHECK-NEXT:       <array>
5616// CHECK-NEXT:        <dict>
5617// CHECK-NEXT:         <key>line</key><integer>290</integer>
5618// CHECK-NEXT:         <key>col</key><integer>28</integer>
5619// CHECK-NEXT:         <key>file</key><integer>0</integer>
5620// CHECK-NEXT:        </dict>
5621// CHECK-NEXT:        <dict>
5622// CHECK-NEXT:         <key>line</key><integer>290</integer>
5623// CHECK-NEXT:         <key>col</key><integer>39</integer>
5624// CHECK-NEXT:         <key>file</key><integer>0</integer>
5625// CHECK-NEXT:        </dict>
5626// CHECK-NEXT:       </array>
5627// CHECK-NEXT:     </array>
5628// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5629// CHECK-NEXT:     <key>extended_message</key>
5630// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5631// CHECK-NEXT:     <key>message</key>
5632// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5633// CHECK-NEXT:    </dict>
5634// CHECK-NEXT:   </array>
5635// 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>
5636// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5637// CHECK-NEXT:   <key>type</key><string>Generics</string>
5638// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5639// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5640// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>46aa94b866747bcbe1ded581da7a2633</string>
5641// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5642// CHECK-NEXT:  <key>issue_context</key><string>trackedClassVariables</string>
5643// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
5644// CHECK-NEXT:  <key>location</key>
5645// CHECK-NEXT:  <dict>
5646// CHECK-NEXT:   <key>line</key><integer>290</integer>
5647// CHECK-NEXT:   <key>col</key><integer>28</integer>
5648// CHECK-NEXT:   <key>file</key><integer>0</integer>
5649// CHECK-NEXT:  </dict>
5650// CHECK-NEXT:  </dict>
5651// CHECK-NEXT:  <dict>
5652// CHECK-NEXT:   <key>path</key>
5653// CHECK-NEXT:   <array>
5654// CHECK-NEXT:    <dict>
5655// CHECK-NEXT:     <key>kind</key><string>control</string>
5656// CHECK-NEXT:     <key>edges</key>
5657// CHECK-NEXT:      <array>
5658// CHECK-NEXT:       <dict>
5659// CHECK-NEXT:        <key>start</key>
5660// CHECK-NEXT:         <array>
5661// CHECK-NEXT:          <dict>
5662// CHECK-NEXT:           <key>line</key><integer>289</integer>
5663// CHECK-NEXT:           <key>col</key><integer>3</integer>
5664// CHECK-NEXT:           <key>file</key><integer>0</integer>
5665// CHECK-NEXT:          </dict>
5666// CHECK-NEXT:          <dict>
5667// CHECK-NEXT:           <key>line</key><integer>289</integer>
5668// CHECK-NEXT:           <key>col</key><integer>7</integer>
5669// CHECK-NEXT:           <key>file</key><integer>0</integer>
5670// CHECK-NEXT:          </dict>
5671// CHECK-NEXT:         </array>
5672// CHECK-NEXT:        <key>end</key>
5673// CHECK-NEXT:         <array>
5674// CHECK-NEXT:          <dict>
5675// CHECK-NEXT:           <key>line</key><integer>291</integer>
5676// CHECK-NEXT:           <key>col</key><integer>3</integer>
5677// CHECK-NEXT:           <key>file</key><integer>0</integer>
5678// CHECK-NEXT:          </dict>
5679// CHECK-NEXT:          <dict>
5680// CHECK-NEXT:           <key>line</key><integer>291</integer>
5681// CHECK-NEXT:           <key>col</key><integer>3</integer>
5682// CHECK-NEXT:           <key>file</key><integer>0</integer>
5683// CHECK-NEXT:          </dict>
5684// CHECK-NEXT:         </array>
5685// CHECK-NEXT:       </dict>
5686// CHECK-NEXT:      </array>
5687// CHECK-NEXT:    </dict>
5688// CHECK-NEXT:    <dict>
5689// CHECK-NEXT:     <key>kind</key><string>control</string>
5690// CHECK-NEXT:     <key>edges</key>
5691// CHECK-NEXT:      <array>
5692// CHECK-NEXT:       <dict>
5693// CHECK-NEXT:        <key>start</key>
5694// CHECK-NEXT:         <array>
5695// CHECK-NEXT:          <dict>
5696// CHECK-NEXT:           <key>line</key><integer>291</integer>
5697// CHECK-NEXT:           <key>col</key><integer>3</integer>
5698// CHECK-NEXT:           <key>file</key><integer>0</integer>
5699// CHECK-NEXT:          </dict>
5700// CHECK-NEXT:          <dict>
5701// CHECK-NEXT:           <key>line</key><integer>291</integer>
5702// CHECK-NEXT:           <key>col</key><integer>3</integer>
5703// CHECK-NEXT:           <key>file</key><integer>0</integer>
5704// CHECK-NEXT:          </dict>
5705// CHECK-NEXT:         </array>
5706// CHECK-NEXT:        <key>end</key>
5707// CHECK-NEXT:         <array>
5708// CHECK-NEXT:          <dict>
5709// CHECK-NEXT:           <key>line</key><integer>291</integer>
5710// CHECK-NEXT:           <key>col</key><integer>7</integer>
5711// CHECK-NEXT:           <key>file</key><integer>0</integer>
5712// CHECK-NEXT:          </dict>
5713// CHECK-NEXT:          <dict>
5714// CHECK-NEXT:           <key>line</key><integer>291</integer>
5715// CHECK-NEXT:           <key>col</key><integer>7</integer>
5716// CHECK-NEXT:           <key>file</key><integer>0</integer>
5717// CHECK-NEXT:          </dict>
5718// CHECK-NEXT:         </array>
5719// CHECK-NEXT:       </dict>
5720// CHECK-NEXT:      </array>
5721// CHECK-NEXT:    </dict>
5722// CHECK-NEXT:    <dict>
5723// CHECK-NEXT:     <key>kind</key><string>event</string>
5724// CHECK-NEXT:     <key>location</key>
5725// CHECK-NEXT:     <dict>
5726// CHECK-NEXT:      <key>line</key><integer>291</integer>
5727// CHECK-NEXT:      <key>col</key><integer>7</integer>
5728// CHECK-NEXT:      <key>file</key><integer>0</integer>
5729// CHECK-NEXT:     </dict>
5730// CHECK-NEXT:     <key>ranges</key>
5731// CHECK-NEXT:     <array>
5732// CHECK-NEXT:       <array>
5733// CHECK-NEXT:        <dict>
5734// CHECK-NEXT:         <key>line</key><integer>291</integer>
5735// CHECK-NEXT:         <key>col</key><integer>7</integer>
5736// CHECK-NEXT:         <key>file</key><integer>0</integer>
5737// CHECK-NEXT:        </dict>
5738// CHECK-NEXT:        <dict>
5739// CHECK-NEXT:         <key>line</key><integer>291</integer>
5740// CHECK-NEXT:         <key>col</key><integer>19</integer>
5741// CHECK-NEXT:         <key>file</key><integer>0</integer>
5742// CHECK-NEXT:        </dict>
5743// CHECK-NEXT:       </array>
5744// CHECK-NEXT:     </array>
5745// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5746// CHECK-NEXT:     <key>extended_message</key>
5747// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5748// CHECK-NEXT:     <key>message</key>
5749// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
5750// CHECK-NEXT:    </dict>
5751// CHECK-NEXT:    <dict>
5752// CHECK-NEXT:     <key>kind</key><string>event</string>
5753// CHECK-NEXT:     <key>location</key>
5754// CHECK-NEXT:     <dict>
5755// CHECK-NEXT:      <key>line</key><integer>291</integer>
5756// CHECK-NEXT:      <key>col</key><integer>7</integer>
5757// CHECK-NEXT:      <key>file</key><integer>0</integer>
5758// CHECK-NEXT:     </dict>
5759// CHECK-NEXT:     <key>ranges</key>
5760// CHECK-NEXT:     <array>
5761// CHECK-NEXT:       <array>
5762// CHECK-NEXT:        <dict>
5763// CHECK-NEXT:         <key>line</key><integer>291</integer>
5764// CHECK-NEXT:         <key>col</key><integer>7</integer>
5765// CHECK-NEXT:         <key>file</key><integer>0</integer>
5766// CHECK-NEXT:        </dict>
5767// CHECK-NEXT:        <dict>
5768// CHECK-NEXT:         <key>line</key><integer>291</integer>
5769// CHECK-NEXT:         <key>col</key><integer>19</integer>
5770// CHECK-NEXT:         <key>file</key><integer>0</integer>
5771// CHECK-NEXT:        </dict>
5772// CHECK-NEXT:       </array>
5773// CHECK-NEXT:     </array>
5774// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5775// CHECK-NEXT:     <key>extended_message</key>
5776// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5777// CHECK-NEXT:     <key>message</key>
5778// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5779// CHECK-NEXT:    </dict>
5780// CHECK-NEXT:   </array>
5781// 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>
5782// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5783// CHECK-NEXT:   <key>type</key><string>Generics</string>
5784// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5785// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5786// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>a759006d1ce88e15fcd6de6a29e2579c</string>
5787// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5788// CHECK-NEXT:  <key>issue_context</key><string>trackedClassVariables</string>
5789// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
5790// CHECK-NEXT:  <key>location</key>
5791// CHECK-NEXT:  <dict>
5792// CHECK-NEXT:   <key>line</key><integer>291</integer>
5793// CHECK-NEXT:   <key>col</key><integer>7</integer>
5794// CHECK-NEXT:   <key>file</key><integer>0</integer>
5795// CHECK-NEXT:  </dict>
5796// CHECK-NEXT:  </dict>
5797// CHECK-NEXT:  <dict>
5798// CHECK-NEXT:   <key>path</key>
5799// CHECK-NEXT:   <array>
5800// CHECK-NEXT:    <dict>
5801// CHECK-NEXT:     <key>kind</key><string>event</string>
5802// CHECK-NEXT:     <key>location</key>
5803// CHECK-NEXT:     <dict>
5804// CHECK-NEXT:      <key>line</key><integer>295</integer>
5805// CHECK-NEXT:      <key>col</key><integer>13</integer>
5806// CHECK-NEXT:      <key>file</key><integer>0</integer>
5807// CHECK-NEXT:     </dict>
5808// CHECK-NEXT:     <key>ranges</key>
5809// CHECK-NEXT:     <array>
5810// CHECK-NEXT:       <array>
5811// CHECK-NEXT:        <dict>
5812// CHECK-NEXT:         <key>line</key><integer>295</integer>
5813// CHECK-NEXT:         <key>col</key><integer>13</integer>
5814// CHECK-NEXT:         <key>file</key><integer>0</integer>
5815// CHECK-NEXT:        </dict>
5816// CHECK-NEXT:        <dict>
5817// CHECK-NEXT:         <key>line</key><integer>295</integer>
5818// CHECK-NEXT:         <key>col</key><integer>15</integer>
5819// CHECK-NEXT:         <key>file</key><integer>0</integer>
5820// CHECK-NEXT:        </dict>
5821// CHECK-NEXT:       </array>
5822// CHECK-NEXT:     </array>
5823// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5824// CHECK-NEXT:     <key>extended_message</key>
5825// 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>
5826// CHECK-NEXT:     <key>message</key>
5827// 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>
5828// CHECK-NEXT:    </dict>
5829// CHECK-NEXT:    <dict>
5830// CHECK-NEXT:     <key>kind</key><string>control</string>
5831// CHECK-NEXT:     <key>edges</key>
5832// CHECK-NEXT:      <array>
5833// CHECK-NEXT:       <dict>
5834// CHECK-NEXT:        <key>start</key>
5835// CHECK-NEXT:         <array>
5836// CHECK-NEXT:          <dict>
5837// CHECK-NEXT:           <key>line</key><integer>295</integer>
5838// CHECK-NEXT:           <key>col</key><integer>3</integer>
5839// CHECK-NEXT:           <key>file</key><integer>0</integer>
5840// CHECK-NEXT:          </dict>
5841// CHECK-NEXT:          <dict>
5842// CHECK-NEXT:           <key>line</key><integer>295</integer>
5843// CHECK-NEXT:           <key>col</key><integer>4</integer>
5844// CHECK-NEXT:           <key>file</key><integer>0</integer>
5845// CHECK-NEXT:          </dict>
5846// CHECK-NEXT:         </array>
5847// CHECK-NEXT:        <key>end</key>
5848// CHECK-NEXT:         <array>
5849// CHECK-NEXT:          <dict>
5850// CHECK-NEXT:           <key>line</key><integer>296</integer>
5851// CHECK-NEXT:           <key>col</key><integer>3</integer>
5852// CHECK-NEXT:           <key>file</key><integer>0</integer>
5853// CHECK-NEXT:          </dict>
5854// CHECK-NEXT:          <dict>
5855// CHECK-NEXT:           <key>line</key><integer>296</integer>
5856// CHECK-NEXT:           <key>col</key><integer>3</integer>
5857// CHECK-NEXT:           <key>file</key><integer>0</integer>
5858// CHECK-NEXT:          </dict>
5859// CHECK-NEXT:         </array>
5860// CHECK-NEXT:       </dict>
5861// CHECK-NEXT:      </array>
5862// CHECK-NEXT:    </dict>
5863// CHECK-NEXT:    <dict>
5864// CHECK-NEXT:     <key>kind</key><string>control</string>
5865// CHECK-NEXT:     <key>edges</key>
5866// CHECK-NEXT:      <array>
5867// CHECK-NEXT:       <dict>
5868// CHECK-NEXT:        <key>start</key>
5869// CHECK-NEXT:         <array>
5870// CHECK-NEXT:          <dict>
5871// CHECK-NEXT:           <key>line</key><integer>296</integer>
5872// CHECK-NEXT:           <key>col</key><integer>3</integer>
5873// CHECK-NEXT:           <key>file</key><integer>0</integer>
5874// CHECK-NEXT:          </dict>
5875// CHECK-NEXT:          <dict>
5876// CHECK-NEXT:           <key>line</key><integer>296</integer>
5877// CHECK-NEXT:           <key>col</key><integer>3</integer>
5878// CHECK-NEXT:           <key>file</key><integer>0</integer>
5879// CHECK-NEXT:          </dict>
5880// CHECK-NEXT:         </array>
5881// CHECK-NEXT:        <key>end</key>
5882// CHECK-NEXT:         <array>
5883// CHECK-NEXT:          <dict>
5884// CHECK-NEXT:           <key>line</key><integer>296</integer>
5885// CHECK-NEXT:           <key>col</key><integer>18</integer>
5886// CHECK-NEXT:           <key>file</key><integer>0</integer>
5887// CHECK-NEXT:          </dict>
5888// CHECK-NEXT:          <dict>
5889// CHECK-NEXT:           <key>line</key><integer>296</integer>
5890// CHECK-NEXT:           <key>col</key><integer>21</integer>
5891// CHECK-NEXT:           <key>file</key><integer>0</integer>
5892// CHECK-NEXT:          </dict>
5893// CHECK-NEXT:         </array>
5894// CHECK-NEXT:       </dict>
5895// CHECK-NEXT:      </array>
5896// CHECK-NEXT:    </dict>
5897// CHECK-NEXT:    <dict>
5898// CHECK-NEXT:     <key>kind</key><string>event</string>
5899// CHECK-NEXT:     <key>location</key>
5900// CHECK-NEXT:     <dict>
5901// CHECK-NEXT:      <key>line</key><integer>296</integer>
5902// CHECK-NEXT:      <key>col</key><integer>18</integer>
5903// CHECK-NEXT:      <key>file</key><integer>0</integer>
5904// CHECK-NEXT:     </dict>
5905// CHECK-NEXT:     <key>ranges</key>
5906// CHECK-NEXT:     <array>
5907// CHECK-NEXT:       <array>
5908// CHECK-NEXT:        <dict>
5909// CHECK-NEXT:         <key>line</key><integer>296</integer>
5910// CHECK-NEXT:         <key>col</key><integer>18</integer>
5911// CHECK-NEXT:         <key>file</key><integer>0</integer>
5912// CHECK-NEXT:        </dict>
5913// CHECK-NEXT:        <dict>
5914// CHECK-NEXT:         <key>line</key><integer>296</integer>
5915// CHECK-NEXT:         <key>col</key><integer>21</integer>
5916// CHECK-NEXT:         <key>file</key><integer>0</integer>
5917// CHECK-NEXT:        </dict>
5918// CHECK-NEXT:       </array>
5919// CHECK-NEXT:     </array>
5920// CHECK-NEXT:     <key>depth</key><integer>0</integer>
5921// CHECK-NEXT:     <key>extended_message</key>
5922// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5923// CHECK-NEXT:     <key>message</key>
5924// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
5925// CHECK-NEXT:    </dict>
5926// CHECK-NEXT:   </array>
5927// 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>
5928// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
5929// CHECK-NEXT:   <key>type</key><string>Generics</string>
5930// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
5931// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
5932// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>4bb1729ff86647750b458e6f8d883f08</string>
5933// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
5934// CHECK-NEXT:  <key>issue_context</key><string>nestedCollections</string>
5935// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
5936// CHECK-NEXT:  <key>location</key>
5937// CHECK-NEXT:  <dict>
5938// CHECK-NEXT:   <key>line</key><integer>296</integer>
5939// CHECK-NEXT:   <key>col</key><integer>18</integer>
5940// CHECK-NEXT:   <key>file</key><integer>0</integer>
5941// CHECK-NEXT:  </dict>
5942// CHECK-NEXT:  </dict>
5943// CHECK-NEXT:  <dict>
5944// CHECK-NEXT:   <key>path</key>
5945// CHECK-NEXT:   <array>
5946// CHECK-NEXT:    <dict>
5947// CHECK-NEXT:     <key>kind</key><string>control</string>
5948// CHECK-NEXT:     <key>edges</key>
5949// CHECK-NEXT:      <array>
5950// CHECK-NEXT:       <dict>
5951// CHECK-NEXT:        <key>start</key>
5952// CHECK-NEXT:         <array>
5953// CHECK-NEXT:          <dict>
5954// CHECK-NEXT:           <key>line</key><integer>308</integer>
5955// CHECK-NEXT:           <key>col</key><integer>3</integer>
5956// CHECK-NEXT:           <key>file</key><integer>0</integer>
5957// CHECK-NEXT:          </dict>
5958// CHECK-NEXT:          <dict>
5959// CHECK-NEXT:           <key>line</key><integer>308</integer>
5960// CHECK-NEXT:           <key>col</key><integer>9</integer>
5961// CHECK-NEXT:           <key>file</key><integer>0</integer>
5962// CHECK-NEXT:          </dict>
5963// CHECK-NEXT:         </array>
5964// CHECK-NEXT:        <key>end</key>
5965// CHECK-NEXT:         <array>
5966// CHECK-NEXT:          <dict>
5967// CHECK-NEXT:           <key>line</key><integer>309</integer>
5968// CHECK-NEXT:           <key>col</key><integer>3</integer>
5969// CHECK-NEXT:           <key>file</key><integer>0</integer>
5970// CHECK-NEXT:          </dict>
5971// CHECK-NEXT:          <dict>
5972// CHECK-NEXT:           <key>line</key><integer>309</integer>
5973// CHECK-NEXT:           <key>col</key><integer>4</integer>
5974// CHECK-NEXT:           <key>file</key><integer>0</integer>
5975// CHECK-NEXT:          </dict>
5976// CHECK-NEXT:         </array>
5977// CHECK-NEXT:       </dict>
5978// CHECK-NEXT:      </array>
5979// CHECK-NEXT:    </dict>
5980// CHECK-NEXT:    <dict>
5981// CHECK-NEXT:     <key>kind</key><string>event</string>
5982// CHECK-NEXT:     <key>location</key>
5983// CHECK-NEXT:     <dict>
5984// CHECK-NEXT:      <key>line</key><integer>309</integer>
5985// CHECK-NEXT:      <key>col</key><integer>10</integer>
5986// CHECK-NEXT:      <key>file</key><integer>0</integer>
5987// CHECK-NEXT:     </dict>
5988// CHECK-NEXT:     <key>ranges</key>
5989// CHECK-NEXT:     <array>
5990// CHECK-NEXT:       <array>
5991// CHECK-NEXT:        <dict>
5992// CHECK-NEXT:         <key>line</key><integer>309</integer>
5993// CHECK-NEXT:         <key>col</key><integer>10</integer>
5994// CHECK-NEXT:         <key>file</key><integer>0</integer>
5995// CHECK-NEXT:        </dict>
5996// CHECK-NEXT:        <dict>
5997// CHECK-NEXT:         <key>line</key><integer>309</integer>
5998// CHECK-NEXT:         <key>col</key><integer>29</integer>
5999// CHECK-NEXT:         <key>file</key><integer>0</integer>
6000// CHECK-NEXT:        </dict>
6001// CHECK-NEXT:       </array>
6002// CHECK-NEXT:     </array>
6003// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6004// CHECK-NEXT:     <key>extended_message</key>
6005// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6006// CHECK-NEXT:     <key>message</key>
6007// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6008// CHECK-NEXT:    </dict>
6009// CHECK-NEXT:    <dict>
6010// CHECK-NEXT:     <key>kind</key><string>control</string>
6011// CHECK-NEXT:     <key>edges</key>
6012// CHECK-NEXT:      <array>
6013// CHECK-NEXT:       <dict>
6014// CHECK-NEXT:        <key>start</key>
6015// CHECK-NEXT:         <array>
6016// CHECK-NEXT:          <dict>
6017// CHECK-NEXT:           <key>line</key><integer>309</integer>
6018// CHECK-NEXT:           <key>col</key><integer>3</integer>
6019// CHECK-NEXT:           <key>file</key><integer>0</integer>
6020// CHECK-NEXT:          </dict>
6021// CHECK-NEXT:          <dict>
6022// CHECK-NEXT:           <key>line</key><integer>309</integer>
6023// CHECK-NEXT:           <key>col</key><integer>4</integer>
6024// CHECK-NEXT:           <key>file</key><integer>0</integer>
6025// CHECK-NEXT:          </dict>
6026// CHECK-NEXT:         </array>
6027// CHECK-NEXT:        <key>end</key>
6028// CHECK-NEXT:         <array>
6029// CHECK-NEXT:          <dict>
6030// CHECK-NEXT:           <key>line</key><integer>310</integer>
6031// CHECK-NEXT:           <key>col</key><integer>3</integer>
6032// CHECK-NEXT:           <key>file</key><integer>0</integer>
6033// CHECK-NEXT:          </dict>
6034// CHECK-NEXT:          <dict>
6035// CHECK-NEXT:           <key>line</key><integer>310</integer>
6036// CHECK-NEXT:           <key>col</key><integer>9</integer>
6037// CHECK-NEXT:           <key>file</key><integer>0</integer>
6038// CHECK-NEXT:          </dict>
6039// CHECK-NEXT:         </array>
6040// CHECK-NEXT:       </dict>
6041// CHECK-NEXT:      </array>
6042// CHECK-NEXT:    </dict>
6043// CHECK-NEXT:    <dict>
6044// CHECK-NEXT:     <key>kind</key><string>control</string>
6045// CHECK-NEXT:     <key>edges</key>
6046// CHECK-NEXT:      <array>
6047// CHECK-NEXT:       <dict>
6048// CHECK-NEXT:        <key>start</key>
6049// CHECK-NEXT:         <array>
6050// CHECK-NEXT:          <dict>
6051// CHECK-NEXT:           <key>line</key><integer>310</integer>
6052// CHECK-NEXT:           <key>col</key><integer>3</integer>
6053// CHECK-NEXT:           <key>file</key><integer>0</integer>
6054// CHECK-NEXT:          </dict>
6055// CHECK-NEXT:          <dict>
6056// CHECK-NEXT:           <key>line</key><integer>310</integer>
6057// CHECK-NEXT:           <key>col</key><integer>9</integer>
6058// CHECK-NEXT:           <key>file</key><integer>0</integer>
6059// CHECK-NEXT:          </dict>
6060// CHECK-NEXT:         </array>
6061// CHECK-NEXT:        <key>end</key>
6062// CHECK-NEXT:         <array>
6063// CHECK-NEXT:          <dict>
6064// CHECK-NEXT:           <key>line</key><integer>310</integer>
6065// CHECK-NEXT:           <key>col</key><integer>30</integer>
6066// CHECK-NEXT:           <key>file</key><integer>0</integer>
6067// CHECK-NEXT:          </dict>
6068// CHECK-NEXT:          <dict>
6069// CHECK-NEXT:           <key>line</key><integer>310</integer>
6070// CHECK-NEXT:           <key>col</key><integer>30</integer>
6071// CHECK-NEXT:           <key>file</key><integer>0</integer>
6072// CHECK-NEXT:          </dict>
6073// CHECK-NEXT:         </array>
6074// CHECK-NEXT:       </dict>
6075// CHECK-NEXT:      </array>
6076// CHECK-NEXT:    </dict>
6077// CHECK-NEXT:    <dict>
6078// CHECK-NEXT:     <key>kind</key><string>event</string>
6079// CHECK-NEXT:     <key>location</key>
6080// CHECK-NEXT:     <dict>
6081// CHECK-NEXT:      <key>line</key><integer>310</integer>
6082// CHECK-NEXT:      <key>col</key><integer>30</integer>
6083// CHECK-NEXT:      <key>file</key><integer>0</integer>
6084// CHECK-NEXT:     </dict>
6085// CHECK-NEXT:     <key>ranges</key>
6086// CHECK-NEXT:     <array>
6087// CHECK-NEXT:       <array>
6088// CHECK-NEXT:        <dict>
6089// CHECK-NEXT:         <key>line</key><integer>310</integer>
6090// CHECK-NEXT:         <key>col</key><integer>30</integer>
6091// CHECK-NEXT:         <key>file</key><integer>0</integer>
6092// CHECK-NEXT:        </dict>
6093// CHECK-NEXT:        <dict>
6094// CHECK-NEXT:         <key>line</key><integer>310</integer>
6095// CHECK-NEXT:         <key>col</key><integer>30</integer>
6096// CHECK-NEXT:         <key>file</key><integer>0</integer>
6097// CHECK-NEXT:        </dict>
6098// CHECK-NEXT:       </array>
6099// CHECK-NEXT:     </array>
6100// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6101// CHECK-NEXT:     <key>extended_message</key>
6102// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6103// CHECK-NEXT:     <key>message</key>
6104// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6105// CHECK-NEXT:    </dict>
6106// CHECK-NEXT:   </array>
6107// 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>
6108// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
6109// CHECK-NEXT:   <key>type</key><string>Generics</string>
6110// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
6111// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6112// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>38831553eaecfb6c02b51e71d21ec6ea</string>
6113// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6114// CHECK-NEXT:  <key>issue_context</key><string>returnCollectionToIdVariable</string>
6115// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
6116// CHECK-NEXT:  <key>location</key>
6117// CHECK-NEXT:  <dict>
6118// CHECK-NEXT:   <key>line</key><integer>310</integer>
6119// CHECK-NEXT:   <key>col</key><integer>30</integer>
6120// CHECK-NEXT:   <key>file</key><integer>0</integer>
6121// CHECK-NEXT:  </dict>
6122// CHECK-NEXT:  </dict>
6123// CHECK-NEXT:  <dict>
6124// CHECK-NEXT:   <key>path</key>
6125// CHECK-NEXT:   <array>
6126// CHECK-NEXT:    <dict>
6127// CHECK-NEXT:     <key>kind</key><string>control</string>
6128// CHECK-NEXT:     <key>edges</key>
6129// CHECK-NEXT:      <array>
6130// CHECK-NEXT:       <dict>
6131// CHECK-NEXT:        <key>start</key>
6132// CHECK-NEXT:         <array>
6133// CHECK-NEXT:          <dict>
6134// CHECK-NEXT:           <key>line</key><integer>314</integer>
6135// CHECK-NEXT:           <key>col</key><integer>3</integer>
6136// CHECK-NEXT:           <key>file</key><integer>0</integer>
6137// CHECK-NEXT:          </dict>
6138// CHECK-NEXT:          <dict>
6139// CHECK-NEXT:           <key>line</key><integer>314</integer>
6140// CHECK-NEXT:           <key>col</key><integer>9</integer>
6141// CHECK-NEXT:           <key>file</key><integer>0</integer>
6142// CHECK-NEXT:          </dict>
6143// CHECK-NEXT:         </array>
6144// CHECK-NEXT:        <key>end</key>
6145// CHECK-NEXT:         <array>
6146// CHECK-NEXT:          <dict>
6147// CHECK-NEXT:           <key>line</key><integer>315</integer>
6148// CHECK-NEXT:           <key>col</key><integer>3</integer>
6149// CHECK-NEXT:           <key>file</key><integer>0</integer>
6150// CHECK-NEXT:          </dict>
6151// CHECK-NEXT:          <dict>
6152// CHECK-NEXT:           <key>line</key><integer>315</integer>
6153// CHECK-NEXT:           <key>col</key><integer>9</integer>
6154// CHECK-NEXT:           <key>file</key><integer>0</integer>
6155// CHECK-NEXT:          </dict>
6156// CHECK-NEXT:         </array>
6157// CHECK-NEXT:       </dict>
6158// CHECK-NEXT:      </array>
6159// CHECK-NEXT:    </dict>
6160// CHECK-NEXT:    <dict>
6161// CHECK-NEXT:     <key>kind</key><string>event</string>
6162// CHECK-NEXT:     <key>location</key>
6163// CHECK-NEXT:     <dict>
6164// CHECK-NEXT:      <key>line</key><integer>315</integer>
6165// CHECK-NEXT:      <key>col</key><integer>16</integer>
6166// CHECK-NEXT:      <key>file</key><integer>0</integer>
6167// CHECK-NEXT:     </dict>
6168// CHECK-NEXT:     <key>ranges</key>
6169// CHECK-NEXT:     <array>
6170// CHECK-NEXT:       <array>
6171// CHECK-NEXT:        <dict>
6172// CHECK-NEXT:         <key>line</key><integer>315</integer>
6173// CHECK-NEXT:         <key>col</key><integer>16</integer>
6174// CHECK-NEXT:         <key>file</key><integer>0</integer>
6175// CHECK-NEXT:        </dict>
6176// CHECK-NEXT:        <dict>
6177// CHECK-NEXT:         <key>line</key><integer>315</integer>
6178// CHECK-NEXT:         <key>col</key><integer>35</integer>
6179// CHECK-NEXT:         <key>file</key><integer>0</integer>
6180// CHECK-NEXT:        </dict>
6181// CHECK-NEXT:       </array>
6182// CHECK-NEXT:     </array>
6183// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6184// CHECK-NEXT:     <key>extended_message</key>
6185// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6186// CHECK-NEXT:     <key>message</key>
6187// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6188// CHECK-NEXT:    </dict>
6189// CHECK-NEXT:    <dict>
6190// CHECK-NEXT:     <key>kind</key><string>control</string>
6191// CHECK-NEXT:     <key>edges</key>
6192// CHECK-NEXT:      <array>
6193// CHECK-NEXT:       <dict>
6194// CHECK-NEXT:        <key>start</key>
6195// CHECK-NEXT:         <array>
6196// CHECK-NEXT:          <dict>
6197// CHECK-NEXT:           <key>line</key><integer>315</integer>
6198// CHECK-NEXT:           <key>col</key><integer>3</integer>
6199// CHECK-NEXT:           <key>file</key><integer>0</integer>
6200// CHECK-NEXT:          </dict>
6201// CHECK-NEXT:          <dict>
6202// CHECK-NEXT:           <key>line</key><integer>315</integer>
6203// CHECK-NEXT:           <key>col</key><integer>9</integer>
6204// CHECK-NEXT:           <key>file</key><integer>0</integer>
6205// CHECK-NEXT:          </dict>
6206// CHECK-NEXT:         </array>
6207// CHECK-NEXT:        <key>end</key>
6208// CHECK-NEXT:         <array>
6209// CHECK-NEXT:          <dict>
6210// CHECK-NEXT:           <key>line</key><integer>316</integer>
6211// CHECK-NEXT:           <key>col</key><integer>3</integer>
6212// CHECK-NEXT:           <key>file</key><integer>0</integer>
6213// CHECK-NEXT:          </dict>
6214// CHECK-NEXT:          <dict>
6215// CHECK-NEXT:           <key>line</key><integer>316</integer>
6216// CHECK-NEXT:           <key>col</key><integer>9</integer>
6217// CHECK-NEXT:           <key>file</key><integer>0</integer>
6218// CHECK-NEXT:          </dict>
6219// CHECK-NEXT:         </array>
6220// CHECK-NEXT:       </dict>
6221// CHECK-NEXT:      </array>
6222// CHECK-NEXT:    </dict>
6223// CHECK-NEXT:    <dict>
6224// CHECK-NEXT:     <key>kind</key><string>control</string>
6225// CHECK-NEXT:     <key>edges</key>
6226// CHECK-NEXT:      <array>
6227// CHECK-NEXT:       <dict>
6228// CHECK-NEXT:        <key>start</key>
6229// CHECK-NEXT:         <array>
6230// CHECK-NEXT:          <dict>
6231// CHECK-NEXT:           <key>line</key><integer>316</integer>
6232// CHECK-NEXT:           <key>col</key><integer>3</integer>
6233// CHECK-NEXT:           <key>file</key><integer>0</integer>
6234// CHECK-NEXT:          </dict>
6235// CHECK-NEXT:          <dict>
6236// CHECK-NEXT:           <key>line</key><integer>316</integer>
6237// CHECK-NEXT:           <key>col</key><integer>9</integer>
6238// CHECK-NEXT:           <key>file</key><integer>0</integer>
6239// CHECK-NEXT:          </dict>
6240// CHECK-NEXT:         </array>
6241// CHECK-NEXT:        <key>end</key>
6242// CHECK-NEXT:         <array>
6243// CHECK-NEXT:          <dict>
6244// CHECK-NEXT:           <key>line</key><integer>316</integer>
6245// CHECK-NEXT:           <key>col</key><integer>30</integer>
6246// CHECK-NEXT:           <key>file</key><integer>0</integer>
6247// CHECK-NEXT:          </dict>
6248// CHECK-NEXT:          <dict>
6249// CHECK-NEXT:           <key>line</key><integer>316</integer>
6250// CHECK-NEXT:           <key>col</key><integer>30</integer>
6251// CHECK-NEXT:           <key>file</key><integer>0</integer>
6252// CHECK-NEXT:          </dict>
6253// CHECK-NEXT:         </array>
6254// CHECK-NEXT:       </dict>
6255// CHECK-NEXT:      </array>
6256// CHECK-NEXT:    </dict>
6257// CHECK-NEXT:    <dict>
6258// CHECK-NEXT:     <key>kind</key><string>event</string>
6259// CHECK-NEXT:     <key>location</key>
6260// CHECK-NEXT:     <dict>
6261// CHECK-NEXT:      <key>line</key><integer>316</integer>
6262// CHECK-NEXT:      <key>col</key><integer>30</integer>
6263// CHECK-NEXT:      <key>file</key><integer>0</integer>
6264// CHECK-NEXT:     </dict>
6265// CHECK-NEXT:     <key>ranges</key>
6266// CHECK-NEXT:     <array>
6267// CHECK-NEXT:       <array>
6268// CHECK-NEXT:        <dict>
6269// CHECK-NEXT:         <key>line</key><integer>316</integer>
6270// CHECK-NEXT:         <key>col</key><integer>30</integer>
6271// CHECK-NEXT:         <key>file</key><integer>0</integer>
6272// CHECK-NEXT:        </dict>
6273// CHECK-NEXT:        <dict>
6274// CHECK-NEXT:         <key>line</key><integer>316</integer>
6275// CHECK-NEXT:         <key>col</key><integer>30</integer>
6276// CHECK-NEXT:         <key>file</key><integer>0</integer>
6277// CHECK-NEXT:        </dict>
6278// CHECK-NEXT:       </array>
6279// CHECK-NEXT:     </array>
6280// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6281// CHECK-NEXT:     <key>extended_message</key>
6282// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6283// CHECK-NEXT:     <key>message</key>
6284// CHECK-NEXT:     <string>Conversion from value of type &apos;NSArray&lt;NSString *&gt; *&apos; to incompatible type &apos;NSArray&lt;NSNumber *&gt; *&apos;</string>
6285// CHECK-NEXT:    </dict>
6286// CHECK-NEXT:   </array>
6287// 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>
6288// CHECK-NEXT:   <key>category</key><string>Core Foundation/Objective-C</string>
6289// CHECK-NEXT:   <key>type</key><string>Generics</string>
6290// CHECK-NEXT:   <key>check_name</key><string>core.DynamicTypePropagation</string>
6291// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6292// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>9fcbd4dcf212f004877292aa5085322b</string>
6293// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6294// CHECK-NEXT:  <key>issue_context</key><string>eraseSpecialization</string>
6295// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
6296// CHECK-NEXT:  <key>location</key>
6297// CHECK-NEXT:  <dict>
6298// CHECK-NEXT:   <key>line</key><integer>316</integer>
6299// CHECK-NEXT:   <key>col</key><integer>30</integer>
6300// CHECK-NEXT:   <key>file</key><integer>0</integer>
6301// CHECK-NEXT:  </dict>
6302// CHECK-NEXT:  </dict>
6303// CHECK-NEXT:  <dict>
6304// CHECK-NEXT:   <key>path</key>
6305// CHECK-NEXT:   <array>
6306// CHECK-NEXT:    <dict>
6307// CHECK-NEXT:     <key>kind</key><string>control</string>
6308// CHECK-NEXT:     <key>edges</key>
6309// CHECK-NEXT:      <array>
6310// CHECK-NEXT:       <dict>
6311// CHECK-NEXT:        <key>start</key>
6312// CHECK-NEXT:         <array>
6313// CHECK-NEXT:          <dict>
6314// CHECK-NEXT:           <key>line</key><integer>320</integer>
6315// CHECK-NEXT:           <key>col</key><integer>3</integer>
6316// CHECK-NEXT:           <key>file</key><integer>0</integer>
6317// CHECK-NEXT:          </dict>
6318// CHECK-NEXT:          <dict>
6319// CHECK-NEXT:           <key>line</key><integer>320</integer>
6320// CHECK-NEXT:           <key>col</key><integer>9</integer>
6321// CHECK-NEXT:           <key>file</key><integer>0</integer>
6322// CHECK-NEXT:          </dict>
6323// CHECK-NEXT:         </array>
6324// CHECK-NEXT:        <key>end</key>
6325// CHECK-NEXT:         <array>
6326// CHECK-NEXT:          <dict>
6327// CHECK-NEXT:           <key>line</key><integer>321</integer>
6328// CHECK-NEXT:           <key>col</key><integer>3</integer>
6329// CHECK-NEXT:           <key>file</key><integer>0</integer>
6330// CHECK-NEXT:          </dict>
6331// CHECK-NEXT:          <dict>
6332// CHECK-NEXT:           <key>line</key><integer>321</integer>
6333// CHECK-NEXT:           <key>col</key><integer>7</integer>
6334// CHECK-NEXT:           <key>file</key><integer>0</integer>
6335// CHECK-NEXT:          </dict>
6336// CHECK-NEXT:         </array>
6337// CHECK-NEXT:       </dict>
6338// CHECK-NEXT:      </array>
6339// CHECK-NEXT:    </dict>
6340// CHECK-NEXT:    <dict>
6341// CHECK-NEXT:     <key>kind</key><string>control</string>
6342// CHECK-NEXT:     <key>edges</key>
6343// CHECK-NEXT:      <array>
6344// CHECK-NEXT:       <dict>
6345// CHECK-NEXT:        <key>start</key>
6346// CHECK-NEXT:         <array>
6347// CHECK-NEXT:          <dict>
6348// CHECK-NEXT:           <key>line</key><integer>321</integer>
6349// CHECK-NEXT:           <key>col</key><integer>3</integer>
6350// CHECK-NEXT:           <key>file</key><integer>0</integer>
6351// CHECK-NEXT:          </dict>
6352// CHECK-NEXT:          <dict>
6353// CHECK-NEXT:           <key>line</key><integer>321</integer>
6354// CHECK-NEXT:           <key>col</key><integer>7</integer>
6355// CHECK-NEXT:           <key>file</key><integer>0</integer>
6356// CHECK-NEXT:          </dict>
6357// CHECK-NEXT:         </array>
6358// CHECK-NEXT:        <key>end</key>
6359// CHECK-NEXT:         <array>
6360// CHECK-NEXT:          <dict>
6361// CHECK-NEXT:           <key>line</key><integer>321</integer>
6362// CHECK-NEXT:           <key>col</key><integer>14</integer>
6363// CHECK-NEXT:           <key>file</key><integer>0</integer>
6364// CHECK-NEXT:          </dict>
6365// CHECK-NEXT:          <dict>
6366// CHECK-NEXT:           <key>line</key><integer>321</integer>
6367// CHECK-NEXT:           <key>col</key><integer>14</integer>
6368// CHECK-NEXT:           <key>file</key><integer>0</integer>
6369// CHECK-NEXT:          </dict>
6370// CHECK-NEXT:         </array>
6371// CHECK-NEXT:       </dict>
6372// CHECK-NEXT:      </array>
6373// CHECK-NEXT:    </dict>
6374// CHECK-NEXT:    <dict>
6375// CHECK-NEXT:     <key>kind</key><string>event</string>
6376// CHECK-NEXT:     <key>location</key>
6377// CHECK-NEXT:     <dict>
6378// CHECK-NEXT:      <key>line</key><integer>321</integer>
6379// CHECK-NEXT:      <key>col</key><integer>14</integer>
6380// CHECK-NEXT:      <key>file</key><integer>0</integer>
6381// CHECK-NEXT:     </dict>
6382// CHECK-NEXT:     <key>ranges</key>
6383// CHECK-NEXT:     <array>
6384// CHECK-NEXT:       <array>
6385// CHECK-NEXT:        <dict>
6386// CHECK-NEXT:         <key>line</key><integer>321</integer>
6387// CHECK-NEXT:         <key>col</key><integer>14</integer>
6388// CHECK-NEXT:         <key>file</key><integer>0</integer>
6389// CHECK-NEXT:        </dict>
6390// CHECK-NEXT:        <dict>
6391// CHECK-NEXT:         <key>line</key><integer>321</integer>
6392// CHECK-NEXT:         <key>col</key><integer>33</integer>
6393// CHECK-NEXT:         <key>file</key><integer>0</integer>
6394// CHECK-NEXT:        </dict>
6395// CHECK-NEXT:       </array>
6396// CHECK-NEXT:     </array>
6397// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6398// CHECK-NEXT:     <key>extended_message</key>
6399// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6400// CHECK-NEXT:     <key>message</key>
6401// CHECK-NEXT:     <string>Type &apos;NSArray&lt;NSString *&gt; *&apos; is inferred from this context</string>
6402// CHECK-NEXT:    </dict>
6403// CHECK-NEXT:    <dict>
6404// CHECK-NEXT:     <key>kind</key><string>event</string>
6405// CHECK-NEXT:     <key>location</key>
6406// CHECK-NEXT:     <dict>
6407// CHECK-NEXT:      <key>line</key><integer>321</integer>
6408// CHECK-NEXT:      <key>col</key><integer>14</integer>
6409// CHECK-NEXT:      <key>file</key><integer>0</integer>
6410// CHECK-NEXT:     </dict>
6411// CHECK-NEXT:     <key>ranges</key>
6412// CHECK-NEXT:     <array>
6413// CHECK-NEXT:       <array>
6414// CHECK-NEXT:        <dict>
6415// CHECK-NEXT:         <key>line</key><integer>321</integer>
6416// CHECK-NEXT:         <key>col</key><integer>14</integer>
6417// CHECK-NEXT:         <key>file</key><integer>0</integer>
6418// CHECK-NEXT:        </dict>
6419// CHECK-NEXT:        <dict>
6420// CHECK-NEXT:         <key>line</key><integer>321</integer>
6421// CHECK-NEXT:         <key>col</key><integer>33</integer>
6422// CHECK-NEXT:         <key>file</key><integer>0</integer>
6423// CHECK-NEXT:        </dict>
6424// CHECK-NEXT:       </array>
6425// CHECK-NEXT:     </array>
6426// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6427// CHECK-NEXT:     <key>extended_message</key>
6428// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6429// CHECK-NEXT:     <key>message</key>
6430// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSArray&lt;NSString *&gt; *&apos; which is incompatible with static type &apos;NSSet *&apos;</string>
6431// CHECK-NEXT:    </dict>
6432// CHECK-NEXT:   </array>
6433// 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>
6434// CHECK-NEXT:   <key>category</key><string>Type Error</string>
6435// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
6436// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6437// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6438// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>be6714fed24af6e7ac522b87a5098de0</string>
6439// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6440// CHECK-NEXT:  <key>issue_context</key><string>returnToUnrelatedType</string>
6441// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>2</string>
6442// CHECK-NEXT:  <key>location</key>
6443// CHECK-NEXT:  <dict>
6444// CHECK-NEXT:   <key>line</key><integer>321</integer>
6445// CHECK-NEXT:   <key>col</key><integer>14</integer>
6446// CHECK-NEXT:   <key>file</key><integer>0</integer>
6447// CHECK-NEXT:  </dict>
6448// CHECK-NEXT:  </dict>
6449// CHECK-NEXT:  <dict>
6450// CHECK-NEXT:   <key>path</key>
6451// CHECK-NEXT:   <array>
6452// CHECK-NEXT:    <dict>
6453// CHECK-NEXT:     <key>kind</key><string>control</string>
6454// CHECK-NEXT:     <key>edges</key>
6455// CHECK-NEXT:      <array>
6456// CHECK-NEXT:       <dict>
6457// CHECK-NEXT:        <key>start</key>
6458// CHECK-NEXT:         <array>
6459// CHECK-NEXT:          <dict>
6460// CHECK-NEXT:           <key>line</key><integer>326</integer>
6461// CHECK-NEXT:           <key>col</key><integer>3</integer>
6462// CHECK-NEXT:           <key>file</key><integer>0</integer>
6463// CHECK-NEXT:          </dict>
6464// CHECK-NEXT:          <dict>
6465// CHECK-NEXT:           <key>line</key><integer>326</integer>
6466// CHECK-NEXT:           <key>col</key><integer>9</integer>
6467// CHECK-NEXT:           <key>file</key><integer>0</integer>
6468// CHECK-NEXT:          </dict>
6469// CHECK-NEXT:         </array>
6470// CHECK-NEXT:        <key>end</key>
6471// CHECK-NEXT:         <array>
6472// CHECK-NEXT:          <dict>
6473// CHECK-NEXT:           <key>line</key><integer>327</integer>
6474// CHECK-NEXT:           <key>col</key><integer>3</integer>
6475// CHECK-NEXT:           <key>file</key><integer>0</integer>
6476// CHECK-NEXT:          </dict>
6477// CHECK-NEXT:          <dict>
6478// CHECK-NEXT:           <key>line</key><integer>327</integer>
6479// CHECK-NEXT:           <key>col</key><integer>4</integer>
6480// CHECK-NEXT:           <key>file</key><integer>0</integer>
6481// CHECK-NEXT:          </dict>
6482// CHECK-NEXT:         </array>
6483// CHECK-NEXT:       </dict>
6484// CHECK-NEXT:      </array>
6485// CHECK-NEXT:    </dict>
6486// CHECK-NEXT:    <dict>
6487// CHECK-NEXT:     <key>kind</key><string>event</string>
6488// CHECK-NEXT:     <key>location</key>
6489// CHECK-NEXT:     <dict>
6490// CHECK-NEXT:      <key>line</key><integer>327</integer>
6491// CHECK-NEXT:      <key>col</key><integer>10</integer>
6492// CHECK-NEXT:      <key>file</key><integer>0</integer>
6493// CHECK-NEXT:     </dict>
6494// CHECK-NEXT:     <key>ranges</key>
6495// CHECK-NEXT:     <array>
6496// CHECK-NEXT:       <array>
6497// CHECK-NEXT:        <dict>
6498// CHECK-NEXT:         <key>line</key><integer>327</integer>
6499// CHECK-NEXT:         <key>col</key><integer>10</integer>
6500// CHECK-NEXT:         <key>file</key><integer>0</integer>
6501// CHECK-NEXT:        </dict>
6502// CHECK-NEXT:        <dict>
6503// CHECK-NEXT:         <key>line</key><integer>327</integer>
6504// CHECK-NEXT:         <key>col</key><integer>29</integer>
6505// CHECK-NEXT:         <key>file</key><integer>0</integer>
6506// CHECK-NEXT:        </dict>
6507// CHECK-NEXT:       </array>
6508// CHECK-NEXT:     </array>
6509// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6510// CHECK-NEXT:     <key>extended_message</key>
6511// CHECK-NEXT:     <string>Type &apos;NSString *&apos; is inferred from this context</string>
6512// CHECK-NEXT:     <key>message</key>
6513// CHECK-NEXT:     <string>Type &apos;NSString *&apos; is inferred from this context</string>
6514// CHECK-NEXT:    </dict>
6515// CHECK-NEXT:    <dict>
6516// CHECK-NEXT:     <key>kind</key><string>control</string>
6517// CHECK-NEXT:     <key>edges</key>
6518// CHECK-NEXT:      <array>
6519// CHECK-NEXT:       <dict>
6520// CHECK-NEXT:        <key>start</key>
6521// CHECK-NEXT:         <array>
6522// CHECK-NEXT:          <dict>
6523// CHECK-NEXT:           <key>line</key><integer>327</integer>
6524// CHECK-NEXT:           <key>col</key><integer>3</integer>
6525// CHECK-NEXT:           <key>file</key><integer>0</integer>
6526// CHECK-NEXT:          </dict>
6527// CHECK-NEXT:          <dict>
6528// CHECK-NEXT:           <key>line</key><integer>327</integer>
6529// CHECK-NEXT:           <key>col</key><integer>4</integer>
6530// CHECK-NEXT:           <key>file</key><integer>0</integer>
6531// CHECK-NEXT:          </dict>
6532// CHECK-NEXT:         </array>
6533// CHECK-NEXT:        <key>end</key>
6534// CHECK-NEXT:         <array>
6535// CHECK-NEXT:          <dict>
6536// CHECK-NEXT:           <key>line</key><integer>328</integer>
6537// CHECK-NEXT:           <key>col</key><integer>3</integer>
6538// CHECK-NEXT:           <key>file</key><integer>0</integer>
6539// CHECK-NEXT:          </dict>
6540// CHECK-NEXT:          <dict>
6541// CHECK-NEXT:           <key>line</key><integer>328</integer>
6542// CHECK-NEXT:           <key>col</key><integer>10</integer>
6543// CHECK-NEXT:           <key>file</key><integer>0</integer>
6544// CHECK-NEXT:          </dict>
6545// CHECK-NEXT:         </array>
6546// CHECK-NEXT:       </dict>
6547// CHECK-NEXT:      </array>
6548// CHECK-NEXT:    </dict>
6549// CHECK-NEXT:    <dict>
6550// CHECK-NEXT:     <key>kind</key><string>control</string>
6551// CHECK-NEXT:     <key>edges</key>
6552// CHECK-NEXT:      <array>
6553// CHECK-NEXT:       <dict>
6554// CHECK-NEXT:        <key>start</key>
6555// CHECK-NEXT:         <array>
6556// CHECK-NEXT:          <dict>
6557// CHECK-NEXT:           <key>line</key><integer>328</integer>
6558// CHECK-NEXT:           <key>col</key><integer>3</integer>
6559// CHECK-NEXT:           <key>file</key><integer>0</integer>
6560// CHECK-NEXT:          </dict>
6561// CHECK-NEXT:          <dict>
6562// CHECK-NEXT:           <key>line</key><integer>328</integer>
6563// CHECK-NEXT:           <key>col</key><integer>10</integer>
6564// CHECK-NEXT:           <key>file</key><integer>0</integer>
6565// CHECK-NEXT:          </dict>
6566// CHECK-NEXT:         </array>
6567// CHECK-NEXT:        <key>end</key>
6568// CHECK-NEXT:         <array>
6569// CHECK-NEXT:          <dict>
6570// CHECK-NEXT:           <key>line</key><integer>328</integer>
6571// CHECK-NEXT:           <key>col</key><integer>19</integer>
6572// CHECK-NEXT:           <key>file</key><integer>0</integer>
6573// CHECK-NEXT:          </dict>
6574// CHECK-NEXT:          <dict>
6575// CHECK-NEXT:           <key>line</key><integer>328</integer>
6576// CHECK-NEXT:           <key>col</key><integer>19</integer>
6577// CHECK-NEXT:           <key>file</key><integer>0</integer>
6578// CHECK-NEXT:          </dict>
6579// CHECK-NEXT:         </array>
6580// CHECK-NEXT:       </dict>
6581// CHECK-NEXT:      </array>
6582// CHECK-NEXT:    </dict>
6583// CHECK-NEXT:    <dict>
6584// CHECK-NEXT:     <key>kind</key><string>event</string>
6585// CHECK-NEXT:     <key>location</key>
6586// CHECK-NEXT:     <dict>
6587// CHECK-NEXT:      <key>line</key><integer>328</integer>
6588// CHECK-NEXT:      <key>col</key><integer>19</integer>
6589// CHECK-NEXT:      <key>file</key><integer>0</integer>
6590// CHECK-NEXT:     </dict>
6591// CHECK-NEXT:     <key>ranges</key>
6592// CHECK-NEXT:     <array>
6593// CHECK-NEXT:       <array>
6594// CHECK-NEXT:        <dict>
6595// CHECK-NEXT:         <key>line</key><integer>328</integer>
6596// CHECK-NEXT:         <key>col</key><integer>19</integer>
6597// CHECK-NEXT:         <key>file</key><integer>0</integer>
6598// CHECK-NEXT:        </dict>
6599// CHECK-NEXT:        <dict>
6600// CHECK-NEXT:         <key>line</key><integer>328</integer>
6601// CHECK-NEXT:         <key>col</key><integer>19</integer>
6602// CHECK-NEXT:         <key>file</key><integer>0</integer>
6603// CHECK-NEXT:        </dict>
6604// CHECK-NEXT:       </array>
6605// CHECK-NEXT:     </array>
6606// CHECK-NEXT:     <key>depth</key><integer>0</integer>
6607// CHECK-NEXT:     <key>extended_message</key>
6608// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6609// CHECK-NEXT:     <key>message</key>
6610// CHECK-NEXT:     <string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6611// CHECK-NEXT:    </dict>
6612// CHECK-NEXT:   </array>
6613// CHECK-NEXT:   <key>description</key><string>Object has a dynamic type &apos;NSString *&apos; which is incompatible with static type &apos;NSNumber *&apos;</string>
6614// CHECK-NEXT:   <key>category</key><string>Type Error</string>
6615// CHECK-NEXT:   <key>type</key><string>Dynamic and static type mismatch</string>
6616// CHECK-NEXT:   <key>check_name</key><string>alpha.core.DynamicTypeChecker</string>
6617// CHECK-NEXT:   <!-- This hash is experimental and going to change! -->
6618// CHECK-NEXT:   <key>issue_hash_content_of_line_in_context</key><string>5e96ef711c8f115bc64f69baa3f6ea7a</string>
6619// CHECK-NEXT:  <key>issue_context_kind</key><string>function</string>
6620// CHECK-NEXT:  <key>issue_context</key><string>returnToIdVariable</string>
6621// CHECK-NEXT:  <key>issue_hash_function_offset</key><string>3</string>
6622// CHECK-NEXT:  <key>location</key>
6623// CHECK-NEXT:  <dict>
6624// CHECK-NEXT:   <key>line</key><integer>328</integer>
6625// CHECK-NEXT:   <key>col</key><integer>19</integer>
6626// CHECK-NEXT:   <key>file</key><integer>0</integer>
6627// CHECK-NEXT:  </dict>
6628// CHECK-NEXT:  </dict>
6629// CHECK-NEXT: </array>
6630