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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 362// CHECK-NEXT: <key>message</key> 363// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 459// CHECK-NEXT: <key>message</key> 460// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 461// CHECK-NEXT: </dict> 462// CHECK-NEXT: </array> 463// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 508// CHECK-NEXT: <key>message</key> 509// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</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 'NSNumber *' to incompatible type 'NSString *'</string> 571// CHECK-NEXT: <key>message</key> 572// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 573// CHECK-NEXT: </dict> 574// CHECK-NEXT: </array> 575// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 620// CHECK-NEXT: <key>message</key> 621// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 717// CHECK-NEXT: <key>message</key> 718// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 719// CHECK-NEXT: </dict> 720// CHECK-NEXT: </array> 721// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'getTypedStuff'</string> 800// CHECK-NEXT: <key>message</key> 801// CHECK-NEXT: <string>Calling 'getTypedStuff'</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 'crossProceduralErasedTypes'</string> 814// CHECK-NEXT: <key>message</key> 815// CHECK-NEXT: <string>Entered call from 'crossProceduralErasedTypes'</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 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSNumber *> *')</string> 877// CHECK-NEXT: <key>message</key> 878// CHECK-NEXT: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSNumber *> *')</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 'getTypedStuff'</string> 940// CHECK-NEXT: <key>message</key> 941// CHECK-NEXT: <string>Returning from 'getTypedStuff'</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 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string> 969// CHECK-NEXT: <key>message</key> 970// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string> 971// CHECK-NEXT: </dict> 972// CHECK-NEXT: </array> 973// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 1018// CHECK-NEXT: <key>message</key> 1019// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</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 'NSNumber *' to incompatible type 'NSString *'</string> 1081// CHECK-NEXT: <key>message</key> 1082// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1083// CHECK-NEXT: </dict> 1084// CHECK-NEXT: </array> 1085// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 1130// CHECK-NEXT: <key>message</key> 1131// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1227// CHECK-NEXT: <key>message</key> 1228// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1229// CHECK-NEXT: </dict> 1230// CHECK-NEXT: </array> 1231// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string> 1276// CHECK-NEXT: <key>message</key> 1277// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</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 'NSNumber *' to incompatible type 'NSString *'</string> 1339// CHECK-NEXT: <key>message</key> 1340// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1341// CHECK-NEXT: </dict> 1342// CHECK-NEXT: </array> 1343// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string> 1388// CHECK-NEXT: <key>message</key> 1389// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1485// CHECK-NEXT: <key>message</key> 1486// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1487// CHECK-NEXT: </dict> 1488// CHECK-NEXT: </array> 1489// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1534// CHECK-NEXT: <key>message</key> 1535// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1631// CHECK-NEXT: <key>message</key> 1632// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1633// CHECK-NEXT: </dict> 1634// CHECK-NEXT: </array> 1635// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1680// CHECK-NEXT: <key>message</key> 1681// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</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 'NSNumber *' to incompatible type 'NSString *'</string> 1743// CHECK-NEXT: <key>message</key> 1744// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1745// CHECK-NEXT: </dict> 1746// CHECK-NEXT: </array> 1747// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1792// CHECK-NEXT: <key>message</key> 1793// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1889// CHECK-NEXT: <key>message</key> 1890// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1891// CHECK-NEXT: </dict> 1892// CHECK-NEXT: </array> 1893// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'MutableArray *')</string> 1972// CHECK-NEXT: <key>message</key> 1973// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'MutableArray *')</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 'NSString *' to incompatible type 'NSMutableString *'</string> 2069// CHECK-NEXT: <key>message</key> 2070// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2071// CHECK-NEXT: </dict> 2072// CHECK-NEXT: </array> 2073// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</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 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 2118// CHECK-NEXT: <key>message</key> 2119// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</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 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 2215// CHECK-NEXT: <key>message</key> 2216// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 2217// CHECK-NEXT: </dict> 2218// CHECK-NEXT: </array> 2219// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'MutableArray<NSMutableString *> *' is inferred from explicit cast (from 'MutableArray *' to 'MutableArray<NSMutableString *> *')</string> 2264// CHECK-NEXT: <key>message</key> 2265// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from explicit cast (from 'MutableArray *' to 'MutableArray<NSMutableString *> *')</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 'NSString *' to incompatible type 'NSMutableString *'</string> 2327// CHECK-NEXT: <key>message</key> 2328// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2329// CHECK-NEXT: </dict> 2330// CHECK-NEXT: </array> 2331// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</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 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 2410// CHECK-NEXT: <key>message</key> 2411// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</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 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2507// CHECK-NEXT: <key>message</key> 2508// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2509// CHECK-NEXT: </dict> 2510// CHECK-NEXT: </array> 2511// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</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 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string> 2556// CHECK-NEXT: <key>message</key> 2557// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</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 'NSNumber *' to incompatible type 'NSString *'</string> 2619// CHECK-NEXT: <key>message</key> 2620// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2621// CHECK-NEXT: </dict> 2622// CHECK-NEXT: </array> 2623// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</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 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string> 2668// CHECK-NEXT: <key>message</key> 2669// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</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 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2765// CHECK-NEXT: <key>message</key> 2766// CHECK-NEXT: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2767// CHECK-NEXT: </dict> 2768// CHECK-NEXT: </array> 2769// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</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 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string> 2814// CHECK-NEXT: <key>message</key> 2815// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</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 'NSNumber *' to incompatible type 'NSString *'</string> 2877// CHECK-NEXT: <key>message</key> 2878// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2879// CHECK-NEXT: </dict> 2880// CHECK-NEXT: </array> 2881// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</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 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string> 2926// CHECK-NEXT: <key>message</key> 2927// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</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 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 3023// CHECK-NEXT: <key>message</key> 3024// CHECK-NEXT: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 3025// CHECK-NEXT: </dict> 3026// CHECK-NEXT: </array> 3027// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</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 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 3072// CHECK-NEXT: <key>message</key> 3073// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</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 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3169// CHECK-NEXT: <key>message</key> 3170// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3171// CHECK-NEXT: </dict> 3172// CHECK-NEXT: </array> 3173// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</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 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSMutableString *> *')</string> 3218// CHECK-NEXT: <key>message</key> 3219// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSMutableString *> *')</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 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3315// CHECK-NEXT: <key>message</key> 3316// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3317// CHECK-NEXT: </dict> 3318// CHECK-NEXT: </array> 3319// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</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 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSMutableString *> *')</string> 3364// CHECK-NEXT: <key>message</key> 3365// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSMutableString *> *')</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 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3461// CHECK-NEXT: <key>message</key> 3462// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3463// CHECK-NEXT: </dict> 3464// CHECK-NEXT: </array> 3465// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</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 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacySpecialMutableArray *' to 'MutableArray<NSString *> *')</string> 3510// CHECK-NEXT: <key>message</key> 3511// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacySpecialMutableArray *' to 'MutableArray<NSString *> *')</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 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3607// CHECK-NEXT: <key>message</key> 3608// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3609// CHECK-NEXT: </dict> 3610// CHECK-NEXT: </array> 3611// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'LegacyMutableArray *')</string> 3656// CHECK-NEXT: <key>message</key> 3657// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'LegacyMutableArray *')</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 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSString *> *')</string> 3719// CHECK-NEXT: <key>message</key> 3720// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSString *> *')</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 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3816// CHECK-NEXT: <key>message</key> 3817// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3818// CHECK-NEXT: </dict> 3819// CHECK-NEXT: </array> 3820// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</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 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string> 3865// CHECK-NEXT: <key>message</key> 3866// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</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 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3962// CHECK-NEXT: <key>message</key> 3963// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3964// CHECK-NEXT: </dict> 3965// CHECK-NEXT: </array> 3966// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</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 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'BuggySpecialMutableArray<NSMutableString *> *' to 'MutableArray<NSMutableString *> *')</string> 4011// CHECK-NEXT: <key>message</key> 4012// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'BuggySpecialMutableArray<NSMutableString *> *' to 'MutableArray<NSMutableString *> *')</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 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4108// CHECK-NEXT: <key>message</key> 4109// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4110// CHECK-NEXT: </dict> 4111// CHECK-NEXT: </array> 4112// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</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 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'id')</string> 4157// CHECK-NEXT: <key>message</key> 4158// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'id')</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 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4254// CHECK-NEXT: <key>message</key> 4255// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4256// CHECK-NEXT: </dict> 4257// CHECK-NEXT: </array> 4258// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'BuggyMutableArray<NSMutableString *> *')</string> 4303// CHECK-NEXT: <key>message</key> 4304// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'BuggyMutableArray<NSMutableString *> *')</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 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string> 4366// CHECK-NEXT: <key>message</key> 4367// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</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 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 4463// CHECK-NEXT: <key>message</key> 4464// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 4465// CHECK-NEXT: </dict> 4466// CHECK-NEXT: </array> 4467// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</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 'NSNumber *' is inferred from this context</string> 4580// CHECK-NEXT: <key>message</key> 4581// CHECK-NEXT: <string>Type 'NSNumber *' 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 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4609// CHECK-NEXT: <key>message</key> 4610// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4611// CHECK-NEXT: </dict> 4612// CHECK-NEXT: </array> 4613// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</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 'NSNumber *' is inferred from this context</string> 4726// CHECK-NEXT: <key>message</key> 4727// CHECK-NEXT: <string>Type 'NSNumber *' 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 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4755// CHECK-NEXT: <key>message</key> 4756// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4757// CHECK-NEXT: </dict> 4758// CHECK-NEXT: </array> 4759// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</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 'NSNumber *' is inferred from this context</string> 4872// CHECK-NEXT: <key>message</key> 4873// CHECK-NEXT: <string>Type 'NSNumber *' 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 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4901// CHECK-NEXT: <key>message</key> 4902// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4903// CHECK-NEXT: </dict> 4904// CHECK-NEXT: </array> 4905// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</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 'NSNumber *' is inferred from this context</string> 5018// CHECK-NEXT: <key>message</key> 5019// CHECK-NEXT: <string>Type 'NSNumber *' 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 'NSNumber *' which is incompatible with static type 'NSString *'</string> 5047// CHECK-NEXT: <key>message</key> 5048// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 5049// CHECK-NEXT: </dict> 5050// CHECK-NEXT: </array> 5051// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</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 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'NSArray<NSMutableString *> *')</string> 5096// CHECK-NEXT: <key>message</key> 5097// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'NSArray<NSMutableString *> *')</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 'NSString *' to incompatible type 'NSMutableString *'</string> 5227// CHECK-NEXT: <key>message</key> 5228// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5229// CHECK-NEXT: </dict> 5230// CHECK-NEXT: </array> 5231// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</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 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to '__kindof NSArray<NSString *> *')</string> 5276// CHECK-NEXT: <key>message</key> 5277// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to '__kindof NSArray<NSString *> *')</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 'NSString *' to incompatible type 'NSMutableString *'</string> 5373// CHECK-NEXT: <key>message</key> 5374// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5375// CHECK-NEXT: </dict> 5376// CHECK-NEXT: </array> 5377// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 5422// CHECK-NEXT: <key>message</key> 5423// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</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 'NSNumber *' to incompatible type 'NSString *'</string> 5485// CHECK-NEXT: <key>message</key> 5486// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 5487// CHECK-NEXT: </dict> 5488// CHECK-NEXT: </array> 5489// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</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 'NSArray<NSString *> *' is inferred from this context</string> 5602// CHECK-NEXT: <key>message</key> 5603// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' 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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5631// CHECK-NEXT: <key>message</key> 5632// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5633// CHECK-NEXT: </dict> 5634// CHECK-NEXT: </array> 5635// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from this context</string> 5748// CHECK-NEXT: <key>message</key> 5749// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' 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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5777// CHECK-NEXT: <key>message</key> 5778// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5779// CHECK-NEXT: </dict> 5780// CHECK-NEXT: </array> 5781// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 5826// CHECK-NEXT: <key>message</key> 5827// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5923// CHECK-NEXT: <key>message</key> 5924// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5925// CHECK-NEXT: </dict> 5926// CHECK-NEXT: </array> 5927// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from this context</string> 6006// CHECK-NEXT: <key>message</key> 6007// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' 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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6103// CHECK-NEXT: <key>message</key> 6104// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6105// CHECK-NEXT: </dict> 6106// CHECK-NEXT: </array> 6107// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from this context</string> 6186// CHECK-NEXT: <key>message</key> 6187// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' 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 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6283// CHECK-NEXT: <key>message</key> 6284// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6285// CHECK-NEXT: </dict> 6286// CHECK-NEXT: </array> 6287// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</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 'NSArray<NSString *> *' is inferred from this context</string> 6400// CHECK-NEXT: <key>message</key> 6401// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' 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 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'</string> 6429// CHECK-NEXT: <key>message</key> 6430// CHECK-NEXT: <string>Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'</string> 6431// CHECK-NEXT: </dict> 6432// CHECK-NEXT: </array> 6433// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'</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 'NSString *' is inferred from this context</string> 6512// CHECK-NEXT: <key>message</key> 6513// CHECK-NEXT: <string>Type 'NSString *' 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 'NSString *' which is incompatible with static type 'NSNumber *'</string> 6609// CHECK-NEXT: <key>message</key> 6610// CHECK-NEXT: <string>Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'</string> 6611// CHECK-NEXT: </dict> 6612// CHECK-NEXT: </array> 6613// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'</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