1// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.ObjCGenerics,alpha.core.DynamicTypeChecker -verify -Wno-objc-method-access %s 2// RUN: %clang_cc1 -analyze -analyzer-checker=core,osx.cocoa.ObjCGenerics,alpha.core.DynamicTypeChecker -verify -Wno-objc-method-access %s -analyzer-output=plist -o %t.plist 3// RUN: FileCheck --input-file %t.plist %s 4 5#if !__has_feature(objc_generics) 6# error Compiler does not support Objective-C generics? 7#endif 8 9#if !__has_feature(objc_generics_variance) 10# error Compiler does not support co- and contr-variance? 11#endif 12 13#define nil 0 14typedef unsigned long NSUInteger; 15typedef int BOOL; 16 17@protocol NSObject 18+ (id)alloc; 19- (id)init; 20@end 21 22@protocol NSCopying 23@end 24 25__attribute__((objc_root_class)) 26@interface NSObject <NSObject> 27@end 28 29@interface NSString : NSObject <NSCopying> 30@end 31 32@interface NSMutableString : NSString 33@end 34 35@interface NSNumber : NSObject <NSCopying> 36@end 37 38@interface NSSet : NSObject <NSCopying> 39@end 40 41@interface NSArray<__covariant ObjectType> : NSObject 42+ (instancetype)arrayWithObjects:(const ObjectType [])objects count:(NSUInteger)count; 43+ (instancetype)getEmpty; 44+ (NSArray<ObjectType> *)getEmpty2; 45- (BOOL)contains:(ObjectType)obj; 46- (ObjectType)getObjAtIndex:(NSUInteger)idx; 47- (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx; 48@property(readonly) ObjectType firstObject; 49@end 50 51@interface MutableArray<ObjectType> : NSArray<ObjectType> 52- (void)addObject:(ObjectType)anObject; 53@end 54 55@interface LegacyMutableArray : MutableArray 56@end 57 58@interface LegacySpecialMutableArray : LegacyMutableArray 59@end 60 61@interface BuggyMutableArray<T> : MutableArray 62@end 63 64@interface BuggySpecialMutableArray<T> : BuggyMutableArray<T> 65@end 66 67@interface MyMutableStringArray : MutableArray<NSString *> 68@end 69 70@interface ExceptionalArray<ExceptionType> : MutableArray<NSString *> 71- (ExceptionType) getException; 72@end 73 74@interface UnrelatedType : NSObject<NSCopying> 75@end 76 77int getUnknown(); 78NSArray *getStuff(); 79NSArray *getTypedStuff() { 80 NSArray<NSNumber *> *c = getStuff(); 81 return c; 82} 83 84void doStuff(NSArray<NSNumber *> *); 85void withArrString(NSArray<NSString *> *); 86void withArrMutableString(NSArray<NSMutableString *> *); 87void withMutArrString(MutableArray<NSString *> *); 88void withMutArrMutableString(MutableArray<NSMutableString *> *); 89 90void incompatibleTypesErased(NSArray *a, NSArray<NSString *> *b, 91 NSArray<NSNumber *> *c) { 92 a = b; 93 c = a; // expected-warning {{Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'}} 94 [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}} 95 [a contains: [[NSString alloc] init]]; 96 doStuff(a); // expected-warning {{Conversion}} 97} 98 99void crossProceduralErasedTypes() { 100 NSArray<NSString *> *a = getTypedStuff(); // expected-warning {{Conversion}} 101} 102 103void incompatibleTypesErasedReverseConversion(NSArray *a, 104 NSArray<NSString *> *b) { 105 b = a; 106 [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}} 107 [a contains: [[NSString alloc] init]]; 108 doStuff(a); // expected-warning {{Conversion}} 109} 110 111void idErasedIncompatibleTypesReverseConversion(id a, NSArray<NSString *> *b) { 112 b = a; 113 [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}} 114 [a contains: [[NSString alloc] init]]; 115 doStuff(a); // expected-warning {{Conversion}} 116} 117 118void idErasedIncompatibleTypes(id a, NSArray<NSString *> *b, 119 NSArray<NSNumber *> *c) { 120 a = b; 121 c = a; // expected-warning {{Conversion}} 122 [a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}} 123 [a contains: [[NSString alloc] init]]; 124 doStuff(a); // expected-warning {{Conversion}} 125} 126 127void pathSensitiveInference(MutableArray *m, MutableArray<NSString *> *a, 128 MutableArray<NSMutableString *> *b) { 129 if (getUnknown() == 5) { 130 m = a; 131 [m contains: [[NSString alloc] init]]; 132 } else { 133 m = b; 134 [m contains: [[NSMutableString alloc] init]]; 135 } 136 [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}} 137 [m addObject: [[NSMutableString alloc] init]]; 138} 139 140void verifyAPIusage(id a, MutableArray<NSString *> *b) { 141 b = a; 142 doStuff(a); // expected-warning {{Conversion}} 143} 144 145void trustExplicitCasts(MutableArray *a, 146 MutableArray<NSMutableString *> *b) { 147 b = (MutableArray<NSMutableString *> *)a; 148 [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}} 149} 150 151void subtypeOfGeneric(id d, MyMutableStringArray *a, 152 MutableArray<NSString *> *b, 153 MutableArray<NSNumber *> *c) { 154 d = a; 155 b = d; 156 c = d; // expected-warning {{Conversion}} 157} 158 159void genericSubtypeOfGeneric(id d, ExceptionalArray<NSString *> *a, 160 MutableArray<NSString *> *b, 161 MutableArray<NSNumber *> *c) { 162 d = a; 163 [d contains: [[NSString alloc] init]]; 164 [d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}} 165 b = d; 166 c = d; // expected-warning {{Conversion}} 167} 168 169void genericSubtypeOfGenericReverse(id d, ExceptionalArray<NSString *> *a, 170 MutableArray<NSString *> *b, 171 MutableArray<NSNumber *> *c) { 172 a = d; 173 [d contains: [[NSString alloc] init]]; 174 [d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}} 175 b = d; 176 c = d; // expected-warning {{Conversion}} 177} 178 179void inferenceFromAPI(id a) { 180 // Here the type parameter is invariant. There should be a warning every time 181 // when the type parameter changes during the conversions. 182 withMutArrString(a); 183 withMutArrMutableString(a); // expected-warning {{Conversion}} 184} 185 186void inferenceFromAPI2(id a) { 187 withMutArrMutableString(a); 188 withMutArrString(a); // expected-warning {{Conversion}} 189} 190 191void inferenceFromAPIWithLegacyTypes(LegacyMutableArray *a) { 192 withMutArrMutableString(a); 193 withMutArrString(a); // expected-warning {{Conversion}} 194} 195 196void inferenceFromAPIWithLegacyTypes2(LegacySpecialMutableArray *a) { 197 withMutArrString(a); 198 withMutArrMutableString(a); // expected-warning {{Conversion}} 199} 200 201void inferenceFromAPIWithLegacyTypes3(__kindof NSArray<NSString *> *a) { 202 LegacyMutableArray *b = a; 203 withMutArrString(b); 204 withMutArrMutableString(b); // expected-warning {{Conversion}} 205} 206 207void inferenceFromAPIWithBuggyTypes(BuggyMutableArray<NSMutableString *> *a) { 208 withMutArrString(a); 209 withMutArrMutableString(a); // expected-warning {{Conversion}} 210} 211 212void InferenceFromAPIWithBuggyTypes2(BuggySpecialMutableArray<NSMutableString *> *a) { 213 withMutArrMutableString(a); 214 withMutArrString(a); // expected-warning {{Conversion}} 215} 216 217void InferenceFromAPIWithBuggyTypes3(MutableArray<NSMutableString *> *a) { 218 id b = a; 219 withMutArrMutableString((BuggyMutableArray<NSMutableString *> *)b); 220 withMutArrString(b); // expected-warning {{Conversion}} 221} 222 223void InferenceFromAPIWithBuggyTypes4(__kindof NSArray<NSString *> *a) { 224 BuggyMutableArray<NSMutableString *> *b = a; 225 withMutArrString(b); 226 withMutArrMutableString(b); // expected-warning {{Conversion}} 227} 228 229NSArray<NSString *> *getStrings(); 230void enforceDynamicRulesInsteadOfStatic(NSArray<NSNumber *> *a) { 231 NSArray *b = a; 232 // Valid uses of NSArray of NSNumbers. 233 b = getStrings(); 234 // Valid uses of NSArray of NSStrings. 235} 236 237void workWithProperties(NSArray<NSNumber *> *a) { 238 NSArray *b = a; 239 NSString *str = [b getObjAtIndex: 0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}} 240 NSNumber *num = [b getObjAtIndex: 0]; 241 str = [b firstObject]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}} 242 num = [b firstObject]; 243 str = b.firstObject; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}} 244 num = b.firstObject; 245 str = b[0]; // expected-warning {{Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'}} 246 num = b[0]; 247} 248 249void findMethodDeclInTrackedType(id m, NSArray<NSMutableString *> *a, 250 MutableArray<NSMutableString *> *b) { 251 a = b; 252 if (getUnknown() == 5) { 253 m = a; 254 [m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}} 255 } else { 256 m = b; 257 [m addObject: [[NSMutableString alloc] init]]; 258 } 259} 260 261void findMethodDeclInTrackedType2(__kindof NSArray<NSString *> *a, 262 MutableArray<NSMutableString *> *b) { 263 a = b; 264 if (getUnknown() == 5) { 265 [a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}} 266 } else { 267 [a addObject: [[NSMutableString alloc] init]]; 268 } 269} 270 271void testUnannotatedLiterals() { 272 // ObjCArrayLiterals are not specialized in the AST. 273 NSArray *arr = @[@"A", @"B"]; 274 [arr contains: [[NSNumber alloc] init]]; 275} 276 277void testAnnotatedLiterals() { 278 NSArray<NSString *> *arr = @[@"A", @"B"]; 279 NSArray *arr2 = arr; 280 [arr2 contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}} 281} 282 283void nonExistentMethodDoesNotCrash(id a, MutableArray<NSMutableString *> *b) { 284 a = b; 285 [a nonExistentMethod]; 286} 287 288void trackedClassVariables() { 289 Class c = [NSArray<NSString *> class]; 290 NSArray<NSNumber *> *a = [c getEmpty]; // expected-warning {{Conversion}} 291 a = [c getEmpty2]; // expected-warning {{Conversion}} 292} 293 294void nestedCollections(NSArray<NSArray<NSNumber *> *> *mat, NSArray<NSString *> *row) { 295 id temp = row; 296 [mat contains: temp]; // expected-warning {{Conversion}} 297} 298 299void testMistmatchedTypeCast(MutableArray<NSMutableString *> *a) { 300 MutableArray *b = (MutableArray<NSNumber *> *)a; 301 [b addObject: [[NSNumber alloc] init]]; 302 id c = (UnrelatedType *)a; 303 [c addObject: [[NSNumber alloc] init]]; 304 [c addObject: [[NSString alloc] init]]; 305} 306 307void returnCollectionToIdVariable(NSArray<NSArray<NSString *> *> *arr) { 308 NSArray *erased = arr; 309 id a = [erased firstObject]; 310 NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}} 311} 312 313void eraseSpecialization(NSArray<NSArray<NSString *> *> *arr) { 314 NSArray *erased = arr; 315 NSArray* a = [erased firstObject]; 316 NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}} 317} 318 319void returnToUnrelatedType(NSArray<NSArray<NSString *> *> *arr) { 320 NSArray *erased = arr; 321 NSSet* a = [erased firstObject]; // expected-warning {{Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'}} 322 (void)a; 323} 324 325void returnToIdVariable(NSArray<NSString *> *arr) { 326 NSArray *erased = arr; 327 id a = [erased firstObject]; 328 NSNumber *res = a; // expected-warning {{Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'}} 329} 330 331@interface UnrelatedTypeGeneric<T> : NSObject<NSCopying> 332- (void)takesType:(T)v; 333@end 334 335void testGetMostInformativeDerivedForId(NSArray<NSString *> *a, 336 UnrelatedTypeGeneric<NSString *> *b) { 337 id idB = b; 338 a = idB; // expected-warning {{Conversion from value of type 'UnrelatedTypeGeneric<NSString *> *' to incompatible type 'NSArray<NSString *> *'}} 339 340 // rdar://problem/26086914 crash here caused by symbolic type being unrelated 341 // to compile-time source type of cast. 342 id x = a; // Compile-time type is NSArray<>, Symbolic type is UnrelatedTypeGeneric<>. 343 [x takesType:[[NSNumber alloc] init]]; // expected-warning {{Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'}} 344} 345 346// CHECK: <key>diagnostics</key> 347// CHECK-NEXT: <array> 348// CHECK-NEXT: <dict> 349// CHECK-NEXT: <key>path</key> 350// CHECK-NEXT: <array> 351// CHECK-NEXT: <dict> 352// CHECK-NEXT: <key>kind</key><string>event</string> 353// CHECK-NEXT: <key>location</key> 354// CHECK-NEXT: <dict> 355// CHECK-NEXT: <key>line</key><integer>92</integer> 356// CHECK-NEXT: <key>col</key><integer>7</integer> 357// CHECK-NEXT: <key>file</key><integer>0</integer> 358// CHECK-NEXT: </dict> 359// CHECK-NEXT: <key>ranges</key> 360// CHECK-NEXT: <array> 361// CHECK-NEXT: <array> 362// CHECK-NEXT: <dict> 363// CHECK-NEXT: <key>line</key><integer>92</integer> 364// CHECK-NEXT: <key>col</key><integer>7</integer> 365// CHECK-NEXT: <key>file</key><integer>0</integer> 366// CHECK-NEXT: </dict> 367// CHECK-NEXT: <dict> 368// CHECK-NEXT: <key>line</key><integer>92</integer> 369// CHECK-NEXT: <key>col</key><integer>7</integer> 370// CHECK-NEXT: <key>file</key><integer>0</integer> 371// CHECK-NEXT: </dict> 372// CHECK-NEXT: </array> 373// CHECK-NEXT: </array> 374// CHECK-NEXT: <key>depth</key><integer>0</integer> 375// CHECK-NEXT: <key>extended_message</key> 376// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 377// CHECK-NEXT: <key>message</key> 378// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 379// CHECK-NEXT: </dict> 380// CHECK-NEXT: <dict> 381// CHECK-NEXT: <key>kind</key><string>control</string> 382// CHECK-NEXT: <key>edges</key> 383// CHECK-NEXT: <array> 384// CHECK-NEXT: <dict> 385// CHECK-NEXT: <key>start</key> 386// CHECK-NEXT: <array> 387// CHECK-NEXT: <dict> 388// CHECK-NEXT: <key>line</key><integer>92</integer> 389// CHECK-NEXT: <key>col</key><integer>3</integer> 390// CHECK-NEXT: <key>file</key><integer>0</integer> 391// CHECK-NEXT: </dict> 392// CHECK-NEXT: <dict> 393// CHECK-NEXT: <key>line</key><integer>92</integer> 394// CHECK-NEXT: <key>col</key><integer>3</integer> 395// CHECK-NEXT: <key>file</key><integer>0</integer> 396// CHECK-NEXT: </dict> 397// CHECK-NEXT: </array> 398// CHECK-NEXT: <key>end</key> 399// CHECK-NEXT: <array> 400// CHECK-NEXT: <dict> 401// CHECK-NEXT: <key>line</key><integer>93</integer> 402// CHECK-NEXT: <key>col</key><integer>3</integer> 403// CHECK-NEXT: <key>file</key><integer>0</integer> 404// CHECK-NEXT: </dict> 405// CHECK-NEXT: <dict> 406// CHECK-NEXT: <key>line</key><integer>93</integer> 407// CHECK-NEXT: <key>col</key><integer>3</integer> 408// CHECK-NEXT: <key>file</key><integer>0</integer> 409// CHECK-NEXT: </dict> 410// CHECK-NEXT: </array> 411// CHECK-NEXT: </dict> 412// CHECK-NEXT: </array> 413// CHECK-NEXT: </dict> 414// CHECK-NEXT: <dict> 415// CHECK-NEXT: <key>kind</key><string>control</string> 416// CHECK-NEXT: <key>edges</key> 417// CHECK-NEXT: <array> 418// CHECK-NEXT: <dict> 419// CHECK-NEXT: <key>start</key> 420// CHECK-NEXT: <array> 421// CHECK-NEXT: <dict> 422// CHECK-NEXT: <key>line</key><integer>93</integer> 423// CHECK-NEXT: <key>col</key><integer>3</integer> 424// CHECK-NEXT: <key>file</key><integer>0</integer> 425// CHECK-NEXT: </dict> 426// CHECK-NEXT: <dict> 427// CHECK-NEXT: <key>line</key><integer>93</integer> 428// CHECK-NEXT: <key>col</key><integer>3</integer> 429// CHECK-NEXT: <key>file</key><integer>0</integer> 430// CHECK-NEXT: </dict> 431// CHECK-NEXT: </array> 432// CHECK-NEXT: <key>end</key> 433// CHECK-NEXT: <array> 434// CHECK-NEXT: <dict> 435// CHECK-NEXT: <key>line</key><integer>93</integer> 436// CHECK-NEXT: <key>col</key><integer>7</integer> 437// CHECK-NEXT: <key>file</key><integer>0</integer> 438// CHECK-NEXT: </dict> 439// CHECK-NEXT: <dict> 440// CHECK-NEXT: <key>line</key><integer>93</integer> 441// CHECK-NEXT: <key>col</key><integer>7</integer> 442// CHECK-NEXT: <key>file</key><integer>0</integer> 443// CHECK-NEXT: </dict> 444// CHECK-NEXT: </array> 445// CHECK-NEXT: </dict> 446// CHECK-NEXT: </array> 447// CHECK-NEXT: </dict> 448// CHECK-NEXT: <dict> 449// CHECK-NEXT: <key>kind</key><string>event</string> 450// CHECK-NEXT: <key>location</key> 451// CHECK-NEXT: <dict> 452// CHECK-NEXT: <key>line</key><integer>93</integer> 453// CHECK-NEXT: <key>col</key><integer>7</integer> 454// CHECK-NEXT: <key>file</key><integer>0</integer> 455// CHECK-NEXT: </dict> 456// CHECK-NEXT: <key>ranges</key> 457// CHECK-NEXT: <array> 458// CHECK-NEXT: <array> 459// CHECK-NEXT: <dict> 460// CHECK-NEXT: <key>line</key><integer>93</integer> 461// CHECK-NEXT: <key>col</key><integer>7</integer> 462// CHECK-NEXT: <key>file</key><integer>0</integer> 463// CHECK-NEXT: </dict> 464// CHECK-NEXT: <dict> 465// CHECK-NEXT: <key>line</key><integer>93</integer> 466// CHECK-NEXT: <key>col</key><integer>7</integer> 467// CHECK-NEXT: <key>file</key><integer>0</integer> 468// CHECK-NEXT: </dict> 469// CHECK-NEXT: </array> 470// CHECK-NEXT: </array> 471// CHECK-NEXT: <key>depth</key><integer>0</integer> 472// CHECK-NEXT: <key>extended_message</key> 473// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 474// CHECK-NEXT: <key>message</key> 475// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 476// CHECK-NEXT: </dict> 477// CHECK-NEXT: </array> 478// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 479// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 480// CHECK-NEXT: <key>type</key><string>Generics</string> 481// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 482// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 483// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>9632a21d129601d531e0b4585a27c686</string> 484// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 485// CHECK-NEXT: <key>issue_context</key><string>incompatibleTypesErased</string> 486// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 487// CHECK-NEXT: <key>location</key> 488// CHECK-NEXT: <dict> 489// CHECK-NEXT: <key>line</key><integer>93</integer> 490// CHECK-NEXT: <key>col</key><integer>7</integer> 491// CHECK-NEXT: <key>file</key><integer>0</integer> 492// CHECK-NEXT: </dict> 493// CHECK-NEXT: </dict> 494// CHECK-NEXT: <dict> 495// CHECK-NEXT: <key>path</key> 496// CHECK-NEXT: <array> 497// CHECK-NEXT: <dict> 498// CHECK-NEXT: <key>kind</key><string>event</string> 499// CHECK-NEXT: <key>location</key> 500// CHECK-NEXT: <dict> 501// CHECK-NEXT: <key>line</key><integer>92</integer> 502// CHECK-NEXT: <key>col</key><integer>7</integer> 503// CHECK-NEXT: <key>file</key><integer>0</integer> 504// CHECK-NEXT: </dict> 505// CHECK-NEXT: <key>ranges</key> 506// CHECK-NEXT: <array> 507// CHECK-NEXT: <array> 508// CHECK-NEXT: <dict> 509// CHECK-NEXT: <key>line</key><integer>92</integer> 510// CHECK-NEXT: <key>col</key><integer>7</integer> 511// CHECK-NEXT: <key>file</key><integer>0</integer> 512// CHECK-NEXT: </dict> 513// CHECK-NEXT: <dict> 514// CHECK-NEXT: <key>line</key><integer>92</integer> 515// CHECK-NEXT: <key>col</key><integer>7</integer> 516// CHECK-NEXT: <key>file</key><integer>0</integer> 517// CHECK-NEXT: </dict> 518// CHECK-NEXT: </array> 519// CHECK-NEXT: </array> 520// CHECK-NEXT: <key>depth</key><integer>0</integer> 521// CHECK-NEXT: <key>extended_message</key> 522// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 523// CHECK-NEXT: <key>message</key> 524// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 525// CHECK-NEXT: </dict> 526// CHECK-NEXT: <dict> 527// CHECK-NEXT: <key>kind</key><string>control</string> 528// CHECK-NEXT: <key>edges</key> 529// CHECK-NEXT: <array> 530// CHECK-NEXT: <dict> 531// CHECK-NEXT: <key>start</key> 532// CHECK-NEXT: <array> 533// CHECK-NEXT: <dict> 534// CHECK-NEXT: <key>line</key><integer>92</integer> 535// CHECK-NEXT: <key>col</key><integer>3</integer> 536// CHECK-NEXT: <key>file</key><integer>0</integer> 537// CHECK-NEXT: </dict> 538// CHECK-NEXT: <dict> 539// CHECK-NEXT: <key>line</key><integer>92</integer> 540// CHECK-NEXT: <key>col</key><integer>3</integer> 541// CHECK-NEXT: <key>file</key><integer>0</integer> 542// CHECK-NEXT: </dict> 543// CHECK-NEXT: </array> 544// CHECK-NEXT: <key>end</key> 545// CHECK-NEXT: <array> 546// CHECK-NEXT: <dict> 547// CHECK-NEXT: <key>line</key><integer>94</integer> 548// CHECK-NEXT: <key>col</key><integer>3</integer> 549// CHECK-NEXT: <key>file</key><integer>0</integer> 550// CHECK-NEXT: </dict> 551// CHECK-NEXT: <dict> 552// CHECK-NEXT: <key>line</key><integer>94</integer> 553// CHECK-NEXT: <key>col</key><integer>3</integer> 554// CHECK-NEXT: <key>file</key><integer>0</integer> 555// CHECK-NEXT: </dict> 556// CHECK-NEXT: </array> 557// CHECK-NEXT: </dict> 558// CHECK-NEXT: </array> 559// CHECK-NEXT: </dict> 560// CHECK-NEXT: <dict> 561// CHECK-NEXT: <key>kind</key><string>event</string> 562// CHECK-NEXT: <key>location</key> 563// CHECK-NEXT: <dict> 564// CHECK-NEXT: <key>line</key><integer>94</integer> 565// CHECK-NEXT: <key>col</key><integer>3</integer> 566// CHECK-NEXT: <key>file</key><integer>0</integer> 567// CHECK-NEXT: </dict> 568// CHECK-NEXT: <key>ranges</key> 569// CHECK-NEXT: <array> 570// CHECK-NEXT: <array> 571// CHECK-NEXT: <dict> 572// CHECK-NEXT: <key>line</key><integer>94</integer> 573// CHECK-NEXT: <key>col</key><integer>16</integer> 574// CHECK-NEXT: <key>file</key><integer>0</integer> 575// CHECK-NEXT: </dict> 576// CHECK-NEXT: <dict> 577// CHECK-NEXT: <key>line</key><integer>94</integer> 578// CHECK-NEXT: <key>col</key><integer>38</integer> 579// CHECK-NEXT: <key>file</key><integer>0</integer> 580// CHECK-NEXT: </dict> 581// CHECK-NEXT: </array> 582// CHECK-NEXT: </array> 583// CHECK-NEXT: <key>depth</key><integer>0</integer> 584// CHECK-NEXT: <key>extended_message</key> 585// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 586// CHECK-NEXT: <key>message</key> 587// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 588// CHECK-NEXT: </dict> 589// CHECK-NEXT: </array> 590// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 591// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 592// CHECK-NEXT: <key>type</key><string>Generics</string> 593// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 594// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 595// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>3c9499ea9f5adc148d5c4b684e3dcc5a</string> 596// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 597// CHECK-NEXT: <key>issue_context</key><string>incompatibleTypesErased</string> 598// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 599// CHECK-NEXT: <key>location</key> 600// CHECK-NEXT: <dict> 601// CHECK-NEXT: <key>line</key><integer>94</integer> 602// CHECK-NEXT: <key>col</key><integer>3</integer> 603// CHECK-NEXT: <key>file</key><integer>0</integer> 604// CHECK-NEXT: </dict> 605// CHECK-NEXT: </dict> 606// CHECK-NEXT: <dict> 607// CHECK-NEXT: <key>path</key> 608// CHECK-NEXT: <array> 609// CHECK-NEXT: <dict> 610// CHECK-NEXT: <key>kind</key><string>event</string> 611// CHECK-NEXT: <key>location</key> 612// CHECK-NEXT: <dict> 613// CHECK-NEXT: <key>line</key><integer>92</integer> 614// CHECK-NEXT: <key>col</key><integer>7</integer> 615// CHECK-NEXT: <key>file</key><integer>0</integer> 616// CHECK-NEXT: </dict> 617// CHECK-NEXT: <key>ranges</key> 618// CHECK-NEXT: <array> 619// CHECK-NEXT: <array> 620// CHECK-NEXT: <dict> 621// CHECK-NEXT: <key>line</key><integer>92</integer> 622// CHECK-NEXT: <key>col</key><integer>7</integer> 623// CHECK-NEXT: <key>file</key><integer>0</integer> 624// CHECK-NEXT: </dict> 625// CHECK-NEXT: <dict> 626// CHECK-NEXT: <key>line</key><integer>92</integer> 627// CHECK-NEXT: <key>col</key><integer>7</integer> 628// CHECK-NEXT: <key>file</key><integer>0</integer> 629// CHECK-NEXT: </dict> 630// CHECK-NEXT: </array> 631// CHECK-NEXT: </array> 632// CHECK-NEXT: <key>depth</key><integer>0</integer> 633// CHECK-NEXT: <key>extended_message</key> 634// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 635// CHECK-NEXT: <key>message</key> 636// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string> 637// CHECK-NEXT: </dict> 638// CHECK-NEXT: <dict> 639// CHECK-NEXT: <key>kind</key><string>control</string> 640// CHECK-NEXT: <key>edges</key> 641// CHECK-NEXT: <array> 642// CHECK-NEXT: <dict> 643// CHECK-NEXT: <key>start</key> 644// CHECK-NEXT: <array> 645// CHECK-NEXT: <dict> 646// CHECK-NEXT: <key>line</key><integer>92</integer> 647// CHECK-NEXT: <key>col</key><integer>3</integer> 648// CHECK-NEXT: <key>file</key><integer>0</integer> 649// CHECK-NEXT: </dict> 650// CHECK-NEXT: <dict> 651// CHECK-NEXT: <key>line</key><integer>92</integer> 652// CHECK-NEXT: <key>col</key><integer>3</integer> 653// CHECK-NEXT: <key>file</key><integer>0</integer> 654// CHECK-NEXT: </dict> 655// CHECK-NEXT: </array> 656// CHECK-NEXT: <key>end</key> 657// CHECK-NEXT: <array> 658// CHECK-NEXT: <dict> 659// CHECK-NEXT: <key>line</key><integer>96</integer> 660// CHECK-NEXT: <key>col</key><integer>3</integer> 661// CHECK-NEXT: <key>file</key><integer>0</integer> 662// CHECK-NEXT: </dict> 663// CHECK-NEXT: <dict> 664// CHECK-NEXT: <key>line</key><integer>96</integer> 665// CHECK-NEXT: <key>col</key><integer>9</integer> 666// CHECK-NEXT: <key>file</key><integer>0</integer> 667// CHECK-NEXT: </dict> 668// CHECK-NEXT: </array> 669// CHECK-NEXT: </dict> 670// CHECK-NEXT: </array> 671// CHECK-NEXT: </dict> 672// CHECK-NEXT: <dict> 673// CHECK-NEXT: <key>kind</key><string>control</string> 674// CHECK-NEXT: <key>edges</key> 675// CHECK-NEXT: <array> 676// CHECK-NEXT: <dict> 677// CHECK-NEXT: <key>start</key> 678// CHECK-NEXT: <array> 679// CHECK-NEXT: <dict> 680// CHECK-NEXT: <key>line</key><integer>96</integer> 681// CHECK-NEXT: <key>col</key><integer>3</integer> 682// CHECK-NEXT: <key>file</key><integer>0</integer> 683// CHECK-NEXT: </dict> 684// CHECK-NEXT: <dict> 685// CHECK-NEXT: <key>line</key><integer>96</integer> 686// CHECK-NEXT: <key>col</key><integer>9</integer> 687// CHECK-NEXT: <key>file</key><integer>0</integer> 688// CHECK-NEXT: </dict> 689// CHECK-NEXT: </array> 690// CHECK-NEXT: <key>end</key> 691// CHECK-NEXT: <array> 692// CHECK-NEXT: <dict> 693// CHECK-NEXT: <key>line</key><integer>96</integer> 694// CHECK-NEXT: <key>col</key><integer>11</integer> 695// CHECK-NEXT: <key>file</key><integer>0</integer> 696// CHECK-NEXT: </dict> 697// CHECK-NEXT: <dict> 698// CHECK-NEXT: <key>line</key><integer>96</integer> 699// CHECK-NEXT: <key>col</key><integer>11</integer> 700// CHECK-NEXT: <key>file</key><integer>0</integer> 701// CHECK-NEXT: </dict> 702// CHECK-NEXT: </array> 703// CHECK-NEXT: </dict> 704// CHECK-NEXT: </array> 705// CHECK-NEXT: </dict> 706// CHECK-NEXT: <dict> 707// CHECK-NEXT: <key>kind</key><string>event</string> 708// CHECK-NEXT: <key>location</key> 709// CHECK-NEXT: <dict> 710// CHECK-NEXT: <key>line</key><integer>96</integer> 711// CHECK-NEXT: <key>col</key><integer>11</integer> 712// CHECK-NEXT: <key>file</key><integer>0</integer> 713// CHECK-NEXT: </dict> 714// CHECK-NEXT: <key>ranges</key> 715// CHECK-NEXT: <array> 716// CHECK-NEXT: <array> 717// CHECK-NEXT: <dict> 718// CHECK-NEXT: <key>line</key><integer>96</integer> 719// CHECK-NEXT: <key>col</key><integer>11</integer> 720// CHECK-NEXT: <key>file</key><integer>0</integer> 721// CHECK-NEXT: </dict> 722// CHECK-NEXT: <dict> 723// CHECK-NEXT: <key>line</key><integer>96</integer> 724// CHECK-NEXT: <key>col</key><integer>11</integer> 725// CHECK-NEXT: <key>file</key><integer>0</integer> 726// CHECK-NEXT: </dict> 727// CHECK-NEXT: </array> 728// CHECK-NEXT: </array> 729// CHECK-NEXT: <key>depth</key><integer>0</integer> 730// CHECK-NEXT: <key>extended_message</key> 731// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 732// CHECK-NEXT: <key>message</key> 733// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 734// CHECK-NEXT: </dict> 735// CHECK-NEXT: </array> 736// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 737// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 738// CHECK-NEXT: <key>type</key><string>Generics</string> 739// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 740// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 741// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>1d8497465a98d7cc2067a916e217d5bc</string> 742// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 743// CHECK-NEXT: <key>issue_context</key><string>incompatibleTypesErased</string> 744// CHECK-NEXT: <key>issue_hash_function_offset</key><string>5</string> 745// CHECK-NEXT: <key>location</key> 746// CHECK-NEXT: <dict> 747// CHECK-NEXT: <key>line</key><integer>96</integer> 748// CHECK-NEXT: <key>col</key><integer>11</integer> 749// CHECK-NEXT: <key>file</key><integer>0</integer> 750// CHECK-NEXT: </dict> 751// CHECK-NEXT: </dict> 752// CHECK-NEXT: <dict> 753// CHECK-NEXT: <key>path</key> 754// CHECK-NEXT: <array> 755// CHECK-NEXT: <dict> 756// CHECK-NEXT: <key>kind</key><string>control</string> 757// CHECK-NEXT: <key>edges</key> 758// CHECK-NEXT: <array> 759// CHECK-NEXT: <dict> 760// CHECK-NEXT: <key>start</key> 761// CHECK-NEXT: <array> 762// CHECK-NEXT: <dict> 763// CHECK-NEXT: <key>line</key><integer>100</integer> 764// CHECK-NEXT: <key>col</key><integer>3</integer> 765// CHECK-NEXT: <key>file</key><integer>0</integer> 766// CHECK-NEXT: </dict> 767// CHECK-NEXT: <dict> 768// CHECK-NEXT: <key>line</key><integer>100</integer> 769// CHECK-NEXT: <key>col</key><integer>9</integer> 770// CHECK-NEXT: <key>file</key><integer>0</integer> 771// CHECK-NEXT: </dict> 772// CHECK-NEXT: </array> 773// CHECK-NEXT: <key>end</key> 774// CHECK-NEXT: <array> 775// CHECK-NEXT: <dict> 776// CHECK-NEXT: <key>line</key><integer>100</integer> 777// CHECK-NEXT: <key>col</key><integer>28</integer> 778// CHECK-NEXT: <key>file</key><integer>0</integer> 779// CHECK-NEXT: </dict> 780// CHECK-NEXT: <dict> 781// CHECK-NEXT: <key>line</key><integer>100</integer> 782// CHECK-NEXT: <key>col</key><integer>40</integer> 783// CHECK-NEXT: <key>file</key><integer>0</integer> 784// CHECK-NEXT: </dict> 785// CHECK-NEXT: </array> 786// CHECK-NEXT: </dict> 787// CHECK-NEXT: </array> 788// CHECK-NEXT: </dict> 789// CHECK-NEXT: <dict> 790// CHECK-NEXT: <key>kind</key><string>event</string> 791// CHECK-NEXT: <key>location</key> 792// CHECK-NEXT: <dict> 793// CHECK-NEXT: <key>line</key><integer>100</integer> 794// CHECK-NEXT: <key>col</key><integer>28</integer> 795// CHECK-NEXT: <key>file</key><integer>0</integer> 796// CHECK-NEXT: </dict> 797// CHECK-NEXT: <key>ranges</key> 798// CHECK-NEXT: <array> 799// CHECK-NEXT: <array> 800// CHECK-NEXT: <dict> 801// CHECK-NEXT: <key>line</key><integer>100</integer> 802// CHECK-NEXT: <key>col</key><integer>28</integer> 803// CHECK-NEXT: <key>file</key><integer>0</integer> 804// CHECK-NEXT: </dict> 805// CHECK-NEXT: <dict> 806// CHECK-NEXT: <key>line</key><integer>100</integer> 807// CHECK-NEXT: <key>col</key><integer>42</integer> 808// CHECK-NEXT: <key>file</key><integer>0</integer> 809// CHECK-NEXT: </dict> 810// CHECK-NEXT: </array> 811// CHECK-NEXT: </array> 812// CHECK-NEXT: <key>depth</key><integer>0</integer> 813// CHECK-NEXT: <key>extended_message</key> 814// CHECK-NEXT: <string>Calling 'getTypedStuff'</string> 815// CHECK-NEXT: <key>message</key> 816// CHECK-NEXT: <string>Calling 'getTypedStuff'</string> 817// CHECK-NEXT: </dict> 818// CHECK-NEXT: <dict> 819// CHECK-NEXT: <key>kind</key><string>event</string> 820// CHECK-NEXT: <key>location</key> 821// CHECK-NEXT: <dict> 822// CHECK-NEXT: <key>line</key><integer>79</integer> 823// CHECK-NEXT: <key>col</key><integer>1</integer> 824// CHECK-NEXT: <key>file</key><integer>0</integer> 825// CHECK-NEXT: </dict> 826// CHECK-NEXT: <key>depth</key><integer>1</integer> 827// CHECK-NEXT: <key>extended_message</key> 828// CHECK-NEXT: <string>Entered call from 'crossProceduralErasedTypes'</string> 829// CHECK-NEXT: <key>message</key> 830// CHECK-NEXT: <string>Entered call from 'crossProceduralErasedTypes'</string> 831// CHECK-NEXT: </dict> 832// CHECK-NEXT: <dict> 833// CHECK-NEXT: <key>kind</key><string>control</string> 834// CHECK-NEXT: <key>edges</key> 835// CHECK-NEXT: <array> 836// CHECK-NEXT: <dict> 837// CHECK-NEXT: <key>start</key> 838// CHECK-NEXT: <array> 839// CHECK-NEXT: <dict> 840// CHECK-NEXT: <key>line</key><integer>79</integer> 841// CHECK-NEXT: <key>col</key><integer>1</integer> 842// CHECK-NEXT: <key>file</key><integer>0</integer> 843// CHECK-NEXT: </dict> 844// CHECK-NEXT: <dict> 845// CHECK-NEXT: <key>line</key><integer>79</integer> 846// CHECK-NEXT: <key>col</key><integer>7</integer> 847// CHECK-NEXT: <key>file</key><integer>0</integer> 848// CHECK-NEXT: </dict> 849// CHECK-NEXT: </array> 850// CHECK-NEXT: <key>end</key> 851// CHECK-NEXT: <array> 852// CHECK-NEXT: <dict> 853// CHECK-NEXT: <key>line</key><integer>80</integer> 854// CHECK-NEXT: <key>col</key><integer>3</integer> 855// CHECK-NEXT: <key>file</key><integer>0</integer> 856// CHECK-NEXT: </dict> 857// CHECK-NEXT: <dict> 858// CHECK-NEXT: <key>line</key><integer>80</integer> 859// CHECK-NEXT: <key>col</key><integer>9</integer> 860// CHECK-NEXT: <key>file</key><integer>0</integer> 861// CHECK-NEXT: </dict> 862// CHECK-NEXT: </array> 863// CHECK-NEXT: </dict> 864// CHECK-NEXT: </array> 865// CHECK-NEXT: </dict> 866// CHECK-NEXT: <dict> 867// CHECK-NEXT: <key>kind</key><string>event</string> 868// CHECK-NEXT: <key>location</key> 869// CHECK-NEXT: <dict> 870// CHECK-NEXT: <key>line</key><integer>80</integer> 871// CHECK-NEXT: <key>col</key><integer>28</integer> 872// CHECK-NEXT: <key>file</key><integer>0</integer> 873// CHECK-NEXT: </dict> 874// CHECK-NEXT: <key>ranges</key> 875// CHECK-NEXT: <array> 876// CHECK-NEXT: <array> 877// CHECK-NEXT: <dict> 878// CHECK-NEXT: <key>line</key><integer>80</integer> 879// CHECK-NEXT: <key>col</key><integer>28</integer> 880// CHECK-NEXT: <key>file</key><integer>0</integer> 881// CHECK-NEXT: </dict> 882// CHECK-NEXT: <dict> 883// CHECK-NEXT: <key>line</key><integer>80</integer> 884// CHECK-NEXT: <key>col</key><integer>37</integer> 885// CHECK-NEXT: <key>file</key><integer>0</integer> 886// CHECK-NEXT: </dict> 887// CHECK-NEXT: </array> 888// CHECK-NEXT: </array> 889// CHECK-NEXT: <key>depth</key><integer>1</integer> 890// CHECK-NEXT: <key>extended_message</key> 891// CHECK-NEXT: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSNumber *> *')</string> 892// CHECK-NEXT: <key>message</key> 893// CHECK-NEXT: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSNumber *> *')</string> 894// CHECK-NEXT: </dict> 895// CHECK-NEXT: <dict> 896// CHECK-NEXT: <key>kind</key><string>control</string> 897// CHECK-NEXT: <key>edges</key> 898// CHECK-NEXT: <array> 899// CHECK-NEXT: <dict> 900// CHECK-NEXT: <key>start</key> 901// CHECK-NEXT: <array> 902// CHECK-NEXT: <dict> 903// CHECK-NEXT: <key>line</key><integer>80</integer> 904// CHECK-NEXT: <key>col</key><integer>3</integer> 905// CHECK-NEXT: <key>file</key><integer>0</integer> 906// CHECK-NEXT: </dict> 907// CHECK-NEXT: <dict> 908// CHECK-NEXT: <key>line</key><integer>80</integer> 909// CHECK-NEXT: <key>col</key><integer>9</integer> 910// CHECK-NEXT: <key>file</key><integer>0</integer> 911// CHECK-NEXT: </dict> 912// CHECK-NEXT: </array> 913// CHECK-NEXT: <key>end</key> 914// CHECK-NEXT: <array> 915// CHECK-NEXT: <dict> 916// CHECK-NEXT: <key>line</key><integer>81</integer> 917// CHECK-NEXT: <key>col</key><integer>3</integer> 918// CHECK-NEXT: <key>file</key><integer>0</integer> 919// CHECK-NEXT: </dict> 920// CHECK-NEXT: <dict> 921// CHECK-NEXT: <key>line</key><integer>81</integer> 922// CHECK-NEXT: <key>col</key><integer>8</integer> 923// CHECK-NEXT: <key>file</key><integer>0</integer> 924// CHECK-NEXT: </dict> 925// CHECK-NEXT: </array> 926// CHECK-NEXT: </dict> 927// CHECK-NEXT: </array> 928// CHECK-NEXT: </dict> 929// CHECK-NEXT: <dict> 930// CHECK-NEXT: <key>kind</key><string>event</string> 931// CHECK-NEXT: <key>location</key> 932// CHECK-NEXT: <dict> 933// CHECK-NEXT: <key>line</key><integer>100</integer> 934// CHECK-NEXT: <key>col</key><integer>28</integer> 935// CHECK-NEXT: <key>file</key><integer>0</integer> 936// CHECK-NEXT: </dict> 937// CHECK-NEXT: <key>ranges</key> 938// CHECK-NEXT: <array> 939// CHECK-NEXT: <array> 940// CHECK-NEXT: <dict> 941// CHECK-NEXT: <key>line</key><integer>100</integer> 942// CHECK-NEXT: <key>col</key><integer>28</integer> 943// CHECK-NEXT: <key>file</key><integer>0</integer> 944// CHECK-NEXT: </dict> 945// CHECK-NEXT: <dict> 946// CHECK-NEXT: <key>line</key><integer>100</integer> 947// CHECK-NEXT: <key>col</key><integer>42</integer> 948// CHECK-NEXT: <key>file</key><integer>0</integer> 949// CHECK-NEXT: </dict> 950// CHECK-NEXT: </array> 951// CHECK-NEXT: </array> 952// CHECK-NEXT: <key>depth</key><integer>0</integer> 953// CHECK-NEXT: <key>extended_message</key> 954// CHECK-NEXT: <string>Returning from 'getTypedStuff'</string> 955// CHECK-NEXT: <key>message</key> 956// CHECK-NEXT: <string>Returning from 'getTypedStuff'</string> 957// CHECK-NEXT: </dict> 958// CHECK-NEXT: <dict> 959// CHECK-NEXT: <key>kind</key><string>event</string> 960// CHECK-NEXT: <key>location</key> 961// CHECK-NEXT: <dict> 962// CHECK-NEXT: <key>line</key><integer>100</integer> 963// CHECK-NEXT: <key>col</key><integer>28</integer> 964// CHECK-NEXT: <key>file</key><integer>0</integer> 965// CHECK-NEXT: </dict> 966// CHECK-NEXT: <key>ranges</key> 967// CHECK-NEXT: <array> 968// CHECK-NEXT: <array> 969// CHECK-NEXT: <dict> 970// CHECK-NEXT: <key>line</key><integer>100</integer> 971// CHECK-NEXT: <key>col</key><integer>28</integer> 972// CHECK-NEXT: <key>file</key><integer>0</integer> 973// CHECK-NEXT: </dict> 974// CHECK-NEXT: <dict> 975// CHECK-NEXT: <key>line</key><integer>100</integer> 976// CHECK-NEXT: <key>col</key><integer>42</integer> 977// CHECK-NEXT: <key>file</key><integer>0</integer> 978// CHECK-NEXT: </dict> 979// CHECK-NEXT: </array> 980// CHECK-NEXT: </array> 981// CHECK-NEXT: <key>depth</key><integer>0</integer> 982// CHECK-NEXT: <key>extended_message</key> 983// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string> 984// CHECK-NEXT: <key>message</key> 985// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string> 986// CHECK-NEXT: </dict> 987// CHECK-NEXT: </array> 988// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string> 989// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 990// CHECK-NEXT: <key>type</key><string>Generics</string> 991// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 992// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 993// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>82c378fdcfcc5c0318d2f3ca46420ec1</string> 994// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 995// CHECK-NEXT: <key>issue_context</key><string>crossProceduralErasedTypes</string> 996// CHECK-NEXT: <key>issue_hash_function_offset</key><string>1</string> 997// CHECK-NEXT: <key>location</key> 998// CHECK-NEXT: <dict> 999// CHECK-NEXT: <key>line</key><integer>100</integer> 1000// CHECK-NEXT: <key>col</key><integer>28</integer> 1001// CHECK-NEXT: <key>file</key><integer>0</integer> 1002// CHECK-NEXT: </dict> 1003// CHECK-NEXT: </dict> 1004// CHECK-NEXT: <dict> 1005// CHECK-NEXT: <key>path</key> 1006// CHECK-NEXT: <array> 1007// CHECK-NEXT: <dict> 1008// CHECK-NEXT: <key>kind</key><string>event</string> 1009// CHECK-NEXT: <key>location</key> 1010// CHECK-NEXT: <dict> 1011// CHECK-NEXT: <key>line</key><integer>105</integer> 1012// CHECK-NEXT: <key>col</key><integer>7</integer> 1013// CHECK-NEXT: <key>file</key><integer>0</integer> 1014// CHECK-NEXT: </dict> 1015// CHECK-NEXT: <key>ranges</key> 1016// CHECK-NEXT: <array> 1017// CHECK-NEXT: <array> 1018// CHECK-NEXT: <dict> 1019// CHECK-NEXT: <key>line</key><integer>105</integer> 1020// CHECK-NEXT: <key>col</key><integer>7</integer> 1021// CHECK-NEXT: <key>file</key><integer>0</integer> 1022// CHECK-NEXT: </dict> 1023// CHECK-NEXT: <dict> 1024// CHECK-NEXT: <key>line</key><integer>105</integer> 1025// CHECK-NEXT: <key>col</key><integer>7</integer> 1026// CHECK-NEXT: <key>file</key><integer>0</integer> 1027// CHECK-NEXT: </dict> 1028// CHECK-NEXT: </array> 1029// CHECK-NEXT: </array> 1030// CHECK-NEXT: <key>depth</key><integer>0</integer> 1031// CHECK-NEXT: <key>extended_message</key> 1032// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 1033// CHECK-NEXT: <key>message</key> 1034// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 1035// CHECK-NEXT: </dict> 1036// CHECK-NEXT: <dict> 1037// CHECK-NEXT: <key>kind</key><string>control</string> 1038// CHECK-NEXT: <key>edges</key> 1039// CHECK-NEXT: <array> 1040// CHECK-NEXT: <dict> 1041// CHECK-NEXT: <key>start</key> 1042// CHECK-NEXT: <array> 1043// CHECK-NEXT: <dict> 1044// CHECK-NEXT: <key>line</key><integer>105</integer> 1045// CHECK-NEXT: <key>col</key><integer>3</integer> 1046// CHECK-NEXT: <key>file</key><integer>0</integer> 1047// CHECK-NEXT: </dict> 1048// CHECK-NEXT: <dict> 1049// CHECK-NEXT: <key>line</key><integer>105</integer> 1050// CHECK-NEXT: <key>col</key><integer>3</integer> 1051// CHECK-NEXT: <key>file</key><integer>0</integer> 1052// CHECK-NEXT: </dict> 1053// CHECK-NEXT: </array> 1054// CHECK-NEXT: <key>end</key> 1055// CHECK-NEXT: <array> 1056// CHECK-NEXT: <dict> 1057// CHECK-NEXT: <key>line</key><integer>106</integer> 1058// CHECK-NEXT: <key>col</key><integer>3</integer> 1059// CHECK-NEXT: <key>file</key><integer>0</integer> 1060// CHECK-NEXT: </dict> 1061// CHECK-NEXT: <dict> 1062// CHECK-NEXT: <key>line</key><integer>106</integer> 1063// CHECK-NEXT: <key>col</key><integer>3</integer> 1064// CHECK-NEXT: <key>file</key><integer>0</integer> 1065// CHECK-NEXT: </dict> 1066// CHECK-NEXT: </array> 1067// CHECK-NEXT: </dict> 1068// CHECK-NEXT: </array> 1069// CHECK-NEXT: </dict> 1070// CHECK-NEXT: <dict> 1071// CHECK-NEXT: <key>kind</key><string>event</string> 1072// CHECK-NEXT: <key>location</key> 1073// CHECK-NEXT: <dict> 1074// CHECK-NEXT: <key>line</key><integer>106</integer> 1075// CHECK-NEXT: <key>col</key><integer>3</integer> 1076// CHECK-NEXT: <key>file</key><integer>0</integer> 1077// CHECK-NEXT: </dict> 1078// CHECK-NEXT: <key>ranges</key> 1079// CHECK-NEXT: <array> 1080// CHECK-NEXT: <array> 1081// CHECK-NEXT: <dict> 1082// CHECK-NEXT: <key>line</key><integer>106</integer> 1083// CHECK-NEXT: <key>col</key><integer>16</integer> 1084// CHECK-NEXT: <key>file</key><integer>0</integer> 1085// CHECK-NEXT: </dict> 1086// CHECK-NEXT: <dict> 1087// CHECK-NEXT: <key>line</key><integer>106</integer> 1088// CHECK-NEXT: <key>col</key><integer>38</integer> 1089// CHECK-NEXT: <key>file</key><integer>0</integer> 1090// CHECK-NEXT: </dict> 1091// CHECK-NEXT: </array> 1092// CHECK-NEXT: </array> 1093// CHECK-NEXT: <key>depth</key><integer>0</integer> 1094// CHECK-NEXT: <key>extended_message</key> 1095// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1096// CHECK-NEXT: <key>message</key> 1097// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1098// CHECK-NEXT: </dict> 1099// CHECK-NEXT: </array> 1100// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1101// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 1102// CHECK-NEXT: <key>type</key><string>Generics</string> 1103// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 1104// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1105// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>97a49604cb3d640307a104f14b6d950d</string> 1106// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1107// CHECK-NEXT: <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string> 1108// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 1109// CHECK-NEXT: <key>location</key> 1110// CHECK-NEXT: <dict> 1111// CHECK-NEXT: <key>line</key><integer>106</integer> 1112// CHECK-NEXT: <key>col</key><integer>3</integer> 1113// CHECK-NEXT: <key>file</key><integer>0</integer> 1114// CHECK-NEXT: </dict> 1115// CHECK-NEXT: </dict> 1116// CHECK-NEXT: <dict> 1117// CHECK-NEXT: <key>path</key> 1118// CHECK-NEXT: <array> 1119// CHECK-NEXT: <dict> 1120// CHECK-NEXT: <key>kind</key><string>event</string> 1121// CHECK-NEXT: <key>location</key> 1122// CHECK-NEXT: <dict> 1123// CHECK-NEXT: <key>line</key><integer>105</integer> 1124// CHECK-NEXT: <key>col</key><integer>7</integer> 1125// CHECK-NEXT: <key>file</key><integer>0</integer> 1126// CHECK-NEXT: </dict> 1127// CHECK-NEXT: <key>ranges</key> 1128// CHECK-NEXT: <array> 1129// CHECK-NEXT: <array> 1130// CHECK-NEXT: <dict> 1131// CHECK-NEXT: <key>line</key><integer>105</integer> 1132// CHECK-NEXT: <key>col</key><integer>7</integer> 1133// CHECK-NEXT: <key>file</key><integer>0</integer> 1134// CHECK-NEXT: </dict> 1135// CHECK-NEXT: <dict> 1136// CHECK-NEXT: <key>line</key><integer>105</integer> 1137// CHECK-NEXT: <key>col</key><integer>7</integer> 1138// CHECK-NEXT: <key>file</key><integer>0</integer> 1139// CHECK-NEXT: </dict> 1140// CHECK-NEXT: </array> 1141// CHECK-NEXT: </array> 1142// CHECK-NEXT: <key>depth</key><integer>0</integer> 1143// CHECK-NEXT: <key>extended_message</key> 1144// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 1145// CHECK-NEXT: <key>message</key> 1146// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 1147// CHECK-NEXT: </dict> 1148// CHECK-NEXT: <dict> 1149// CHECK-NEXT: <key>kind</key><string>control</string> 1150// CHECK-NEXT: <key>edges</key> 1151// CHECK-NEXT: <array> 1152// CHECK-NEXT: <dict> 1153// CHECK-NEXT: <key>start</key> 1154// CHECK-NEXT: <array> 1155// CHECK-NEXT: <dict> 1156// CHECK-NEXT: <key>line</key><integer>105</integer> 1157// CHECK-NEXT: <key>col</key><integer>3</integer> 1158// CHECK-NEXT: <key>file</key><integer>0</integer> 1159// CHECK-NEXT: </dict> 1160// CHECK-NEXT: <dict> 1161// CHECK-NEXT: <key>line</key><integer>105</integer> 1162// CHECK-NEXT: <key>col</key><integer>3</integer> 1163// CHECK-NEXT: <key>file</key><integer>0</integer> 1164// CHECK-NEXT: </dict> 1165// CHECK-NEXT: </array> 1166// CHECK-NEXT: <key>end</key> 1167// CHECK-NEXT: <array> 1168// CHECK-NEXT: <dict> 1169// CHECK-NEXT: <key>line</key><integer>108</integer> 1170// CHECK-NEXT: <key>col</key><integer>3</integer> 1171// CHECK-NEXT: <key>file</key><integer>0</integer> 1172// CHECK-NEXT: </dict> 1173// CHECK-NEXT: <dict> 1174// CHECK-NEXT: <key>line</key><integer>108</integer> 1175// CHECK-NEXT: <key>col</key><integer>9</integer> 1176// CHECK-NEXT: <key>file</key><integer>0</integer> 1177// CHECK-NEXT: </dict> 1178// CHECK-NEXT: </array> 1179// CHECK-NEXT: </dict> 1180// CHECK-NEXT: </array> 1181// CHECK-NEXT: </dict> 1182// CHECK-NEXT: <dict> 1183// CHECK-NEXT: <key>kind</key><string>control</string> 1184// CHECK-NEXT: <key>edges</key> 1185// CHECK-NEXT: <array> 1186// CHECK-NEXT: <dict> 1187// CHECK-NEXT: <key>start</key> 1188// CHECK-NEXT: <array> 1189// CHECK-NEXT: <dict> 1190// CHECK-NEXT: <key>line</key><integer>108</integer> 1191// CHECK-NEXT: <key>col</key><integer>3</integer> 1192// CHECK-NEXT: <key>file</key><integer>0</integer> 1193// CHECK-NEXT: </dict> 1194// CHECK-NEXT: <dict> 1195// CHECK-NEXT: <key>line</key><integer>108</integer> 1196// CHECK-NEXT: <key>col</key><integer>9</integer> 1197// CHECK-NEXT: <key>file</key><integer>0</integer> 1198// CHECK-NEXT: </dict> 1199// CHECK-NEXT: </array> 1200// CHECK-NEXT: <key>end</key> 1201// CHECK-NEXT: <array> 1202// CHECK-NEXT: <dict> 1203// CHECK-NEXT: <key>line</key><integer>108</integer> 1204// CHECK-NEXT: <key>col</key><integer>11</integer> 1205// CHECK-NEXT: <key>file</key><integer>0</integer> 1206// CHECK-NEXT: </dict> 1207// CHECK-NEXT: <dict> 1208// CHECK-NEXT: <key>line</key><integer>108</integer> 1209// CHECK-NEXT: <key>col</key><integer>11</integer> 1210// CHECK-NEXT: <key>file</key><integer>0</integer> 1211// CHECK-NEXT: </dict> 1212// CHECK-NEXT: </array> 1213// CHECK-NEXT: </dict> 1214// CHECK-NEXT: </array> 1215// CHECK-NEXT: </dict> 1216// CHECK-NEXT: <dict> 1217// CHECK-NEXT: <key>kind</key><string>event</string> 1218// CHECK-NEXT: <key>location</key> 1219// CHECK-NEXT: <dict> 1220// CHECK-NEXT: <key>line</key><integer>108</integer> 1221// CHECK-NEXT: <key>col</key><integer>11</integer> 1222// CHECK-NEXT: <key>file</key><integer>0</integer> 1223// CHECK-NEXT: </dict> 1224// CHECK-NEXT: <key>ranges</key> 1225// CHECK-NEXT: <array> 1226// CHECK-NEXT: <array> 1227// CHECK-NEXT: <dict> 1228// CHECK-NEXT: <key>line</key><integer>108</integer> 1229// CHECK-NEXT: <key>col</key><integer>11</integer> 1230// CHECK-NEXT: <key>file</key><integer>0</integer> 1231// CHECK-NEXT: </dict> 1232// CHECK-NEXT: <dict> 1233// CHECK-NEXT: <key>line</key><integer>108</integer> 1234// CHECK-NEXT: <key>col</key><integer>11</integer> 1235// CHECK-NEXT: <key>file</key><integer>0</integer> 1236// CHECK-NEXT: </dict> 1237// CHECK-NEXT: </array> 1238// CHECK-NEXT: </array> 1239// CHECK-NEXT: <key>depth</key><integer>0</integer> 1240// CHECK-NEXT: <key>extended_message</key> 1241// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1242// CHECK-NEXT: <key>message</key> 1243// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1244// CHECK-NEXT: </dict> 1245// CHECK-NEXT: </array> 1246// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1247// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 1248// CHECK-NEXT: <key>type</key><string>Generics</string> 1249// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 1250// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1251// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>b358a659d36c93a9fba593cf6d866a2b</string> 1252// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1253// CHECK-NEXT: <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string> 1254// CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string> 1255// CHECK-NEXT: <key>location</key> 1256// CHECK-NEXT: <dict> 1257// CHECK-NEXT: <key>line</key><integer>108</integer> 1258// CHECK-NEXT: <key>col</key><integer>11</integer> 1259// CHECK-NEXT: <key>file</key><integer>0</integer> 1260// CHECK-NEXT: </dict> 1261// CHECK-NEXT: </dict> 1262// CHECK-NEXT: <dict> 1263// CHECK-NEXT: <key>path</key> 1264// CHECK-NEXT: <array> 1265// CHECK-NEXT: <dict> 1266// CHECK-NEXT: <key>kind</key><string>event</string> 1267// CHECK-NEXT: <key>location</key> 1268// CHECK-NEXT: <dict> 1269// CHECK-NEXT: <key>line</key><integer>112</integer> 1270// CHECK-NEXT: <key>col</key><integer>7</integer> 1271// CHECK-NEXT: <key>file</key><integer>0</integer> 1272// CHECK-NEXT: </dict> 1273// CHECK-NEXT: <key>ranges</key> 1274// CHECK-NEXT: <array> 1275// CHECK-NEXT: <array> 1276// CHECK-NEXT: <dict> 1277// CHECK-NEXT: <key>line</key><integer>112</integer> 1278// CHECK-NEXT: <key>col</key><integer>7</integer> 1279// CHECK-NEXT: <key>file</key><integer>0</integer> 1280// CHECK-NEXT: </dict> 1281// CHECK-NEXT: <dict> 1282// CHECK-NEXT: <key>line</key><integer>112</integer> 1283// CHECK-NEXT: <key>col</key><integer>7</integer> 1284// CHECK-NEXT: <key>file</key><integer>0</integer> 1285// CHECK-NEXT: </dict> 1286// CHECK-NEXT: </array> 1287// CHECK-NEXT: </array> 1288// CHECK-NEXT: <key>depth</key><integer>0</integer> 1289// CHECK-NEXT: <key>extended_message</key> 1290// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string> 1291// CHECK-NEXT: <key>message</key> 1292// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string> 1293// CHECK-NEXT: </dict> 1294// CHECK-NEXT: <dict> 1295// CHECK-NEXT: <key>kind</key><string>control</string> 1296// CHECK-NEXT: <key>edges</key> 1297// CHECK-NEXT: <array> 1298// CHECK-NEXT: <dict> 1299// CHECK-NEXT: <key>start</key> 1300// CHECK-NEXT: <array> 1301// CHECK-NEXT: <dict> 1302// CHECK-NEXT: <key>line</key><integer>112</integer> 1303// CHECK-NEXT: <key>col</key><integer>3</integer> 1304// CHECK-NEXT: <key>file</key><integer>0</integer> 1305// CHECK-NEXT: </dict> 1306// CHECK-NEXT: <dict> 1307// CHECK-NEXT: <key>line</key><integer>112</integer> 1308// CHECK-NEXT: <key>col</key><integer>3</integer> 1309// CHECK-NEXT: <key>file</key><integer>0</integer> 1310// CHECK-NEXT: </dict> 1311// CHECK-NEXT: </array> 1312// CHECK-NEXT: <key>end</key> 1313// CHECK-NEXT: <array> 1314// CHECK-NEXT: <dict> 1315// CHECK-NEXT: <key>line</key><integer>113</integer> 1316// CHECK-NEXT: <key>col</key><integer>3</integer> 1317// CHECK-NEXT: <key>file</key><integer>0</integer> 1318// CHECK-NEXT: </dict> 1319// CHECK-NEXT: <dict> 1320// CHECK-NEXT: <key>line</key><integer>113</integer> 1321// CHECK-NEXT: <key>col</key><integer>3</integer> 1322// CHECK-NEXT: <key>file</key><integer>0</integer> 1323// CHECK-NEXT: </dict> 1324// CHECK-NEXT: </array> 1325// CHECK-NEXT: </dict> 1326// CHECK-NEXT: </array> 1327// CHECK-NEXT: </dict> 1328// CHECK-NEXT: <dict> 1329// CHECK-NEXT: <key>kind</key><string>event</string> 1330// CHECK-NEXT: <key>location</key> 1331// CHECK-NEXT: <dict> 1332// CHECK-NEXT: <key>line</key><integer>113</integer> 1333// CHECK-NEXT: <key>col</key><integer>3</integer> 1334// CHECK-NEXT: <key>file</key><integer>0</integer> 1335// CHECK-NEXT: </dict> 1336// CHECK-NEXT: <key>ranges</key> 1337// CHECK-NEXT: <array> 1338// CHECK-NEXT: <array> 1339// CHECK-NEXT: <dict> 1340// CHECK-NEXT: <key>line</key><integer>113</integer> 1341// CHECK-NEXT: <key>col</key><integer>16</integer> 1342// CHECK-NEXT: <key>file</key><integer>0</integer> 1343// CHECK-NEXT: </dict> 1344// CHECK-NEXT: <dict> 1345// CHECK-NEXT: <key>line</key><integer>113</integer> 1346// CHECK-NEXT: <key>col</key><integer>38</integer> 1347// CHECK-NEXT: <key>file</key><integer>0</integer> 1348// CHECK-NEXT: </dict> 1349// CHECK-NEXT: </array> 1350// CHECK-NEXT: </array> 1351// CHECK-NEXT: <key>depth</key><integer>0</integer> 1352// CHECK-NEXT: <key>extended_message</key> 1353// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1354// CHECK-NEXT: <key>message</key> 1355// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1356// CHECK-NEXT: </dict> 1357// CHECK-NEXT: </array> 1358// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1359// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 1360// CHECK-NEXT: <key>type</key><string>Generics</string> 1361// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 1362// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1363// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>a57d9309397250421e9b96afe80c2045</string> 1364// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1365// CHECK-NEXT: <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string> 1366// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 1367// CHECK-NEXT: <key>location</key> 1368// CHECK-NEXT: <dict> 1369// CHECK-NEXT: <key>line</key><integer>113</integer> 1370// CHECK-NEXT: <key>col</key><integer>3</integer> 1371// CHECK-NEXT: <key>file</key><integer>0</integer> 1372// CHECK-NEXT: </dict> 1373// CHECK-NEXT: </dict> 1374// CHECK-NEXT: <dict> 1375// CHECK-NEXT: <key>path</key> 1376// CHECK-NEXT: <array> 1377// CHECK-NEXT: <dict> 1378// CHECK-NEXT: <key>kind</key><string>event</string> 1379// CHECK-NEXT: <key>location</key> 1380// CHECK-NEXT: <dict> 1381// CHECK-NEXT: <key>line</key><integer>112</integer> 1382// CHECK-NEXT: <key>col</key><integer>7</integer> 1383// CHECK-NEXT: <key>file</key><integer>0</integer> 1384// CHECK-NEXT: </dict> 1385// CHECK-NEXT: <key>ranges</key> 1386// CHECK-NEXT: <array> 1387// CHECK-NEXT: <array> 1388// CHECK-NEXT: <dict> 1389// CHECK-NEXT: <key>line</key><integer>112</integer> 1390// CHECK-NEXT: <key>col</key><integer>7</integer> 1391// CHECK-NEXT: <key>file</key><integer>0</integer> 1392// CHECK-NEXT: </dict> 1393// CHECK-NEXT: <dict> 1394// CHECK-NEXT: <key>line</key><integer>112</integer> 1395// CHECK-NEXT: <key>col</key><integer>7</integer> 1396// CHECK-NEXT: <key>file</key><integer>0</integer> 1397// CHECK-NEXT: </dict> 1398// CHECK-NEXT: </array> 1399// CHECK-NEXT: </array> 1400// CHECK-NEXT: <key>depth</key><integer>0</integer> 1401// CHECK-NEXT: <key>extended_message</key> 1402// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string> 1403// CHECK-NEXT: <key>message</key> 1404// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string> 1405// CHECK-NEXT: </dict> 1406// CHECK-NEXT: <dict> 1407// CHECK-NEXT: <key>kind</key><string>control</string> 1408// CHECK-NEXT: <key>edges</key> 1409// CHECK-NEXT: <array> 1410// CHECK-NEXT: <dict> 1411// CHECK-NEXT: <key>start</key> 1412// CHECK-NEXT: <array> 1413// CHECK-NEXT: <dict> 1414// CHECK-NEXT: <key>line</key><integer>112</integer> 1415// CHECK-NEXT: <key>col</key><integer>3</integer> 1416// CHECK-NEXT: <key>file</key><integer>0</integer> 1417// CHECK-NEXT: </dict> 1418// CHECK-NEXT: <dict> 1419// CHECK-NEXT: <key>line</key><integer>112</integer> 1420// CHECK-NEXT: <key>col</key><integer>3</integer> 1421// CHECK-NEXT: <key>file</key><integer>0</integer> 1422// CHECK-NEXT: </dict> 1423// CHECK-NEXT: </array> 1424// CHECK-NEXT: <key>end</key> 1425// CHECK-NEXT: <array> 1426// CHECK-NEXT: <dict> 1427// CHECK-NEXT: <key>line</key><integer>115</integer> 1428// CHECK-NEXT: <key>col</key><integer>3</integer> 1429// CHECK-NEXT: <key>file</key><integer>0</integer> 1430// CHECK-NEXT: </dict> 1431// CHECK-NEXT: <dict> 1432// CHECK-NEXT: <key>line</key><integer>115</integer> 1433// CHECK-NEXT: <key>col</key><integer>9</integer> 1434// CHECK-NEXT: <key>file</key><integer>0</integer> 1435// CHECK-NEXT: </dict> 1436// CHECK-NEXT: </array> 1437// CHECK-NEXT: </dict> 1438// CHECK-NEXT: </array> 1439// CHECK-NEXT: </dict> 1440// CHECK-NEXT: <dict> 1441// CHECK-NEXT: <key>kind</key><string>control</string> 1442// CHECK-NEXT: <key>edges</key> 1443// CHECK-NEXT: <array> 1444// CHECK-NEXT: <dict> 1445// CHECK-NEXT: <key>start</key> 1446// CHECK-NEXT: <array> 1447// CHECK-NEXT: <dict> 1448// CHECK-NEXT: <key>line</key><integer>115</integer> 1449// CHECK-NEXT: <key>col</key><integer>3</integer> 1450// CHECK-NEXT: <key>file</key><integer>0</integer> 1451// CHECK-NEXT: </dict> 1452// CHECK-NEXT: <dict> 1453// CHECK-NEXT: <key>line</key><integer>115</integer> 1454// CHECK-NEXT: <key>col</key><integer>9</integer> 1455// CHECK-NEXT: <key>file</key><integer>0</integer> 1456// CHECK-NEXT: </dict> 1457// CHECK-NEXT: </array> 1458// CHECK-NEXT: <key>end</key> 1459// CHECK-NEXT: <array> 1460// CHECK-NEXT: <dict> 1461// CHECK-NEXT: <key>line</key><integer>115</integer> 1462// CHECK-NEXT: <key>col</key><integer>11</integer> 1463// CHECK-NEXT: <key>file</key><integer>0</integer> 1464// CHECK-NEXT: </dict> 1465// CHECK-NEXT: <dict> 1466// CHECK-NEXT: <key>line</key><integer>115</integer> 1467// CHECK-NEXT: <key>col</key><integer>11</integer> 1468// CHECK-NEXT: <key>file</key><integer>0</integer> 1469// CHECK-NEXT: </dict> 1470// CHECK-NEXT: </array> 1471// CHECK-NEXT: </dict> 1472// CHECK-NEXT: </array> 1473// CHECK-NEXT: </dict> 1474// CHECK-NEXT: <dict> 1475// CHECK-NEXT: <key>kind</key><string>event</string> 1476// CHECK-NEXT: <key>location</key> 1477// CHECK-NEXT: <dict> 1478// CHECK-NEXT: <key>line</key><integer>115</integer> 1479// CHECK-NEXT: <key>col</key><integer>11</integer> 1480// CHECK-NEXT: <key>file</key><integer>0</integer> 1481// CHECK-NEXT: </dict> 1482// CHECK-NEXT: <key>ranges</key> 1483// CHECK-NEXT: <array> 1484// CHECK-NEXT: <array> 1485// CHECK-NEXT: <dict> 1486// CHECK-NEXT: <key>line</key><integer>115</integer> 1487// CHECK-NEXT: <key>col</key><integer>11</integer> 1488// CHECK-NEXT: <key>file</key><integer>0</integer> 1489// CHECK-NEXT: </dict> 1490// CHECK-NEXT: <dict> 1491// CHECK-NEXT: <key>line</key><integer>115</integer> 1492// CHECK-NEXT: <key>col</key><integer>11</integer> 1493// CHECK-NEXT: <key>file</key><integer>0</integer> 1494// CHECK-NEXT: </dict> 1495// CHECK-NEXT: </array> 1496// CHECK-NEXT: </array> 1497// CHECK-NEXT: <key>depth</key><integer>0</integer> 1498// CHECK-NEXT: <key>extended_message</key> 1499// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1500// CHECK-NEXT: <key>message</key> 1501// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1502// CHECK-NEXT: </dict> 1503// CHECK-NEXT: </array> 1504// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1505// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 1506// CHECK-NEXT: <key>type</key><string>Generics</string> 1507// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 1508// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1509// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>3c86c79284e67f28d04b7ef88bedbb8b</string> 1510// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1511// CHECK-NEXT: <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string> 1512// CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string> 1513// CHECK-NEXT: <key>location</key> 1514// CHECK-NEXT: <dict> 1515// CHECK-NEXT: <key>line</key><integer>115</integer> 1516// CHECK-NEXT: <key>col</key><integer>11</integer> 1517// CHECK-NEXT: <key>file</key><integer>0</integer> 1518// CHECK-NEXT: </dict> 1519// CHECK-NEXT: </dict> 1520// CHECK-NEXT: <dict> 1521// CHECK-NEXT: <key>path</key> 1522// CHECK-NEXT: <array> 1523// CHECK-NEXT: <dict> 1524// CHECK-NEXT: <key>kind</key><string>event</string> 1525// CHECK-NEXT: <key>location</key> 1526// CHECK-NEXT: <dict> 1527// CHECK-NEXT: <key>line</key><integer>120</integer> 1528// CHECK-NEXT: <key>col</key><integer>7</integer> 1529// CHECK-NEXT: <key>file</key><integer>0</integer> 1530// CHECK-NEXT: </dict> 1531// CHECK-NEXT: <key>ranges</key> 1532// CHECK-NEXT: <array> 1533// CHECK-NEXT: <array> 1534// CHECK-NEXT: <dict> 1535// CHECK-NEXT: <key>line</key><integer>120</integer> 1536// CHECK-NEXT: <key>col</key><integer>7</integer> 1537// CHECK-NEXT: <key>file</key><integer>0</integer> 1538// CHECK-NEXT: </dict> 1539// CHECK-NEXT: <dict> 1540// CHECK-NEXT: <key>line</key><integer>120</integer> 1541// CHECK-NEXT: <key>col</key><integer>7</integer> 1542// CHECK-NEXT: <key>file</key><integer>0</integer> 1543// CHECK-NEXT: </dict> 1544// CHECK-NEXT: </array> 1545// CHECK-NEXT: </array> 1546// CHECK-NEXT: <key>depth</key><integer>0</integer> 1547// CHECK-NEXT: <key>extended_message</key> 1548// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1549// CHECK-NEXT: <key>message</key> 1550// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1551// CHECK-NEXT: </dict> 1552// CHECK-NEXT: <dict> 1553// CHECK-NEXT: <key>kind</key><string>control</string> 1554// CHECK-NEXT: <key>edges</key> 1555// CHECK-NEXT: <array> 1556// CHECK-NEXT: <dict> 1557// CHECK-NEXT: <key>start</key> 1558// CHECK-NEXT: <array> 1559// CHECK-NEXT: <dict> 1560// CHECK-NEXT: <key>line</key><integer>120</integer> 1561// CHECK-NEXT: <key>col</key><integer>3</integer> 1562// CHECK-NEXT: <key>file</key><integer>0</integer> 1563// CHECK-NEXT: </dict> 1564// CHECK-NEXT: <dict> 1565// CHECK-NEXT: <key>line</key><integer>120</integer> 1566// CHECK-NEXT: <key>col</key><integer>3</integer> 1567// CHECK-NEXT: <key>file</key><integer>0</integer> 1568// CHECK-NEXT: </dict> 1569// CHECK-NEXT: </array> 1570// CHECK-NEXT: <key>end</key> 1571// CHECK-NEXT: <array> 1572// CHECK-NEXT: <dict> 1573// CHECK-NEXT: <key>line</key><integer>121</integer> 1574// CHECK-NEXT: <key>col</key><integer>3</integer> 1575// CHECK-NEXT: <key>file</key><integer>0</integer> 1576// CHECK-NEXT: </dict> 1577// CHECK-NEXT: <dict> 1578// CHECK-NEXT: <key>line</key><integer>121</integer> 1579// CHECK-NEXT: <key>col</key><integer>3</integer> 1580// CHECK-NEXT: <key>file</key><integer>0</integer> 1581// CHECK-NEXT: </dict> 1582// CHECK-NEXT: </array> 1583// CHECK-NEXT: </dict> 1584// CHECK-NEXT: </array> 1585// CHECK-NEXT: </dict> 1586// CHECK-NEXT: <dict> 1587// CHECK-NEXT: <key>kind</key><string>control</string> 1588// CHECK-NEXT: <key>edges</key> 1589// CHECK-NEXT: <array> 1590// CHECK-NEXT: <dict> 1591// CHECK-NEXT: <key>start</key> 1592// CHECK-NEXT: <array> 1593// CHECK-NEXT: <dict> 1594// CHECK-NEXT: <key>line</key><integer>121</integer> 1595// CHECK-NEXT: <key>col</key><integer>3</integer> 1596// CHECK-NEXT: <key>file</key><integer>0</integer> 1597// CHECK-NEXT: </dict> 1598// CHECK-NEXT: <dict> 1599// CHECK-NEXT: <key>line</key><integer>121</integer> 1600// CHECK-NEXT: <key>col</key><integer>3</integer> 1601// CHECK-NEXT: <key>file</key><integer>0</integer> 1602// CHECK-NEXT: </dict> 1603// CHECK-NEXT: </array> 1604// CHECK-NEXT: <key>end</key> 1605// CHECK-NEXT: <array> 1606// CHECK-NEXT: <dict> 1607// CHECK-NEXT: <key>line</key><integer>121</integer> 1608// CHECK-NEXT: <key>col</key><integer>7</integer> 1609// CHECK-NEXT: <key>file</key><integer>0</integer> 1610// CHECK-NEXT: </dict> 1611// CHECK-NEXT: <dict> 1612// CHECK-NEXT: <key>line</key><integer>121</integer> 1613// CHECK-NEXT: <key>col</key><integer>7</integer> 1614// CHECK-NEXT: <key>file</key><integer>0</integer> 1615// CHECK-NEXT: </dict> 1616// CHECK-NEXT: </array> 1617// CHECK-NEXT: </dict> 1618// CHECK-NEXT: </array> 1619// CHECK-NEXT: </dict> 1620// CHECK-NEXT: <dict> 1621// CHECK-NEXT: <key>kind</key><string>event</string> 1622// CHECK-NEXT: <key>location</key> 1623// CHECK-NEXT: <dict> 1624// CHECK-NEXT: <key>line</key><integer>121</integer> 1625// CHECK-NEXT: <key>col</key><integer>7</integer> 1626// CHECK-NEXT: <key>file</key><integer>0</integer> 1627// CHECK-NEXT: </dict> 1628// CHECK-NEXT: <key>ranges</key> 1629// CHECK-NEXT: <array> 1630// CHECK-NEXT: <array> 1631// CHECK-NEXT: <dict> 1632// CHECK-NEXT: <key>line</key><integer>121</integer> 1633// CHECK-NEXT: <key>col</key><integer>7</integer> 1634// CHECK-NEXT: <key>file</key><integer>0</integer> 1635// CHECK-NEXT: </dict> 1636// CHECK-NEXT: <dict> 1637// CHECK-NEXT: <key>line</key><integer>121</integer> 1638// CHECK-NEXT: <key>col</key><integer>7</integer> 1639// CHECK-NEXT: <key>file</key><integer>0</integer> 1640// CHECK-NEXT: </dict> 1641// CHECK-NEXT: </array> 1642// CHECK-NEXT: </array> 1643// CHECK-NEXT: <key>depth</key><integer>0</integer> 1644// CHECK-NEXT: <key>extended_message</key> 1645// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1646// CHECK-NEXT: <key>message</key> 1647// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1648// CHECK-NEXT: </dict> 1649// CHECK-NEXT: </array> 1650// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1651// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 1652// CHECK-NEXT: <key>type</key><string>Generics</string> 1653// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 1654// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1655// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>a669a3ca1da5a07458c0186f43a295cb</string> 1656// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1657// CHECK-NEXT: <key>issue_context</key><string>idErasedIncompatibleTypes</string> 1658// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 1659// CHECK-NEXT: <key>location</key> 1660// CHECK-NEXT: <dict> 1661// CHECK-NEXT: <key>line</key><integer>121</integer> 1662// CHECK-NEXT: <key>col</key><integer>7</integer> 1663// CHECK-NEXT: <key>file</key><integer>0</integer> 1664// CHECK-NEXT: </dict> 1665// CHECK-NEXT: </dict> 1666// CHECK-NEXT: <dict> 1667// CHECK-NEXT: <key>path</key> 1668// CHECK-NEXT: <array> 1669// CHECK-NEXT: <dict> 1670// CHECK-NEXT: <key>kind</key><string>event</string> 1671// CHECK-NEXT: <key>location</key> 1672// CHECK-NEXT: <dict> 1673// CHECK-NEXT: <key>line</key><integer>120</integer> 1674// CHECK-NEXT: <key>col</key><integer>7</integer> 1675// CHECK-NEXT: <key>file</key><integer>0</integer> 1676// CHECK-NEXT: </dict> 1677// CHECK-NEXT: <key>ranges</key> 1678// CHECK-NEXT: <array> 1679// CHECK-NEXT: <array> 1680// CHECK-NEXT: <dict> 1681// CHECK-NEXT: <key>line</key><integer>120</integer> 1682// CHECK-NEXT: <key>col</key><integer>7</integer> 1683// CHECK-NEXT: <key>file</key><integer>0</integer> 1684// CHECK-NEXT: </dict> 1685// CHECK-NEXT: <dict> 1686// CHECK-NEXT: <key>line</key><integer>120</integer> 1687// CHECK-NEXT: <key>col</key><integer>7</integer> 1688// CHECK-NEXT: <key>file</key><integer>0</integer> 1689// CHECK-NEXT: </dict> 1690// CHECK-NEXT: </array> 1691// CHECK-NEXT: </array> 1692// CHECK-NEXT: <key>depth</key><integer>0</integer> 1693// CHECK-NEXT: <key>extended_message</key> 1694// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1695// CHECK-NEXT: <key>message</key> 1696// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1697// CHECK-NEXT: </dict> 1698// CHECK-NEXT: <dict> 1699// CHECK-NEXT: <key>kind</key><string>control</string> 1700// CHECK-NEXT: <key>edges</key> 1701// CHECK-NEXT: <array> 1702// CHECK-NEXT: <dict> 1703// CHECK-NEXT: <key>start</key> 1704// CHECK-NEXT: <array> 1705// CHECK-NEXT: <dict> 1706// CHECK-NEXT: <key>line</key><integer>120</integer> 1707// CHECK-NEXT: <key>col</key><integer>3</integer> 1708// CHECK-NEXT: <key>file</key><integer>0</integer> 1709// CHECK-NEXT: </dict> 1710// CHECK-NEXT: <dict> 1711// CHECK-NEXT: <key>line</key><integer>120</integer> 1712// CHECK-NEXT: <key>col</key><integer>3</integer> 1713// CHECK-NEXT: <key>file</key><integer>0</integer> 1714// CHECK-NEXT: </dict> 1715// CHECK-NEXT: </array> 1716// CHECK-NEXT: <key>end</key> 1717// CHECK-NEXT: <array> 1718// CHECK-NEXT: <dict> 1719// CHECK-NEXT: <key>line</key><integer>122</integer> 1720// CHECK-NEXT: <key>col</key><integer>3</integer> 1721// CHECK-NEXT: <key>file</key><integer>0</integer> 1722// CHECK-NEXT: </dict> 1723// CHECK-NEXT: <dict> 1724// CHECK-NEXT: <key>line</key><integer>122</integer> 1725// CHECK-NEXT: <key>col</key><integer>3</integer> 1726// CHECK-NEXT: <key>file</key><integer>0</integer> 1727// CHECK-NEXT: </dict> 1728// CHECK-NEXT: </array> 1729// CHECK-NEXT: </dict> 1730// CHECK-NEXT: </array> 1731// CHECK-NEXT: </dict> 1732// CHECK-NEXT: <dict> 1733// CHECK-NEXT: <key>kind</key><string>event</string> 1734// CHECK-NEXT: <key>location</key> 1735// CHECK-NEXT: <dict> 1736// CHECK-NEXT: <key>line</key><integer>122</integer> 1737// CHECK-NEXT: <key>col</key><integer>3</integer> 1738// CHECK-NEXT: <key>file</key><integer>0</integer> 1739// CHECK-NEXT: </dict> 1740// CHECK-NEXT: <key>ranges</key> 1741// CHECK-NEXT: <array> 1742// CHECK-NEXT: <array> 1743// CHECK-NEXT: <dict> 1744// CHECK-NEXT: <key>line</key><integer>122</integer> 1745// CHECK-NEXT: <key>col</key><integer>16</integer> 1746// CHECK-NEXT: <key>file</key><integer>0</integer> 1747// CHECK-NEXT: </dict> 1748// CHECK-NEXT: <dict> 1749// CHECK-NEXT: <key>line</key><integer>122</integer> 1750// CHECK-NEXT: <key>col</key><integer>38</integer> 1751// CHECK-NEXT: <key>file</key><integer>0</integer> 1752// CHECK-NEXT: </dict> 1753// CHECK-NEXT: </array> 1754// CHECK-NEXT: </array> 1755// CHECK-NEXT: <key>depth</key><integer>0</integer> 1756// CHECK-NEXT: <key>extended_message</key> 1757// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1758// CHECK-NEXT: <key>message</key> 1759// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1760// CHECK-NEXT: </dict> 1761// CHECK-NEXT: </array> 1762// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 1763// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 1764// CHECK-NEXT: <key>type</key><string>Generics</string> 1765// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 1766// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1767// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>7ab912bd3fb03b47dc9489cac0297e2a</string> 1768// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1769// CHECK-NEXT: <key>issue_context</key><string>idErasedIncompatibleTypes</string> 1770// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 1771// CHECK-NEXT: <key>location</key> 1772// CHECK-NEXT: <dict> 1773// CHECK-NEXT: <key>line</key><integer>122</integer> 1774// CHECK-NEXT: <key>col</key><integer>3</integer> 1775// CHECK-NEXT: <key>file</key><integer>0</integer> 1776// CHECK-NEXT: </dict> 1777// CHECK-NEXT: </dict> 1778// CHECK-NEXT: <dict> 1779// CHECK-NEXT: <key>path</key> 1780// CHECK-NEXT: <array> 1781// CHECK-NEXT: <dict> 1782// CHECK-NEXT: <key>kind</key><string>event</string> 1783// CHECK-NEXT: <key>location</key> 1784// CHECK-NEXT: <dict> 1785// CHECK-NEXT: <key>line</key><integer>120</integer> 1786// CHECK-NEXT: <key>col</key><integer>7</integer> 1787// CHECK-NEXT: <key>file</key><integer>0</integer> 1788// CHECK-NEXT: </dict> 1789// CHECK-NEXT: <key>ranges</key> 1790// CHECK-NEXT: <array> 1791// CHECK-NEXT: <array> 1792// CHECK-NEXT: <dict> 1793// CHECK-NEXT: <key>line</key><integer>120</integer> 1794// CHECK-NEXT: <key>col</key><integer>7</integer> 1795// CHECK-NEXT: <key>file</key><integer>0</integer> 1796// CHECK-NEXT: </dict> 1797// CHECK-NEXT: <dict> 1798// CHECK-NEXT: <key>line</key><integer>120</integer> 1799// CHECK-NEXT: <key>col</key><integer>7</integer> 1800// CHECK-NEXT: <key>file</key><integer>0</integer> 1801// CHECK-NEXT: </dict> 1802// CHECK-NEXT: </array> 1803// CHECK-NEXT: </array> 1804// CHECK-NEXT: <key>depth</key><integer>0</integer> 1805// CHECK-NEXT: <key>extended_message</key> 1806// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1807// CHECK-NEXT: <key>message</key> 1808// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 1809// CHECK-NEXT: </dict> 1810// CHECK-NEXT: <dict> 1811// CHECK-NEXT: <key>kind</key><string>control</string> 1812// CHECK-NEXT: <key>edges</key> 1813// CHECK-NEXT: <array> 1814// CHECK-NEXT: <dict> 1815// CHECK-NEXT: <key>start</key> 1816// CHECK-NEXT: <array> 1817// CHECK-NEXT: <dict> 1818// CHECK-NEXT: <key>line</key><integer>120</integer> 1819// CHECK-NEXT: <key>col</key><integer>3</integer> 1820// CHECK-NEXT: <key>file</key><integer>0</integer> 1821// CHECK-NEXT: </dict> 1822// CHECK-NEXT: <dict> 1823// CHECK-NEXT: <key>line</key><integer>120</integer> 1824// CHECK-NEXT: <key>col</key><integer>3</integer> 1825// CHECK-NEXT: <key>file</key><integer>0</integer> 1826// CHECK-NEXT: </dict> 1827// CHECK-NEXT: </array> 1828// CHECK-NEXT: <key>end</key> 1829// CHECK-NEXT: <array> 1830// CHECK-NEXT: <dict> 1831// CHECK-NEXT: <key>line</key><integer>124</integer> 1832// CHECK-NEXT: <key>col</key><integer>3</integer> 1833// CHECK-NEXT: <key>file</key><integer>0</integer> 1834// CHECK-NEXT: </dict> 1835// CHECK-NEXT: <dict> 1836// CHECK-NEXT: <key>line</key><integer>124</integer> 1837// CHECK-NEXT: <key>col</key><integer>9</integer> 1838// CHECK-NEXT: <key>file</key><integer>0</integer> 1839// CHECK-NEXT: </dict> 1840// CHECK-NEXT: </array> 1841// CHECK-NEXT: </dict> 1842// CHECK-NEXT: </array> 1843// CHECK-NEXT: </dict> 1844// CHECK-NEXT: <dict> 1845// CHECK-NEXT: <key>kind</key><string>control</string> 1846// CHECK-NEXT: <key>edges</key> 1847// CHECK-NEXT: <array> 1848// CHECK-NEXT: <dict> 1849// CHECK-NEXT: <key>start</key> 1850// CHECK-NEXT: <array> 1851// CHECK-NEXT: <dict> 1852// CHECK-NEXT: <key>line</key><integer>124</integer> 1853// CHECK-NEXT: <key>col</key><integer>3</integer> 1854// CHECK-NEXT: <key>file</key><integer>0</integer> 1855// CHECK-NEXT: </dict> 1856// CHECK-NEXT: <dict> 1857// CHECK-NEXT: <key>line</key><integer>124</integer> 1858// CHECK-NEXT: <key>col</key><integer>9</integer> 1859// CHECK-NEXT: <key>file</key><integer>0</integer> 1860// CHECK-NEXT: </dict> 1861// CHECK-NEXT: </array> 1862// CHECK-NEXT: <key>end</key> 1863// CHECK-NEXT: <array> 1864// CHECK-NEXT: <dict> 1865// CHECK-NEXT: <key>line</key><integer>124</integer> 1866// CHECK-NEXT: <key>col</key><integer>11</integer> 1867// CHECK-NEXT: <key>file</key><integer>0</integer> 1868// CHECK-NEXT: </dict> 1869// CHECK-NEXT: <dict> 1870// CHECK-NEXT: <key>line</key><integer>124</integer> 1871// CHECK-NEXT: <key>col</key><integer>11</integer> 1872// CHECK-NEXT: <key>file</key><integer>0</integer> 1873// CHECK-NEXT: </dict> 1874// CHECK-NEXT: </array> 1875// CHECK-NEXT: </dict> 1876// CHECK-NEXT: </array> 1877// CHECK-NEXT: </dict> 1878// CHECK-NEXT: <dict> 1879// CHECK-NEXT: <key>kind</key><string>event</string> 1880// CHECK-NEXT: <key>location</key> 1881// CHECK-NEXT: <dict> 1882// CHECK-NEXT: <key>line</key><integer>124</integer> 1883// CHECK-NEXT: <key>col</key><integer>11</integer> 1884// CHECK-NEXT: <key>file</key><integer>0</integer> 1885// CHECK-NEXT: </dict> 1886// CHECK-NEXT: <key>ranges</key> 1887// CHECK-NEXT: <array> 1888// CHECK-NEXT: <array> 1889// CHECK-NEXT: <dict> 1890// CHECK-NEXT: <key>line</key><integer>124</integer> 1891// CHECK-NEXT: <key>col</key><integer>11</integer> 1892// CHECK-NEXT: <key>file</key><integer>0</integer> 1893// CHECK-NEXT: </dict> 1894// CHECK-NEXT: <dict> 1895// CHECK-NEXT: <key>line</key><integer>124</integer> 1896// CHECK-NEXT: <key>col</key><integer>11</integer> 1897// CHECK-NEXT: <key>file</key><integer>0</integer> 1898// CHECK-NEXT: </dict> 1899// CHECK-NEXT: </array> 1900// CHECK-NEXT: </array> 1901// CHECK-NEXT: <key>depth</key><integer>0</integer> 1902// CHECK-NEXT: <key>extended_message</key> 1903// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1904// CHECK-NEXT: <key>message</key> 1905// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1906// CHECK-NEXT: </dict> 1907// CHECK-NEXT: </array> 1908// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 1909// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 1910// CHECK-NEXT: <key>type</key><string>Generics</string> 1911// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 1912// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 1913// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>0c7b4313b8b720c914b04863f47f971f</string> 1914// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 1915// CHECK-NEXT: <key>issue_context</key><string>idErasedIncompatibleTypes</string> 1916// CHECK-NEXT: <key>issue_hash_function_offset</key><string>5</string> 1917// CHECK-NEXT: <key>location</key> 1918// CHECK-NEXT: <dict> 1919// CHECK-NEXT: <key>line</key><integer>124</integer> 1920// CHECK-NEXT: <key>col</key><integer>11</integer> 1921// CHECK-NEXT: <key>file</key><integer>0</integer> 1922// CHECK-NEXT: </dict> 1923// CHECK-NEXT: </dict> 1924// CHECK-NEXT: <dict> 1925// CHECK-NEXT: <key>path</key> 1926// CHECK-NEXT: <array> 1927// CHECK-NEXT: <dict> 1928// CHECK-NEXT: <key>kind</key><string>control</string> 1929// CHECK-NEXT: <key>edges</key> 1930// CHECK-NEXT: <array> 1931// CHECK-NEXT: <dict> 1932// CHECK-NEXT: <key>start</key> 1933// CHECK-NEXT: <array> 1934// CHECK-NEXT: <dict> 1935// CHECK-NEXT: <key>line</key><integer>129</integer> 1936// CHECK-NEXT: <key>col</key><integer>3</integer> 1937// CHECK-NEXT: <key>file</key><integer>0</integer> 1938// CHECK-NEXT: </dict> 1939// CHECK-NEXT: <dict> 1940// CHECK-NEXT: <key>line</key><integer>129</integer> 1941// CHECK-NEXT: <key>col</key><integer>4</integer> 1942// CHECK-NEXT: <key>file</key><integer>0</integer> 1943// CHECK-NEXT: </dict> 1944// CHECK-NEXT: </array> 1945// CHECK-NEXT: <key>end</key> 1946// CHECK-NEXT: <array> 1947// CHECK-NEXT: <dict> 1948// CHECK-NEXT: <key>line</key><integer>133</integer> 1949// CHECK-NEXT: <key>col</key><integer>5</integer> 1950// CHECK-NEXT: <key>file</key><integer>0</integer> 1951// CHECK-NEXT: </dict> 1952// CHECK-NEXT: <dict> 1953// CHECK-NEXT: <key>line</key><integer>133</integer> 1954// CHECK-NEXT: <key>col</key><integer>5</integer> 1955// CHECK-NEXT: <key>file</key><integer>0</integer> 1956// CHECK-NEXT: </dict> 1957// CHECK-NEXT: </array> 1958// CHECK-NEXT: </dict> 1959// CHECK-NEXT: </array> 1960// CHECK-NEXT: </dict> 1961// CHECK-NEXT: <dict> 1962// CHECK-NEXT: <key>kind</key><string>event</string> 1963// CHECK-NEXT: <key>location</key> 1964// CHECK-NEXT: <dict> 1965// CHECK-NEXT: <key>line</key><integer>133</integer> 1966// CHECK-NEXT: <key>col</key><integer>9</integer> 1967// CHECK-NEXT: <key>file</key><integer>0</integer> 1968// CHECK-NEXT: </dict> 1969// CHECK-NEXT: <key>ranges</key> 1970// CHECK-NEXT: <array> 1971// CHECK-NEXT: <array> 1972// CHECK-NEXT: <dict> 1973// CHECK-NEXT: <key>line</key><integer>133</integer> 1974// CHECK-NEXT: <key>col</key><integer>9</integer> 1975// CHECK-NEXT: <key>file</key><integer>0</integer> 1976// CHECK-NEXT: </dict> 1977// CHECK-NEXT: <dict> 1978// CHECK-NEXT: <key>line</key><integer>133</integer> 1979// CHECK-NEXT: <key>col</key><integer>9</integer> 1980// CHECK-NEXT: <key>file</key><integer>0</integer> 1981// CHECK-NEXT: </dict> 1982// CHECK-NEXT: </array> 1983// CHECK-NEXT: </array> 1984// CHECK-NEXT: <key>depth</key><integer>0</integer> 1985// CHECK-NEXT: <key>extended_message</key> 1986// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'MutableArray *')</string> 1987// CHECK-NEXT: <key>message</key> 1988// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'MutableArray *')</string> 1989// CHECK-NEXT: </dict> 1990// CHECK-NEXT: <dict> 1991// CHECK-NEXT: <key>kind</key><string>control</string> 1992// CHECK-NEXT: <key>edges</key> 1993// CHECK-NEXT: <array> 1994// CHECK-NEXT: <dict> 1995// CHECK-NEXT: <key>start</key> 1996// CHECK-NEXT: <array> 1997// CHECK-NEXT: <dict> 1998// CHECK-NEXT: <key>line</key><integer>133</integer> 1999// CHECK-NEXT: <key>col</key><integer>5</integer> 2000// CHECK-NEXT: <key>file</key><integer>0</integer> 2001// CHECK-NEXT: </dict> 2002// CHECK-NEXT: <dict> 2003// CHECK-NEXT: <key>line</key><integer>133</integer> 2004// CHECK-NEXT: <key>col</key><integer>5</integer> 2005// CHECK-NEXT: <key>file</key><integer>0</integer> 2006// CHECK-NEXT: </dict> 2007// CHECK-NEXT: </array> 2008// CHECK-NEXT: <key>end</key> 2009// CHECK-NEXT: <array> 2010// CHECK-NEXT: <dict> 2011// CHECK-NEXT: <key>line</key><integer>134</integer> 2012// CHECK-NEXT: <key>col</key><integer>5</integer> 2013// CHECK-NEXT: <key>file</key><integer>0</integer> 2014// CHECK-NEXT: </dict> 2015// CHECK-NEXT: <dict> 2016// CHECK-NEXT: <key>line</key><integer>134</integer> 2017// CHECK-NEXT: <key>col</key><integer>5</integer> 2018// CHECK-NEXT: <key>file</key><integer>0</integer> 2019// CHECK-NEXT: </dict> 2020// CHECK-NEXT: </array> 2021// CHECK-NEXT: </dict> 2022// CHECK-NEXT: </array> 2023// CHECK-NEXT: </dict> 2024// CHECK-NEXT: <dict> 2025// CHECK-NEXT: <key>kind</key><string>control</string> 2026// CHECK-NEXT: <key>edges</key> 2027// CHECK-NEXT: <array> 2028// CHECK-NEXT: <dict> 2029// CHECK-NEXT: <key>start</key> 2030// CHECK-NEXT: <array> 2031// CHECK-NEXT: <dict> 2032// CHECK-NEXT: <key>line</key><integer>134</integer> 2033// CHECK-NEXT: <key>col</key><integer>5</integer> 2034// CHECK-NEXT: <key>file</key><integer>0</integer> 2035// CHECK-NEXT: </dict> 2036// CHECK-NEXT: <dict> 2037// CHECK-NEXT: <key>line</key><integer>134</integer> 2038// CHECK-NEXT: <key>col</key><integer>5</integer> 2039// CHECK-NEXT: <key>file</key><integer>0</integer> 2040// CHECK-NEXT: </dict> 2041// CHECK-NEXT: </array> 2042// CHECK-NEXT: <key>end</key> 2043// CHECK-NEXT: <array> 2044// CHECK-NEXT: <dict> 2045// CHECK-NEXT: <key>line</key><integer>136</integer> 2046// CHECK-NEXT: <key>col</key><integer>3</integer> 2047// CHECK-NEXT: <key>file</key><integer>0</integer> 2048// CHECK-NEXT: </dict> 2049// CHECK-NEXT: <dict> 2050// CHECK-NEXT: <key>line</key><integer>136</integer> 2051// CHECK-NEXT: <key>col</key><integer>3</integer> 2052// CHECK-NEXT: <key>file</key><integer>0</integer> 2053// CHECK-NEXT: </dict> 2054// CHECK-NEXT: </array> 2055// CHECK-NEXT: </dict> 2056// CHECK-NEXT: </array> 2057// CHECK-NEXT: </dict> 2058// CHECK-NEXT: <dict> 2059// CHECK-NEXT: <key>kind</key><string>event</string> 2060// CHECK-NEXT: <key>location</key> 2061// CHECK-NEXT: <dict> 2062// CHECK-NEXT: <key>line</key><integer>136</integer> 2063// CHECK-NEXT: <key>col</key><integer>3</integer> 2064// CHECK-NEXT: <key>file</key><integer>0</integer> 2065// CHECK-NEXT: </dict> 2066// CHECK-NEXT: <key>ranges</key> 2067// CHECK-NEXT: <array> 2068// CHECK-NEXT: <array> 2069// CHECK-NEXT: <dict> 2070// CHECK-NEXT: <key>line</key><integer>136</integer> 2071// CHECK-NEXT: <key>col</key><integer>17</integer> 2072// CHECK-NEXT: <key>file</key><integer>0</integer> 2073// CHECK-NEXT: </dict> 2074// CHECK-NEXT: <dict> 2075// CHECK-NEXT: <key>line</key><integer>136</integer> 2076// CHECK-NEXT: <key>col</key><integer>39</integer> 2077// CHECK-NEXT: <key>file</key><integer>0</integer> 2078// CHECK-NEXT: </dict> 2079// CHECK-NEXT: </array> 2080// CHECK-NEXT: </array> 2081// CHECK-NEXT: <key>depth</key><integer>0</integer> 2082// CHECK-NEXT: <key>extended_message</key> 2083// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2084// CHECK-NEXT: <key>message</key> 2085// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2086// CHECK-NEXT: </dict> 2087// CHECK-NEXT: </array> 2088// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2089// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 2090// CHECK-NEXT: <key>type</key><string>Generics</string> 2091// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 2092// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2093// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>24a08781e7d8971a7d8f8f607ce40074</string> 2094// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2095// CHECK-NEXT: <key>issue_context</key><string>pathSensitiveInference</string> 2096// CHECK-NEXT: <key>issue_hash_function_offset</key><string>8</string> 2097// CHECK-NEXT: <key>location</key> 2098// CHECK-NEXT: <dict> 2099// CHECK-NEXT: <key>line</key><integer>136</integer> 2100// CHECK-NEXT: <key>col</key><integer>3</integer> 2101// CHECK-NEXT: <key>file</key><integer>0</integer> 2102// CHECK-NEXT: </dict> 2103// CHECK-NEXT: </dict> 2104// CHECK-NEXT: <dict> 2105// CHECK-NEXT: <key>path</key> 2106// CHECK-NEXT: <array> 2107// CHECK-NEXT: <dict> 2108// CHECK-NEXT: <key>kind</key><string>event</string> 2109// CHECK-NEXT: <key>location</key> 2110// CHECK-NEXT: <dict> 2111// CHECK-NEXT: <key>line</key><integer>141</integer> 2112// CHECK-NEXT: <key>col</key><integer>7</integer> 2113// CHECK-NEXT: <key>file</key><integer>0</integer> 2114// CHECK-NEXT: </dict> 2115// CHECK-NEXT: <key>ranges</key> 2116// CHECK-NEXT: <array> 2117// CHECK-NEXT: <array> 2118// CHECK-NEXT: <dict> 2119// CHECK-NEXT: <key>line</key><integer>141</integer> 2120// CHECK-NEXT: <key>col</key><integer>7</integer> 2121// CHECK-NEXT: <key>file</key><integer>0</integer> 2122// CHECK-NEXT: </dict> 2123// CHECK-NEXT: <dict> 2124// CHECK-NEXT: <key>line</key><integer>141</integer> 2125// CHECK-NEXT: <key>col</key><integer>7</integer> 2126// CHECK-NEXT: <key>file</key><integer>0</integer> 2127// CHECK-NEXT: </dict> 2128// CHECK-NEXT: </array> 2129// CHECK-NEXT: </array> 2130// CHECK-NEXT: <key>depth</key><integer>0</integer> 2131// CHECK-NEXT: <key>extended_message</key> 2132// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 2133// CHECK-NEXT: <key>message</key> 2134// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 2135// CHECK-NEXT: </dict> 2136// CHECK-NEXT: <dict> 2137// CHECK-NEXT: <key>kind</key><string>control</string> 2138// CHECK-NEXT: <key>edges</key> 2139// CHECK-NEXT: <array> 2140// CHECK-NEXT: <dict> 2141// CHECK-NEXT: <key>start</key> 2142// CHECK-NEXT: <array> 2143// CHECK-NEXT: <dict> 2144// CHECK-NEXT: <key>line</key><integer>141</integer> 2145// CHECK-NEXT: <key>col</key><integer>3</integer> 2146// CHECK-NEXT: <key>file</key><integer>0</integer> 2147// CHECK-NEXT: </dict> 2148// CHECK-NEXT: <dict> 2149// CHECK-NEXT: <key>line</key><integer>141</integer> 2150// CHECK-NEXT: <key>col</key><integer>3</integer> 2151// CHECK-NEXT: <key>file</key><integer>0</integer> 2152// CHECK-NEXT: </dict> 2153// CHECK-NEXT: </array> 2154// CHECK-NEXT: <key>end</key> 2155// CHECK-NEXT: <array> 2156// CHECK-NEXT: <dict> 2157// CHECK-NEXT: <key>line</key><integer>142</integer> 2158// CHECK-NEXT: <key>col</key><integer>3</integer> 2159// CHECK-NEXT: <key>file</key><integer>0</integer> 2160// CHECK-NEXT: </dict> 2161// CHECK-NEXT: <dict> 2162// CHECK-NEXT: <key>line</key><integer>142</integer> 2163// CHECK-NEXT: <key>col</key><integer>9</integer> 2164// CHECK-NEXT: <key>file</key><integer>0</integer> 2165// CHECK-NEXT: </dict> 2166// CHECK-NEXT: </array> 2167// CHECK-NEXT: </dict> 2168// CHECK-NEXT: </array> 2169// CHECK-NEXT: </dict> 2170// CHECK-NEXT: <dict> 2171// CHECK-NEXT: <key>kind</key><string>control</string> 2172// CHECK-NEXT: <key>edges</key> 2173// CHECK-NEXT: <array> 2174// CHECK-NEXT: <dict> 2175// CHECK-NEXT: <key>start</key> 2176// CHECK-NEXT: <array> 2177// CHECK-NEXT: <dict> 2178// CHECK-NEXT: <key>line</key><integer>142</integer> 2179// CHECK-NEXT: <key>col</key><integer>3</integer> 2180// CHECK-NEXT: <key>file</key><integer>0</integer> 2181// CHECK-NEXT: </dict> 2182// CHECK-NEXT: <dict> 2183// CHECK-NEXT: <key>line</key><integer>142</integer> 2184// CHECK-NEXT: <key>col</key><integer>9</integer> 2185// CHECK-NEXT: <key>file</key><integer>0</integer> 2186// CHECK-NEXT: </dict> 2187// CHECK-NEXT: </array> 2188// CHECK-NEXT: <key>end</key> 2189// CHECK-NEXT: <array> 2190// CHECK-NEXT: <dict> 2191// CHECK-NEXT: <key>line</key><integer>142</integer> 2192// CHECK-NEXT: <key>col</key><integer>11</integer> 2193// CHECK-NEXT: <key>file</key><integer>0</integer> 2194// CHECK-NEXT: </dict> 2195// CHECK-NEXT: <dict> 2196// CHECK-NEXT: <key>line</key><integer>142</integer> 2197// CHECK-NEXT: <key>col</key><integer>11</integer> 2198// CHECK-NEXT: <key>file</key><integer>0</integer> 2199// CHECK-NEXT: </dict> 2200// CHECK-NEXT: </array> 2201// CHECK-NEXT: </dict> 2202// CHECK-NEXT: </array> 2203// CHECK-NEXT: </dict> 2204// CHECK-NEXT: <dict> 2205// CHECK-NEXT: <key>kind</key><string>event</string> 2206// CHECK-NEXT: <key>location</key> 2207// CHECK-NEXT: <dict> 2208// CHECK-NEXT: <key>line</key><integer>142</integer> 2209// CHECK-NEXT: <key>col</key><integer>11</integer> 2210// CHECK-NEXT: <key>file</key><integer>0</integer> 2211// CHECK-NEXT: </dict> 2212// CHECK-NEXT: <key>ranges</key> 2213// CHECK-NEXT: <array> 2214// CHECK-NEXT: <array> 2215// CHECK-NEXT: <dict> 2216// CHECK-NEXT: <key>line</key><integer>142</integer> 2217// CHECK-NEXT: <key>col</key><integer>11</integer> 2218// CHECK-NEXT: <key>file</key><integer>0</integer> 2219// CHECK-NEXT: </dict> 2220// CHECK-NEXT: <dict> 2221// CHECK-NEXT: <key>line</key><integer>142</integer> 2222// CHECK-NEXT: <key>col</key><integer>11</integer> 2223// CHECK-NEXT: <key>file</key><integer>0</integer> 2224// CHECK-NEXT: </dict> 2225// CHECK-NEXT: </array> 2226// CHECK-NEXT: </array> 2227// CHECK-NEXT: <key>depth</key><integer>0</integer> 2228// CHECK-NEXT: <key>extended_message</key> 2229// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 2230// CHECK-NEXT: <key>message</key> 2231// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 2232// CHECK-NEXT: </dict> 2233// CHECK-NEXT: </array> 2234// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 2235// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 2236// CHECK-NEXT: <key>type</key><string>Generics</string> 2237// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 2238// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2239// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>a8534f675404d57d833dc3c371d49845</string> 2240// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2241// CHECK-NEXT: <key>issue_context</key><string>verifyAPIusage</string> 2242// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 2243// CHECK-NEXT: <key>location</key> 2244// CHECK-NEXT: <dict> 2245// CHECK-NEXT: <key>line</key><integer>142</integer> 2246// CHECK-NEXT: <key>col</key><integer>11</integer> 2247// CHECK-NEXT: <key>file</key><integer>0</integer> 2248// CHECK-NEXT: </dict> 2249// CHECK-NEXT: </dict> 2250// CHECK-NEXT: <dict> 2251// CHECK-NEXT: <key>path</key> 2252// CHECK-NEXT: <array> 2253// CHECK-NEXT: <dict> 2254// CHECK-NEXT: <key>kind</key><string>event</string> 2255// CHECK-NEXT: <key>location</key> 2256// CHECK-NEXT: <dict> 2257// CHECK-NEXT: <key>line</key><integer>147</integer> 2258// CHECK-NEXT: <key>col</key><integer>7</integer> 2259// CHECK-NEXT: <key>file</key><integer>0</integer> 2260// CHECK-NEXT: </dict> 2261// CHECK-NEXT: <key>ranges</key> 2262// CHECK-NEXT: <array> 2263// CHECK-NEXT: <array> 2264// CHECK-NEXT: <dict> 2265// CHECK-NEXT: <key>line</key><integer>147</integer> 2266// CHECK-NEXT: <key>col</key><integer>7</integer> 2267// CHECK-NEXT: <key>file</key><integer>0</integer> 2268// CHECK-NEXT: </dict> 2269// CHECK-NEXT: <dict> 2270// CHECK-NEXT: <key>line</key><integer>147</integer> 2271// CHECK-NEXT: <key>col</key><integer>42</integer> 2272// CHECK-NEXT: <key>file</key><integer>0</integer> 2273// CHECK-NEXT: </dict> 2274// CHECK-NEXT: </array> 2275// CHECK-NEXT: </array> 2276// CHECK-NEXT: <key>depth</key><integer>0</integer> 2277// CHECK-NEXT: <key>extended_message</key> 2278// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from explicit cast (from 'MutableArray *' to 'MutableArray<NSMutableString *> *')</string> 2279// CHECK-NEXT: <key>message</key> 2280// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from explicit cast (from 'MutableArray *' to 'MutableArray<NSMutableString *> *')</string> 2281// CHECK-NEXT: </dict> 2282// CHECK-NEXT: <dict> 2283// CHECK-NEXT: <key>kind</key><string>control</string> 2284// CHECK-NEXT: <key>edges</key> 2285// CHECK-NEXT: <array> 2286// CHECK-NEXT: <dict> 2287// CHECK-NEXT: <key>start</key> 2288// CHECK-NEXT: <array> 2289// CHECK-NEXT: <dict> 2290// CHECK-NEXT: <key>line</key><integer>147</integer> 2291// CHECK-NEXT: <key>col</key><integer>3</integer> 2292// CHECK-NEXT: <key>file</key><integer>0</integer> 2293// CHECK-NEXT: </dict> 2294// CHECK-NEXT: <dict> 2295// CHECK-NEXT: <key>line</key><integer>147</integer> 2296// CHECK-NEXT: <key>col</key><integer>3</integer> 2297// CHECK-NEXT: <key>file</key><integer>0</integer> 2298// CHECK-NEXT: </dict> 2299// CHECK-NEXT: </array> 2300// CHECK-NEXT: <key>end</key> 2301// CHECK-NEXT: <array> 2302// CHECK-NEXT: <dict> 2303// CHECK-NEXT: <key>line</key><integer>148</integer> 2304// CHECK-NEXT: <key>col</key><integer>3</integer> 2305// CHECK-NEXT: <key>file</key><integer>0</integer> 2306// CHECK-NEXT: </dict> 2307// CHECK-NEXT: <dict> 2308// CHECK-NEXT: <key>line</key><integer>148</integer> 2309// CHECK-NEXT: <key>col</key><integer>3</integer> 2310// CHECK-NEXT: <key>file</key><integer>0</integer> 2311// CHECK-NEXT: </dict> 2312// CHECK-NEXT: </array> 2313// CHECK-NEXT: </dict> 2314// CHECK-NEXT: </array> 2315// CHECK-NEXT: </dict> 2316// CHECK-NEXT: <dict> 2317// CHECK-NEXT: <key>kind</key><string>event</string> 2318// CHECK-NEXT: <key>location</key> 2319// CHECK-NEXT: <dict> 2320// CHECK-NEXT: <key>line</key><integer>148</integer> 2321// CHECK-NEXT: <key>col</key><integer>3</integer> 2322// CHECK-NEXT: <key>file</key><integer>0</integer> 2323// CHECK-NEXT: </dict> 2324// CHECK-NEXT: <key>ranges</key> 2325// CHECK-NEXT: <array> 2326// CHECK-NEXT: <array> 2327// CHECK-NEXT: <dict> 2328// CHECK-NEXT: <key>line</key><integer>148</integer> 2329// CHECK-NEXT: <key>col</key><integer>17</integer> 2330// CHECK-NEXT: <key>file</key><integer>0</integer> 2331// CHECK-NEXT: </dict> 2332// CHECK-NEXT: <dict> 2333// CHECK-NEXT: <key>line</key><integer>148</integer> 2334// CHECK-NEXT: <key>col</key><integer>39</integer> 2335// CHECK-NEXT: <key>file</key><integer>0</integer> 2336// CHECK-NEXT: </dict> 2337// CHECK-NEXT: </array> 2338// CHECK-NEXT: </array> 2339// CHECK-NEXT: <key>depth</key><integer>0</integer> 2340// CHECK-NEXT: <key>extended_message</key> 2341// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2342// CHECK-NEXT: <key>message</key> 2343// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2344// CHECK-NEXT: </dict> 2345// CHECK-NEXT: </array> 2346// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 2347// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 2348// CHECK-NEXT: <key>type</key><string>Generics</string> 2349// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 2350// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2351// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>0549631e5a7fa668375061b6c898e438</string> 2352// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2353// CHECK-NEXT: <key>issue_context</key><string>trustExplicitCasts</string> 2354// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 2355// CHECK-NEXT: <key>location</key> 2356// CHECK-NEXT: <dict> 2357// CHECK-NEXT: <key>line</key><integer>148</integer> 2358// CHECK-NEXT: <key>col</key><integer>3</integer> 2359// CHECK-NEXT: <key>file</key><integer>0</integer> 2360// CHECK-NEXT: </dict> 2361// CHECK-NEXT: </dict> 2362// CHECK-NEXT: <dict> 2363// CHECK-NEXT: <key>path</key> 2364// CHECK-NEXT: <array> 2365// CHECK-NEXT: <dict> 2366// CHECK-NEXT: <key>kind</key><string>control</string> 2367// CHECK-NEXT: <key>edges</key> 2368// CHECK-NEXT: <array> 2369// CHECK-NEXT: <dict> 2370// CHECK-NEXT: <key>start</key> 2371// CHECK-NEXT: <array> 2372// CHECK-NEXT: <dict> 2373// CHECK-NEXT: <key>line</key><integer>154</integer> 2374// CHECK-NEXT: <key>col</key><integer>3</integer> 2375// CHECK-NEXT: <key>file</key><integer>0</integer> 2376// CHECK-NEXT: </dict> 2377// CHECK-NEXT: <dict> 2378// CHECK-NEXT: <key>line</key><integer>154</integer> 2379// CHECK-NEXT: <key>col</key><integer>3</integer> 2380// CHECK-NEXT: <key>file</key><integer>0</integer> 2381// CHECK-NEXT: </dict> 2382// CHECK-NEXT: </array> 2383// CHECK-NEXT: <key>end</key> 2384// CHECK-NEXT: <array> 2385// CHECK-NEXT: <dict> 2386// CHECK-NEXT: <key>line</key><integer>155</integer> 2387// CHECK-NEXT: <key>col</key><integer>3</integer> 2388// CHECK-NEXT: <key>file</key><integer>0</integer> 2389// CHECK-NEXT: </dict> 2390// CHECK-NEXT: <dict> 2391// CHECK-NEXT: <key>line</key><integer>155</integer> 2392// CHECK-NEXT: <key>col</key><integer>3</integer> 2393// CHECK-NEXT: <key>file</key><integer>0</integer> 2394// CHECK-NEXT: </dict> 2395// CHECK-NEXT: </array> 2396// CHECK-NEXT: </dict> 2397// CHECK-NEXT: </array> 2398// CHECK-NEXT: </dict> 2399// CHECK-NEXT: <dict> 2400// CHECK-NEXT: <key>kind</key><string>event</string> 2401// CHECK-NEXT: <key>location</key> 2402// CHECK-NEXT: <dict> 2403// CHECK-NEXT: <key>line</key><integer>155</integer> 2404// CHECK-NEXT: <key>col</key><integer>7</integer> 2405// CHECK-NEXT: <key>file</key><integer>0</integer> 2406// CHECK-NEXT: </dict> 2407// CHECK-NEXT: <key>ranges</key> 2408// CHECK-NEXT: <array> 2409// CHECK-NEXT: <array> 2410// CHECK-NEXT: <dict> 2411// CHECK-NEXT: <key>line</key><integer>155</integer> 2412// CHECK-NEXT: <key>col</key><integer>7</integer> 2413// CHECK-NEXT: <key>file</key><integer>0</integer> 2414// CHECK-NEXT: </dict> 2415// CHECK-NEXT: <dict> 2416// CHECK-NEXT: <key>line</key><integer>155</integer> 2417// CHECK-NEXT: <key>col</key><integer>7</integer> 2418// CHECK-NEXT: <key>file</key><integer>0</integer> 2419// CHECK-NEXT: </dict> 2420// CHECK-NEXT: </array> 2421// CHECK-NEXT: </array> 2422// CHECK-NEXT: <key>depth</key><integer>0</integer> 2423// CHECK-NEXT: <key>extended_message</key> 2424// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 2425// CHECK-NEXT: <key>message</key> 2426// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 2427// CHECK-NEXT: </dict> 2428// CHECK-NEXT: <dict> 2429// CHECK-NEXT: <key>kind</key><string>control</string> 2430// CHECK-NEXT: <key>edges</key> 2431// CHECK-NEXT: <array> 2432// CHECK-NEXT: <dict> 2433// CHECK-NEXT: <key>start</key> 2434// CHECK-NEXT: <array> 2435// CHECK-NEXT: <dict> 2436// CHECK-NEXT: <key>line</key><integer>155</integer> 2437// CHECK-NEXT: <key>col</key><integer>3</integer> 2438// CHECK-NEXT: <key>file</key><integer>0</integer> 2439// CHECK-NEXT: </dict> 2440// CHECK-NEXT: <dict> 2441// CHECK-NEXT: <key>line</key><integer>155</integer> 2442// CHECK-NEXT: <key>col</key><integer>3</integer> 2443// CHECK-NEXT: <key>file</key><integer>0</integer> 2444// CHECK-NEXT: </dict> 2445// CHECK-NEXT: </array> 2446// CHECK-NEXT: <key>end</key> 2447// CHECK-NEXT: <array> 2448// CHECK-NEXT: <dict> 2449// CHECK-NEXT: <key>line</key><integer>156</integer> 2450// CHECK-NEXT: <key>col</key><integer>3</integer> 2451// CHECK-NEXT: <key>file</key><integer>0</integer> 2452// CHECK-NEXT: </dict> 2453// CHECK-NEXT: <dict> 2454// CHECK-NEXT: <key>line</key><integer>156</integer> 2455// CHECK-NEXT: <key>col</key><integer>3</integer> 2456// CHECK-NEXT: <key>file</key><integer>0</integer> 2457// CHECK-NEXT: </dict> 2458// CHECK-NEXT: </array> 2459// CHECK-NEXT: </dict> 2460// CHECK-NEXT: </array> 2461// CHECK-NEXT: </dict> 2462// CHECK-NEXT: <dict> 2463// CHECK-NEXT: <key>kind</key><string>control</string> 2464// CHECK-NEXT: <key>edges</key> 2465// CHECK-NEXT: <array> 2466// CHECK-NEXT: <dict> 2467// CHECK-NEXT: <key>start</key> 2468// CHECK-NEXT: <array> 2469// CHECK-NEXT: <dict> 2470// CHECK-NEXT: <key>line</key><integer>156</integer> 2471// CHECK-NEXT: <key>col</key><integer>3</integer> 2472// CHECK-NEXT: <key>file</key><integer>0</integer> 2473// CHECK-NEXT: </dict> 2474// CHECK-NEXT: <dict> 2475// CHECK-NEXT: <key>line</key><integer>156</integer> 2476// CHECK-NEXT: <key>col</key><integer>3</integer> 2477// CHECK-NEXT: <key>file</key><integer>0</integer> 2478// CHECK-NEXT: </dict> 2479// CHECK-NEXT: </array> 2480// CHECK-NEXT: <key>end</key> 2481// CHECK-NEXT: <array> 2482// CHECK-NEXT: <dict> 2483// CHECK-NEXT: <key>line</key><integer>156</integer> 2484// CHECK-NEXT: <key>col</key><integer>7</integer> 2485// CHECK-NEXT: <key>file</key><integer>0</integer> 2486// CHECK-NEXT: </dict> 2487// CHECK-NEXT: <dict> 2488// CHECK-NEXT: <key>line</key><integer>156</integer> 2489// CHECK-NEXT: <key>col</key><integer>7</integer> 2490// CHECK-NEXT: <key>file</key><integer>0</integer> 2491// CHECK-NEXT: </dict> 2492// CHECK-NEXT: </array> 2493// CHECK-NEXT: </dict> 2494// CHECK-NEXT: </array> 2495// CHECK-NEXT: </dict> 2496// CHECK-NEXT: <dict> 2497// CHECK-NEXT: <key>kind</key><string>event</string> 2498// CHECK-NEXT: <key>location</key> 2499// CHECK-NEXT: <dict> 2500// CHECK-NEXT: <key>line</key><integer>156</integer> 2501// CHECK-NEXT: <key>col</key><integer>7</integer> 2502// CHECK-NEXT: <key>file</key><integer>0</integer> 2503// CHECK-NEXT: </dict> 2504// CHECK-NEXT: <key>ranges</key> 2505// CHECK-NEXT: <array> 2506// CHECK-NEXT: <array> 2507// CHECK-NEXT: <dict> 2508// CHECK-NEXT: <key>line</key><integer>156</integer> 2509// CHECK-NEXT: <key>col</key><integer>7</integer> 2510// CHECK-NEXT: <key>file</key><integer>0</integer> 2511// CHECK-NEXT: </dict> 2512// CHECK-NEXT: <dict> 2513// CHECK-NEXT: <key>line</key><integer>156</integer> 2514// CHECK-NEXT: <key>col</key><integer>7</integer> 2515// CHECK-NEXT: <key>file</key><integer>0</integer> 2516// CHECK-NEXT: </dict> 2517// CHECK-NEXT: </array> 2518// CHECK-NEXT: </array> 2519// CHECK-NEXT: <key>depth</key><integer>0</integer> 2520// CHECK-NEXT: <key>extended_message</key> 2521// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2522// CHECK-NEXT: <key>message</key> 2523// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2524// CHECK-NEXT: </dict> 2525// CHECK-NEXT: </array> 2526// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2527// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 2528// CHECK-NEXT: <key>type</key><string>Generics</string> 2529// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 2530// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2531// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>d113e22b9ee9ded1cd94750c3557eff4</string> 2532// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2533// CHECK-NEXT: <key>issue_context</key><string>subtypeOfGeneric</string> 2534// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 2535// CHECK-NEXT: <key>location</key> 2536// CHECK-NEXT: <dict> 2537// CHECK-NEXT: <key>line</key><integer>156</integer> 2538// CHECK-NEXT: <key>col</key><integer>7</integer> 2539// CHECK-NEXT: <key>file</key><integer>0</integer> 2540// CHECK-NEXT: </dict> 2541// CHECK-NEXT: </dict> 2542// CHECK-NEXT: <dict> 2543// CHECK-NEXT: <key>path</key> 2544// CHECK-NEXT: <array> 2545// CHECK-NEXT: <dict> 2546// CHECK-NEXT: <key>kind</key><string>event</string> 2547// CHECK-NEXT: <key>location</key> 2548// CHECK-NEXT: <dict> 2549// CHECK-NEXT: <key>line</key><integer>162</integer> 2550// CHECK-NEXT: <key>col</key><integer>7</integer> 2551// CHECK-NEXT: <key>file</key><integer>0</integer> 2552// CHECK-NEXT: </dict> 2553// CHECK-NEXT: <key>ranges</key> 2554// CHECK-NEXT: <array> 2555// CHECK-NEXT: <array> 2556// CHECK-NEXT: <dict> 2557// CHECK-NEXT: <key>line</key><integer>162</integer> 2558// CHECK-NEXT: <key>col</key><integer>7</integer> 2559// CHECK-NEXT: <key>file</key><integer>0</integer> 2560// CHECK-NEXT: </dict> 2561// CHECK-NEXT: <dict> 2562// CHECK-NEXT: <key>line</key><integer>162</integer> 2563// CHECK-NEXT: <key>col</key><integer>7</integer> 2564// CHECK-NEXT: <key>file</key><integer>0</integer> 2565// CHECK-NEXT: </dict> 2566// CHECK-NEXT: </array> 2567// CHECK-NEXT: </array> 2568// CHECK-NEXT: <key>depth</key><integer>0</integer> 2569// CHECK-NEXT: <key>extended_message</key> 2570// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string> 2571// CHECK-NEXT: <key>message</key> 2572// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string> 2573// CHECK-NEXT: </dict> 2574// CHECK-NEXT: <dict> 2575// CHECK-NEXT: <key>kind</key><string>control</string> 2576// CHECK-NEXT: <key>edges</key> 2577// CHECK-NEXT: <array> 2578// CHECK-NEXT: <dict> 2579// CHECK-NEXT: <key>start</key> 2580// CHECK-NEXT: <array> 2581// CHECK-NEXT: <dict> 2582// CHECK-NEXT: <key>line</key><integer>162</integer> 2583// CHECK-NEXT: <key>col</key><integer>3</integer> 2584// CHECK-NEXT: <key>file</key><integer>0</integer> 2585// CHECK-NEXT: </dict> 2586// CHECK-NEXT: <dict> 2587// CHECK-NEXT: <key>line</key><integer>162</integer> 2588// CHECK-NEXT: <key>col</key><integer>3</integer> 2589// CHECK-NEXT: <key>file</key><integer>0</integer> 2590// CHECK-NEXT: </dict> 2591// CHECK-NEXT: </array> 2592// CHECK-NEXT: <key>end</key> 2593// CHECK-NEXT: <array> 2594// CHECK-NEXT: <dict> 2595// CHECK-NEXT: <key>line</key><integer>164</integer> 2596// CHECK-NEXT: <key>col</key><integer>3</integer> 2597// CHECK-NEXT: <key>file</key><integer>0</integer> 2598// CHECK-NEXT: </dict> 2599// CHECK-NEXT: <dict> 2600// CHECK-NEXT: <key>line</key><integer>164</integer> 2601// CHECK-NEXT: <key>col</key><integer>3</integer> 2602// CHECK-NEXT: <key>file</key><integer>0</integer> 2603// CHECK-NEXT: </dict> 2604// CHECK-NEXT: </array> 2605// CHECK-NEXT: </dict> 2606// CHECK-NEXT: </array> 2607// CHECK-NEXT: </dict> 2608// CHECK-NEXT: <dict> 2609// CHECK-NEXT: <key>kind</key><string>event</string> 2610// CHECK-NEXT: <key>location</key> 2611// CHECK-NEXT: <dict> 2612// CHECK-NEXT: <key>line</key><integer>164</integer> 2613// CHECK-NEXT: <key>col</key><integer>3</integer> 2614// CHECK-NEXT: <key>file</key><integer>0</integer> 2615// CHECK-NEXT: </dict> 2616// CHECK-NEXT: <key>ranges</key> 2617// CHECK-NEXT: <array> 2618// CHECK-NEXT: <array> 2619// CHECK-NEXT: <dict> 2620// CHECK-NEXT: <key>line</key><integer>164</integer> 2621// CHECK-NEXT: <key>col</key><integer>16</integer> 2622// CHECK-NEXT: <key>file</key><integer>0</integer> 2623// CHECK-NEXT: </dict> 2624// CHECK-NEXT: <dict> 2625// CHECK-NEXT: <key>line</key><integer>164</integer> 2626// CHECK-NEXT: <key>col</key><integer>38</integer> 2627// CHECK-NEXT: <key>file</key><integer>0</integer> 2628// CHECK-NEXT: </dict> 2629// CHECK-NEXT: </array> 2630// CHECK-NEXT: </array> 2631// CHECK-NEXT: <key>depth</key><integer>0</integer> 2632// CHECK-NEXT: <key>extended_message</key> 2633// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2634// CHECK-NEXT: <key>message</key> 2635// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2636// CHECK-NEXT: </dict> 2637// CHECK-NEXT: </array> 2638// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2639// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 2640// CHECK-NEXT: <key>type</key><string>Generics</string> 2641// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 2642// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2643// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>22fad8121164716006b2a12f4ddc494e</string> 2644// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2645// CHECK-NEXT: <key>issue_context</key><string>genericSubtypeOfGeneric</string> 2646// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 2647// CHECK-NEXT: <key>location</key> 2648// CHECK-NEXT: <dict> 2649// CHECK-NEXT: <key>line</key><integer>164</integer> 2650// CHECK-NEXT: <key>col</key><integer>3</integer> 2651// CHECK-NEXT: <key>file</key><integer>0</integer> 2652// CHECK-NEXT: </dict> 2653// CHECK-NEXT: </dict> 2654// CHECK-NEXT: <dict> 2655// CHECK-NEXT: <key>path</key> 2656// CHECK-NEXT: <array> 2657// CHECK-NEXT: <dict> 2658// CHECK-NEXT: <key>kind</key><string>event</string> 2659// CHECK-NEXT: <key>location</key> 2660// CHECK-NEXT: <dict> 2661// CHECK-NEXT: <key>line</key><integer>162</integer> 2662// CHECK-NEXT: <key>col</key><integer>7</integer> 2663// CHECK-NEXT: <key>file</key><integer>0</integer> 2664// CHECK-NEXT: </dict> 2665// CHECK-NEXT: <key>ranges</key> 2666// CHECK-NEXT: <array> 2667// CHECK-NEXT: <array> 2668// CHECK-NEXT: <dict> 2669// CHECK-NEXT: <key>line</key><integer>162</integer> 2670// CHECK-NEXT: <key>col</key><integer>7</integer> 2671// CHECK-NEXT: <key>file</key><integer>0</integer> 2672// CHECK-NEXT: </dict> 2673// CHECK-NEXT: <dict> 2674// CHECK-NEXT: <key>line</key><integer>162</integer> 2675// CHECK-NEXT: <key>col</key><integer>7</integer> 2676// CHECK-NEXT: <key>file</key><integer>0</integer> 2677// CHECK-NEXT: </dict> 2678// CHECK-NEXT: </array> 2679// CHECK-NEXT: </array> 2680// CHECK-NEXT: <key>depth</key><integer>0</integer> 2681// CHECK-NEXT: <key>extended_message</key> 2682// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string> 2683// CHECK-NEXT: <key>message</key> 2684// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string> 2685// CHECK-NEXT: </dict> 2686// CHECK-NEXT: <dict> 2687// CHECK-NEXT: <key>kind</key><string>control</string> 2688// CHECK-NEXT: <key>edges</key> 2689// CHECK-NEXT: <array> 2690// CHECK-NEXT: <dict> 2691// CHECK-NEXT: <key>start</key> 2692// CHECK-NEXT: <array> 2693// CHECK-NEXT: <dict> 2694// CHECK-NEXT: <key>line</key><integer>162</integer> 2695// CHECK-NEXT: <key>col</key><integer>3</integer> 2696// CHECK-NEXT: <key>file</key><integer>0</integer> 2697// CHECK-NEXT: </dict> 2698// CHECK-NEXT: <dict> 2699// CHECK-NEXT: <key>line</key><integer>162</integer> 2700// CHECK-NEXT: <key>col</key><integer>3</integer> 2701// CHECK-NEXT: <key>file</key><integer>0</integer> 2702// CHECK-NEXT: </dict> 2703// CHECK-NEXT: </array> 2704// CHECK-NEXT: <key>end</key> 2705// CHECK-NEXT: <array> 2706// CHECK-NEXT: <dict> 2707// CHECK-NEXT: <key>line</key><integer>166</integer> 2708// CHECK-NEXT: <key>col</key><integer>3</integer> 2709// CHECK-NEXT: <key>file</key><integer>0</integer> 2710// CHECK-NEXT: </dict> 2711// CHECK-NEXT: <dict> 2712// CHECK-NEXT: <key>line</key><integer>166</integer> 2713// CHECK-NEXT: <key>col</key><integer>3</integer> 2714// CHECK-NEXT: <key>file</key><integer>0</integer> 2715// CHECK-NEXT: </dict> 2716// CHECK-NEXT: </array> 2717// CHECK-NEXT: </dict> 2718// CHECK-NEXT: </array> 2719// CHECK-NEXT: </dict> 2720// CHECK-NEXT: <dict> 2721// CHECK-NEXT: <key>kind</key><string>control</string> 2722// CHECK-NEXT: <key>edges</key> 2723// CHECK-NEXT: <array> 2724// CHECK-NEXT: <dict> 2725// CHECK-NEXT: <key>start</key> 2726// CHECK-NEXT: <array> 2727// CHECK-NEXT: <dict> 2728// CHECK-NEXT: <key>line</key><integer>166</integer> 2729// CHECK-NEXT: <key>col</key><integer>3</integer> 2730// CHECK-NEXT: <key>file</key><integer>0</integer> 2731// CHECK-NEXT: </dict> 2732// CHECK-NEXT: <dict> 2733// CHECK-NEXT: <key>line</key><integer>166</integer> 2734// CHECK-NEXT: <key>col</key><integer>3</integer> 2735// CHECK-NEXT: <key>file</key><integer>0</integer> 2736// CHECK-NEXT: </dict> 2737// CHECK-NEXT: </array> 2738// CHECK-NEXT: <key>end</key> 2739// CHECK-NEXT: <array> 2740// CHECK-NEXT: <dict> 2741// CHECK-NEXT: <key>line</key><integer>166</integer> 2742// CHECK-NEXT: <key>col</key><integer>7</integer> 2743// CHECK-NEXT: <key>file</key><integer>0</integer> 2744// CHECK-NEXT: </dict> 2745// CHECK-NEXT: <dict> 2746// CHECK-NEXT: <key>line</key><integer>166</integer> 2747// CHECK-NEXT: <key>col</key><integer>7</integer> 2748// CHECK-NEXT: <key>file</key><integer>0</integer> 2749// CHECK-NEXT: </dict> 2750// CHECK-NEXT: </array> 2751// CHECK-NEXT: </dict> 2752// CHECK-NEXT: </array> 2753// CHECK-NEXT: </dict> 2754// CHECK-NEXT: <dict> 2755// CHECK-NEXT: <key>kind</key><string>event</string> 2756// CHECK-NEXT: <key>location</key> 2757// CHECK-NEXT: <dict> 2758// CHECK-NEXT: <key>line</key><integer>166</integer> 2759// CHECK-NEXT: <key>col</key><integer>7</integer> 2760// CHECK-NEXT: <key>file</key><integer>0</integer> 2761// CHECK-NEXT: </dict> 2762// CHECK-NEXT: <key>ranges</key> 2763// CHECK-NEXT: <array> 2764// CHECK-NEXT: <array> 2765// CHECK-NEXT: <dict> 2766// CHECK-NEXT: <key>line</key><integer>166</integer> 2767// CHECK-NEXT: <key>col</key><integer>7</integer> 2768// CHECK-NEXT: <key>file</key><integer>0</integer> 2769// CHECK-NEXT: </dict> 2770// CHECK-NEXT: <dict> 2771// CHECK-NEXT: <key>line</key><integer>166</integer> 2772// CHECK-NEXT: <key>col</key><integer>7</integer> 2773// CHECK-NEXT: <key>file</key><integer>0</integer> 2774// CHECK-NEXT: </dict> 2775// CHECK-NEXT: </array> 2776// CHECK-NEXT: </array> 2777// CHECK-NEXT: <key>depth</key><integer>0</integer> 2778// CHECK-NEXT: <key>extended_message</key> 2779// CHECK-NEXT: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2780// CHECK-NEXT: <key>message</key> 2781// CHECK-NEXT: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2782// CHECK-NEXT: </dict> 2783// CHECK-NEXT: </array> 2784// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 2785// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 2786// CHECK-NEXT: <key>type</key><string>Generics</string> 2787// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 2788// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2789// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>f1b900572a63726a729714a765595c38</string> 2790// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2791// CHECK-NEXT: <key>issue_context</key><string>genericSubtypeOfGeneric</string> 2792// CHECK-NEXT: <key>issue_hash_function_offset</key><string>5</string> 2793// CHECK-NEXT: <key>location</key> 2794// CHECK-NEXT: <dict> 2795// CHECK-NEXT: <key>line</key><integer>166</integer> 2796// CHECK-NEXT: <key>col</key><integer>7</integer> 2797// CHECK-NEXT: <key>file</key><integer>0</integer> 2798// CHECK-NEXT: </dict> 2799// CHECK-NEXT: </dict> 2800// CHECK-NEXT: <dict> 2801// CHECK-NEXT: <key>path</key> 2802// CHECK-NEXT: <array> 2803// CHECK-NEXT: <dict> 2804// CHECK-NEXT: <key>kind</key><string>event</string> 2805// CHECK-NEXT: <key>location</key> 2806// CHECK-NEXT: <dict> 2807// CHECK-NEXT: <key>line</key><integer>172</integer> 2808// CHECK-NEXT: <key>col</key><integer>7</integer> 2809// CHECK-NEXT: <key>file</key><integer>0</integer> 2810// CHECK-NEXT: </dict> 2811// CHECK-NEXT: <key>ranges</key> 2812// CHECK-NEXT: <array> 2813// CHECK-NEXT: <array> 2814// CHECK-NEXT: <dict> 2815// CHECK-NEXT: <key>line</key><integer>172</integer> 2816// CHECK-NEXT: <key>col</key><integer>7</integer> 2817// CHECK-NEXT: <key>file</key><integer>0</integer> 2818// CHECK-NEXT: </dict> 2819// CHECK-NEXT: <dict> 2820// CHECK-NEXT: <key>line</key><integer>172</integer> 2821// CHECK-NEXT: <key>col</key><integer>7</integer> 2822// CHECK-NEXT: <key>file</key><integer>0</integer> 2823// CHECK-NEXT: </dict> 2824// CHECK-NEXT: </array> 2825// CHECK-NEXT: </array> 2826// CHECK-NEXT: <key>depth</key><integer>0</integer> 2827// CHECK-NEXT: <key>extended_message</key> 2828// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string> 2829// CHECK-NEXT: <key>message</key> 2830// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string> 2831// CHECK-NEXT: </dict> 2832// CHECK-NEXT: <dict> 2833// CHECK-NEXT: <key>kind</key><string>control</string> 2834// CHECK-NEXT: <key>edges</key> 2835// CHECK-NEXT: <array> 2836// CHECK-NEXT: <dict> 2837// CHECK-NEXT: <key>start</key> 2838// CHECK-NEXT: <array> 2839// CHECK-NEXT: <dict> 2840// CHECK-NEXT: <key>line</key><integer>172</integer> 2841// CHECK-NEXT: <key>col</key><integer>3</integer> 2842// CHECK-NEXT: <key>file</key><integer>0</integer> 2843// CHECK-NEXT: </dict> 2844// CHECK-NEXT: <dict> 2845// CHECK-NEXT: <key>line</key><integer>172</integer> 2846// CHECK-NEXT: <key>col</key><integer>3</integer> 2847// CHECK-NEXT: <key>file</key><integer>0</integer> 2848// CHECK-NEXT: </dict> 2849// CHECK-NEXT: </array> 2850// CHECK-NEXT: <key>end</key> 2851// CHECK-NEXT: <array> 2852// CHECK-NEXT: <dict> 2853// CHECK-NEXT: <key>line</key><integer>174</integer> 2854// CHECK-NEXT: <key>col</key><integer>3</integer> 2855// CHECK-NEXT: <key>file</key><integer>0</integer> 2856// CHECK-NEXT: </dict> 2857// CHECK-NEXT: <dict> 2858// CHECK-NEXT: <key>line</key><integer>174</integer> 2859// CHECK-NEXT: <key>col</key><integer>3</integer> 2860// CHECK-NEXT: <key>file</key><integer>0</integer> 2861// CHECK-NEXT: </dict> 2862// CHECK-NEXT: </array> 2863// CHECK-NEXT: </dict> 2864// CHECK-NEXT: </array> 2865// CHECK-NEXT: </dict> 2866// CHECK-NEXT: <dict> 2867// CHECK-NEXT: <key>kind</key><string>event</string> 2868// CHECK-NEXT: <key>location</key> 2869// CHECK-NEXT: <dict> 2870// CHECK-NEXT: <key>line</key><integer>174</integer> 2871// CHECK-NEXT: <key>col</key><integer>3</integer> 2872// CHECK-NEXT: <key>file</key><integer>0</integer> 2873// CHECK-NEXT: </dict> 2874// CHECK-NEXT: <key>ranges</key> 2875// CHECK-NEXT: <array> 2876// CHECK-NEXT: <array> 2877// CHECK-NEXT: <dict> 2878// CHECK-NEXT: <key>line</key><integer>174</integer> 2879// CHECK-NEXT: <key>col</key><integer>16</integer> 2880// CHECK-NEXT: <key>file</key><integer>0</integer> 2881// CHECK-NEXT: </dict> 2882// CHECK-NEXT: <dict> 2883// CHECK-NEXT: <key>line</key><integer>174</integer> 2884// CHECK-NEXT: <key>col</key><integer>38</integer> 2885// CHECK-NEXT: <key>file</key><integer>0</integer> 2886// CHECK-NEXT: </dict> 2887// CHECK-NEXT: </array> 2888// CHECK-NEXT: </array> 2889// CHECK-NEXT: <key>depth</key><integer>0</integer> 2890// CHECK-NEXT: <key>extended_message</key> 2891// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2892// CHECK-NEXT: <key>message</key> 2893// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2894// CHECK-NEXT: </dict> 2895// CHECK-NEXT: </array> 2896// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 2897// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 2898// CHECK-NEXT: <key>type</key><string>Generics</string> 2899// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 2900// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 2901// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>c70c13fbce3e6a90637decd9d0e19d95</string> 2902// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 2903// CHECK-NEXT: <key>issue_context</key><string>genericSubtypeOfGenericReverse</string> 2904// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 2905// CHECK-NEXT: <key>location</key> 2906// CHECK-NEXT: <dict> 2907// CHECK-NEXT: <key>line</key><integer>174</integer> 2908// CHECK-NEXT: <key>col</key><integer>3</integer> 2909// CHECK-NEXT: <key>file</key><integer>0</integer> 2910// CHECK-NEXT: </dict> 2911// CHECK-NEXT: </dict> 2912// CHECK-NEXT: <dict> 2913// CHECK-NEXT: <key>path</key> 2914// CHECK-NEXT: <array> 2915// CHECK-NEXT: <dict> 2916// CHECK-NEXT: <key>kind</key><string>event</string> 2917// CHECK-NEXT: <key>location</key> 2918// CHECK-NEXT: <dict> 2919// CHECK-NEXT: <key>line</key><integer>172</integer> 2920// CHECK-NEXT: <key>col</key><integer>7</integer> 2921// CHECK-NEXT: <key>file</key><integer>0</integer> 2922// CHECK-NEXT: </dict> 2923// CHECK-NEXT: <key>ranges</key> 2924// CHECK-NEXT: <array> 2925// CHECK-NEXT: <array> 2926// CHECK-NEXT: <dict> 2927// CHECK-NEXT: <key>line</key><integer>172</integer> 2928// CHECK-NEXT: <key>col</key><integer>7</integer> 2929// CHECK-NEXT: <key>file</key><integer>0</integer> 2930// CHECK-NEXT: </dict> 2931// CHECK-NEXT: <dict> 2932// CHECK-NEXT: <key>line</key><integer>172</integer> 2933// CHECK-NEXT: <key>col</key><integer>7</integer> 2934// CHECK-NEXT: <key>file</key><integer>0</integer> 2935// CHECK-NEXT: </dict> 2936// CHECK-NEXT: </array> 2937// CHECK-NEXT: </array> 2938// CHECK-NEXT: <key>depth</key><integer>0</integer> 2939// CHECK-NEXT: <key>extended_message</key> 2940// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string> 2941// CHECK-NEXT: <key>message</key> 2942// CHECK-NEXT: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string> 2943// CHECK-NEXT: </dict> 2944// CHECK-NEXT: <dict> 2945// CHECK-NEXT: <key>kind</key><string>control</string> 2946// CHECK-NEXT: <key>edges</key> 2947// CHECK-NEXT: <array> 2948// CHECK-NEXT: <dict> 2949// CHECK-NEXT: <key>start</key> 2950// CHECK-NEXT: <array> 2951// CHECK-NEXT: <dict> 2952// CHECK-NEXT: <key>line</key><integer>172</integer> 2953// CHECK-NEXT: <key>col</key><integer>3</integer> 2954// CHECK-NEXT: <key>file</key><integer>0</integer> 2955// CHECK-NEXT: </dict> 2956// CHECK-NEXT: <dict> 2957// CHECK-NEXT: <key>line</key><integer>172</integer> 2958// CHECK-NEXT: <key>col</key><integer>3</integer> 2959// CHECK-NEXT: <key>file</key><integer>0</integer> 2960// CHECK-NEXT: </dict> 2961// CHECK-NEXT: </array> 2962// CHECK-NEXT: <key>end</key> 2963// CHECK-NEXT: <array> 2964// CHECK-NEXT: <dict> 2965// CHECK-NEXT: <key>line</key><integer>176</integer> 2966// CHECK-NEXT: <key>col</key><integer>3</integer> 2967// CHECK-NEXT: <key>file</key><integer>0</integer> 2968// CHECK-NEXT: </dict> 2969// CHECK-NEXT: <dict> 2970// CHECK-NEXT: <key>line</key><integer>176</integer> 2971// CHECK-NEXT: <key>col</key><integer>3</integer> 2972// CHECK-NEXT: <key>file</key><integer>0</integer> 2973// CHECK-NEXT: </dict> 2974// CHECK-NEXT: </array> 2975// CHECK-NEXT: </dict> 2976// CHECK-NEXT: </array> 2977// CHECK-NEXT: </dict> 2978// CHECK-NEXT: <dict> 2979// CHECK-NEXT: <key>kind</key><string>control</string> 2980// CHECK-NEXT: <key>edges</key> 2981// CHECK-NEXT: <array> 2982// CHECK-NEXT: <dict> 2983// CHECK-NEXT: <key>start</key> 2984// CHECK-NEXT: <array> 2985// CHECK-NEXT: <dict> 2986// CHECK-NEXT: <key>line</key><integer>176</integer> 2987// CHECK-NEXT: <key>col</key><integer>3</integer> 2988// CHECK-NEXT: <key>file</key><integer>0</integer> 2989// CHECK-NEXT: </dict> 2990// CHECK-NEXT: <dict> 2991// CHECK-NEXT: <key>line</key><integer>176</integer> 2992// CHECK-NEXT: <key>col</key><integer>3</integer> 2993// CHECK-NEXT: <key>file</key><integer>0</integer> 2994// CHECK-NEXT: </dict> 2995// CHECK-NEXT: </array> 2996// CHECK-NEXT: <key>end</key> 2997// CHECK-NEXT: <array> 2998// CHECK-NEXT: <dict> 2999// CHECK-NEXT: <key>line</key><integer>176</integer> 3000// CHECK-NEXT: <key>col</key><integer>7</integer> 3001// CHECK-NEXT: <key>file</key><integer>0</integer> 3002// CHECK-NEXT: </dict> 3003// CHECK-NEXT: <dict> 3004// CHECK-NEXT: <key>line</key><integer>176</integer> 3005// CHECK-NEXT: <key>col</key><integer>7</integer> 3006// CHECK-NEXT: <key>file</key><integer>0</integer> 3007// CHECK-NEXT: </dict> 3008// CHECK-NEXT: </array> 3009// CHECK-NEXT: </dict> 3010// CHECK-NEXT: </array> 3011// CHECK-NEXT: </dict> 3012// CHECK-NEXT: <dict> 3013// CHECK-NEXT: <key>kind</key><string>event</string> 3014// CHECK-NEXT: <key>location</key> 3015// CHECK-NEXT: <dict> 3016// CHECK-NEXT: <key>line</key><integer>176</integer> 3017// CHECK-NEXT: <key>col</key><integer>7</integer> 3018// CHECK-NEXT: <key>file</key><integer>0</integer> 3019// CHECK-NEXT: </dict> 3020// CHECK-NEXT: <key>ranges</key> 3021// CHECK-NEXT: <array> 3022// CHECK-NEXT: <array> 3023// CHECK-NEXT: <dict> 3024// CHECK-NEXT: <key>line</key><integer>176</integer> 3025// CHECK-NEXT: <key>col</key><integer>7</integer> 3026// CHECK-NEXT: <key>file</key><integer>0</integer> 3027// CHECK-NEXT: </dict> 3028// CHECK-NEXT: <dict> 3029// CHECK-NEXT: <key>line</key><integer>176</integer> 3030// CHECK-NEXT: <key>col</key><integer>7</integer> 3031// CHECK-NEXT: <key>file</key><integer>0</integer> 3032// CHECK-NEXT: </dict> 3033// CHECK-NEXT: </array> 3034// CHECK-NEXT: </array> 3035// CHECK-NEXT: <key>depth</key><integer>0</integer> 3036// CHECK-NEXT: <key>extended_message</key> 3037// CHECK-NEXT: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 3038// CHECK-NEXT: <key>message</key> 3039// CHECK-NEXT: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 3040// CHECK-NEXT: </dict> 3041// CHECK-NEXT: </array> 3042// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string> 3043// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 3044// CHECK-NEXT: <key>type</key><string>Generics</string> 3045// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 3046// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 3047// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>b6ee3b22fbad45f213b4bf14bec7eeaf</string> 3048// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 3049// CHECK-NEXT: <key>issue_context</key><string>genericSubtypeOfGenericReverse</string> 3050// CHECK-NEXT: <key>issue_hash_function_offset</key><string>5</string> 3051// CHECK-NEXT: <key>location</key> 3052// CHECK-NEXT: <dict> 3053// CHECK-NEXT: <key>line</key><integer>176</integer> 3054// CHECK-NEXT: <key>col</key><integer>7</integer> 3055// CHECK-NEXT: <key>file</key><integer>0</integer> 3056// CHECK-NEXT: </dict> 3057// CHECK-NEXT: </dict> 3058// CHECK-NEXT: <dict> 3059// CHECK-NEXT: <key>path</key> 3060// CHECK-NEXT: <array> 3061// CHECK-NEXT: <dict> 3062// CHECK-NEXT: <key>kind</key><string>event</string> 3063// CHECK-NEXT: <key>location</key> 3064// CHECK-NEXT: <dict> 3065// CHECK-NEXT: <key>line</key><integer>182</integer> 3066// CHECK-NEXT: <key>col</key><integer>20</integer> 3067// CHECK-NEXT: <key>file</key><integer>0</integer> 3068// CHECK-NEXT: </dict> 3069// CHECK-NEXT: <key>ranges</key> 3070// CHECK-NEXT: <array> 3071// CHECK-NEXT: <array> 3072// CHECK-NEXT: <dict> 3073// CHECK-NEXT: <key>line</key><integer>182</integer> 3074// CHECK-NEXT: <key>col</key><integer>20</integer> 3075// CHECK-NEXT: <key>file</key><integer>0</integer> 3076// CHECK-NEXT: </dict> 3077// CHECK-NEXT: <dict> 3078// CHECK-NEXT: <key>line</key><integer>182</integer> 3079// CHECK-NEXT: <key>col</key><integer>20</integer> 3080// CHECK-NEXT: <key>file</key><integer>0</integer> 3081// CHECK-NEXT: </dict> 3082// CHECK-NEXT: </array> 3083// CHECK-NEXT: </array> 3084// CHECK-NEXT: <key>depth</key><integer>0</integer> 3085// CHECK-NEXT: <key>extended_message</key> 3086// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 3087// CHECK-NEXT: <key>message</key> 3088// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string> 3089// CHECK-NEXT: </dict> 3090// CHECK-NEXT: <dict> 3091// CHECK-NEXT: <key>kind</key><string>control</string> 3092// CHECK-NEXT: <key>edges</key> 3093// CHECK-NEXT: <array> 3094// CHECK-NEXT: <dict> 3095// CHECK-NEXT: <key>start</key> 3096// CHECK-NEXT: <array> 3097// CHECK-NEXT: <dict> 3098// CHECK-NEXT: <key>line</key><integer>182</integer> 3099// CHECK-NEXT: <key>col</key><integer>3</integer> 3100// CHECK-NEXT: <key>file</key><integer>0</integer> 3101// CHECK-NEXT: </dict> 3102// CHECK-NEXT: <dict> 3103// CHECK-NEXT: <key>line</key><integer>182</integer> 3104// CHECK-NEXT: <key>col</key><integer>18</integer> 3105// CHECK-NEXT: <key>file</key><integer>0</integer> 3106// CHECK-NEXT: </dict> 3107// CHECK-NEXT: </array> 3108// CHECK-NEXT: <key>end</key> 3109// CHECK-NEXT: <array> 3110// CHECK-NEXT: <dict> 3111// CHECK-NEXT: <key>line</key><integer>183</integer> 3112// CHECK-NEXT: <key>col</key><integer>3</integer> 3113// CHECK-NEXT: <key>file</key><integer>0</integer> 3114// CHECK-NEXT: </dict> 3115// CHECK-NEXT: <dict> 3116// CHECK-NEXT: <key>line</key><integer>183</integer> 3117// CHECK-NEXT: <key>col</key><integer>25</integer> 3118// CHECK-NEXT: <key>file</key><integer>0</integer> 3119// CHECK-NEXT: </dict> 3120// CHECK-NEXT: </array> 3121// CHECK-NEXT: </dict> 3122// CHECK-NEXT: </array> 3123// CHECK-NEXT: </dict> 3124// CHECK-NEXT: <dict> 3125// CHECK-NEXT: <key>kind</key><string>control</string> 3126// CHECK-NEXT: <key>edges</key> 3127// CHECK-NEXT: <array> 3128// CHECK-NEXT: <dict> 3129// CHECK-NEXT: <key>start</key> 3130// CHECK-NEXT: <array> 3131// CHECK-NEXT: <dict> 3132// CHECK-NEXT: <key>line</key><integer>183</integer> 3133// CHECK-NEXT: <key>col</key><integer>3</integer> 3134// CHECK-NEXT: <key>file</key><integer>0</integer> 3135// CHECK-NEXT: </dict> 3136// CHECK-NEXT: <dict> 3137// CHECK-NEXT: <key>line</key><integer>183</integer> 3138// CHECK-NEXT: <key>col</key><integer>25</integer> 3139// CHECK-NEXT: <key>file</key><integer>0</integer> 3140// CHECK-NEXT: </dict> 3141// CHECK-NEXT: </array> 3142// CHECK-NEXT: <key>end</key> 3143// CHECK-NEXT: <array> 3144// CHECK-NEXT: <dict> 3145// CHECK-NEXT: <key>line</key><integer>183</integer> 3146// CHECK-NEXT: <key>col</key><integer>27</integer> 3147// CHECK-NEXT: <key>file</key><integer>0</integer> 3148// CHECK-NEXT: </dict> 3149// CHECK-NEXT: <dict> 3150// CHECK-NEXT: <key>line</key><integer>183</integer> 3151// CHECK-NEXT: <key>col</key><integer>27</integer> 3152// CHECK-NEXT: <key>file</key><integer>0</integer> 3153// CHECK-NEXT: </dict> 3154// CHECK-NEXT: </array> 3155// CHECK-NEXT: </dict> 3156// CHECK-NEXT: </array> 3157// CHECK-NEXT: </dict> 3158// CHECK-NEXT: <dict> 3159// CHECK-NEXT: <key>kind</key><string>event</string> 3160// CHECK-NEXT: <key>location</key> 3161// CHECK-NEXT: <dict> 3162// CHECK-NEXT: <key>line</key><integer>183</integer> 3163// CHECK-NEXT: <key>col</key><integer>27</integer> 3164// CHECK-NEXT: <key>file</key><integer>0</integer> 3165// CHECK-NEXT: </dict> 3166// CHECK-NEXT: <key>ranges</key> 3167// CHECK-NEXT: <array> 3168// CHECK-NEXT: <array> 3169// CHECK-NEXT: <dict> 3170// CHECK-NEXT: <key>line</key><integer>183</integer> 3171// CHECK-NEXT: <key>col</key><integer>27</integer> 3172// CHECK-NEXT: <key>file</key><integer>0</integer> 3173// CHECK-NEXT: </dict> 3174// CHECK-NEXT: <dict> 3175// CHECK-NEXT: <key>line</key><integer>183</integer> 3176// CHECK-NEXT: <key>col</key><integer>27</integer> 3177// CHECK-NEXT: <key>file</key><integer>0</integer> 3178// CHECK-NEXT: </dict> 3179// CHECK-NEXT: </array> 3180// CHECK-NEXT: </array> 3181// CHECK-NEXT: <key>depth</key><integer>0</integer> 3182// CHECK-NEXT: <key>extended_message</key> 3183// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3184// CHECK-NEXT: <key>message</key> 3185// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3186// CHECK-NEXT: </dict> 3187// CHECK-NEXT: </array> 3188// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3189// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 3190// CHECK-NEXT: <key>type</key><string>Generics</string> 3191// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 3192// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 3193// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>6aab15d40b39ec0a6b749e561d486e6a</string> 3194// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 3195// CHECK-NEXT: <key>issue_context</key><string>inferenceFromAPI</string> 3196// CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string> 3197// CHECK-NEXT: <key>location</key> 3198// CHECK-NEXT: <dict> 3199// CHECK-NEXT: <key>line</key><integer>183</integer> 3200// CHECK-NEXT: <key>col</key><integer>27</integer> 3201// CHECK-NEXT: <key>file</key><integer>0</integer> 3202// CHECK-NEXT: </dict> 3203// CHECK-NEXT: </dict> 3204// CHECK-NEXT: <dict> 3205// CHECK-NEXT: <key>path</key> 3206// CHECK-NEXT: <array> 3207// CHECK-NEXT: <dict> 3208// CHECK-NEXT: <key>kind</key><string>event</string> 3209// CHECK-NEXT: <key>location</key> 3210// CHECK-NEXT: <dict> 3211// CHECK-NEXT: <key>line</key><integer>187</integer> 3212// CHECK-NEXT: <key>col</key><integer>27</integer> 3213// CHECK-NEXT: <key>file</key><integer>0</integer> 3214// CHECK-NEXT: </dict> 3215// CHECK-NEXT: <key>ranges</key> 3216// CHECK-NEXT: <array> 3217// CHECK-NEXT: <array> 3218// CHECK-NEXT: <dict> 3219// CHECK-NEXT: <key>line</key><integer>187</integer> 3220// CHECK-NEXT: <key>col</key><integer>27</integer> 3221// CHECK-NEXT: <key>file</key><integer>0</integer> 3222// CHECK-NEXT: </dict> 3223// CHECK-NEXT: <dict> 3224// CHECK-NEXT: <key>line</key><integer>187</integer> 3225// CHECK-NEXT: <key>col</key><integer>27</integer> 3226// CHECK-NEXT: <key>file</key><integer>0</integer> 3227// CHECK-NEXT: </dict> 3228// CHECK-NEXT: </array> 3229// CHECK-NEXT: </array> 3230// CHECK-NEXT: <key>depth</key><integer>0</integer> 3231// CHECK-NEXT: <key>extended_message</key> 3232// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSMutableString *> *')</string> 3233// CHECK-NEXT: <key>message</key> 3234// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSMutableString *> *')</string> 3235// CHECK-NEXT: </dict> 3236// CHECK-NEXT: <dict> 3237// CHECK-NEXT: <key>kind</key><string>control</string> 3238// CHECK-NEXT: <key>edges</key> 3239// CHECK-NEXT: <array> 3240// CHECK-NEXT: <dict> 3241// CHECK-NEXT: <key>start</key> 3242// CHECK-NEXT: <array> 3243// CHECK-NEXT: <dict> 3244// CHECK-NEXT: <key>line</key><integer>187</integer> 3245// CHECK-NEXT: <key>col</key><integer>3</integer> 3246// CHECK-NEXT: <key>file</key><integer>0</integer> 3247// CHECK-NEXT: </dict> 3248// CHECK-NEXT: <dict> 3249// CHECK-NEXT: <key>line</key><integer>187</integer> 3250// CHECK-NEXT: <key>col</key><integer>25</integer> 3251// CHECK-NEXT: <key>file</key><integer>0</integer> 3252// CHECK-NEXT: </dict> 3253// CHECK-NEXT: </array> 3254// CHECK-NEXT: <key>end</key> 3255// CHECK-NEXT: <array> 3256// CHECK-NEXT: <dict> 3257// CHECK-NEXT: <key>line</key><integer>188</integer> 3258// CHECK-NEXT: <key>col</key><integer>3</integer> 3259// CHECK-NEXT: <key>file</key><integer>0</integer> 3260// CHECK-NEXT: </dict> 3261// CHECK-NEXT: <dict> 3262// CHECK-NEXT: <key>line</key><integer>188</integer> 3263// CHECK-NEXT: <key>col</key><integer>18</integer> 3264// CHECK-NEXT: <key>file</key><integer>0</integer> 3265// CHECK-NEXT: </dict> 3266// CHECK-NEXT: </array> 3267// CHECK-NEXT: </dict> 3268// CHECK-NEXT: </array> 3269// CHECK-NEXT: </dict> 3270// CHECK-NEXT: <dict> 3271// CHECK-NEXT: <key>kind</key><string>control</string> 3272// CHECK-NEXT: <key>edges</key> 3273// CHECK-NEXT: <array> 3274// CHECK-NEXT: <dict> 3275// CHECK-NEXT: <key>start</key> 3276// CHECK-NEXT: <array> 3277// CHECK-NEXT: <dict> 3278// CHECK-NEXT: <key>line</key><integer>188</integer> 3279// CHECK-NEXT: <key>col</key><integer>3</integer> 3280// CHECK-NEXT: <key>file</key><integer>0</integer> 3281// CHECK-NEXT: </dict> 3282// CHECK-NEXT: <dict> 3283// CHECK-NEXT: <key>line</key><integer>188</integer> 3284// CHECK-NEXT: <key>col</key><integer>18</integer> 3285// CHECK-NEXT: <key>file</key><integer>0</integer> 3286// CHECK-NEXT: </dict> 3287// CHECK-NEXT: </array> 3288// CHECK-NEXT: <key>end</key> 3289// CHECK-NEXT: <array> 3290// CHECK-NEXT: <dict> 3291// CHECK-NEXT: <key>line</key><integer>188</integer> 3292// CHECK-NEXT: <key>col</key><integer>20</integer> 3293// CHECK-NEXT: <key>file</key><integer>0</integer> 3294// CHECK-NEXT: </dict> 3295// CHECK-NEXT: <dict> 3296// CHECK-NEXT: <key>line</key><integer>188</integer> 3297// CHECK-NEXT: <key>col</key><integer>20</integer> 3298// CHECK-NEXT: <key>file</key><integer>0</integer> 3299// CHECK-NEXT: </dict> 3300// CHECK-NEXT: </array> 3301// CHECK-NEXT: </dict> 3302// CHECK-NEXT: </array> 3303// CHECK-NEXT: </dict> 3304// CHECK-NEXT: <dict> 3305// CHECK-NEXT: <key>kind</key><string>event</string> 3306// CHECK-NEXT: <key>location</key> 3307// CHECK-NEXT: <dict> 3308// CHECK-NEXT: <key>line</key><integer>188</integer> 3309// CHECK-NEXT: <key>col</key><integer>20</integer> 3310// CHECK-NEXT: <key>file</key><integer>0</integer> 3311// CHECK-NEXT: </dict> 3312// CHECK-NEXT: <key>ranges</key> 3313// CHECK-NEXT: <array> 3314// CHECK-NEXT: <array> 3315// CHECK-NEXT: <dict> 3316// CHECK-NEXT: <key>line</key><integer>188</integer> 3317// CHECK-NEXT: <key>col</key><integer>20</integer> 3318// CHECK-NEXT: <key>file</key><integer>0</integer> 3319// CHECK-NEXT: </dict> 3320// CHECK-NEXT: <dict> 3321// CHECK-NEXT: <key>line</key><integer>188</integer> 3322// CHECK-NEXT: <key>col</key><integer>20</integer> 3323// CHECK-NEXT: <key>file</key><integer>0</integer> 3324// CHECK-NEXT: </dict> 3325// CHECK-NEXT: </array> 3326// CHECK-NEXT: </array> 3327// CHECK-NEXT: <key>depth</key><integer>0</integer> 3328// CHECK-NEXT: <key>extended_message</key> 3329// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3330// CHECK-NEXT: <key>message</key> 3331// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3332// CHECK-NEXT: </dict> 3333// CHECK-NEXT: </array> 3334// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3335// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 3336// CHECK-NEXT: <key>type</key><string>Generics</string> 3337// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 3338// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 3339// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>bd1da1b7775323773555e5d5c122661f</string> 3340// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 3341// CHECK-NEXT: <key>issue_context</key><string>inferenceFromAPI2</string> 3342// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 3343// CHECK-NEXT: <key>location</key> 3344// CHECK-NEXT: <dict> 3345// CHECK-NEXT: <key>line</key><integer>188</integer> 3346// CHECK-NEXT: <key>col</key><integer>20</integer> 3347// CHECK-NEXT: <key>file</key><integer>0</integer> 3348// CHECK-NEXT: </dict> 3349// CHECK-NEXT: </dict> 3350// CHECK-NEXT: <dict> 3351// CHECK-NEXT: <key>path</key> 3352// CHECK-NEXT: <array> 3353// CHECK-NEXT: <dict> 3354// CHECK-NEXT: <key>kind</key><string>event</string> 3355// CHECK-NEXT: <key>location</key> 3356// CHECK-NEXT: <dict> 3357// CHECK-NEXT: <key>line</key><integer>192</integer> 3358// CHECK-NEXT: <key>col</key><integer>27</integer> 3359// CHECK-NEXT: <key>file</key><integer>0</integer> 3360// CHECK-NEXT: </dict> 3361// CHECK-NEXT: <key>ranges</key> 3362// CHECK-NEXT: <array> 3363// CHECK-NEXT: <array> 3364// CHECK-NEXT: <dict> 3365// CHECK-NEXT: <key>line</key><integer>192</integer> 3366// CHECK-NEXT: <key>col</key><integer>27</integer> 3367// CHECK-NEXT: <key>file</key><integer>0</integer> 3368// CHECK-NEXT: </dict> 3369// CHECK-NEXT: <dict> 3370// CHECK-NEXT: <key>line</key><integer>192</integer> 3371// CHECK-NEXT: <key>col</key><integer>27</integer> 3372// CHECK-NEXT: <key>file</key><integer>0</integer> 3373// CHECK-NEXT: </dict> 3374// CHECK-NEXT: </array> 3375// CHECK-NEXT: </array> 3376// CHECK-NEXT: <key>depth</key><integer>0</integer> 3377// CHECK-NEXT: <key>extended_message</key> 3378// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSMutableString *> *')</string> 3379// CHECK-NEXT: <key>message</key> 3380// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSMutableString *> *')</string> 3381// CHECK-NEXT: </dict> 3382// CHECK-NEXT: <dict> 3383// CHECK-NEXT: <key>kind</key><string>control</string> 3384// CHECK-NEXT: <key>edges</key> 3385// CHECK-NEXT: <array> 3386// CHECK-NEXT: <dict> 3387// CHECK-NEXT: <key>start</key> 3388// CHECK-NEXT: <array> 3389// CHECK-NEXT: <dict> 3390// CHECK-NEXT: <key>line</key><integer>192</integer> 3391// CHECK-NEXT: <key>col</key><integer>3</integer> 3392// CHECK-NEXT: <key>file</key><integer>0</integer> 3393// CHECK-NEXT: </dict> 3394// CHECK-NEXT: <dict> 3395// CHECK-NEXT: <key>line</key><integer>192</integer> 3396// CHECK-NEXT: <key>col</key><integer>25</integer> 3397// CHECK-NEXT: <key>file</key><integer>0</integer> 3398// CHECK-NEXT: </dict> 3399// CHECK-NEXT: </array> 3400// CHECK-NEXT: <key>end</key> 3401// CHECK-NEXT: <array> 3402// CHECK-NEXT: <dict> 3403// CHECK-NEXT: <key>line</key><integer>193</integer> 3404// CHECK-NEXT: <key>col</key><integer>3</integer> 3405// CHECK-NEXT: <key>file</key><integer>0</integer> 3406// CHECK-NEXT: </dict> 3407// CHECK-NEXT: <dict> 3408// CHECK-NEXT: <key>line</key><integer>193</integer> 3409// CHECK-NEXT: <key>col</key><integer>18</integer> 3410// CHECK-NEXT: <key>file</key><integer>0</integer> 3411// CHECK-NEXT: </dict> 3412// CHECK-NEXT: </array> 3413// CHECK-NEXT: </dict> 3414// CHECK-NEXT: </array> 3415// CHECK-NEXT: </dict> 3416// CHECK-NEXT: <dict> 3417// CHECK-NEXT: <key>kind</key><string>control</string> 3418// CHECK-NEXT: <key>edges</key> 3419// CHECK-NEXT: <array> 3420// CHECK-NEXT: <dict> 3421// CHECK-NEXT: <key>start</key> 3422// CHECK-NEXT: <array> 3423// CHECK-NEXT: <dict> 3424// CHECK-NEXT: <key>line</key><integer>193</integer> 3425// CHECK-NEXT: <key>col</key><integer>3</integer> 3426// CHECK-NEXT: <key>file</key><integer>0</integer> 3427// CHECK-NEXT: </dict> 3428// CHECK-NEXT: <dict> 3429// CHECK-NEXT: <key>line</key><integer>193</integer> 3430// CHECK-NEXT: <key>col</key><integer>18</integer> 3431// CHECK-NEXT: <key>file</key><integer>0</integer> 3432// CHECK-NEXT: </dict> 3433// CHECK-NEXT: </array> 3434// CHECK-NEXT: <key>end</key> 3435// CHECK-NEXT: <array> 3436// CHECK-NEXT: <dict> 3437// CHECK-NEXT: <key>line</key><integer>193</integer> 3438// CHECK-NEXT: <key>col</key><integer>20</integer> 3439// CHECK-NEXT: <key>file</key><integer>0</integer> 3440// CHECK-NEXT: </dict> 3441// CHECK-NEXT: <dict> 3442// CHECK-NEXT: <key>line</key><integer>193</integer> 3443// CHECK-NEXT: <key>col</key><integer>20</integer> 3444// CHECK-NEXT: <key>file</key><integer>0</integer> 3445// CHECK-NEXT: </dict> 3446// CHECK-NEXT: </array> 3447// CHECK-NEXT: </dict> 3448// CHECK-NEXT: </array> 3449// CHECK-NEXT: </dict> 3450// CHECK-NEXT: <dict> 3451// CHECK-NEXT: <key>kind</key><string>event</string> 3452// CHECK-NEXT: <key>location</key> 3453// CHECK-NEXT: <dict> 3454// CHECK-NEXT: <key>line</key><integer>193</integer> 3455// CHECK-NEXT: <key>col</key><integer>20</integer> 3456// CHECK-NEXT: <key>file</key><integer>0</integer> 3457// CHECK-NEXT: </dict> 3458// CHECK-NEXT: <key>ranges</key> 3459// CHECK-NEXT: <array> 3460// CHECK-NEXT: <array> 3461// CHECK-NEXT: <dict> 3462// CHECK-NEXT: <key>line</key><integer>193</integer> 3463// CHECK-NEXT: <key>col</key><integer>20</integer> 3464// CHECK-NEXT: <key>file</key><integer>0</integer> 3465// CHECK-NEXT: </dict> 3466// CHECK-NEXT: <dict> 3467// CHECK-NEXT: <key>line</key><integer>193</integer> 3468// CHECK-NEXT: <key>col</key><integer>20</integer> 3469// CHECK-NEXT: <key>file</key><integer>0</integer> 3470// CHECK-NEXT: </dict> 3471// CHECK-NEXT: </array> 3472// CHECK-NEXT: </array> 3473// CHECK-NEXT: <key>depth</key><integer>0</integer> 3474// CHECK-NEXT: <key>extended_message</key> 3475// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3476// CHECK-NEXT: <key>message</key> 3477// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3478// CHECK-NEXT: </dict> 3479// CHECK-NEXT: </array> 3480// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 3481// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 3482// CHECK-NEXT: <key>type</key><string>Generics</string> 3483// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 3484// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 3485// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>3f2abd3c0b4b4a80a71bcbb668124ffb</string> 3486// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 3487// CHECK-NEXT: <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes</string> 3488// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 3489// CHECK-NEXT: <key>location</key> 3490// CHECK-NEXT: <dict> 3491// CHECK-NEXT: <key>line</key><integer>193</integer> 3492// CHECK-NEXT: <key>col</key><integer>20</integer> 3493// CHECK-NEXT: <key>file</key><integer>0</integer> 3494// CHECK-NEXT: </dict> 3495// CHECK-NEXT: </dict> 3496// CHECK-NEXT: <dict> 3497// CHECK-NEXT: <key>path</key> 3498// CHECK-NEXT: <array> 3499// CHECK-NEXT: <dict> 3500// CHECK-NEXT: <key>kind</key><string>event</string> 3501// CHECK-NEXT: <key>location</key> 3502// CHECK-NEXT: <dict> 3503// CHECK-NEXT: <key>line</key><integer>197</integer> 3504// CHECK-NEXT: <key>col</key><integer>20</integer> 3505// CHECK-NEXT: <key>file</key><integer>0</integer> 3506// CHECK-NEXT: </dict> 3507// CHECK-NEXT: <key>ranges</key> 3508// CHECK-NEXT: <array> 3509// CHECK-NEXT: <array> 3510// CHECK-NEXT: <dict> 3511// CHECK-NEXT: <key>line</key><integer>197</integer> 3512// CHECK-NEXT: <key>col</key><integer>20</integer> 3513// CHECK-NEXT: <key>file</key><integer>0</integer> 3514// CHECK-NEXT: </dict> 3515// CHECK-NEXT: <dict> 3516// CHECK-NEXT: <key>line</key><integer>197</integer> 3517// CHECK-NEXT: <key>col</key><integer>20</integer> 3518// CHECK-NEXT: <key>file</key><integer>0</integer> 3519// CHECK-NEXT: </dict> 3520// CHECK-NEXT: </array> 3521// CHECK-NEXT: </array> 3522// CHECK-NEXT: <key>depth</key><integer>0</integer> 3523// CHECK-NEXT: <key>extended_message</key> 3524// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacySpecialMutableArray *' to 'MutableArray<NSString *> *')</string> 3525// CHECK-NEXT: <key>message</key> 3526// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacySpecialMutableArray *' to 'MutableArray<NSString *> *')</string> 3527// CHECK-NEXT: </dict> 3528// CHECK-NEXT: <dict> 3529// CHECK-NEXT: <key>kind</key><string>control</string> 3530// CHECK-NEXT: <key>edges</key> 3531// CHECK-NEXT: <array> 3532// CHECK-NEXT: <dict> 3533// CHECK-NEXT: <key>start</key> 3534// CHECK-NEXT: <array> 3535// CHECK-NEXT: <dict> 3536// CHECK-NEXT: <key>line</key><integer>197</integer> 3537// CHECK-NEXT: <key>col</key><integer>3</integer> 3538// CHECK-NEXT: <key>file</key><integer>0</integer> 3539// CHECK-NEXT: </dict> 3540// CHECK-NEXT: <dict> 3541// CHECK-NEXT: <key>line</key><integer>197</integer> 3542// CHECK-NEXT: <key>col</key><integer>18</integer> 3543// CHECK-NEXT: <key>file</key><integer>0</integer> 3544// CHECK-NEXT: </dict> 3545// CHECK-NEXT: </array> 3546// CHECK-NEXT: <key>end</key> 3547// CHECK-NEXT: <array> 3548// CHECK-NEXT: <dict> 3549// CHECK-NEXT: <key>line</key><integer>198</integer> 3550// CHECK-NEXT: <key>col</key><integer>3</integer> 3551// CHECK-NEXT: <key>file</key><integer>0</integer> 3552// CHECK-NEXT: </dict> 3553// CHECK-NEXT: <dict> 3554// CHECK-NEXT: <key>line</key><integer>198</integer> 3555// CHECK-NEXT: <key>col</key><integer>25</integer> 3556// CHECK-NEXT: <key>file</key><integer>0</integer> 3557// CHECK-NEXT: </dict> 3558// CHECK-NEXT: </array> 3559// CHECK-NEXT: </dict> 3560// CHECK-NEXT: </array> 3561// CHECK-NEXT: </dict> 3562// CHECK-NEXT: <dict> 3563// CHECK-NEXT: <key>kind</key><string>control</string> 3564// CHECK-NEXT: <key>edges</key> 3565// CHECK-NEXT: <array> 3566// CHECK-NEXT: <dict> 3567// CHECK-NEXT: <key>start</key> 3568// CHECK-NEXT: <array> 3569// CHECK-NEXT: <dict> 3570// CHECK-NEXT: <key>line</key><integer>198</integer> 3571// CHECK-NEXT: <key>col</key><integer>3</integer> 3572// CHECK-NEXT: <key>file</key><integer>0</integer> 3573// CHECK-NEXT: </dict> 3574// CHECK-NEXT: <dict> 3575// CHECK-NEXT: <key>line</key><integer>198</integer> 3576// CHECK-NEXT: <key>col</key><integer>25</integer> 3577// CHECK-NEXT: <key>file</key><integer>0</integer> 3578// CHECK-NEXT: </dict> 3579// CHECK-NEXT: </array> 3580// CHECK-NEXT: <key>end</key> 3581// CHECK-NEXT: <array> 3582// CHECK-NEXT: <dict> 3583// CHECK-NEXT: <key>line</key><integer>198</integer> 3584// CHECK-NEXT: <key>col</key><integer>27</integer> 3585// CHECK-NEXT: <key>file</key><integer>0</integer> 3586// CHECK-NEXT: </dict> 3587// CHECK-NEXT: <dict> 3588// CHECK-NEXT: <key>line</key><integer>198</integer> 3589// CHECK-NEXT: <key>col</key><integer>27</integer> 3590// CHECK-NEXT: <key>file</key><integer>0</integer> 3591// CHECK-NEXT: </dict> 3592// CHECK-NEXT: </array> 3593// CHECK-NEXT: </dict> 3594// CHECK-NEXT: </array> 3595// CHECK-NEXT: </dict> 3596// CHECK-NEXT: <dict> 3597// CHECK-NEXT: <key>kind</key><string>event</string> 3598// CHECK-NEXT: <key>location</key> 3599// CHECK-NEXT: <dict> 3600// CHECK-NEXT: <key>line</key><integer>198</integer> 3601// CHECK-NEXT: <key>col</key><integer>27</integer> 3602// CHECK-NEXT: <key>file</key><integer>0</integer> 3603// CHECK-NEXT: </dict> 3604// CHECK-NEXT: <key>ranges</key> 3605// CHECK-NEXT: <array> 3606// CHECK-NEXT: <array> 3607// CHECK-NEXT: <dict> 3608// CHECK-NEXT: <key>line</key><integer>198</integer> 3609// CHECK-NEXT: <key>col</key><integer>27</integer> 3610// CHECK-NEXT: <key>file</key><integer>0</integer> 3611// CHECK-NEXT: </dict> 3612// CHECK-NEXT: <dict> 3613// CHECK-NEXT: <key>line</key><integer>198</integer> 3614// CHECK-NEXT: <key>col</key><integer>27</integer> 3615// CHECK-NEXT: <key>file</key><integer>0</integer> 3616// CHECK-NEXT: </dict> 3617// CHECK-NEXT: </array> 3618// CHECK-NEXT: </array> 3619// CHECK-NEXT: <key>depth</key><integer>0</integer> 3620// CHECK-NEXT: <key>extended_message</key> 3621// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3622// CHECK-NEXT: <key>message</key> 3623// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3624// CHECK-NEXT: </dict> 3625// CHECK-NEXT: </array> 3626// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3627// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 3628// CHECK-NEXT: <key>type</key><string>Generics</string> 3629// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 3630// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 3631// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>73a50f2592e8b3c9af898749f24176f7</string> 3632// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 3633// CHECK-NEXT: <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes2</string> 3634// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 3635// CHECK-NEXT: <key>location</key> 3636// CHECK-NEXT: <dict> 3637// CHECK-NEXT: <key>line</key><integer>198</integer> 3638// CHECK-NEXT: <key>col</key><integer>27</integer> 3639// CHECK-NEXT: <key>file</key><integer>0</integer> 3640// CHECK-NEXT: </dict> 3641// CHECK-NEXT: </dict> 3642// CHECK-NEXT: <dict> 3643// CHECK-NEXT: <key>path</key> 3644// CHECK-NEXT: <array> 3645// CHECK-NEXT: <dict> 3646// CHECK-NEXT: <key>kind</key><string>event</string> 3647// CHECK-NEXT: <key>location</key> 3648// CHECK-NEXT: <dict> 3649// CHECK-NEXT: <key>line</key><integer>202</integer> 3650// CHECK-NEXT: <key>col</key><integer>27</integer> 3651// CHECK-NEXT: <key>file</key><integer>0</integer> 3652// CHECK-NEXT: </dict> 3653// CHECK-NEXT: <key>ranges</key> 3654// CHECK-NEXT: <array> 3655// CHECK-NEXT: <array> 3656// CHECK-NEXT: <dict> 3657// CHECK-NEXT: <key>line</key><integer>202</integer> 3658// CHECK-NEXT: <key>col</key><integer>27</integer> 3659// CHECK-NEXT: <key>file</key><integer>0</integer> 3660// CHECK-NEXT: </dict> 3661// CHECK-NEXT: <dict> 3662// CHECK-NEXT: <key>line</key><integer>202</integer> 3663// CHECK-NEXT: <key>col</key><integer>27</integer> 3664// CHECK-NEXT: <key>file</key><integer>0</integer> 3665// CHECK-NEXT: </dict> 3666// CHECK-NEXT: </array> 3667// CHECK-NEXT: </array> 3668// CHECK-NEXT: <key>depth</key><integer>0</integer> 3669// CHECK-NEXT: <key>extended_message</key> 3670// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'LegacyMutableArray *')</string> 3671// CHECK-NEXT: <key>message</key> 3672// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'LegacyMutableArray *')</string> 3673// CHECK-NEXT: </dict> 3674// CHECK-NEXT: <dict> 3675// CHECK-NEXT: <key>kind</key><string>control</string> 3676// CHECK-NEXT: <key>edges</key> 3677// CHECK-NEXT: <array> 3678// CHECK-NEXT: <dict> 3679// CHECK-NEXT: <key>start</key> 3680// CHECK-NEXT: <array> 3681// CHECK-NEXT: <dict> 3682// CHECK-NEXT: <key>line</key><integer>202</integer> 3683// CHECK-NEXT: <key>col</key><integer>3</integer> 3684// CHECK-NEXT: <key>file</key><integer>0</integer> 3685// CHECK-NEXT: </dict> 3686// CHECK-NEXT: <dict> 3687// CHECK-NEXT: <key>line</key><integer>202</integer> 3688// CHECK-NEXT: <key>col</key><integer>20</integer> 3689// CHECK-NEXT: <key>file</key><integer>0</integer> 3690// CHECK-NEXT: </dict> 3691// CHECK-NEXT: </array> 3692// CHECK-NEXT: <key>end</key> 3693// CHECK-NEXT: <array> 3694// CHECK-NEXT: <dict> 3695// CHECK-NEXT: <key>line</key><integer>203</integer> 3696// CHECK-NEXT: <key>col</key><integer>3</integer> 3697// CHECK-NEXT: <key>file</key><integer>0</integer> 3698// CHECK-NEXT: </dict> 3699// CHECK-NEXT: <dict> 3700// CHECK-NEXT: <key>line</key><integer>203</integer> 3701// CHECK-NEXT: <key>col</key><integer>18</integer> 3702// CHECK-NEXT: <key>file</key><integer>0</integer> 3703// CHECK-NEXT: </dict> 3704// CHECK-NEXT: </array> 3705// CHECK-NEXT: </dict> 3706// CHECK-NEXT: </array> 3707// CHECK-NEXT: </dict> 3708// CHECK-NEXT: <dict> 3709// CHECK-NEXT: <key>kind</key><string>event</string> 3710// CHECK-NEXT: <key>location</key> 3711// CHECK-NEXT: <dict> 3712// CHECK-NEXT: <key>line</key><integer>203</integer> 3713// CHECK-NEXT: <key>col</key><integer>20</integer> 3714// CHECK-NEXT: <key>file</key><integer>0</integer> 3715// CHECK-NEXT: </dict> 3716// CHECK-NEXT: <key>ranges</key> 3717// CHECK-NEXT: <array> 3718// CHECK-NEXT: <array> 3719// CHECK-NEXT: <dict> 3720// CHECK-NEXT: <key>line</key><integer>203</integer> 3721// CHECK-NEXT: <key>col</key><integer>20</integer> 3722// CHECK-NEXT: <key>file</key><integer>0</integer> 3723// CHECK-NEXT: </dict> 3724// CHECK-NEXT: <dict> 3725// CHECK-NEXT: <key>line</key><integer>203</integer> 3726// CHECK-NEXT: <key>col</key><integer>20</integer> 3727// CHECK-NEXT: <key>file</key><integer>0</integer> 3728// CHECK-NEXT: </dict> 3729// CHECK-NEXT: </array> 3730// CHECK-NEXT: </array> 3731// CHECK-NEXT: <key>depth</key><integer>0</integer> 3732// CHECK-NEXT: <key>extended_message</key> 3733// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSString *> *')</string> 3734// CHECK-NEXT: <key>message</key> 3735// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSString *> *')</string> 3736// CHECK-NEXT: </dict> 3737// CHECK-NEXT: <dict> 3738// CHECK-NEXT: <key>kind</key><string>control</string> 3739// CHECK-NEXT: <key>edges</key> 3740// CHECK-NEXT: <array> 3741// CHECK-NEXT: <dict> 3742// CHECK-NEXT: <key>start</key> 3743// CHECK-NEXT: <array> 3744// CHECK-NEXT: <dict> 3745// CHECK-NEXT: <key>line</key><integer>203</integer> 3746// CHECK-NEXT: <key>col</key><integer>3</integer> 3747// CHECK-NEXT: <key>file</key><integer>0</integer> 3748// CHECK-NEXT: </dict> 3749// CHECK-NEXT: <dict> 3750// CHECK-NEXT: <key>line</key><integer>203</integer> 3751// CHECK-NEXT: <key>col</key><integer>18</integer> 3752// CHECK-NEXT: <key>file</key><integer>0</integer> 3753// CHECK-NEXT: </dict> 3754// CHECK-NEXT: </array> 3755// CHECK-NEXT: <key>end</key> 3756// CHECK-NEXT: <array> 3757// CHECK-NEXT: <dict> 3758// CHECK-NEXT: <key>line</key><integer>204</integer> 3759// CHECK-NEXT: <key>col</key><integer>3</integer> 3760// CHECK-NEXT: <key>file</key><integer>0</integer> 3761// CHECK-NEXT: </dict> 3762// CHECK-NEXT: <dict> 3763// CHECK-NEXT: <key>line</key><integer>204</integer> 3764// CHECK-NEXT: <key>col</key><integer>25</integer> 3765// CHECK-NEXT: <key>file</key><integer>0</integer> 3766// CHECK-NEXT: </dict> 3767// CHECK-NEXT: </array> 3768// CHECK-NEXT: </dict> 3769// CHECK-NEXT: </array> 3770// CHECK-NEXT: </dict> 3771// CHECK-NEXT: <dict> 3772// CHECK-NEXT: <key>kind</key><string>control</string> 3773// CHECK-NEXT: <key>edges</key> 3774// CHECK-NEXT: <array> 3775// CHECK-NEXT: <dict> 3776// CHECK-NEXT: <key>start</key> 3777// CHECK-NEXT: <array> 3778// CHECK-NEXT: <dict> 3779// CHECK-NEXT: <key>line</key><integer>204</integer> 3780// CHECK-NEXT: <key>col</key><integer>3</integer> 3781// CHECK-NEXT: <key>file</key><integer>0</integer> 3782// CHECK-NEXT: </dict> 3783// CHECK-NEXT: <dict> 3784// CHECK-NEXT: <key>line</key><integer>204</integer> 3785// CHECK-NEXT: <key>col</key><integer>25</integer> 3786// CHECK-NEXT: <key>file</key><integer>0</integer> 3787// CHECK-NEXT: </dict> 3788// CHECK-NEXT: </array> 3789// CHECK-NEXT: <key>end</key> 3790// CHECK-NEXT: <array> 3791// CHECK-NEXT: <dict> 3792// CHECK-NEXT: <key>line</key><integer>204</integer> 3793// CHECK-NEXT: <key>col</key><integer>27</integer> 3794// CHECK-NEXT: <key>file</key><integer>0</integer> 3795// CHECK-NEXT: </dict> 3796// CHECK-NEXT: <dict> 3797// CHECK-NEXT: <key>line</key><integer>204</integer> 3798// CHECK-NEXT: <key>col</key><integer>27</integer> 3799// CHECK-NEXT: <key>file</key><integer>0</integer> 3800// CHECK-NEXT: </dict> 3801// CHECK-NEXT: </array> 3802// CHECK-NEXT: </dict> 3803// CHECK-NEXT: </array> 3804// CHECK-NEXT: </dict> 3805// CHECK-NEXT: <dict> 3806// CHECK-NEXT: <key>kind</key><string>event</string> 3807// CHECK-NEXT: <key>location</key> 3808// CHECK-NEXT: <dict> 3809// CHECK-NEXT: <key>line</key><integer>204</integer> 3810// CHECK-NEXT: <key>col</key><integer>27</integer> 3811// CHECK-NEXT: <key>file</key><integer>0</integer> 3812// CHECK-NEXT: </dict> 3813// CHECK-NEXT: <key>ranges</key> 3814// CHECK-NEXT: <array> 3815// CHECK-NEXT: <array> 3816// CHECK-NEXT: <dict> 3817// CHECK-NEXT: <key>line</key><integer>204</integer> 3818// CHECK-NEXT: <key>col</key><integer>27</integer> 3819// CHECK-NEXT: <key>file</key><integer>0</integer> 3820// CHECK-NEXT: </dict> 3821// CHECK-NEXT: <dict> 3822// CHECK-NEXT: <key>line</key><integer>204</integer> 3823// CHECK-NEXT: <key>col</key><integer>27</integer> 3824// CHECK-NEXT: <key>file</key><integer>0</integer> 3825// CHECK-NEXT: </dict> 3826// CHECK-NEXT: </array> 3827// CHECK-NEXT: </array> 3828// CHECK-NEXT: <key>depth</key><integer>0</integer> 3829// CHECK-NEXT: <key>extended_message</key> 3830// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3831// CHECK-NEXT: <key>message</key> 3832// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3833// CHECK-NEXT: </dict> 3834// CHECK-NEXT: </array> 3835// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3836// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 3837// CHECK-NEXT: <key>type</key><string>Generics</string> 3838// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 3839// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 3840// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>23ca540c8961ab9a362a194e1e895f86</string> 3841// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 3842// CHECK-NEXT: <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes3</string> 3843// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 3844// CHECK-NEXT: <key>location</key> 3845// CHECK-NEXT: <dict> 3846// CHECK-NEXT: <key>line</key><integer>204</integer> 3847// CHECK-NEXT: <key>col</key><integer>27</integer> 3848// CHECK-NEXT: <key>file</key><integer>0</integer> 3849// CHECK-NEXT: </dict> 3850// CHECK-NEXT: </dict> 3851// CHECK-NEXT: <dict> 3852// CHECK-NEXT: <key>path</key> 3853// CHECK-NEXT: <array> 3854// CHECK-NEXT: <dict> 3855// CHECK-NEXT: <key>kind</key><string>event</string> 3856// CHECK-NEXT: <key>location</key> 3857// CHECK-NEXT: <dict> 3858// CHECK-NEXT: <key>line</key><integer>208</integer> 3859// CHECK-NEXT: <key>col</key><integer>20</integer> 3860// CHECK-NEXT: <key>file</key><integer>0</integer> 3861// CHECK-NEXT: </dict> 3862// CHECK-NEXT: <key>ranges</key> 3863// CHECK-NEXT: <array> 3864// CHECK-NEXT: <array> 3865// CHECK-NEXT: <dict> 3866// CHECK-NEXT: <key>line</key><integer>208</integer> 3867// CHECK-NEXT: <key>col</key><integer>20</integer> 3868// CHECK-NEXT: <key>file</key><integer>0</integer> 3869// CHECK-NEXT: </dict> 3870// CHECK-NEXT: <dict> 3871// CHECK-NEXT: <key>line</key><integer>208</integer> 3872// CHECK-NEXT: <key>col</key><integer>20</integer> 3873// CHECK-NEXT: <key>file</key><integer>0</integer> 3874// CHECK-NEXT: </dict> 3875// CHECK-NEXT: </array> 3876// CHECK-NEXT: </array> 3877// CHECK-NEXT: <key>depth</key><integer>0</integer> 3878// CHECK-NEXT: <key>extended_message</key> 3879// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string> 3880// CHECK-NEXT: <key>message</key> 3881// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string> 3882// CHECK-NEXT: </dict> 3883// CHECK-NEXT: <dict> 3884// CHECK-NEXT: <key>kind</key><string>control</string> 3885// CHECK-NEXT: <key>edges</key> 3886// CHECK-NEXT: <array> 3887// CHECK-NEXT: <dict> 3888// CHECK-NEXT: <key>start</key> 3889// CHECK-NEXT: <array> 3890// CHECK-NEXT: <dict> 3891// CHECK-NEXT: <key>line</key><integer>208</integer> 3892// CHECK-NEXT: <key>col</key><integer>3</integer> 3893// CHECK-NEXT: <key>file</key><integer>0</integer> 3894// CHECK-NEXT: </dict> 3895// CHECK-NEXT: <dict> 3896// CHECK-NEXT: <key>line</key><integer>208</integer> 3897// CHECK-NEXT: <key>col</key><integer>18</integer> 3898// CHECK-NEXT: <key>file</key><integer>0</integer> 3899// CHECK-NEXT: </dict> 3900// CHECK-NEXT: </array> 3901// CHECK-NEXT: <key>end</key> 3902// CHECK-NEXT: <array> 3903// CHECK-NEXT: <dict> 3904// CHECK-NEXT: <key>line</key><integer>209</integer> 3905// CHECK-NEXT: <key>col</key><integer>3</integer> 3906// CHECK-NEXT: <key>file</key><integer>0</integer> 3907// CHECK-NEXT: </dict> 3908// CHECK-NEXT: <dict> 3909// CHECK-NEXT: <key>line</key><integer>209</integer> 3910// CHECK-NEXT: <key>col</key><integer>25</integer> 3911// CHECK-NEXT: <key>file</key><integer>0</integer> 3912// CHECK-NEXT: </dict> 3913// CHECK-NEXT: </array> 3914// CHECK-NEXT: </dict> 3915// CHECK-NEXT: </array> 3916// CHECK-NEXT: </dict> 3917// CHECK-NEXT: <dict> 3918// CHECK-NEXT: <key>kind</key><string>control</string> 3919// CHECK-NEXT: <key>edges</key> 3920// CHECK-NEXT: <array> 3921// CHECK-NEXT: <dict> 3922// CHECK-NEXT: <key>start</key> 3923// CHECK-NEXT: <array> 3924// CHECK-NEXT: <dict> 3925// CHECK-NEXT: <key>line</key><integer>209</integer> 3926// CHECK-NEXT: <key>col</key><integer>3</integer> 3927// CHECK-NEXT: <key>file</key><integer>0</integer> 3928// CHECK-NEXT: </dict> 3929// CHECK-NEXT: <dict> 3930// CHECK-NEXT: <key>line</key><integer>209</integer> 3931// CHECK-NEXT: <key>col</key><integer>25</integer> 3932// CHECK-NEXT: <key>file</key><integer>0</integer> 3933// CHECK-NEXT: </dict> 3934// CHECK-NEXT: </array> 3935// CHECK-NEXT: <key>end</key> 3936// CHECK-NEXT: <array> 3937// CHECK-NEXT: <dict> 3938// CHECK-NEXT: <key>line</key><integer>209</integer> 3939// CHECK-NEXT: <key>col</key><integer>27</integer> 3940// CHECK-NEXT: <key>file</key><integer>0</integer> 3941// CHECK-NEXT: </dict> 3942// CHECK-NEXT: <dict> 3943// CHECK-NEXT: <key>line</key><integer>209</integer> 3944// CHECK-NEXT: <key>col</key><integer>27</integer> 3945// CHECK-NEXT: <key>file</key><integer>0</integer> 3946// CHECK-NEXT: </dict> 3947// CHECK-NEXT: </array> 3948// CHECK-NEXT: </dict> 3949// CHECK-NEXT: </array> 3950// CHECK-NEXT: </dict> 3951// CHECK-NEXT: <dict> 3952// CHECK-NEXT: <key>kind</key><string>event</string> 3953// CHECK-NEXT: <key>location</key> 3954// CHECK-NEXT: <dict> 3955// CHECK-NEXT: <key>line</key><integer>209</integer> 3956// CHECK-NEXT: <key>col</key><integer>27</integer> 3957// CHECK-NEXT: <key>file</key><integer>0</integer> 3958// CHECK-NEXT: </dict> 3959// CHECK-NEXT: <key>ranges</key> 3960// CHECK-NEXT: <array> 3961// CHECK-NEXT: <array> 3962// CHECK-NEXT: <dict> 3963// CHECK-NEXT: <key>line</key><integer>209</integer> 3964// CHECK-NEXT: <key>col</key><integer>27</integer> 3965// CHECK-NEXT: <key>file</key><integer>0</integer> 3966// CHECK-NEXT: </dict> 3967// CHECK-NEXT: <dict> 3968// CHECK-NEXT: <key>line</key><integer>209</integer> 3969// CHECK-NEXT: <key>col</key><integer>27</integer> 3970// CHECK-NEXT: <key>file</key><integer>0</integer> 3971// CHECK-NEXT: </dict> 3972// CHECK-NEXT: </array> 3973// CHECK-NEXT: </array> 3974// CHECK-NEXT: <key>depth</key><integer>0</integer> 3975// CHECK-NEXT: <key>extended_message</key> 3976// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3977// CHECK-NEXT: <key>message</key> 3978// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3979// CHECK-NEXT: </dict> 3980// CHECK-NEXT: </array> 3981// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 3982// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 3983// CHECK-NEXT: <key>type</key><string>Generics</string> 3984// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 3985// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 3986// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>be7e9426f827314f05fd4e15b25909df</string> 3987// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 3988// CHECK-NEXT: <key>issue_context</key><string>inferenceFromAPIWithBuggyTypes</string> 3989// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 3990// CHECK-NEXT: <key>location</key> 3991// CHECK-NEXT: <dict> 3992// CHECK-NEXT: <key>line</key><integer>209</integer> 3993// CHECK-NEXT: <key>col</key><integer>27</integer> 3994// CHECK-NEXT: <key>file</key><integer>0</integer> 3995// CHECK-NEXT: </dict> 3996// CHECK-NEXT: </dict> 3997// CHECK-NEXT: <dict> 3998// CHECK-NEXT: <key>path</key> 3999// CHECK-NEXT: <array> 4000// CHECK-NEXT: <dict> 4001// CHECK-NEXT: <key>kind</key><string>event</string> 4002// CHECK-NEXT: <key>location</key> 4003// CHECK-NEXT: <dict> 4004// CHECK-NEXT: <key>line</key><integer>213</integer> 4005// CHECK-NEXT: <key>col</key><integer>27</integer> 4006// CHECK-NEXT: <key>file</key><integer>0</integer> 4007// CHECK-NEXT: </dict> 4008// CHECK-NEXT: <key>ranges</key> 4009// CHECK-NEXT: <array> 4010// CHECK-NEXT: <array> 4011// CHECK-NEXT: <dict> 4012// CHECK-NEXT: <key>line</key><integer>213</integer> 4013// CHECK-NEXT: <key>col</key><integer>27</integer> 4014// CHECK-NEXT: <key>file</key><integer>0</integer> 4015// CHECK-NEXT: </dict> 4016// CHECK-NEXT: <dict> 4017// CHECK-NEXT: <key>line</key><integer>213</integer> 4018// CHECK-NEXT: <key>col</key><integer>27</integer> 4019// CHECK-NEXT: <key>file</key><integer>0</integer> 4020// CHECK-NEXT: </dict> 4021// CHECK-NEXT: </array> 4022// CHECK-NEXT: </array> 4023// CHECK-NEXT: <key>depth</key><integer>0</integer> 4024// CHECK-NEXT: <key>extended_message</key> 4025// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'BuggySpecialMutableArray<NSMutableString *> *' to 'MutableArray<NSMutableString *> *')</string> 4026// CHECK-NEXT: <key>message</key> 4027// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'BuggySpecialMutableArray<NSMutableString *> *' to 'MutableArray<NSMutableString *> *')</string> 4028// CHECK-NEXT: </dict> 4029// CHECK-NEXT: <dict> 4030// CHECK-NEXT: <key>kind</key><string>control</string> 4031// CHECK-NEXT: <key>edges</key> 4032// CHECK-NEXT: <array> 4033// CHECK-NEXT: <dict> 4034// CHECK-NEXT: <key>start</key> 4035// CHECK-NEXT: <array> 4036// CHECK-NEXT: <dict> 4037// CHECK-NEXT: <key>line</key><integer>213</integer> 4038// CHECK-NEXT: <key>col</key><integer>3</integer> 4039// CHECK-NEXT: <key>file</key><integer>0</integer> 4040// CHECK-NEXT: </dict> 4041// CHECK-NEXT: <dict> 4042// CHECK-NEXT: <key>line</key><integer>213</integer> 4043// CHECK-NEXT: <key>col</key><integer>25</integer> 4044// CHECK-NEXT: <key>file</key><integer>0</integer> 4045// CHECK-NEXT: </dict> 4046// CHECK-NEXT: </array> 4047// CHECK-NEXT: <key>end</key> 4048// CHECK-NEXT: <array> 4049// CHECK-NEXT: <dict> 4050// CHECK-NEXT: <key>line</key><integer>214</integer> 4051// CHECK-NEXT: <key>col</key><integer>3</integer> 4052// CHECK-NEXT: <key>file</key><integer>0</integer> 4053// CHECK-NEXT: </dict> 4054// CHECK-NEXT: <dict> 4055// CHECK-NEXT: <key>line</key><integer>214</integer> 4056// CHECK-NEXT: <key>col</key><integer>18</integer> 4057// CHECK-NEXT: <key>file</key><integer>0</integer> 4058// CHECK-NEXT: </dict> 4059// CHECK-NEXT: </array> 4060// CHECK-NEXT: </dict> 4061// CHECK-NEXT: </array> 4062// CHECK-NEXT: </dict> 4063// CHECK-NEXT: <dict> 4064// CHECK-NEXT: <key>kind</key><string>control</string> 4065// CHECK-NEXT: <key>edges</key> 4066// CHECK-NEXT: <array> 4067// CHECK-NEXT: <dict> 4068// CHECK-NEXT: <key>start</key> 4069// CHECK-NEXT: <array> 4070// CHECK-NEXT: <dict> 4071// CHECK-NEXT: <key>line</key><integer>214</integer> 4072// CHECK-NEXT: <key>col</key><integer>3</integer> 4073// CHECK-NEXT: <key>file</key><integer>0</integer> 4074// CHECK-NEXT: </dict> 4075// CHECK-NEXT: <dict> 4076// CHECK-NEXT: <key>line</key><integer>214</integer> 4077// CHECK-NEXT: <key>col</key><integer>18</integer> 4078// CHECK-NEXT: <key>file</key><integer>0</integer> 4079// CHECK-NEXT: </dict> 4080// CHECK-NEXT: </array> 4081// CHECK-NEXT: <key>end</key> 4082// CHECK-NEXT: <array> 4083// CHECK-NEXT: <dict> 4084// CHECK-NEXT: <key>line</key><integer>214</integer> 4085// CHECK-NEXT: <key>col</key><integer>20</integer> 4086// CHECK-NEXT: <key>file</key><integer>0</integer> 4087// CHECK-NEXT: </dict> 4088// CHECK-NEXT: <dict> 4089// CHECK-NEXT: <key>line</key><integer>214</integer> 4090// CHECK-NEXT: <key>col</key><integer>20</integer> 4091// CHECK-NEXT: <key>file</key><integer>0</integer> 4092// CHECK-NEXT: </dict> 4093// CHECK-NEXT: </array> 4094// CHECK-NEXT: </dict> 4095// CHECK-NEXT: </array> 4096// CHECK-NEXT: </dict> 4097// CHECK-NEXT: <dict> 4098// CHECK-NEXT: <key>kind</key><string>event</string> 4099// CHECK-NEXT: <key>location</key> 4100// CHECK-NEXT: <dict> 4101// CHECK-NEXT: <key>line</key><integer>214</integer> 4102// CHECK-NEXT: <key>col</key><integer>20</integer> 4103// CHECK-NEXT: <key>file</key><integer>0</integer> 4104// CHECK-NEXT: </dict> 4105// CHECK-NEXT: <key>ranges</key> 4106// CHECK-NEXT: <array> 4107// CHECK-NEXT: <array> 4108// CHECK-NEXT: <dict> 4109// CHECK-NEXT: <key>line</key><integer>214</integer> 4110// CHECK-NEXT: <key>col</key><integer>20</integer> 4111// CHECK-NEXT: <key>file</key><integer>0</integer> 4112// CHECK-NEXT: </dict> 4113// CHECK-NEXT: <dict> 4114// CHECK-NEXT: <key>line</key><integer>214</integer> 4115// CHECK-NEXT: <key>col</key><integer>20</integer> 4116// CHECK-NEXT: <key>file</key><integer>0</integer> 4117// CHECK-NEXT: </dict> 4118// CHECK-NEXT: </array> 4119// CHECK-NEXT: </array> 4120// CHECK-NEXT: <key>depth</key><integer>0</integer> 4121// CHECK-NEXT: <key>extended_message</key> 4122// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4123// CHECK-NEXT: <key>message</key> 4124// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4125// CHECK-NEXT: </dict> 4126// CHECK-NEXT: </array> 4127// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4128// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 4129// CHECK-NEXT: <key>type</key><string>Generics</string> 4130// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 4131// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 4132// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>0f97a618ccac913d7c8631b5b86a133e</string> 4133// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 4134// CHECK-NEXT: <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes2</string> 4135// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 4136// CHECK-NEXT: <key>location</key> 4137// CHECK-NEXT: <dict> 4138// CHECK-NEXT: <key>line</key><integer>214</integer> 4139// CHECK-NEXT: <key>col</key><integer>20</integer> 4140// CHECK-NEXT: <key>file</key><integer>0</integer> 4141// CHECK-NEXT: </dict> 4142// CHECK-NEXT: </dict> 4143// CHECK-NEXT: <dict> 4144// CHECK-NEXT: <key>path</key> 4145// CHECK-NEXT: <array> 4146// CHECK-NEXT: <dict> 4147// CHECK-NEXT: <key>kind</key><string>event</string> 4148// CHECK-NEXT: <key>location</key> 4149// CHECK-NEXT: <dict> 4150// CHECK-NEXT: <key>line</key><integer>218</integer> 4151// CHECK-NEXT: <key>col</key><integer>10</integer> 4152// CHECK-NEXT: <key>file</key><integer>0</integer> 4153// CHECK-NEXT: </dict> 4154// CHECK-NEXT: <key>ranges</key> 4155// CHECK-NEXT: <array> 4156// CHECK-NEXT: <array> 4157// CHECK-NEXT: <dict> 4158// CHECK-NEXT: <key>line</key><integer>218</integer> 4159// CHECK-NEXT: <key>col</key><integer>10</integer> 4160// CHECK-NEXT: <key>file</key><integer>0</integer> 4161// CHECK-NEXT: </dict> 4162// CHECK-NEXT: <dict> 4163// CHECK-NEXT: <key>line</key><integer>218</integer> 4164// CHECK-NEXT: <key>col</key><integer>10</integer> 4165// CHECK-NEXT: <key>file</key><integer>0</integer> 4166// CHECK-NEXT: </dict> 4167// CHECK-NEXT: </array> 4168// CHECK-NEXT: </array> 4169// CHECK-NEXT: <key>depth</key><integer>0</integer> 4170// CHECK-NEXT: <key>extended_message</key> 4171// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'id')</string> 4172// CHECK-NEXT: <key>message</key> 4173// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'id')</string> 4174// CHECK-NEXT: </dict> 4175// CHECK-NEXT: <dict> 4176// CHECK-NEXT: <key>kind</key><string>control</string> 4177// CHECK-NEXT: <key>edges</key> 4178// CHECK-NEXT: <array> 4179// CHECK-NEXT: <dict> 4180// CHECK-NEXT: <key>start</key> 4181// CHECK-NEXT: <array> 4182// CHECK-NEXT: <dict> 4183// CHECK-NEXT: <key>line</key><integer>218</integer> 4184// CHECK-NEXT: <key>col</key><integer>3</integer> 4185// CHECK-NEXT: <key>file</key><integer>0</integer> 4186// CHECK-NEXT: </dict> 4187// CHECK-NEXT: <dict> 4188// CHECK-NEXT: <key>line</key><integer>218</integer> 4189// CHECK-NEXT: <key>col</key><integer>4</integer> 4190// CHECK-NEXT: <key>file</key><integer>0</integer> 4191// CHECK-NEXT: </dict> 4192// CHECK-NEXT: </array> 4193// CHECK-NEXT: <key>end</key> 4194// CHECK-NEXT: <array> 4195// CHECK-NEXT: <dict> 4196// CHECK-NEXT: <key>line</key><integer>220</integer> 4197// CHECK-NEXT: <key>col</key><integer>3</integer> 4198// CHECK-NEXT: <key>file</key><integer>0</integer> 4199// CHECK-NEXT: </dict> 4200// CHECK-NEXT: <dict> 4201// CHECK-NEXT: <key>line</key><integer>220</integer> 4202// CHECK-NEXT: <key>col</key><integer>18</integer> 4203// CHECK-NEXT: <key>file</key><integer>0</integer> 4204// CHECK-NEXT: </dict> 4205// CHECK-NEXT: </array> 4206// CHECK-NEXT: </dict> 4207// CHECK-NEXT: </array> 4208// CHECK-NEXT: </dict> 4209// CHECK-NEXT: <dict> 4210// CHECK-NEXT: <key>kind</key><string>control</string> 4211// CHECK-NEXT: <key>edges</key> 4212// CHECK-NEXT: <array> 4213// CHECK-NEXT: <dict> 4214// CHECK-NEXT: <key>start</key> 4215// CHECK-NEXT: <array> 4216// CHECK-NEXT: <dict> 4217// CHECK-NEXT: <key>line</key><integer>220</integer> 4218// CHECK-NEXT: <key>col</key><integer>3</integer> 4219// CHECK-NEXT: <key>file</key><integer>0</integer> 4220// CHECK-NEXT: </dict> 4221// CHECK-NEXT: <dict> 4222// CHECK-NEXT: <key>line</key><integer>220</integer> 4223// CHECK-NEXT: <key>col</key><integer>18</integer> 4224// CHECK-NEXT: <key>file</key><integer>0</integer> 4225// CHECK-NEXT: </dict> 4226// CHECK-NEXT: </array> 4227// CHECK-NEXT: <key>end</key> 4228// CHECK-NEXT: <array> 4229// CHECK-NEXT: <dict> 4230// CHECK-NEXT: <key>line</key><integer>220</integer> 4231// CHECK-NEXT: <key>col</key><integer>20</integer> 4232// CHECK-NEXT: <key>file</key><integer>0</integer> 4233// CHECK-NEXT: </dict> 4234// CHECK-NEXT: <dict> 4235// CHECK-NEXT: <key>line</key><integer>220</integer> 4236// CHECK-NEXT: <key>col</key><integer>20</integer> 4237// CHECK-NEXT: <key>file</key><integer>0</integer> 4238// CHECK-NEXT: </dict> 4239// CHECK-NEXT: </array> 4240// CHECK-NEXT: </dict> 4241// CHECK-NEXT: </array> 4242// CHECK-NEXT: </dict> 4243// CHECK-NEXT: <dict> 4244// CHECK-NEXT: <key>kind</key><string>event</string> 4245// CHECK-NEXT: <key>location</key> 4246// CHECK-NEXT: <dict> 4247// CHECK-NEXT: <key>line</key><integer>220</integer> 4248// CHECK-NEXT: <key>col</key><integer>20</integer> 4249// CHECK-NEXT: <key>file</key><integer>0</integer> 4250// CHECK-NEXT: </dict> 4251// CHECK-NEXT: <key>ranges</key> 4252// CHECK-NEXT: <array> 4253// CHECK-NEXT: <array> 4254// CHECK-NEXT: <dict> 4255// CHECK-NEXT: <key>line</key><integer>220</integer> 4256// CHECK-NEXT: <key>col</key><integer>20</integer> 4257// CHECK-NEXT: <key>file</key><integer>0</integer> 4258// CHECK-NEXT: </dict> 4259// CHECK-NEXT: <dict> 4260// CHECK-NEXT: <key>line</key><integer>220</integer> 4261// CHECK-NEXT: <key>col</key><integer>20</integer> 4262// CHECK-NEXT: <key>file</key><integer>0</integer> 4263// CHECK-NEXT: </dict> 4264// CHECK-NEXT: </array> 4265// CHECK-NEXT: </array> 4266// CHECK-NEXT: <key>depth</key><integer>0</integer> 4267// CHECK-NEXT: <key>extended_message</key> 4268// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4269// CHECK-NEXT: <key>message</key> 4270// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4271// CHECK-NEXT: </dict> 4272// CHECK-NEXT: </array> 4273// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string> 4274// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 4275// CHECK-NEXT: <key>type</key><string>Generics</string> 4276// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 4277// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 4278// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>725c54c88bb271138b1de545ee59a8aa</string> 4279// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 4280// CHECK-NEXT: <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes3</string> 4281// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 4282// CHECK-NEXT: <key>location</key> 4283// CHECK-NEXT: <dict> 4284// CHECK-NEXT: <key>line</key><integer>220</integer> 4285// CHECK-NEXT: <key>col</key><integer>20</integer> 4286// CHECK-NEXT: <key>file</key><integer>0</integer> 4287// CHECK-NEXT: </dict> 4288// CHECK-NEXT: </dict> 4289// CHECK-NEXT: <dict> 4290// CHECK-NEXT: <key>path</key> 4291// CHECK-NEXT: <array> 4292// CHECK-NEXT: <dict> 4293// CHECK-NEXT: <key>kind</key><string>event</string> 4294// CHECK-NEXT: <key>location</key> 4295// CHECK-NEXT: <dict> 4296// CHECK-NEXT: <key>line</key><integer>224</integer> 4297// CHECK-NEXT: <key>col</key><integer>45</integer> 4298// CHECK-NEXT: <key>file</key><integer>0</integer> 4299// CHECK-NEXT: </dict> 4300// CHECK-NEXT: <key>ranges</key> 4301// CHECK-NEXT: <array> 4302// CHECK-NEXT: <array> 4303// CHECK-NEXT: <dict> 4304// CHECK-NEXT: <key>line</key><integer>224</integer> 4305// CHECK-NEXT: <key>col</key><integer>45</integer> 4306// CHECK-NEXT: <key>file</key><integer>0</integer> 4307// CHECK-NEXT: </dict> 4308// CHECK-NEXT: <dict> 4309// CHECK-NEXT: <key>line</key><integer>224</integer> 4310// CHECK-NEXT: <key>col</key><integer>45</integer> 4311// CHECK-NEXT: <key>file</key><integer>0</integer> 4312// CHECK-NEXT: </dict> 4313// CHECK-NEXT: </array> 4314// CHECK-NEXT: </array> 4315// CHECK-NEXT: <key>depth</key><integer>0</integer> 4316// CHECK-NEXT: <key>extended_message</key> 4317// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'BuggyMutableArray<NSMutableString *> *')</string> 4318// CHECK-NEXT: <key>message</key> 4319// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'BuggyMutableArray<NSMutableString *> *')</string> 4320// CHECK-NEXT: </dict> 4321// CHECK-NEXT: <dict> 4322// CHECK-NEXT: <key>kind</key><string>control</string> 4323// CHECK-NEXT: <key>edges</key> 4324// CHECK-NEXT: <array> 4325// CHECK-NEXT: <dict> 4326// CHECK-NEXT: <key>start</key> 4327// CHECK-NEXT: <array> 4328// CHECK-NEXT: <dict> 4329// CHECK-NEXT: <key>line</key><integer>224</integer> 4330// CHECK-NEXT: <key>col</key><integer>3</integer> 4331// CHECK-NEXT: <key>file</key><integer>0</integer> 4332// CHECK-NEXT: </dict> 4333// CHECK-NEXT: <dict> 4334// CHECK-NEXT: <key>line</key><integer>224</integer> 4335// CHECK-NEXT: <key>col</key><integer>19</integer> 4336// CHECK-NEXT: <key>file</key><integer>0</integer> 4337// CHECK-NEXT: </dict> 4338// CHECK-NEXT: </array> 4339// CHECK-NEXT: <key>end</key> 4340// CHECK-NEXT: <array> 4341// CHECK-NEXT: <dict> 4342// CHECK-NEXT: <key>line</key><integer>225</integer> 4343// CHECK-NEXT: <key>col</key><integer>3</integer> 4344// CHECK-NEXT: <key>file</key><integer>0</integer> 4345// CHECK-NEXT: </dict> 4346// CHECK-NEXT: <dict> 4347// CHECK-NEXT: <key>line</key><integer>225</integer> 4348// CHECK-NEXT: <key>col</key><integer>18</integer> 4349// CHECK-NEXT: <key>file</key><integer>0</integer> 4350// CHECK-NEXT: </dict> 4351// CHECK-NEXT: </array> 4352// CHECK-NEXT: </dict> 4353// CHECK-NEXT: </array> 4354// CHECK-NEXT: </dict> 4355// CHECK-NEXT: <dict> 4356// CHECK-NEXT: <key>kind</key><string>event</string> 4357// CHECK-NEXT: <key>location</key> 4358// CHECK-NEXT: <dict> 4359// CHECK-NEXT: <key>line</key><integer>225</integer> 4360// CHECK-NEXT: <key>col</key><integer>20</integer> 4361// CHECK-NEXT: <key>file</key><integer>0</integer> 4362// CHECK-NEXT: </dict> 4363// CHECK-NEXT: <key>ranges</key> 4364// CHECK-NEXT: <array> 4365// CHECK-NEXT: <array> 4366// CHECK-NEXT: <dict> 4367// CHECK-NEXT: <key>line</key><integer>225</integer> 4368// CHECK-NEXT: <key>col</key><integer>20</integer> 4369// CHECK-NEXT: <key>file</key><integer>0</integer> 4370// CHECK-NEXT: </dict> 4371// CHECK-NEXT: <dict> 4372// CHECK-NEXT: <key>line</key><integer>225</integer> 4373// CHECK-NEXT: <key>col</key><integer>20</integer> 4374// CHECK-NEXT: <key>file</key><integer>0</integer> 4375// CHECK-NEXT: </dict> 4376// CHECK-NEXT: </array> 4377// CHECK-NEXT: </array> 4378// CHECK-NEXT: <key>depth</key><integer>0</integer> 4379// CHECK-NEXT: <key>extended_message</key> 4380// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string> 4381// CHECK-NEXT: <key>message</key> 4382// CHECK-NEXT: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string> 4383// CHECK-NEXT: </dict> 4384// CHECK-NEXT: <dict> 4385// CHECK-NEXT: <key>kind</key><string>control</string> 4386// CHECK-NEXT: <key>edges</key> 4387// CHECK-NEXT: <array> 4388// CHECK-NEXT: <dict> 4389// CHECK-NEXT: <key>start</key> 4390// CHECK-NEXT: <array> 4391// CHECK-NEXT: <dict> 4392// CHECK-NEXT: <key>line</key><integer>225</integer> 4393// CHECK-NEXT: <key>col</key><integer>3</integer> 4394// CHECK-NEXT: <key>file</key><integer>0</integer> 4395// CHECK-NEXT: </dict> 4396// CHECK-NEXT: <dict> 4397// CHECK-NEXT: <key>line</key><integer>225</integer> 4398// CHECK-NEXT: <key>col</key><integer>18</integer> 4399// CHECK-NEXT: <key>file</key><integer>0</integer> 4400// CHECK-NEXT: </dict> 4401// CHECK-NEXT: </array> 4402// CHECK-NEXT: <key>end</key> 4403// CHECK-NEXT: <array> 4404// CHECK-NEXT: <dict> 4405// CHECK-NEXT: <key>line</key><integer>226</integer> 4406// CHECK-NEXT: <key>col</key><integer>3</integer> 4407// CHECK-NEXT: <key>file</key><integer>0</integer> 4408// CHECK-NEXT: </dict> 4409// CHECK-NEXT: <dict> 4410// CHECK-NEXT: <key>line</key><integer>226</integer> 4411// CHECK-NEXT: <key>col</key><integer>25</integer> 4412// CHECK-NEXT: <key>file</key><integer>0</integer> 4413// CHECK-NEXT: </dict> 4414// CHECK-NEXT: </array> 4415// CHECK-NEXT: </dict> 4416// CHECK-NEXT: </array> 4417// CHECK-NEXT: </dict> 4418// CHECK-NEXT: <dict> 4419// CHECK-NEXT: <key>kind</key><string>control</string> 4420// CHECK-NEXT: <key>edges</key> 4421// CHECK-NEXT: <array> 4422// CHECK-NEXT: <dict> 4423// CHECK-NEXT: <key>start</key> 4424// CHECK-NEXT: <array> 4425// CHECK-NEXT: <dict> 4426// CHECK-NEXT: <key>line</key><integer>226</integer> 4427// CHECK-NEXT: <key>col</key><integer>3</integer> 4428// CHECK-NEXT: <key>file</key><integer>0</integer> 4429// CHECK-NEXT: </dict> 4430// CHECK-NEXT: <dict> 4431// CHECK-NEXT: <key>line</key><integer>226</integer> 4432// CHECK-NEXT: <key>col</key><integer>25</integer> 4433// CHECK-NEXT: <key>file</key><integer>0</integer> 4434// CHECK-NEXT: </dict> 4435// CHECK-NEXT: </array> 4436// CHECK-NEXT: <key>end</key> 4437// CHECK-NEXT: <array> 4438// CHECK-NEXT: <dict> 4439// CHECK-NEXT: <key>line</key><integer>226</integer> 4440// CHECK-NEXT: <key>col</key><integer>27</integer> 4441// CHECK-NEXT: <key>file</key><integer>0</integer> 4442// CHECK-NEXT: </dict> 4443// CHECK-NEXT: <dict> 4444// CHECK-NEXT: <key>line</key><integer>226</integer> 4445// CHECK-NEXT: <key>col</key><integer>27</integer> 4446// CHECK-NEXT: <key>file</key><integer>0</integer> 4447// CHECK-NEXT: </dict> 4448// CHECK-NEXT: </array> 4449// CHECK-NEXT: </dict> 4450// CHECK-NEXT: </array> 4451// CHECK-NEXT: </dict> 4452// CHECK-NEXT: <dict> 4453// CHECK-NEXT: <key>kind</key><string>event</string> 4454// CHECK-NEXT: <key>location</key> 4455// CHECK-NEXT: <dict> 4456// CHECK-NEXT: <key>line</key><integer>226</integer> 4457// CHECK-NEXT: <key>col</key><integer>27</integer> 4458// CHECK-NEXT: <key>file</key><integer>0</integer> 4459// CHECK-NEXT: </dict> 4460// CHECK-NEXT: <key>ranges</key> 4461// CHECK-NEXT: <array> 4462// CHECK-NEXT: <array> 4463// CHECK-NEXT: <dict> 4464// CHECK-NEXT: <key>line</key><integer>226</integer> 4465// CHECK-NEXT: <key>col</key><integer>27</integer> 4466// CHECK-NEXT: <key>file</key><integer>0</integer> 4467// CHECK-NEXT: </dict> 4468// CHECK-NEXT: <dict> 4469// CHECK-NEXT: <key>line</key><integer>226</integer> 4470// CHECK-NEXT: <key>col</key><integer>27</integer> 4471// CHECK-NEXT: <key>file</key><integer>0</integer> 4472// CHECK-NEXT: </dict> 4473// CHECK-NEXT: </array> 4474// CHECK-NEXT: </array> 4475// CHECK-NEXT: <key>depth</key><integer>0</integer> 4476// CHECK-NEXT: <key>extended_message</key> 4477// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 4478// CHECK-NEXT: <key>message</key> 4479// CHECK-NEXT: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 4480// CHECK-NEXT: </dict> 4481// CHECK-NEXT: </array> 4482// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string> 4483// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 4484// CHECK-NEXT: <key>type</key><string>Generics</string> 4485// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 4486// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 4487// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>fb867af384c612fe5c09f821127eeaf0</string> 4488// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 4489// CHECK-NEXT: <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes4</string> 4490// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 4491// CHECK-NEXT: <key>location</key> 4492// CHECK-NEXT: <dict> 4493// CHECK-NEXT: <key>line</key><integer>226</integer> 4494// CHECK-NEXT: <key>col</key><integer>27</integer> 4495// CHECK-NEXT: <key>file</key><integer>0</integer> 4496// CHECK-NEXT: </dict> 4497// CHECK-NEXT: </dict> 4498// CHECK-NEXT: <dict> 4499// CHECK-NEXT: <key>path</key> 4500// CHECK-NEXT: <array> 4501// CHECK-NEXT: <dict> 4502// CHECK-NEXT: <key>kind</key><string>control</string> 4503// CHECK-NEXT: <key>edges</key> 4504// CHECK-NEXT: <array> 4505// CHECK-NEXT: <dict> 4506// CHECK-NEXT: <key>start</key> 4507// CHECK-NEXT: <array> 4508// CHECK-NEXT: <dict> 4509// CHECK-NEXT: <key>line</key><integer>238</integer> 4510// CHECK-NEXT: <key>col</key><integer>3</integer> 4511// CHECK-NEXT: <key>file</key><integer>0</integer> 4512// CHECK-NEXT: </dict> 4513// CHECK-NEXT: <dict> 4514// CHECK-NEXT: <key>line</key><integer>238</integer> 4515// CHECK-NEXT: <key>col</key><integer>9</integer> 4516// CHECK-NEXT: <key>file</key><integer>0</integer> 4517// CHECK-NEXT: </dict> 4518// CHECK-NEXT: </array> 4519// CHECK-NEXT: <key>end</key> 4520// CHECK-NEXT: <array> 4521// CHECK-NEXT: <dict> 4522// CHECK-NEXT: <key>line</key><integer>239</integer> 4523// CHECK-NEXT: <key>col</key><integer>3</integer> 4524// CHECK-NEXT: <key>file</key><integer>0</integer> 4525// CHECK-NEXT: </dict> 4526// CHECK-NEXT: <dict> 4527// CHECK-NEXT: <key>line</key><integer>239</integer> 4528// CHECK-NEXT: <key>col</key><integer>10</integer> 4529// CHECK-NEXT: <key>file</key><integer>0</integer> 4530// CHECK-NEXT: </dict> 4531// CHECK-NEXT: </array> 4532// CHECK-NEXT: </dict> 4533// CHECK-NEXT: </array> 4534// CHECK-NEXT: </dict> 4535// CHECK-NEXT: <dict> 4536// CHECK-NEXT: <key>kind</key><string>control</string> 4537// CHECK-NEXT: <key>edges</key> 4538// CHECK-NEXT: <array> 4539// CHECK-NEXT: <dict> 4540// CHECK-NEXT: <key>start</key> 4541// CHECK-NEXT: <array> 4542// CHECK-NEXT: <dict> 4543// CHECK-NEXT: <key>line</key><integer>239</integer> 4544// CHECK-NEXT: <key>col</key><integer>3</integer> 4545// CHECK-NEXT: <key>file</key><integer>0</integer> 4546// CHECK-NEXT: </dict> 4547// CHECK-NEXT: <dict> 4548// CHECK-NEXT: <key>line</key><integer>239</integer> 4549// CHECK-NEXT: <key>col</key><integer>10</integer> 4550// CHECK-NEXT: <key>file</key><integer>0</integer> 4551// CHECK-NEXT: </dict> 4552// CHECK-NEXT: </array> 4553// CHECK-NEXT: <key>end</key> 4554// CHECK-NEXT: <array> 4555// CHECK-NEXT: <dict> 4556// CHECK-NEXT: <key>line</key><integer>239</integer> 4557// CHECK-NEXT: <key>col</key><integer>19</integer> 4558// CHECK-NEXT: <key>file</key><integer>0</integer> 4559// CHECK-NEXT: </dict> 4560// CHECK-NEXT: <dict> 4561// CHECK-NEXT: <key>line</key><integer>239</integer> 4562// CHECK-NEXT: <key>col</key><integer>19</integer> 4563// CHECK-NEXT: <key>file</key><integer>0</integer> 4564// CHECK-NEXT: </dict> 4565// CHECK-NEXT: </array> 4566// CHECK-NEXT: </dict> 4567// CHECK-NEXT: </array> 4568// CHECK-NEXT: </dict> 4569// CHECK-NEXT: <dict> 4570// CHECK-NEXT: <key>kind</key><string>event</string> 4571// CHECK-NEXT: <key>location</key> 4572// CHECK-NEXT: <dict> 4573// CHECK-NEXT: <key>line</key><integer>239</integer> 4574// CHECK-NEXT: <key>col</key><integer>19</integer> 4575// CHECK-NEXT: <key>file</key><integer>0</integer> 4576// CHECK-NEXT: </dict> 4577// CHECK-NEXT: <key>ranges</key> 4578// CHECK-NEXT: <array> 4579// CHECK-NEXT: <array> 4580// CHECK-NEXT: <dict> 4581// CHECK-NEXT: <key>line</key><integer>239</integer> 4582// CHECK-NEXT: <key>col</key><integer>19</integer> 4583// CHECK-NEXT: <key>file</key><integer>0</integer> 4584// CHECK-NEXT: </dict> 4585// CHECK-NEXT: <dict> 4586// CHECK-NEXT: <key>line</key><integer>239</integer> 4587// CHECK-NEXT: <key>col</key><integer>38</integer> 4588// CHECK-NEXT: <key>file</key><integer>0</integer> 4589// CHECK-NEXT: </dict> 4590// CHECK-NEXT: </array> 4591// CHECK-NEXT: </array> 4592// CHECK-NEXT: <key>depth</key><integer>0</integer> 4593// CHECK-NEXT: <key>extended_message</key> 4594// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 4595// CHECK-NEXT: <key>message</key> 4596// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 4597// CHECK-NEXT: </dict> 4598// CHECK-NEXT: <dict> 4599// CHECK-NEXT: <key>kind</key><string>event</string> 4600// CHECK-NEXT: <key>location</key> 4601// CHECK-NEXT: <dict> 4602// CHECK-NEXT: <key>line</key><integer>239</integer> 4603// CHECK-NEXT: <key>col</key><integer>19</integer> 4604// CHECK-NEXT: <key>file</key><integer>0</integer> 4605// CHECK-NEXT: </dict> 4606// CHECK-NEXT: <key>ranges</key> 4607// CHECK-NEXT: <array> 4608// CHECK-NEXT: <array> 4609// CHECK-NEXT: <dict> 4610// CHECK-NEXT: <key>line</key><integer>239</integer> 4611// CHECK-NEXT: <key>col</key><integer>19</integer> 4612// CHECK-NEXT: <key>file</key><integer>0</integer> 4613// CHECK-NEXT: </dict> 4614// CHECK-NEXT: <dict> 4615// CHECK-NEXT: <key>line</key><integer>239</integer> 4616// CHECK-NEXT: <key>col</key><integer>38</integer> 4617// CHECK-NEXT: <key>file</key><integer>0</integer> 4618// CHECK-NEXT: </dict> 4619// CHECK-NEXT: </array> 4620// CHECK-NEXT: </array> 4621// CHECK-NEXT: <key>depth</key><integer>0</integer> 4622// CHECK-NEXT: <key>extended_message</key> 4623// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4624// CHECK-NEXT: <key>message</key> 4625// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4626// CHECK-NEXT: </dict> 4627// CHECK-NEXT: </array> 4628// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4629// CHECK-NEXT: <key>category</key><string>Type Error</string> 4630// CHECK-NEXT: <key>type</key><string>Dynamic and static type mismatch</string> 4631// CHECK-NEXT: <key>check_name</key><string>alpha.core.DynamicTypeChecker</string> 4632// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 4633// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>2e9f738345d9fa7dae2324ff7accd1ae</string> 4634// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 4635// CHECK-NEXT: <key>issue_context</key><string>workWithProperties</string> 4636// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 4637// CHECK-NEXT: <key>location</key> 4638// CHECK-NEXT: <dict> 4639// CHECK-NEXT: <key>line</key><integer>239</integer> 4640// CHECK-NEXT: <key>col</key><integer>19</integer> 4641// CHECK-NEXT: <key>file</key><integer>0</integer> 4642// CHECK-NEXT: </dict> 4643// CHECK-NEXT: </dict> 4644// CHECK-NEXT: <dict> 4645// CHECK-NEXT: <key>path</key> 4646// CHECK-NEXT: <array> 4647// CHECK-NEXT: <dict> 4648// CHECK-NEXT: <key>kind</key><string>control</string> 4649// CHECK-NEXT: <key>edges</key> 4650// CHECK-NEXT: <array> 4651// CHECK-NEXT: <dict> 4652// CHECK-NEXT: <key>start</key> 4653// CHECK-NEXT: <array> 4654// CHECK-NEXT: <dict> 4655// CHECK-NEXT: <key>line</key><integer>238</integer> 4656// CHECK-NEXT: <key>col</key><integer>3</integer> 4657// CHECK-NEXT: <key>file</key><integer>0</integer> 4658// CHECK-NEXT: </dict> 4659// CHECK-NEXT: <dict> 4660// CHECK-NEXT: <key>line</key><integer>238</integer> 4661// CHECK-NEXT: <key>col</key><integer>9</integer> 4662// CHECK-NEXT: <key>file</key><integer>0</integer> 4663// CHECK-NEXT: </dict> 4664// CHECK-NEXT: </array> 4665// CHECK-NEXT: <key>end</key> 4666// CHECK-NEXT: <array> 4667// CHECK-NEXT: <dict> 4668// CHECK-NEXT: <key>line</key><integer>241</integer> 4669// CHECK-NEXT: <key>col</key><integer>3</integer> 4670// CHECK-NEXT: <key>file</key><integer>0</integer> 4671// CHECK-NEXT: </dict> 4672// CHECK-NEXT: <dict> 4673// CHECK-NEXT: <key>line</key><integer>241</integer> 4674// CHECK-NEXT: <key>col</key><integer>5</integer> 4675// CHECK-NEXT: <key>file</key><integer>0</integer> 4676// CHECK-NEXT: </dict> 4677// CHECK-NEXT: </array> 4678// CHECK-NEXT: </dict> 4679// CHECK-NEXT: </array> 4680// CHECK-NEXT: </dict> 4681// CHECK-NEXT: <dict> 4682// CHECK-NEXT: <key>kind</key><string>control</string> 4683// CHECK-NEXT: <key>edges</key> 4684// CHECK-NEXT: <array> 4685// CHECK-NEXT: <dict> 4686// CHECK-NEXT: <key>start</key> 4687// CHECK-NEXT: <array> 4688// CHECK-NEXT: <dict> 4689// CHECK-NEXT: <key>line</key><integer>241</integer> 4690// CHECK-NEXT: <key>col</key><integer>3</integer> 4691// CHECK-NEXT: <key>file</key><integer>0</integer> 4692// CHECK-NEXT: </dict> 4693// CHECK-NEXT: <dict> 4694// CHECK-NEXT: <key>line</key><integer>241</integer> 4695// CHECK-NEXT: <key>col</key><integer>5</integer> 4696// CHECK-NEXT: <key>file</key><integer>0</integer> 4697// CHECK-NEXT: </dict> 4698// CHECK-NEXT: </array> 4699// CHECK-NEXT: <key>end</key> 4700// CHECK-NEXT: <array> 4701// CHECK-NEXT: <dict> 4702// CHECK-NEXT: <key>line</key><integer>241</integer> 4703// CHECK-NEXT: <key>col</key><integer>9</integer> 4704// CHECK-NEXT: <key>file</key><integer>0</integer> 4705// CHECK-NEXT: </dict> 4706// CHECK-NEXT: <dict> 4707// CHECK-NEXT: <key>line</key><integer>241</integer> 4708// CHECK-NEXT: <key>col</key><integer>9</integer> 4709// CHECK-NEXT: <key>file</key><integer>0</integer> 4710// CHECK-NEXT: </dict> 4711// CHECK-NEXT: </array> 4712// CHECK-NEXT: </dict> 4713// CHECK-NEXT: </array> 4714// CHECK-NEXT: </dict> 4715// CHECK-NEXT: <dict> 4716// CHECK-NEXT: <key>kind</key><string>event</string> 4717// CHECK-NEXT: <key>location</key> 4718// CHECK-NEXT: <dict> 4719// CHECK-NEXT: <key>line</key><integer>241</integer> 4720// CHECK-NEXT: <key>col</key><integer>9</integer> 4721// CHECK-NEXT: <key>file</key><integer>0</integer> 4722// CHECK-NEXT: </dict> 4723// CHECK-NEXT: <key>ranges</key> 4724// CHECK-NEXT: <array> 4725// CHECK-NEXT: <array> 4726// CHECK-NEXT: <dict> 4727// CHECK-NEXT: <key>line</key><integer>241</integer> 4728// CHECK-NEXT: <key>col</key><integer>9</integer> 4729// CHECK-NEXT: <key>file</key><integer>0</integer> 4730// CHECK-NEXT: </dict> 4731// CHECK-NEXT: <dict> 4732// CHECK-NEXT: <key>line</key><integer>241</integer> 4733// CHECK-NEXT: <key>col</key><integer>23</integer> 4734// CHECK-NEXT: <key>file</key><integer>0</integer> 4735// CHECK-NEXT: </dict> 4736// CHECK-NEXT: </array> 4737// CHECK-NEXT: </array> 4738// CHECK-NEXT: <key>depth</key><integer>0</integer> 4739// CHECK-NEXT: <key>extended_message</key> 4740// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 4741// CHECK-NEXT: <key>message</key> 4742// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 4743// CHECK-NEXT: </dict> 4744// CHECK-NEXT: <dict> 4745// CHECK-NEXT: <key>kind</key><string>event</string> 4746// CHECK-NEXT: <key>location</key> 4747// CHECK-NEXT: <dict> 4748// CHECK-NEXT: <key>line</key><integer>241</integer> 4749// CHECK-NEXT: <key>col</key><integer>9</integer> 4750// CHECK-NEXT: <key>file</key><integer>0</integer> 4751// CHECK-NEXT: </dict> 4752// CHECK-NEXT: <key>ranges</key> 4753// CHECK-NEXT: <array> 4754// CHECK-NEXT: <array> 4755// CHECK-NEXT: <dict> 4756// CHECK-NEXT: <key>line</key><integer>241</integer> 4757// CHECK-NEXT: <key>col</key><integer>9</integer> 4758// CHECK-NEXT: <key>file</key><integer>0</integer> 4759// CHECK-NEXT: </dict> 4760// CHECK-NEXT: <dict> 4761// CHECK-NEXT: <key>line</key><integer>241</integer> 4762// CHECK-NEXT: <key>col</key><integer>23</integer> 4763// CHECK-NEXT: <key>file</key><integer>0</integer> 4764// CHECK-NEXT: </dict> 4765// CHECK-NEXT: </array> 4766// CHECK-NEXT: </array> 4767// CHECK-NEXT: <key>depth</key><integer>0</integer> 4768// CHECK-NEXT: <key>extended_message</key> 4769// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4770// CHECK-NEXT: <key>message</key> 4771// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4772// CHECK-NEXT: </dict> 4773// CHECK-NEXT: </array> 4774// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4775// CHECK-NEXT: <key>category</key><string>Type Error</string> 4776// CHECK-NEXT: <key>type</key><string>Dynamic and static type mismatch</string> 4777// CHECK-NEXT: <key>check_name</key><string>alpha.core.DynamicTypeChecker</string> 4778// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 4779// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>d85392b4efadf710b8da65a043a65e24</string> 4780// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 4781// CHECK-NEXT: <key>issue_context</key><string>workWithProperties</string> 4782// CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string> 4783// CHECK-NEXT: <key>location</key> 4784// CHECK-NEXT: <dict> 4785// CHECK-NEXT: <key>line</key><integer>241</integer> 4786// CHECK-NEXT: <key>col</key><integer>9</integer> 4787// CHECK-NEXT: <key>file</key><integer>0</integer> 4788// CHECK-NEXT: </dict> 4789// CHECK-NEXT: </dict> 4790// CHECK-NEXT: <dict> 4791// CHECK-NEXT: <key>path</key> 4792// CHECK-NEXT: <array> 4793// CHECK-NEXT: <dict> 4794// CHECK-NEXT: <key>kind</key><string>control</string> 4795// CHECK-NEXT: <key>edges</key> 4796// CHECK-NEXT: <array> 4797// CHECK-NEXT: <dict> 4798// CHECK-NEXT: <key>start</key> 4799// CHECK-NEXT: <array> 4800// CHECK-NEXT: <dict> 4801// CHECK-NEXT: <key>line</key><integer>238</integer> 4802// CHECK-NEXT: <key>col</key><integer>3</integer> 4803// CHECK-NEXT: <key>file</key><integer>0</integer> 4804// CHECK-NEXT: </dict> 4805// CHECK-NEXT: <dict> 4806// CHECK-NEXT: <key>line</key><integer>238</integer> 4807// CHECK-NEXT: <key>col</key><integer>9</integer> 4808// CHECK-NEXT: <key>file</key><integer>0</integer> 4809// CHECK-NEXT: </dict> 4810// CHECK-NEXT: </array> 4811// CHECK-NEXT: <key>end</key> 4812// CHECK-NEXT: <array> 4813// CHECK-NEXT: <dict> 4814// CHECK-NEXT: <key>line</key><integer>243</integer> 4815// CHECK-NEXT: <key>col</key><integer>3</integer> 4816// CHECK-NEXT: <key>file</key><integer>0</integer> 4817// CHECK-NEXT: </dict> 4818// CHECK-NEXT: <dict> 4819// CHECK-NEXT: <key>line</key><integer>243</integer> 4820// CHECK-NEXT: <key>col</key><integer>5</integer> 4821// CHECK-NEXT: <key>file</key><integer>0</integer> 4822// CHECK-NEXT: </dict> 4823// CHECK-NEXT: </array> 4824// CHECK-NEXT: </dict> 4825// CHECK-NEXT: </array> 4826// CHECK-NEXT: </dict> 4827// CHECK-NEXT: <dict> 4828// CHECK-NEXT: <key>kind</key><string>control</string> 4829// CHECK-NEXT: <key>edges</key> 4830// CHECK-NEXT: <array> 4831// CHECK-NEXT: <dict> 4832// CHECK-NEXT: <key>start</key> 4833// CHECK-NEXT: <array> 4834// CHECK-NEXT: <dict> 4835// CHECK-NEXT: <key>line</key><integer>243</integer> 4836// CHECK-NEXT: <key>col</key><integer>3</integer> 4837// CHECK-NEXT: <key>file</key><integer>0</integer> 4838// CHECK-NEXT: </dict> 4839// CHECK-NEXT: <dict> 4840// CHECK-NEXT: <key>line</key><integer>243</integer> 4841// CHECK-NEXT: <key>col</key><integer>5</integer> 4842// CHECK-NEXT: <key>file</key><integer>0</integer> 4843// CHECK-NEXT: </dict> 4844// CHECK-NEXT: </array> 4845// CHECK-NEXT: <key>end</key> 4846// CHECK-NEXT: <array> 4847// CHECK-NEXT: <dict> 4848// CHECK-NEXT: <key>line</key><integer>243</integer> 4849// CHECK-NEXT: <key>col</key><integer>11</integer> 4850// CHECK-NEXT: <key>file</key><integer>0</integer> 4851// CHECK-NEXT: </dict> 4852// CHECK-NEXT: <dict> 4853// CHECK-NEXT: <key>line</key><integer>243</integer> 4854// CHECK-NEXT: <key>col</key><integer>21</integer> 4855// CHECK-NEXT: <key>file</key><integer>0</integer> 4856// CHECK-NEXT: </dict> 4857// CHECK-NEXT: </array> 4858// CHECK-NEXT: </dict> 4859// CHECK-NEXT: </array> 4860// CHECK-NEXT: </dict> 4861// CHECK-NEXT: <dict> 4862// CHECK-NEXT: <key>kind</key><string>event</string> 4863// CHECK-NEXT: <key>location</key> 4864// CHECK-NEXT: <dict> 4865// CHECK-NEXT: <key>line</key><integer>243</integer> 4866// CHECK-NEXT: <key>col</key><integer>11</integer> 4867// CHECK-NEXT: <key>file</key><integer>0</integer> 4868// CHECK-NEXT: </dict> 4869// CHECK-NEXT: <key>ranges</key> 4870// CHECK-NEXT: <array> 4871// CHECK-NEXT: <array> 4872// CHECK-NEXT: <dict> 4873// CHECK-NEXT: <key>line</key><integer>243</integer> 4874// CHECK-NEXT: <key>col</key><integer>11</integer> 4875// CHECK-NEXT: <key>file</key><integer>0</integer> 4876// CHECK-NEXT: </dict> 4877// CHECK-NEXT: <dict> 4878// CHECK-NEXT: <key>line</key><integer>243</integer> 4879// CHECK-NEXT: <key>col</key><integer>21</integer> 4880// CHECK-NEXT: <key>file</key><integer>0</integer> 4881// CHECK-NEXT: </dict> 4882// CHECK-NEXT: </array> 4883// CHECK-NEXT: </array> 4884// CHECK-NEXT: <key>depth</key><integer>0</integer> 4885// CHECK-NEXT: <key>extended_message</key> 4886// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 4887// CHECK-NEXT: <key>message</key> 4888// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 4889// CHECK-NEXT: </dict> 4890// CHECK-NEXT: <dict> 4891// CHECK-NEXT: <key>kind</key><string>event</string> 4892// CHECK-NEXT: <key>location</key> 4893// CHECK-NEXT: <dict> 4894// CHECK-NEXT: <key>line</key><integer>243</integer> 4895// CHECK-NEXT: <key>col</key><integer>9</integer> 4896// CHECK-NEXT: <key>file</key><integer>0</integer> 4897// CHECK-NEXT: </dict> 4898// CHECK-NEXT: <key>ranges</key> 4899// CHECK-NEXT: <array> 4900// CHECK-NEXT: <array> 4901// CHECK-NEXT: <dict> 4902// CHECK-NEXT: <key>line</key><integer>243</integer> 4903// CHECK-NEXT: <key>col</key><integer>9</integer> 4904// CHECK-NEXT: <key>file</key><integer>0</integer> 4905// CHECK-NEXT: </dict> 4906// CHECK-NEXT: <dict> 4907// CHECK-NEXT: <key>line</key><integer>243</integer> 4908// CHECK-NEXT: <key>col</key><integer>21</integer> 4909// CHECK-NEXT: <key>file</key><integer>0</integer> 4910// CHECK-NEXT: </dict> 4911// CHECK-NEXT: </array> 4912// CHECK-NEXT: </array> 4913// CHECK-NEXT: <key>depth</key><integer>0</integer> 4914// CHECK-NEXT: <key>extended_message</key> 4915// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4916// CHECK-NEXT: <key>message</key> 4917// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4918// CHECK-NEXT: </dict> 4919// CHECK-NEXT: </array> 4920// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 4921// CHECK-NEXT: <key>category</key><string>Type Error</string> 4922// CHECK-NEXT: <key>type</key><string>Dynamic and static type mismatch</string> 4923// CHECK-NEXT: <key>check_name</key><string>alpha.core.DynamicTypeChecker</string> 4924// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 4925// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>456c6227549a5e577088c9dce4cea452</string> 4926// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 4927// CHECK-NEXT: <key>issue_context</key><string>workWithProperties</string> 4928// CHECK-NEXT: <key>issue_hash_function_offset</key><string>6</string> 4929// CHECK-NEXT: <key>location</key> 4930// CHECK-NEXT: <dict> 4931// CHECK-NEXT: <key>line</key><integer>243</integer> 4932// CHECK-NEXT: <key>col</key><integer>9</integer> 4933// CHECK-NEXT: <key>file</key><integer>0</integer> 4934// CHECK-NEXT: </dict> 4935// CHECK-NEXT: </dict> 4936// CHECK-NEXT: <dict> 4937// CHECK-NEXT: <key>path</key> 4938// CHECK-NEXT: <array> 4939// CHECK-NEXT: <dict> 4940// CHECK-NEXT: <key>kind</key><string>control</string> 4941// CHECK-NEXT: <key>edges</key> 4942// CHECK-NEXT: <array> 4943// CHECK-NEXT: <dict> 4944// CHECK-NEXT: <key>start</key> 4945// CHECK-NEXT: <array> 4946// CHECK-NEXT: <dict> 4947// CHECK-NEXT: <key>line</key><integer>238</integer> 4948// CHECK-NEXT: <key>col</key><integer>3</integer> 4949// CHECK-NEXT: <key>file</key><integer>0</integer> 4950// CHECK-NEXT: </dict> 4951// CHECK-NEXT: <dict> 4952// CHECK-NEXT: <key>line</key><integer>238</integer> 4953// CHECK-NEXT: <key>col</key><integer>9</integer> 4954// CHECK-NEXT: <key>file</key><integer>0</integer> 4955// CHECK-NEXT: </dict> 4956// CHECK-NEXT: </array> 4957// CHECK-NEXT: <key>end</key> 4958// CHECK-NEXT: <array> 4959// CHECK-NEXT: <dict> 4960// CHECK-NEXT: <key>line</key><integer>245</integer> 4961// CHECK-NEXT: <key>col</key><integer>3</integer> 4962// CHECK-NEXT: <key>file</key><integer>0</integer> 4963// CHECK-NEXT: </dict> 4964// CHECK-NEXT: <dict> 4965// CHECK-NEXT: <key>line</key><integer>245</integer> 4966// CHECK-NEXT: <key>col</key><integer>5</integer> 4967// CHECK-NEXT: <key>file</key><integer>0</integer> 4968// CHECK-NEXT: </dict> 4969// CHECK-NEXT: </array> 4970// CHECK-NEXT: </dict> 4971// CHECK-NEXT: </array> 4972// CHECK-NEXT: </dict> 4973// CHECK-NEXT: <dict> 4974// CHECK-NEXT: <key>kind</key><string>control</string> 4975// CHECK-NEXT: <key>edges</key> 4976// CHECK-NEXT: <array> 4977// CHECK-NEXT: <dict> 4978// CHECK-NEXT: <key>start</key> 4979// CHECK-NEXT: <array> 4980// CHECK-NEXT: <dict> 4981// CHECK-NEXT: <key>line</key><integer>245</integer> 4982// CHECK-NEXT: <key>col</key><integer>3</integer> 4983// CHECK-NEXT: <key>file</key><integer>0</integer> 4984// CHECK-NEXT: </dict> 4985// CHECK-NEXT: <dict> 4986// CHECK-NEXT: <key>line</key><integer>245</integer> 4987// CHECK-NEXT: <key>col</key><integer>5</integer> 4988// CHECK-NEXT: <key>file</key><integer>0</integer> 4989// CHECK-NEXT: </dict> 4990// CHECK-NEXT: </array> 4991// CHECK-NEXT: <key>end</key> 4992// CHECK-NEXT: <array> 4993// CHECK-NEXT: <dict> 4994// CHECK-NEXT: <key>line</key><integer>245</integer> 4995// CHECK-NEXT: <key>col</key><integer>9</integer> 4996// CHECK-NEXT: <key>file</key><integer>0</integer> 4997// CHECK-NEXT: </dict> 4998// CHECK-NEXT: <dict> 4999// CHECK-NEXT: <key>line</key><integer>245</integer> 5000// CHECK-NEXT: <key>col</key><integer>9</integer> 5001// CHECK-NEXT: <key>file</key><integer>0</integer> 5002// CHECK-NEXT: </dict> 5003// CHECK-NEXT: </array> 5004// CHECK-NEXT: </dict> 5005// CHECK-NEXT: </array> 5006// CHECK-NEXT: </dict> 5007// CHECK-NEXT: <dict> 5008// CHECK-NEXT: <key>kind</key><string>event</string> 5009// CHECK-NEXT: <key>location</key> 5010// CHECK-NEXT: <dict> 5011// CHECK-NEXT: <key>line</key><integer>245</integer> 5012// CHECK-NEXT: <key>col</key><integer>9</integer> 5013// CHECK-NEXT: <key>file</key><integer>0</integer> 5014// CHECK-NEXT: </dict> 5015// CHECK-NEXT: <key>ranges</key> 5016// CHECK-NEXT: <array> 5017// CHECK-NEXT: <array> 5018// CHECK-NEXT: <dict> 5019// CHECK-NEXT: <key>line</key><integer>245</integer> 5020// CHECK-NEXT: <key>col</key><integer>9</integer> 5021// CHECK-NEXT: <key>file</key><integer>0</integer> 5022// CHECK-NEXT: </dict> 5023// CHECK-NEXT: <dict> 5024// CHECK-NEXT: <key>line</key><integer>245</integer> 5025// CHECK-NEXT: <key>col</key><integer>9</integer> 5026// CHECK-NEXT: <key>file</key><integer>0</integer> 5027// CHECK-NEXT: </dict> 5028// CHECK-NEXT: </array> 5029// CHECK-NEXT: </array> 5030// CHECK-NEXT: <key>depth</key><integer>0</integer> 5031// CHECK-NEXT: <key>extended_message</key> 5032// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 5033// CHECK-NEXT: <key>message</key> 5034// CHECK-NEXT: <string>Type 'NSNumber *' is inferred from this context</string> 5035// CHECK-NEXT: </dict> 5036// CHECK-NEXT: <dict> 5037// CHECK-NEXT: <key>kind</key><string>event</string> 5038// CHECK-NEXT: <key>location</key> 5039// CHECK-NEXT: <dict> 5040// CHECK-NEXT: <key>line</key><integer>245</integer> 5041// CHECK-NEXT: <key>col</key><integer>9</integer> 5042// CHECK-NEXT: <key>file</key><integer>0</integer> 5043// CHECK-NEXT: </dict> 5044// CHECK-NEXT: <key>ranges</key> 5045// CHECK-NEXT: <array> 5046// CHECK-NEXT: <array> 5047// CHECK-NEXT: <dict> 5048// CHECK-NEXT: <key>line</key><integer>245</integer> 5049// CHECK-NEXT: <key>col</key><integer>9</integer> 5050// CHECK-NEXT: <key>file</key><integer>0</integer> 5051// CHECK-NEXT: </dict> 5052// CHECK-NEXT: <dict> 5053// CHECK-NEXT: <key>line</key><integer>245</integer> 5054// CHECK-NEXT: <key>col</key><integer>12</integer> 5055// CHECK-NEXT: <key>file</key><integer>0</integer> 5056// CHECK-NEXT: </dict> 5057// CHECK-NEXT: </array> 5058// CHECK-NEXT: </array> 5059// CHECK-NEXT: <key>depth</key><integer>0</integer> 5060// CHECK-NEXT: <key>extended_message</key> 5061// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 5062// CHECK-NEXT: <key>message</key> 5063// CHECK-NEXT: <string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 5064// CHECK-NEXT: </dict> 5065// CHECK-NEXT: </array> 5066// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSNumber *' which is incompatible with static type 'NSString *'</string> 5067// CHECK-NEXT: <key>category</key><string>Type Error</string> 5068// CHECK-NEXT: <key>type</key><string>Dynamic and static type mismatch</string> 5069// CHECK-NEXT: <key>check_name</key><string>alpha.core.DynamicTypeChecker</string> 5070// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 5071// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>df7f090d2b72ac07bc2351177ed6552d</string> 5072// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 5073// CHECK-NEXT: <key>issue_context</key><string>workWithProperties</string> 5074// CHECK-NEXT: <key>issue_hash_function_offset</key><string>8</string> 5075// CHECK-NEXT: <key>location</key> 5076// CHECK-NEXT: <dict> 5077// CHECK-NEXT: <key>line</key><integer>245</integer> 5078// CHECK-NEXT: <key>col</key><integer>9</integer> 5079// CHECK-NEXT: <key>file</key><integer>0</integer> 5080// CHECK-NEXT: </dict> 5081// CHECK-NEXT: </dict> 5082// CHECK-NEXT: <dict> 5083// CHECK-NEXT: <key>path</key> 5084// CHECK-NEXT: <array> 5085// CHECK-NEXT: <dict> 5086// CHECK-NEXT: <key>kind</key><string>event</string> 5087// CHECK-NEXT: <key>location</key> 5088// CHECK-NEXT: <dict> 5089// CHECK-NEXT: <key>line</key><integer>251</integer> 5090// CHECK-NEXT: <key>col</key><integer>7</integer> 5091// CHECK-NEXT: <key>file</key><integer>0</integer> 5092// CHECK-NEXT: </dict> 5093// CHECK-NEXT: <key>ranges</key> 5094// CHECK-NEXT: <array> 5095// CHECK-NEXT: <array> 5096// CHECK-NEXT: <dict> 5097// CHECK-NEXT: <key>line</key><integer>251</integer> 5098// CHECK-NEXT: <key>col</key><integer>7</integer> 5099// CHECK-NEXT: <key>file</key><integer>0</integer> 5100// CHECK-NEXT: </dict> 5101// CHECK-NEXT: <dict> 5102// CHECK-NEXT: <key>line</key><integer>251</integer> 5103// CHECK-NEXT: <key>col</key><integer>7</integer> 5104// CHECK-NEXT: <key>file</key><integer>0</integer> 5105// CHECK-NEXT: </dict> 5106// CHECK-NEXT: </array> 5107// CHECK-NEXT: </array> 5108// CHECK-NEXT: <key>depth</key><integer>0</integer> 5109// CHECK-NEXT: <key>extended_message</key> 5110// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'NSArray<NSMutableString *> *')</string> 5111// CHECK-NEXT: <key>message</key> 5112// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'NSArray<NSMutableString *> *')</string> 5113// CHECK-NEXT: </dict> 5114// CHECK-NEXT: <dict> 5115// CHECK-NEXT: <key>kind</key><string>control</string> 5116// CHECK-NEXT: <key>edges</key> 5117// CHECK-NEXT: <array> 5118// CHECK-NEXT: <dict> 5119// CHECK-NEXT: <key>start</key> 5120// CHECK-NEXT: <array> 5121// CHECK-NEXT: <dict> 5122// CHECK-NEXT: <key>line</key><integer>251</integer> 5123// CHECK-NEXT: <key>col</key><integer>3</integer> 5124// CHECK-NEXT: <key>file</key><integer>0</integer> 5125// CHECK-NEXT: </dict> 5126// CHECK-NEXT: <dict> 5127// CHECK-NEXT: <key>line</key><integer>251</integer> 5128// CHECK-NEXT: <key>col</key><integer>3</integer> 5129// CHECK-NEXT: <key>file</key><integer>0</integer> 5130// CHECK-NEXT: </dict> 5131// CHECK-NEXT: </array> 5132// CHECK-NEXT: <key>end</key> 5133// CHECK-NEXT: <array> 5134// CHECK-NEXT: <dict> 5135// CHECK-NEXT: <key>line</key><integer>252</integer> 5136// CHECK-NEXT: <key>col</key><integer>3</integer> 5137// CHECK-NEXT: <key>file</key><integer>0</integer> 5138// CHECK-NEXT: </dict> 5139// CHECK-NEXT: <dict> 5140// CHECK-NEXT: <key>line</key><integer>252</integer> 5141// CHECK-NEXT: <key>col</key><integer>4</integer> 5142// CHECK-NEXT: <key>file</key><integer>0</integer> 5143// CHECK-NEXT: </dict> 5144// CHECK-NEXT: </array> 5145// CHECK-NEXT: </dict> 5146// CHECK-NEXT: </array> 5147// CHECK-NEXT: </dict> 5148// CHECK-NEXT: <dict> 5149// CHECK-NEXT: <key>kind</key><string>control</string> 5150// CHECK-NEXT: <key>edges</key> 5151// CHECK-NEXT: <array> 5152// CHECK-NEXT: <dict> 5153// CHECK-NEXT: <key>start</key> 5154// CHECK-NEXT: <array> 5155// CHECK-NEXT: <dict> 5156// CHECK-NEXT: <key>line</key><integer>252</integer> 5157// CHECK-NEXT: <key>col</key><integer>3</integer> 5158// CHECK-NEXT: <key>file</key><integer>0</integer> 5159// CHECK-NEXT: </dict> 5160// CHECK-NEXT: <dict> 5161// CHECK-NEXT: <key>line</key><integer>252</integer> 5162// CHECK-NEXT: <key>col</key><integer>4</integer> 5163// CHECK-NEXT: <key>file</key><integer>0</integer> 5164// CHECK-NEXT: </dict> 5165// CHECK-NEXT: </array> 5166// CHECK-NEXT: <key>end</key> 5167// CHECK-NEXT: <array> 5168// CHECK-NEXT: <dict> 5169// CHECK-NEXT: <key>line</key><integer>253</integer> 5170// CHECK-NEXT: <key>col</key><integer>5</integer> 5171// CHECK-NEXT: <key>file</key><integer>0</integer> 5172// CHECK-NEXT: </dict> 5173// CHECK-NEXT: <dict> 5174// CHECK-NEXT: <key>line</key><integer>253</integer> 5175// CHECK-NEXT: <key>col</key><integer>5</integer> 5176// CHECK-NEXT: <key>file</key><integer>0</integer> 5177// CHECK-NEXT: </dict> 5178// CHECK-NEXT: </array> 5179// CHECK-NEXT: </dict> 5180// CHECK-NEXT: </array> 5181// CHECK-NEXT: </dict> 5182// CHECK-NEXT: <dict> 5183// CHECK-NEXT: <key>kind</key><string>control</string> 5184// CHECK-NEXT: <key>edges</key> 5185// CHECK-NEXT: <array> 5186// CHECK-NEXT: <dict> 5187// CHECK-NEXT: <key>start</key> 5188// CHECK-NEXT: <array> 5189// CHECK-NEXT: <dict> 5190// CHECK-NEXT: <key>line</key><integer>253</integer> 5191// CHECK-NEXT: <key>col</key><integer>5</integer> 5192// CHECK-NEXT: <key>file</key><integer>0</integer> 5193// CHECK-NEXT: </dict> 5194// CHECK-NEXT: <dict> 5195// CHECK-NEXT: <key>line</key><integer>253</integer> 5196// CHECK-NEXT: <key>col</key><integer>5</integer> 5197// CHECK-NEXT: <key>file</key><integer>0</integer> 5198// CHECK-NEXT: </dict> 5199// CHECK-NEXT: </array> 5200// CHECK-NEXT: <key>end</key> 5201// CHECK-NEXT: <array> 5202// CHECK-NEXT: <dict> 5203// CHECK-NEXT: <key>line</key><integer>254</integer> 5204// CHECK-NEXT: <key>col</key><integer>5</integer> 5205// CHECK-NEXT: <key>file</key><integer>0</integer> 5206// CHECK-NEXT: </dict> 5207// CHECK-NEXT: <dict> 5208// CHECK-NEXT: <key>line</key><integer>254</integer> 5209// CHECK-NEXT: <key>col</key><integer>5</integer> 5210// CHECK-NEXT: <key>file</key><integer>0</integer> 5211// CHECK-NEXT: </dict> 5212// CHECK-NEXT: </array> 5213// CHECK-NEXT: </dict> 5214// CHECK-NEXT: </array> 5215// CHECK-NEXT: </dict> 5216// CHECK-NEXT: <dict> 5217// CHECK-NEXT: <key>kind</key><string>event</string> 5218// CHECK-NEXT: <key>location</key> 5219// CHECK-NEXT: <dict> 5220// CHECK-NEXT: <key>line</key><integer>254</integer> 5221// CHECK-NEXT: <key>col</key><integer>5</integer> 5222// CHECK-NEXT: <key>file</key><integer>0</integer> 5223// CHECK-NEXT: </dict> 5224// CHECK-NEXT: <key>ranges</key> 5225// CHECK-NEXT: <array> 5226// CHECK-NEXT: <array> 5227// CHECK-NEXT: <dict> 5228// CHECK-NEXT: <key>line</key><integer>254</integer> 5229// CHECK-NEXT: <key>col</key><integer>19</integer> 5230// CHECK-NEXT: <key>file</key><integer>0</integer> 5231// CHECK-NEXT: </dict> 5232// CHECK-NEXT: <dict> 5233// CHECK-NEXT: <key>line</key><integer>254</integer> 5234// CHECK-NEXT: <key>col</key><integer>41</integer> 5235// CHECK-NEXT: <key>file</key><integer>0</integer> 5236// CHECK-NEXT: </dict> 5237// CHECK-NEXT: </array> 5238// CHECK-NEXT: </array> 5239// CHECK-NEXT: <key>depth</key><integer>0</integer> 5240// CHECK-NEXT: <key>extended_message</key> 5241// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5242// CHECK-NEXT: <key>message</key> 5243// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5244// CHECK-NEXT: </dict> 5245// CHECK-NEXT: </array> 5246// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5247// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 5248// CHECK-NEXT: <key>type</key><string>Generics</string> 5249// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 5250// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 5251// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>a0fa75143d7a7ac234292642a6d93360</string> 5252// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 5253// CHECK-NEXT: <key>issue_context</key><string>findMethodDeclInTrackedType</string> 5254// CHECK-NEXT: <key>issue_hash_function_offset</key><string>4</string> 5255// CHECK-NEXT: <key>location</key> 5256// CHECK-NEXT: <dict> 5257// CHECK-NEXT: <key>line</key><integer>254</integer> 5258// CHECK-NEXT: <key>col</key><integer>5</integer> 5259// CHECK-NEXT: <key>file</key><integer>0</integer> 5260// CHECK-NEXT: </dict> 5261// CHECK-NEXT: </dict> 5262// CHECK-NEXT: <dict> 5263// CHECK-NEXT: <key>path</key> 5264// CHECK-NEXT: <array> 5265// CHECK-NEXT: <dict> 5266// CHECK-NEXT: <key>kind</key><string>event</string> 5267// CHECK-NEXT: <key>location</key> 5268// CHECK-NEXT: <dict> 5269// CHECK-NEXT: <key>line</key><integer>263</integer> 5270// CHECK-NEXT: <key>col</key><integer>7</integer> 5271// CHECK-NEXT: <key>file</key><integer>0</integer> 5272// CHECK-NEXT: </dict> 5273// CHECK-NEXT: <key>ranges</key> 5274// CHECK-NEXT: <array> 5275// CHECK-NEXT: <array> 5276// CHECK-NEXT: <dict> 5277// CHECK-NEXT: <key>line</key><integer>263</integer> 5278// CHECK-NEXT: <key>col</key><integer>7</integer> 5279// CHECK-NEXT: <key>file</key><integer>0</integer> 5280// CHECK-NEXT: </dict> 5281// CHECK-NEXT: <dict> 5282// CHECK-NEXT: <key>line</key><integer>263</integer> 5283// CHECK-NEXT: <key>col</key><integer>7</integer> 5284// CHECK-NEXT: <key>file</key><integer>0</integer> 5285// CHECK-NEXT: </dict> 5286// CHECK-NEXT: </array> 5287// CHECK-NEXT: </array> 5288// CHECK-NEXT: <key>depth</key><integer>0</integer> 5289// CHECK-NEXT: <key>extended_message</key> 5290// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to '__kindof NSArray<NSString *> *')</string> 5291// CHECK-NEXT: <key>message</key> 5292// CHECK-NEXT: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to '__kindof NSArray<NSString *> *')</string> 5293// CHECK-NEXT: </dict> 5294// CHECK-NEXT: <dict> 5295// CHECK-NEXT: <key>kind</key><string>control</string> 5296// CHECK-NEXT: <key>edges</key> 5297// CHECK-NEXT: <array> 5298// CHECK-NEXT: <dict> 5299// CHECK-NEXT: <key>start</key> 5300// CHECK-NEXT: <array> 5301// CHECK-NEXT: <dict> 5302// CHECK-NEXT: <key>line</key><integer>263</integer> 5303// CHECK-NEXT: <key>col</key><integer>3</integer> 5304// CHECK-NEXT: <key>file</key><integer>0</integer> 5305// CHECK-NEXT: </dict> 5306// CHECK-NEXT: <dict> 5307// CHECK-NEXT: <key>line</key><integer>263</integer> 5308// CHECK-NEXT: <key>col</key><integer>3</integer> 5309// CHECK-NEXT: <key>file</key><integer>0</integer> 5310// CHECK-NEXT: </dict> 5311// CHECK-NEXT: </array> 5312// CHECK-NEXT: <key>end</key> 5313// CHECK-NEXT: <array> 5314// CHECK-NEXT: <dict> 5315// CHECK-NEXT: <key>line</key><integer>264</integer> 5316// CHECK-NEXT: <key>col</key><integer>3</integer> 5317// CHECK-NEXT: <key>file</key><integer>0</integer> 5318// CHECK-NEXT: </dict> 5319// CHECK-NEXT: <dict> 5320// CHECK-NEXT: <key>line</key><integer>264</integer> 5321// CHECK-NEXT: <key>col</key><integer>4</integer> 5322// CHECK-NEXT: <key>file</key><integer>0</integer> 5323// CHECK-NEXT: </dict> 5324// CHECK-NEXT: </array> 5325// CHECK-NEXT: </dict> 5326// CHECK-NEXT: </array> 5327// CHECK-NEXT: </dict> 5328// CHECK-NEXT: <dict> 5329// CHECK-NEXT: <key>kind</key><string>control</string> 5330// CHECK-NEXT: <key>edges</key> 5331// CHECK-NEXT: <array> 5332// CHECK-NEXT: <dict> 5333// CHECK-NEXT: <key>start</key> 5334// CHECK-NEXT: <array> 5335// CHECK-NEXT: <dict> 5336// CHECK-NEXT: <key>line</key><integer>264</integer> 5337// CHECK-NEXT: <key>col</key><integer>3</integer> 5338// CHECK-NEXT: <key>file</key><integer>0</integer> 5339// CHECK-NEXT: </dict> 5340// CHECK-NEXT: <dict> 5341// CHECK-NEXT: <key>line</key><integer>264</integer> 5342// CHECK-NEXT: <key>col</key><integer>4</integer> 5343// CHECK-NEXT: <key>file</key><integer>0</integer> 5344// CHECK-NEXT: </dict> 5345// CHECK-NEXT: </array> 5346// CHECK-NEXT: <key>end</key> 5347// CHECK-NEXT: <array> 5348// CHECK-NEXT: <dict> 5349// CHECK-NEXT: <key>line</key><integer>265</integer> 5350// CHECK-NEXT: <key>col</key><integer>5</integer> 5351// CHECK-NEXT: <key>file</key><integer>0</integer> 5352// CHECK-NEXT: </dict> 5353// CHECK-NEXT: <dict> 5354// CHECK-NEXT: <key>line</key><integer>265</integer> 5355// CHECK-NEXT: <key>col</key><integer>5</integer> 5356// CHECK-NEXT: <key>file</key><integer>0</integer> 5357// CHECK-NEXT: </dict> 5358// CHECK-NEXT: </array> 5359// CHECK-NEXT: </dict> 5360// CHECK-NEXT: </array> 5361// CHECK-NEXT: </dict> 5362// CHECK-NEXT: <dict> 5363// CHECK-NEXT: <key>kind</key><string>event</string> 5364// CHECK-NEXT: <key>location</key> 5365// CHECK-NEXT: <dict> 5366// CHECK-NEXT: <key>line</key><integer>265</integer> 5367// CHECK-NEXT: <key>col</key><integer>5</integer> 5368// CHECK-NEXT: <key>file</key><integer>0</integer> 5369// CHECK-NEXT: </dict> 5370// CHECK-NEXT: <key>ranges</key> 5371// CHECK-NEXT: <array> 5372// CHECK-NEXT: <array> 5373// CHECK-NEXT: <dict> 5374// CHECK-NEXT: <key>line</key><integer>265</integer> 5375// CHECK-NEXT: <key>col</key><integer>19</integer> 5376// CHECK-NEXT: <key>file</key><integer>0</integer> 5377// CHECK-NEXT: </dict> 5378// CHECK-NEXT: <dict> 5379// CHECK-NEXT: <key>line</key><integer>265</integer> 5380// CHECK-NEXT: <key>col</key><integer>41</integer> 5381// CHECK-NEXT: <key>file</key><integer>0</integer> 5382// CHECK-NEXT: </dict> 5383// CHECK-NEXT: </array> 5384// CHECK-NEXT: </array> 5385// CHECK-NEXT: <key>depth</key><integer>0</integer> 5386// CHECK-NEXT: <key>extended_message</key> 5387// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5388// CHECK-NEXT: <key>message</key> 5389// CHECK-NEXT: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5390// CHECK-NEXT: </dict> 5391// CHECK-NEXT: </array> 5392// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string> 5393// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 5394// CHECK-NEXT: <key>type</key><string>Generics</string> 5395// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 5396// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 5397// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>d0b99c8523e81ec43ba4ea80aeedef1b</string> 5398// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 5399// CHECK-NEXT: <key>issue_context</key><string>findMethodDeclInTrackedType2</string> 5400// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 5401// CHECK-NEXT: <key>location</key> 5402// CHECK-NEXT: <dict> 5403// CHECK-NEXT: <key>line</key><integer>265</integer> 5404// CHECK-NEXT: <key>col</key><integer>5</integer> 5405// CHECK-NEXT: <key>file</key><integer>0</integer> 5406// CHECK-NEXT: </dict> 5407// CHECK-NEXT: </dict> 5408// CHECK-NEXT: <dict> 5409// CHECK-NEXT: <key>path</key> 5410// CHECK-NEXT: <array> 5411// CHECK-NEXT: <dict> 5412// CHECK-NEXT: <key>kind</key><string>event</string> 5413// CHECK-NEXT: <key>location</key> 5414// CHECK-NEXT: <dict> 5415// CHECK-NEXT: <key>line</key><integer>278</integer> 5416// CHECK-NEXT: <key>col</key><integer>30</integer> 5417// CHECK-NEXT: <key>file</key><integer>0</integer> 5418// CHECK-NEXT: </dict> 5419// CHECK-NEXT: <key>ranges</key> 5420// CHECK-NEXT: <array> 5421// CHECK-NEXT: <array> 5422// CHECK-NEXT: <dict> 5423// CHECK-NEXT: <key>line</key><integer>278</integer> 5424// CHECK-NEXT: <key>col</key><integer>30</integer> 5425// CHECK-NEXT: <key>file</key><integer>0</integer> 5426// CHECK-NEXT: </dict> 5427// CHECK-NEXT: <dict> 5428// CHECK-NEXT: <key>line</key><integer>278</integer> 5429// CHECK-NEXT: <key>col</key><integer>42</integer> 5430// CHECK-NEXT: <key>file</key><integer>0</integer> 5431// CHECK-NEXT: </dict> 5432// CHECK-NEXT: </array> 5433// CHECK-NEXT: </array> 5434// CHECK-NEXT: <key>depth</key><integer>0</integer> 5435// CHECK-NEXT: <key>extended_message</key> 5436// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 5437// CHECK-NEXT: <key>message</key> 5438// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string> 5439// CHECK-NEXT: </dict> 5440// CHECK-NEXT: <dict> 5441// CHECK-NEXT: <key>kind</key><string>control</string> 5442// CHECK-NEXT: <key>edges</key> 5443// CHECK-NEXT: <array> 5444// CHECK-NEXT: <dict> 5445// CHECK-NEXT: <key>start</key> 5446// CHECK-NEXT: <array> 5447// CHECK-NEXT: <dict> 5448// CHECK-NEXT: <key>line</key><integer>278</integer> 5449// CHECK-NEXT: <key>col</key><integer>3</integer> 5450// CHECK-NEXT: <key>file</key><integer>0</integer> 5451// CHECK-NEXT: </dict> 5452// CHECK-NEXT: <dict> 5453// CHECK-NEXT: <key>line</key><integer>278</integer> 5454// CHECK-NEXT: <key>col</key><integer>9</integer> 5455// CHECK-NEXT: <key>file</key><integer>0</integer> 5456// CHECK-NEXT: </dict> 5457// CHECK-NEXT: </array> 5458// CHECK-NEXT: <key>end</key> 5459// CHECK-NEXT: <array> 5460// CHECK-NEXT: <dict> 5461// CHECK-NEXT: <key>line</key><integer>280</integer> 5462// CHECK-NEXT: <key>col</key><integer>3</integer> 5463// CHECK-NEXT: <key>file</key><integer>0</integer> 5464// CHECK-NEXT: </dict> 5465// CHECK-NEXT: <dict> 5466// CHECK-NEXT: <key>line</key><integer>280</integer> 5467// CHECK-NEXT: <key>col</key><integer>3</integer> 5468// CHECK-NEXT: <key>file</key><integer>0</integer> 5469// CHECK-NEXT: </dict> 5470// CHECK-NEXT: </array> 5471// CHECK-NEXT: </dict> 5472// CHECK-NEXT: </array> 5473// CHECK-NEXT: </dict> 5474// CHECK-NEXT: <dict> 5475// CHECK-NEXT: <key>kind</key><string>event</string> 5476// CHECK-NEXT: <key>location</key> 5477// CHECK-NEXT: <dict> 5478// CHECK-NEXT: <key>line</key><integer>280</integer> 5479// CHECK-NEXT: <key>col</key><integer>3</integer> 5480// CHECK-NEXT: <key>file</key><integer>0</integer> 5481// CHECK-NEXT: </dict> 5482// CHECK-NEXT: <key>ranges</key> 5483// CHECK-NEXT: <array> 5484// CHECK-NEXT: <array> 5485// CHECK-NEXT: <dict> 5486// CHECK-NEXT: <key>line</key><integer>280</integer> 5487// CHECK-NEXT: <key>col</key><integer>19</integer> 5488// CHECK-NEXT: <key>file</key><integer>0</integer> 5489// CHECK-NEXT: </dict> 5490// CHECK-NEXT: <dict> 5491// CHECK-NEXT: <key>line</key><integer>280</integer> 5492// CHECK-NEXT: <key>col</key><integer>41</integer> 5493// CHECK-NEXT: <key>file</key><integer>0</integer> 5494// CHECK-NEXT: </dict> 5495// CHECK-NEXT: </array> 5496// CHECK-NEXT: </array> 5497// CHECK-NEXT: <key>depth</key><integer>0</integer> 5498// CHECK-NEXT: <key>extended_message</key> 5499// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 5500// CHECK-NEXT: <key>message</key> 5501// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 5502// CHECK-NEXT: </dict> 5503// CHECK-NEXT: </array> 5504// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 5505// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 5506// CHECK-NEXT: <key>type</key><string>Generics</string> 5507// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 5508// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 5509// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>ed543d4961e934fb4ac8db00e885fc7f</string> 5510// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 5511// CHECK-NEXT: <key>issue_context</key><string>testAnnotatedLiterals</string> 5512// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 5513// CHECK-NEXT: <key>location</key> 5514// CHECK-NEXT: <dict> 5515// CHECK-NEXT: <key>line</key><integer>280</integer> 5516// CHECK-NEXT: <key>col</key><integer>3</integer> 5517// CHECK-NEXT: <key>file</key><integer>0</integer> 5518// CHECK-NEXT: </dict> 5519// CHECK-NEXT: </dict> 5520// CHECK-NEXT: <dict> 5521// CHECK-NEXT: <key>path</key> 5522// CHECK-NEXT: <array> 5523// CHECK-NEXT: <dict> 5524// CHECK-NEXT: <key>kind</key><string>control</string> 5525// CHECK-NEXT: <key>edges</key> 5526// CHECK-NEXT: <array> 5527// CHECK-NEXT: <dict> 5528// CHECK-NEXT: <key>start</key> 5529// CHECK-NEXT: <array> 5530// CHECK-NEXT: <dict> 5531// CHECK-NEXT: <key>line</key><integer>289</integer> 5532// CHECK-NEXT: <key>col</key><integer>3</integer> 5533// CHECK-NEXT: <key>file</key><integer>0</integer> 5534// CHECK-NEXT: </dict> 5535// CHECK-NEXT: <dict> 5536// CHECK-NEXT: <key>line</key><integer>289</integer> 5537// CHECK-NEXT: <key>col</key><integer>7</integer> 5538// CHECK-NEXT: <key>file</key><integer>0</integer> 5539// CHECK-NEXT: </dict> 5540// CHECK-NEXT: </array> 5541// CHECK-NEXT: <key>end</key> 5542// CHECK-NEXT: <array> 5543// CHECK-NEXT: <dict> 5544// CHECK-NEXT: <key>line</key><integer>290</integer> 5545// CHECK-NEXT: <key>col</key><integer>3</integer> 5546// CHECK-NEXT: <key>file</key><integer>0</integer> 5547// CHECK-NEXT: </dict> 5548// CHECK-NEXT: <dict> 5549// CHECK-NEXT: <key>line</key><integer>290</integer> 5550// CHECK-NEXT: <key>col</key><integer>9</integer> 5551// CHECK-NEXT: <key>file</key><integer>0</integer> 5552// CHECK-NEXT: </dict> 5553// CHECK-NEXT: </array> 5554// CHECK-NEXT: </dict> 5555// CHECK-NEXT: </array> 5556// CHECK-NEXT: </dict> 5557// CHECK-NEXT: <dict> 5558// CHECK-NEXT: <key>kind</key><string>control</string> 5559// CHECK-NEXT: <key>edges</key> 5560// CHECK-NEXT: <array> 5561// CHECK-NEXT: <dict> 5562// CHECK-NEXT: <key>start</key> 5563// CHECK-NEXT: <array> 5564// CHECK-NEXT: <dict> 5565// CHECK-NEXT: <key>line</key><integer>290</integer> 5566// CHECK-NEXT: <key>col</key><integer>3</integer> 5567// CHECK-NEXT: <key>file</key><integer>0</integer> 5568// CHECK-NEXT: </dict> 5569// CHECK-NEXT: <dict> 5570// CHECK-NEXT: <key>line</key><integer>290</integer> 5571// CHECK-NEXT: <key>col</key><integer>9</integer> 5572// CHECK-NEXT: <key>file</key><integer>0</integer> 5573// CHECK-NEXT: </dict> 5574// CHECK-NEXT: </array> 5575// CHECK-NEXT: <key>end</key> 5576// CHECK-NEXT: <array> 5577// CHECK-NEXT: <dict> 5578// CHECK-NEXT: <key>line</key><integer>290</integer> 5579// CHECK-NEXT: <key>col</key><integer>28</integer> 5580// CHECK-NEXT: <key>file</key><integer>0</integer> 5581// CHECK-NEXT: </dict> 5582// CHECK-NEXT: <dict> 5583// CHECK-NEXT: <key>line</key><integer>290</integer> 5584// CHECK-NEXT: <key>col</key><integer>28</integer> 5585// CHECK-NEXT: <key>file</key><integer>0</integer> 5586// CHECK-NEXT: </dict> 5587// CHECK-NEXT: </array> 5588// CHECK-NEXT: </dict> 5589// CHECK-NEXT: </array> 5590// CHECK-NEXT: </dict> 5591// CHECK-NEXT: <dict> 5592// CHECK-NEXT: <key>kind</key><string>event</string> 5593// CHECK-NEXT: <key>location</key> 5594// CHECK-NEXT: <dict> 5595// CHECK-NEXT: <key>line</key><integer>290</integer> 5596// CHECK-NEXT: <key>col</key><integer>28</integer> 5597// CHECK-NEXT: <key>file</key><integer>0</integer> 5598// CHECK-NEXT: </dict> 5599// CHECK-NEXT: <key>ranges</key> 5600// CHECK-NEXT: <array> 5601// CHECK-NEXT: <array> 5602// CHECK-NEXT: <dict> 5603// CHECK-NEXT: <key>line</key><integer>290</integer> 5604// CHECK-NEXT: <key>col</key><integer>28</integer> 5605// CHECK-NEXT: <key>file</key><integer>0</integer> 5606// CHECK-NEXT: </dict> 5607// CHECK-NEXT: <dict> 5608// CHECK-NEXT: <key>line</key><integer>290</integer> 5609// CHECK-NEXT: <key>col</key><integer>39</integer> 5610// CHECK-NEXT: <key>file</key><integer>0</integer> 5611// CHECK-NEXT: </dict> 5612// CHECK-NEXT: </array> 5613// CHECK-NEXT: </array> 5614// CHECK-NEXT: <key>depth</key><integer>0</integer> 5615// CHECK-NEXT: <key>extended_message</key> 5616// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 5617// CHECK-NEXT: <key>message</key> 5618// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 5619// CHECK-NEXT: </dict> 5620// CHECK-NEXT: <dict> 5621// CHECK-NEXT: <key>kind</key><string>event</string> 5622// CHECK-NEXT: <key>location</key> 5623// CHECK-NEXT: <dict> 5624// CHECK-NEXT: <key>line</key><integer>290</integer> 5625// CHECK-NEXT: <key>col</key><integer>28</integer> 5626// CHECK-NEXT: <key>file</key><integer>0</integer> 5627// CHECK-NEXT: </dict> 5628// CHECK-NEXT: <key>ranges</key> 5629// CHECK-NEXT: <array> 5630// CHECK-NEXT: <array> 5631// CHECK-NEXT: <dict> 5632// CHECK-NEXT: <key>line</key><integer>290</integer> 5633// CHECK-NEXT: <key>col</key><integer>28</integer> 5634// CHECK-NEXT: <key>file</key><integer>0</integer> 5635// CHECK-NEXT: </dict> 5636// CHECK-NEXT: <dict> 5637// CHECK-NEXT: <key>line</key><integer>290</integer> 5638// CHECK-NEXT: <key>col</key><integer>39</integer> 5639// CHECK-NEXT: <key>file</key><integer>0</integer> 5640// CHECK-NEXT: </dict> 5641// CHECK-NEXT: </array> 5642// CHECK-NEXT: </array> 5643// CHECK-NEXT: <key>depth</key><integer>0</integer> 5644// CHECK-NEXT: <key>extended_message</key> 5645// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5646// CHECK-NEXT: <key>message</key> 5647// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5648// CHECK-NEXT: </dict> 5649// CHECK-NEXT: </array> 5650// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5651// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 5652// CHECK-NEXT: <key>type</key><string>Generics</string> 5653// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 5654// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 5655// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>46aa94b866747bcbe1ded581da7a2633</string> 5656// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 5657// CHECK-NEXT: <key>issue_context</key><string>trackedClassVariables</string> 5658// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 5659// CHECK-NEXT: <key>location</key> 5660// CHECK-NEXT: <dict> 5661// CHECK-NEXT: <key>line</key><integer>290</integer> 5662// CHECK-NEXT: <key>col</key><integer>28</integer> 5663// CHECK-NEXT: <key>file</key><integer>0</integer> 5664// CHECK-NEXT: </dict> 5665// CHECK-NEXT: </dict> 5666// CHECK-NEXT: <dict> 5667// CHECK-NEXT: <key>path</key> 5668// CHECK-NEXT: <array> 5669// CHECK-NEXT: <dict> 5670// CHECK-NEXT: <key>kind</key><string>control</string> 5671// CHECK-NEXT: <key>edges</key> 5672// CHECK-NEXT: <array> 5673// CHECK-NEXT: <dict> 5674// CHECK-NEXT: <key>start</key> 5675// CHECK-NEXT: <array> 5676// CHECK-NEXT: <dict> 5677// CHECK-NEXT: <key>line</key><integer>289</integer> 5678// CHECK-NEXT: <key>col</key><integer>3</integer> 5679// CHECK-NEXT: <key>file</key><integer>0</integer> 5680// CHECK-NEXT: </dict> 5681// CHECK-NEXT: <dict> 5682// CHECK-NEXT: <key>line</key><integer>289</integer> 5683// CHECK-NEXT: <key>col</key><integer>7</integer> 5684// CHECK-NEXT: <key>file</key><integer>0</integer> 5685// CHECK-NEXT: </dict> 5686// CHECK-NEXT: </array> 5687// CHECK-NEXT: <key>end</key> 5688// CHECK-NEXT: <array> 5689// CHECK-NEXT: <dict> 5690// CHECK-NEXT: <key>line</key><integer>291</integer> 5691// CHECK-NEXT: <key>col</key><integer>3</integer> 5692// CHECK-NEXT: <key>file</key><integer>0</integer> 5693// CHECK-NEXT: </dict> 5694// CHECK-NEXT: <dict> 5695// CHECK-NEXT: <key>line</key><integer>291</integer> 5696// CHECK-NEXT: <key>col</key><integer>3</integer> 5697// CHECK-NEXT: <key>file</key><integer>0</integer> 5698// CHECK-NEXT: </dict> 5699// CHECK-NEXT: </array> 5700// CHECK-NEXT: </dict> 5701// CHECK-NEXT: </array> 5702// CHECK-NEXT: </dict> 5703// CHECK-NEXT: <dict> 5704// CHECK-NEXT: <key>kind</key><string>control</string> 5705// CHECK-NEXT: <key>edges</key> 5706// CHECK-NEXT: <array> 5707// CHECK-NEXT: <dict> 5708// CHECK-NEXT: <key>start</key> 5709// CHECK-NEXT: <array> 5710// CHECK-NEXT: <dict> 5711// CHECK-NEXT: <key>line</key><integer>291</integer> 5712// CHECK-NEXT: <key>col</key><integer>3</integer> 5713// CHECK-NEXT: <key>file</key><integer>0</integer> 5714// CHECK-NEXT: </dict> 5715// CHECK-NEXT: <dict> 5716// CHECK-NEXT: <key>line</key><integer>291</integer> 5717// CHECK-NEXT: <key>col</key><integer>3</integer> 5718// CHECK-NEXT: <key>file</key><integer>0</integer> 5719// CHECK-NEXT: </dict> 5720// CHECK-NEXT: </array> 5721// CHECK-NEXT: <key>end</key> 5722// CHECK-NEXT: <array> 5723// CHECK-NEXT: <dict> 5724// CHECK-NEXT: <key>line</key><integer>291</integer> 5725// CHECK-NEXT: <key>col</key><integer>7</integer> 5726// CHECK-NEXT: <key>file</key><integer>0</integer> 5727// CHECK-NEXT: </dict> 5728// CHECK-NEXT: <dict> 5729// CHECK-NEXT: <key>line</key><integer>291</integer> 5730// CHECK-NEXT: <key>col</key><integer>7</integer> 5731// CHECK-NEXT: <key>file</key><integer>0</integer> 5732// CHECK-NEXT: </dict> 5733// CHECK-NEXT: </array> 5734// CHECK-NEXT: </dict> 5735// CHECK-NEXT: </array> 5736// CHECK-NEXT: </dict> 5737// CHECK-NEXT: <dict> 5738// CHECK-NEXT: <key>kind</key><string>event</string> 5739// CHECK-NEXT: <key>location</key> 5740// CHECK-NEXT: <dict> 5741// CHECK-NEXT: <key>line</key><integer>291</integer> 5742// CHECK-NEXT: <key>col</key><integer>7</integer> 5743// CHECK-NEXT: <key>file</key><integer>0</integer> 5744// CHECK-NEXT: </dict> 5745// CHECK-NEXT: <key>ranges</key> 5746// CHECK-NEXT: <array> 5747// CHECK-NEXT: <array> 5748// CHECK-NEXT: <dict> 5749// CHECK-NEXT: <key>line</key><integer>291</integer> 5750// CHECK-NEXT: <key>col</key><integer>7</integer> 5751// CHECK-NEXT: <key>file</key><integer>0</integer> 5752// CHECK-NEXT: </dict> 5753// CHECK-NEXT: <dict> 5754// CHECK-NEXT: <key>line</key><integer>291</integer> 5755// CHECK-NEXT: <key>col</key><integer>19</integer> 5756// CHECK-NEXT: <key>file</key><integer>0</integer> 5757// CHECK-NEXT: </dict> 5758// CHECK-NEXT: </array> 5759// CHECK-NEXT: </array> 5760// CHECK-NEXT: <key>depth</key><integer>0</integer> 5761// CHECK-NEXT: <key>extended_message</key> 5762// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 5763// CHECK-NEXT: <key>message</key> 5764// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 5765// CHECK-NEXT: </dict> 5766// CHECK-NEXT: <dict> 5767// CHECK-NEXT: <key>kind</key><string>event</string> 5768// CHECK-NEXT: <key>location</key> 5769// CHECK-NEXT: <dict> 5770// CHECK-NEXT: <key>line</key><integer>291</integer> 5771// CHECK-NEXT: <key>col</key><integer>7</integer> 5772// CHECK-NEXT: <key>file</key><integer>0</integer> 5773// CHECK-NEXT: </dict> 5774// CHECK-NEXT: <key>ranges</key> 5775// CHECK-NEXT: <array> 5776// CHECK-NEXT: <array> 5777// CHECK-NEXT: <dict> 5778// CHECK-NEXT: <key>line</key><integer>291</integer> 5779// CHECK-NEXT: <key>col</key><integer>7</integer> 5780// CHECK-NEXT: <key>file</key><integer>0</integer> 5781// CHECK-NEXT: </dict> 5782// CHECK-NEXT: <dict> 5783// CHECK-NEXT: <key>line</key><integer>291</integer> 5784// CHECK-NEXT: <key>col</key><integer>19</integer> 5785// CHECK-NEXT: <key>file</key><integer>0</integer> 5786// CHECK-NEXT: </dict> 5787// CHECK-NEXT: </array> 5788// CHECK-NEXT: </array> 5789// CHECK-NEXT: <key>depth</key><integer>0</integer> 5790// CHECK-NEXT: <key>extended_message</key> 5791// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5792// CHECK-NEXT: <key>message</key> 5793// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5794// CHECK-NEXT: </dict> 5795// CHECK-NEXT: </array> 5796// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5797// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 5798// CHECK-NEXT: <key>type</key><string>Generics</string> 5799// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 5800// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 5801// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>a759006d1ce88e15fcd6de6a29e2579c</string> 5802// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 5803// CHECK-NEXT: <key>issue_context</key><string>trackedClassVariables</string> 5804// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 5805// CHECK-NEXT: <key>location</key> 5806// CHECK-NEXT: <dict> 5807// CHECK-NEXT: <key>line</key><integer>291</integer> 5808// CHECK-NEXT: <key>col</key><integer>7</integer> 5809// CHECK-NEXT: <key>file</key><integer>0</integer> 5810// CHECK-NEXT: </dict> 5811// CHECK-NEXT: </dict> 5812// CHECK-NEXT: <dict> 5813// CHECK-NEXT: <key>path</key> 5814// CHECK-NEXT: <array> 5815// CHECK-NEXT: <dict> 5816// CHECK-NEXT: <key>kind</key><string>event</string> 5817// CHECK-NEXT: <key>location</key> 5818// CHECK-NEXT: <dict> 5819// CHECK-NEXT: <key>line</key><integer>295</integer> 5820// CHECK-NEXT: <key>col</key><integer>13</integer> 5821// CHECK-NEXT: <key>file</key><integer>0</integer> 5822// CHECK-NEXT: </dict> 5823// CHECK-NEXT: <key>ranges</key> 5824// CHECK-NEXT: <array> 5825// CHECK-NEXT: <array> 5826// CHECK-NEXT: <dict> 5827// CHECK-NEXT: <key>line</key><integer>295</integer> 5828// CHECK-NEXT: <key>col</key><integer>13</integer> 5829// CHECK-NEXT: <key>file</key><integer>0</integer> 5830// CHECK-NEXT: </dict> 5831// CHECK-NEXT: <dict> 5832// CHECK-NEXT: <key>line</key><integer>295</integer> 5833// CHECK-NEXT: <key>col</key><integer>15</integer> 5834// CHECK-NEXT: <key>file</key><integer>0</integer> 5835// CHECK-NEXT: </dict> 5836// CHECK-NEXT: </array> 5837// CHECK-NEXT: </array> 5838// CHECK-NEXT: <key>depth</key><integer>0</integer> 5839// CHECK-NEXT: <key>extended_message</key> 5840// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 5841// CHECK-NEXT: <key>message</key> 5842// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string> 5843// CHECK-NEXT: </dict> 5844// CHECK-NEXT: <dict> 5845// CHECK-NEXT: <key>kind</key><string>control</string> 5846// CHECK-NEXT: <key>edges</key> 5847// CHECK-NEXT: <array> 5848// CHECK-NEXT: <dict> 5849// CHECK-NEXT: <key>start</key> 5850// CHECK-NEXT: <array> 5851// CHECK-NEXT: <dict> 5852// CHECK-NEXT: <key>line</key><integer>295</integer> 5853// CHECK-NEXT: <key>col</key><integer>3</integer> 5854// CHECK-NEXT: <key>file</key><integer>0</integer> 5855// CHECK-NEXT: </dict> 5856// CHECK-NEXT: <dict> 5857// CHECK-NEXT: <key>line</key><integer>295</integer> 5858// CHECK-NEXT: <key>col</key><integer>4</integer> 5859// CHECK-NEXT: <key>file</key><integer>0</integer> 5860// CHECK-NEXT: </dict> 5861// CHECK-NEXT: </array> 5862// CHECK-NEXT: <key>end</key> 5863// CHECK-NEXT: <array> 5864// CHECK-NEXT: <dict> 5865// CHECK-NEXT: <key>line</key><integer>296</integer> 5866// CHECK-NEXT: <key>col</key><integer>3</integer> 5867// CHECK-NEXT: <key>file</key><integer>0</integer> 5868// CHECK-NEXT: </dict> 5869// CHECK-NEXT: <dict> 5870// CHECK-NEXT: <key>line</key><integer>296</integer> 5871// CHECK-NEXT: <key>col</key><integer>3</integer> 5872// CHECK-NEXT: <key>file</key><integer>0</integer> 5873// CHECK-NEXT: </dict> 5874// CHECK-NEXT: </array> 5875// CHECK-NEXT: </dict> 5876// CHECK-NEXT: </array> 5877// CHECK-NEXT: </dict> 5878// CHECK-NEXT: <dict> 5879// CHECK-NEXT: <key>kind</key><string>control</string> 5880// CHECK-NEXT: <key>edges</key> 5881// CHECK-NEXT: <array> 5882// CHECK-NEXT: <dict> 5883// CHECK-NEXT: <key>start</key> 5884// CHECK-NEXT: <array> 5885// CHECK-NEXT: <dict> 5886// CHECK-NEXT: <key>line</key><integer>296</integer> 5887// CHECK-NEXT: <key>col</key><integer>3</integer> 5888// CHECK-NEXT: <key>file</key><integer>0</integer> 5889// CHECK-NEXT: </dict> 5890// CHECK-NEXT: <dict> 5891// CHECK-NEXT: <key>line</key><integer>296</integer> 5892// CHECK-NEXT: <key>col</key><integer>3</integer> 5893// CHECK-NEXT: <key>file</key><integer>0</integer> 5894// CHECK-NEXT: </dict> 5895// CHECK-NEXT: </array> 5896// CHECK-NEXT: <key>end</key> 5897// CHECK-NEXT: <array> 5898// CHECK-NEXT: <dict> 5899// CHECK-NEXT: <key>line</key><integer>296</integer> 5900// CHECK-NEXT: <key>col</key><integer>18</integer> 5901// CHECK-NEXT: <key>file</key><integer>0</integer> 5902// CHECK-NEXT: </dict> 5903// CHECK-NEXT: <dict> 5904// CHECK-NEXT: <key>line</key><integer>296</integer> 5905// CHECK-NEXT: <key>col</key><integer>21</integer> 5906// CHECK-NEXT: <key>file</key><integer>0</integer> 5907// CHECK-NEXT: </dict> 5908// CHECK-NEXT: </array> 5909// CHECK-NEXT: </dict> 5910// CHECK-NEXT: </array> 5911// CHECK-NEXT: </dict> 5912// CHECK-NEXT: <dict> 5913// CHECK-NEXT: <key>kind</key><string>event</string> 5914// CHECK-NEXT: <key>location</key> 5915// CHECK-NEXT: <dict> 5916// CHECK-NEXT: <key>line</key><integer>296</integer> 5917// CHECK-NEXT: <key>col</key><integer>18</integer> 5918// CHECK-NEXT: <key>file</key><integer>0</integer> 5919// CHECK-NEXT: </dict> 5920// CHECK-NEXT: <key>ranges</key> 5921// CHECK-NEXT: <array> 5922// CHECK-NEXT: <array> 5923// CHECK-NEXT: <dict> 5924// CHECK-NEXT: <key>line</key><integer>296</integer> 5925// CHECK-NEXT: <key>col</key><integer>18</integer> 5926// CHECK-NEXT: <key>file</key><integer>0</integer> 5927// CHECK-NEXT: </dict> 5928// CHECK-NEXT: <dict> 5929// CHECK-NEXT: <key>line</key><integer>296</integer> 5930// CHECK-NEXT: <key>col</key><integer>21</integer> 5931// CHECK-NEXT: <key>file</key><integer>0</integer> 5932// CHECK-NEXT: </dict> 5933// CHECK-NEXT: </array> 5934// CHECK-NEXT: </array> 5935// CHECK-NEXT: <key>depth</key><integer>0</integer> 5936// CHECK-NEXT: <key>extended_message</key> 5937// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5938// CHECK-NEXT: <key>message</key> 5939// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5940// CHECK-NEXT: </dict> 5941// CHECK-NEXT: </array> 5942// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 5943// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 5944// CHECK-NEXT: <key>type</key><string>Generics</string> 5945// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 5946// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 5947// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>4bb1729ff86647750b458e6f8d883f08</string> 5948// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 5949// CHECK-NEXT: <key>issue_context</key><string>nestedCollections</string> 5950// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 5951// CHECK-NEXT: <key>location</key> 5952// CHECK-NEXT: <dict> 5953// CHECK-NEXT: <key>line</key><integer>296</integer> 5954// CHECK-NEXT: <key>col</key><integer>18</integer> 5955// CHECK-NEXT: <key>file</key><integer>0</integer> 5956// CHECK-NEXT: </dict> 5957// CHECK-NEXT: </dict> 5958// CHECK-NEXT: <dict> 5959// CHECK-NEXT: <key>path</key> 5960// CHECK-NEXT: <array> 5961// CHECK-NEXT: <dict> 5962// CHECK-NEXT: <key>kind</key><string>control</string> 5963// CHECK-NEXT: <key>edges</key> 5964// CHECK-NEXT: <array> 5965// CHECK-NEXT: <dict> 5966// CHECK-NEXT: <key>start</key> 5967// CHECK-NEXT: <array> 5968// CHECK-NEXT: <dict> 5969// CHECK-NEXT: <key>line</key><integer>308</integer> 5970// CHECK-NEXT: <key>col</key><integer>3</integer> 5971// CHECK-NEXT: <key>file</key><integer>0</integer> 5972// CHECK-NEXT: </dict> 5973// CHECK-NEXT: <dict> 5974// CHECK-NEXT: <key>line</key><integer>308</integer> 5975// CHECK-NEXT: <key>col</key><integer>9</integer> 5976// CHECK-NEXT: <key>file</key><integer>0</integer> 5977// CHECK-NEXT: </dict> 5978// CHECK-NEXT: </array> 5979// CHECK-NEXT: <key>end</key> 5980// CHECK-NEXT: <array> 5981// CHECK-NEXT: <dict> 5982// CHECK-NEXT: <key>line</key><integer>309</integer> 5983// CHECK-NEXT: <key>col</key><integer>3</integer> 5984// CHECK-NEXT: <key>file</key><integer>0</integer> 5985// CHECK-NEXT: </dict> 5986// CHECK-NEXT: <dict> 5987// CHECK-NEXT: <key>line</key><integer>309</integer> 5988// CHECK-NEXT: <key>col</key><integer>4</integer> 5989// CHECK-NEXT: <key>file</key><integer>0</integer> 5990// CHECK-NEXT: </dict> 5991// CHECK-NEXT: </array> 5992// CHECK-NEXT: </dict> 5993// CHECK-NEXT: </array> 5994// CHECK-NEXT: </dict> 5995// CHECK-NEXT: <dict> 5996// CHECK-NEXT: <key>kind</key><string>event</string> 5997// CHECK-NEXT: <key>location</key> 5998// CHECK-NEXT: <dict> 5999// CHECK-NEXT: <key>line</key><integer>309</integer> 6000// CHECK-NEXT: <key>col</key><integer>10</integer> 6001// CHECK-NEXT: <key>file</key><integer>0</integer> 6002// CHECK-NEXT: </dict> 6003// CHECK-NEXT: <key>ranges</key> 6004// CHECK-NEXT: <array> 6005// CHECK-NEXT: <array> 6006// CHECK-NEXT: <dict> 6007// CHECK-NEXT: <key>line</key><integer>309</integer> 6008// CHECK-NEXT: <key>col</key><integer>10</integer> 6009// CHECK-NEXT: <key>file</key><integer>0</integer> 6010// CHECK-NEXT: </dict> 6011// CHECK-NEXT: <dict> 6012// CHECK-NEXT: <key>line</key><integer>309</integer> 6013// CHECK-NEXT: <key>col</key><integer>29</integer> 6014// CHECK-NEXT: <key>file</key><integer>0</integer> 6015// CHECK-NEXT: </dict> 6016// CHECK-NEXT: </array> 6017// CHECK-NEXT: </array> 6018// CHECK-NEXT: <key>depth</key><integer>0</integer> 6019// CHECK-NEXT: <key>extended_message</key> 6020// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 6021// CHECK-NEXT: <key>message</key> 6022// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 6023// CHECK-NEXT: </dict> 6024// CHECK-NEXT: <dict> 6025// CHECK-NEXT: <key>kind</key><string>control</string> 6026// CHECK-NEXT: <key>edges</key> 6027// CHECK-NEXT: <array> 6028// CHECK-NEXT: <dict> 6029// CHECK-NEXT: <key>start</key> 6030// CHECK-NEXT: <array> 6031// CHECK-NEXT: <dict> 6032// CHECK-NEXT: <key>line</key><integer>309</integer> 6033// CHECK-NEXT: <key>col</key><integer>3</integer> 6034// CHECK-NEXT: <key>file</key><integer>0</integer> 6035// CHECK-NEXT: </dict> 6036// CHECK-NEXT: <dict> 6037// CHECK-NEXT: <key>line</key><integer>309</integer> 6038// CHECK-NEXT: <key>col</key><integer>4</integer> 6039// CHECK-NEXT: <key>file</key><integer>0</integer> 6040// CHECK-NEXT: </dict> 6041// CHECK-NEXT: </array> 6042// CHECK-NEXT: <key>end</key> 6043// CHECK-NEXT: <array> 6044// CHECK-NEXT: <dict> 6045// CHECK-NEXT: <key>line</key><integer>310</integer> 6046// CHECK-NEXT: <key>col</key><integer>3</integer> 6047// CHECK-NEXT: <key>file</key><integer>0</integer> 6048// CHECK-NEXT: </dict> 6049// CHECK-NEXT: <dict> 6050// CHECK-NEXT: <key>line</key><integer>310</integer> 6051// CHECK-NEXT: <key>col</key><integer>9</integer> 6052// CHECK-NEXT: <key>file</key><integer>0</integer> 6053// CHECK-NEXT: </dict> 6054// CHECK-NEXT: </array> 6055// CHECK-NEXT: </dict> 6056// CHECK-NEXT: </array> 6057// CHECK-NEXT: </dict> 6058// CHECK-NEXT: <dict> 6059// CHECK-NEXT: <key>kind</key><string>control</string> 6060// CHECK-NEXT: <key>edges</key> 6061// CHECK-NEXT: <array> 6062// CHECK-NEXT: <dict> 6063// CHECK-NEXT: <key>start</key> 6064// CHECK-NEXT: <array> 6065// CHECK-NEXT: <dict> 6066// CHECK-NEXT: <key>line</key><integer>310</integer> 6067// CHECK-NEXT: <key>col</key><integer>3</integer> 6068// CHECK-NEXT: <key>file</key><integer>0</integer> 6069// CHECK-NEXT: </dict> 6070// CHECK-NEXT: <dict> 6071// CHECK-NEXT: <key>line</key><integer>310</integer> 6072// CHECK-NEXT: <key>col</key><integer>9</integer> 6073// CHECK-NEXT: <key>file</key><integer>0</integer> 6074// CHECK-NEXT: </dict> 6075// CHECK-NEXT: </array> 6076// CHECK-NEXT: <key>end</key> 6077// CHECK-NEXT: <array> 6078// CHECK-NEXT: <dict> 6079// CHECK-NEXT: <key>line</key><integer>310</integer> 6080// CHECK-NEXT: <key>col</key><integer>30</integer> 6081// CHECK-NEXT: <key>file</key><integer>0</integer> 6082// CHECK-NEXT: </dict> 6083// CHECK-NEXT: <dict> 6084// CHECK-NEXT: <key>line</key><integer>310</integer> 6085// CHECK-NEXT: <key>col</key><integer>30</integer> 6086// CHECK-NEXT: <key>file</key><integer>0</integer> 6087// CHECK-NEXT: </dict> 6088// CHECK-NEXT: </array> 6089// CHECK-NEXT: </dict> 6090// CHECK-NEXT: </array> 6091// CHECK-NEXT: </dict> 6092// CHECK-NEXT: <dict> 6093// CHECK-NEXT: <key>kind</key><string>event</string> 6094// CHECK-NEXT: <key>location</key> 6095// CHECK-NEXT: <dict> 6096// CHECK-NEXT: <key>line</key><integer>310</integer> 6097// CHECK-NEXT: <key>col</key><integer>30</integer> 6098// CHECK-NEXT: <key>file</key><integer>0</integer> 6099// CHECK-NEXT: </dict> 6100// CHECK-NEXT: <key>ranges</key> 6101// CHECK-NEXT: <array> 6102// CHECK-NEXT: <array> 6103// CHECK-NEXT: <dict> 6104// CHECK-NEXT: <key>line</key><integer>310</integer> 6105// CHECK-NEXT: <key>col</key><integer>30</integer> 6106// CHECK-NEXT: <key>file</key><integer>0</integer> 6107// CHECK-NEXT: </dict> 6108// CHECK-NEXT: <dict> 6109// CHECK-NEXT: <key>line</key><integer>310</integer> 6110// CHECK-NEXT: <key>col</key><integer>30</integer> 6111// CHECK-NEXT: <key>file</key><integer>0</integer> 6112// CHECK-NEXT: </dict> 6113// CHECK-NEXT: </array> 6114// CHECK-NEXT: </array> 6115// CHECK-NEXT: <key>depth</key><integer>0</integer> 6116// CHECK-NEXT: <key>extended_message</key> 6117// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6118// CHECK-NEXT: <key>message</key> 6119// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6120// CHECK-NEXT: </dict> 6121// CHECK-NEXT: </array> 6122// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6123// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 6124// CHECK-NEXT: <key>type</key><string>Generics</string> 6125// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 6126// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 6127// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>38831553eaecfb6c02b51e71d21ec6ea</string> 6128// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 6129// CHECK-NEXT: <key>issue_context</key><string>returnCollectionToIdVariable</string> 6130// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 6131// CHECK-NEXT: <key>location</key> 6132// CHECK-NEXT: <dict> 6133// CHECK-NEXT: <key>line</key><integer>310</integer> 6134// CHECK-NEXT: <key>col</key><integer>30</integer> 6135// CHECK-NEXT: <key>file</key><integer>0</integer> 6136// CHECK-NEXT: </dict> 6137// CHECK-NEXT: </dict> 6138// CHECK-NEXT: <dict> 6139// CHECK-NEXT: <key>path</key> 6140// CHECK-NEXT: <array> 6141// CHECK-NEXT: <dict> 6142// CHECK-NEXT: <key>kind</key><string>control</string> 6143// CHECK-NEXT: <key>edges</key> 6144// CHECK-NEXT: <array> 6145// CHECK-NEXT: <dict> 6146// CHECK-NEXT: <key>start</key> 6147// CHECK-NEXT: <array> 6148// CHECK-NEXT: <dict> 6149// CHECK-NEXT: <key>line</key><integer>314</integer> 6150// CHECK-NEXT: <key>col</key><integer>3</integer> 6151// CHECK-NEXT: <key>file</key><integer>0</integer> 6152// CHECK-NEXT: </dict> 6153// CHECK-NEXT: <dict> 6154// CHECK-NEXT: <key>line</key><integer>314</integer> 6155// CHECK-NEXT: <key>col</key><integer>9</integer> 6156// CHECK-NEXT: <key>file</key><integer>0</integer> 6157// CHECK-NEXT: </dict> 6158// CHECK-NEXT: </array> 6159// CHECK-NEXT: <key>end</key> 6160// CHECK-NEXT: <array> 6161// CHECK-NEXT: <dict> 6162// CHECK-NEXT: <key>line</key><integer>315</integer> 6163// CHECK-NEXT: <key>col</key><integer>3</integer> 6164// CHECK-NEXT: <key>file</key><integer>0</integer> 6165// CHECK-NEXT: </dict> 6166// CHECK-NEXT: <dict> 6167// CHECK-NEXT: <key>line</key><integer>315</integer> 6168// CHECK-NEXT: <key>col</key><integer>9</integer> 6169// CHECK-NEXT: <key>file</key><integer>0</integer> 6170// CHECK-NEXT: </dict> 6171// CHECK-NEXT: </array> 6172// CHECK-NEXT: </dict> 6173// CHECK-NEXT: </array> 6174// CHECK-NEXT: </dict> 6175// CHECK-NEXT: <dict> 6176// CHECK-NEXT: <key>kind</key><string>event</string> 6177// CHECK-NEXT: <key>location</key> 6178// CHECK-NEXT: <dict> 6179// CHECK-NEXT: <key>line</key><integer>315</integer> 6180// CHECK-NEXT: <key>col</key><integer>16</integer> 6181// CHECK-NEXT: <key>file</key><integer>0</integer> 6182// CHECK-NEXT: </dict> 6183// CHECK-NEXT: <key>ranges</key> 6184// CHECK-NEXT: <array> 6185// CHECK-NEXT: <array> 6186// CHECK-NEXT: <dict> 6187// CHECK-NEXT: <key>line</key><integer>315</integer> 6188// CHECK-NEXT: <key>col</key><integer>16</integer> 6189// CHECK-NEXT: <key>file</key><integer>0</integer> 6190// CHECK-NEXT: </dict> 6191// CHECK-NEXT: <dict> 6192// CHECK-NEXT: <key>line</key><integer>315</integer> 6193// CHECK-NEXT: <key>col</key><integer>35</integer> 6194// CHECK-NEXT: <key>file</key><integer>0</integer> 6195// CHECK-NEXT: </dict> 6196// CHECK-NEXT: </array> 6197// CHECK-NEXT: </array> 6198// CHECK-NEXT: <key>depth</key><integer>0</integer> 6199// CHECK-NEXT: <key>extended_message</key> 6200// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 6201// CHECK-NEXT: <key>message</key> 6202// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 6203// CHECK-NEXT: </dict> 6204// CHECK-NEXT: <dict> 6205// CHECK-NEXT: <key>kind</key><string>control</string> 6206// CHECK-NEXT: <key>edges</key> 6207// CHECK-NEXT: <array> 6208// CHECK-NEXT: <dict> 6209// CHECK-NEXT: <key>start</key> 6210// CHECK-NEXT: <array> 6211// CHECK-NEXT: <dict> 6212// CHECK-NEXT: <key>line</key><integer>315</integer> 6213// CHECK-NEXT: <key>col</key><integer>3</integer> 6214// CHECK-NEXT: <key>file</key><integer>0</integer> 6215// CHECK-NEXT: </dict> 6216// CHECK-NEXT: <dict> 6217// CHECK-NEXT: <key>line</key><integer>315</integer> 6218// CHECK-NEXT: <key>col</key><integer>9</integer> 6219// CHECK-NEXT: <key>file</key><integer>0</integer> 6220// CHECK-NEXT: </dict> 6221// CHECK-NEXT: </array> 6222// CHECK-NEXT: <key>end</key> 6223// CHECK-NEXT: <array> 6224// CHECK-NEXT: <dict> 6225// CHECK-NEXT: <key>line</key><integer>316</integer> 6226// CHECK-NEXT: <key>col</key><integer>3</integer> 6227// CHECK-NEXT: <key>file</key><integer>0</integer> 6228// CHECK-NEXT: </dict> 6229// CHECK-NEXT: <dict> 6230// CHECK-NEXT: <key>line</key><integer>316</integer> 6231// CHECK-NEXT: <key>col</key><integer>9</integer> 6232// CHECK-NEXT: <key>file</key><integer>0</integer> 6233// CHECK-NEXT: </dict> 6234// CHECK-NEXT: </array> 6235// CHECK-NEXT: </dict> 6236// CHECK-NEXT: </array> 6237// CHECK-NEXT: </dict> 6238// CHECK-NEXT: <dict> 6239// CHECK-NEXT: <key>kind</key><string>control</string> 6240// CHECK-NEXT: <key>edges</key> 6241// CHECK-NEXT: <array> 6242// CHECK-NEXT: <dict> 6243// CHECK-NEXT: <key>start</key> 6244// CHECK-NEXT: <array> 6245// CHECK-NEXT: <dict> 6246// CHECK-NEXT: <key>line</key><integer>316</integer> 6247// CHECK-NEXT: <key>col</key><integer>3</integer> 6248// CHECK-NEXT: <key>file</key><integer>0</integer> 6249// CHECK-NEXT: </dict> 6250// CHECK-NEXT: <dict> 6251// CHECK-NEXT: <key>line</key><integer>316</integer> 6252// CHECK-NEXT: <key>col</key><integer>9</integer> 6253// CHECK-NEXT: <key>file</key><integer>0</integer> 6254// CHECK-NEXT: </dict> 6255// CHECK-NEXT: </array> 6256// CHECK-NEXT: <key>end</key> 6257// CHECK-NEXT: <array> 6258// CHECK-NEXT: <dict> 6259// CHECK-NEXT: <key>line</key><integer>316</integer> 6260// CHECK-NEXT: <key>col</key><integer>30</integer> 6261// CHECK-NEXT: <key>file</key><integer>0</integer> 6262// CHECK-NEXT: </dict> 6263// CHECK-NEXT: <dict> 6264// CHECK-NEXT: <key>line</key><integer>316</integer> 6265// CHECK-NEXT: <key>col</key><integer>30</integer> 6266// CHECK-NEXT: <key>file</key><integer>0</integer> 6267// CHECK-NEXT: </dict> 6268// CHECK-NEXT: </array> 6269// CHECK-NEXT: </dict> 6270// CHECK-NEXT: </array> 6271// CHECK-NEXT: </dict> 6272// CHECK-NEXT: <dict> 6273// CHECK-NEXT: <key>kind</key><string>event</string> 6274// CHECK-NEXT: <key>location</key> 6275// CHECK-NEXT: <dict> 6276// CHECK-NEXT: <key>line</key><integer>316</integer> 6277// CHECK-NEXT: <key>col</key><integer>30</integer> 6278// CHECK-NEXT: <key>file</key><integer>0</integer> 6279// CHECK-NEXT: </dict> 6280// CHECK-NEXT: <key>ranges</key> 6281// CHECK-NEXT: <array> 6282// CHECK-NEXT: <array> 6283// CHECK-NEXT: <dict> 6284// CHECK-NEXT: <key>line</key><integer>316</integer> 6285// CHECK-NEXT: <key>col</key><integer>30</integer> 6286// CHECK-NEXT: <key>file</key><integer>0</integer> 6287// CHECK-NEXT: </dict> 6288// CHECK-NEXT: <dict> 6289// CHECK-NEXT: <key>line</key><integer>316</integer> 6290// CHECK-NEXT: <key>col</key><integer>30</integer> 6291// CHECK-NEXT: <key>file</key><integer>0</integer> 6292// CHECK-NEXT: </dict> 6293// CHECK-NEXT: </array> 6294// CHECK-NEXT: </array> 6295// CHECK-NEXT: <key>depth</key><integer>0</integer> 6296// CHECK-NEXT: <key>extended_message</key> 6297// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6298// CHECK-NEXT: <key>message</key> 6299// CHECK-NEXT: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6300// CHECK-NEXT: </dict> 6301// CHECK-NEXT: </array> 6302// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string> 6303// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 6304// CHECK-NEXT: <key>type</key><string>Generics</string> 6305// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 6306// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 6307// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>9fcbd4dcf212f004877292aa5085322b</string> 6308// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 6309// CHECK-NEXT: <key>issue_context</key><string>eraseSpecialization</string> 6310// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 6311// CHECK-NEXT: <key>location</key> 6312// CHECK-NEXT: <dict> 6313// CHECK-NEXT: <key>line</key><integer>316</integer> 6314// CHECK-NEXT: <key>col</key><integer>30</integer> 6315// CHECK-NEXT: <key>file</key><integer>0</integer> 6316// CHECK-NEXT: </dict> 6317// CHECK-NEXT: </dict> 6318// CHECK-NEXT: <dict> 6319// CHECK-NEXT: <key>path</key> 6320// CHECK-NEXT: <array> 6321// CHECK-NEXT: <dict> 6322// CHECK-NEXT: <key>kind</key><string>control</string> 6323// CHECK-NEXT: <key>edges</key> 6324// CHECK-NEXT: <array> 6325// CHECK-NEXT: <dict> 6326// CHECK-NEXT: <key>start</key> 6327// CHECK-NEXT: <array> 6328// CHECK-NEXT: <dict> 6329// CHECK-NEXT: <key>line</key><integer>320</integer> 6330// CHECK-NEXT: <key>col</key><integer>3</integer> 6331// CHECK-NEXT: <key>file</key><integer>0</integer> 6332// CHECK-NEXT: </dict> 6333// CHECK-NEXT: <dict> 6334// CHECK-NEXT: <key>line</key><integer>320</integer> 6335// CHECK-NEXT: <key>col</key><integer>9</integer> 6336// CHECK-NEXT: <key>file</key><integer>0</integer> 6337// CHECK-NEXT: </dict> 6338// CHECK-NEXT: </array> 6339// CHECK-NEXT: <key>end</key> 6340// CHECK-NEXT: <array> 6341// CHECK-NEXT: <dict> 6342// CHECK-NEXT: <key>line</key><integer>321</integer> 6343// CHECK-NEXT: <key>col</key><integer>3</integer> 6344// CHECK-NEXT: <key>file</key><integer>0</integer> 6345// CHECK-NEXT: </dict> 6346// CHECK-NEXT: <dict> 6347// CHECK-NEXT: <key>line</key><integer>321</integer> 6348// CHECK-NEXT: <key>col</key><integer>7</integer> 6349// CHECK-NEXT: <key>file</key><integer>0</integer> 6350// CHECK-NEXT: </dict> 6351// CHECK-NEXT: </array> 6352// CHECK-NEXT: </dict> 6353// CHECK-NEXT: </array> 6354// CHECK-NEXT: </dict> 6355// CHECK-NEXT: <dict> 6356// CHECK-NEXT: <key>kind</key><string>control</string> 6357// CHECK-NEXT: <key>edges</key> 6358// CHECK-NEXT: <array> 6359// CHECK-NEXT: <dict> 6360// CHECK-NEXT: <key>start</key> 6361// CHECK-NEXT: <array> 6362// CHECK-NEXT: <dict> 6363// CHECK-NEXT: <key>line</key><integer>321</integer> 6364// CHECK-NEXT: <key>col</key><integer>3</integer> 6365// CHECK-NEXT: <key>file</key><integer>0</integer> 6366// CHECK-NEXT: </dict> 6367// CHECK-NEXT: <dict> 6368// CHECK-NEXT: <key>line</key><integer>321</integer> 6369// CHECK-NEXT: <key>col</key><integer>7</integer> 6370// CHECK-NEXT: <key>file</key><integer>0</integer> 6371// CHECK-NEXT: </dict> 6372// CHECK-NEXT: </array> 6373// CHECK-NEXT: <key>end</key> 6374// CHECK-NEXT: <array> 6375// CHECK-NEXT: <dict> 6376// CHECK-NEXT: <key>line</key><integer>321</integer> 6377// CHECK-NEXT: <key>col</key><integer>14</integer> 6378// CHECK-NEXT: <key>file</key><integer>0</integer> 6379// CHECK-NEXT: </dict> 6380// CHECK-NEXT: <dict> 6381// CHECK-NEXT: <key>line</key><integer>321</integer> 6382// CHECK-NEXT: <key>col</key><integer>14</integer> 6383// CHECK-NEXT: <key>file</key><integer>0</integer> 6384// CHECK-NEXT: </dict> 6385// CHECK-NEXT: </array> 6386// CHECK-NEXT: </dict> 6387// CHECK-NEXT: </array> 6388// CHECK-NEXT: </dict> 6389// CHECK-NEXT: <dict> 6390// CHECK-NEXT: <key>kind</key><string>event</string> 6391// CHECK-NEXT: <key>location</key> 6392// CHECK-NEXT: <dict> 6393// CHECK-NEXT: <key>line</key><integer>321</integer> 6394// CHECK-NEXT: <key>col</key><integer>14</integer> 6395// CHECK-NEXT: <key>file</key><integer>0</integer> 6396// CHECK-NEXT: </dict> 6397// CHECK-NEXT: <key>ranges</key> 6398// CHECK-NEXT: <array> 6399// CHECK-NEXT: <array> 6400// CHECK-NEXT: <dict> 6401// CHECK-NEXT: <key>line</key><integer>321</integer> 6402// CHECK-NEXT: <key>col</key><integer>14</integer> 6403// CHECK-NEXT: <key>file</key><integer>0</integer> 6404// CHECK-NEXT: </dict> 6405// CHECK-NEXT: <dict> 6406// CHECK-NEXT: <key>line</key><integer>321</integer> 6407// CHECK-NEXT: <key>col</key><integer>33</integer> 6408// CHECK-NEXT: <key>file</key><integer>0</integer> 6409// CHECK-NEXT: </dict> 6410// CHECK-NEXT: </array> 6411// CHECK-NEXT: </array> 6412// CHECK-NEXT: <key>depth</key><integer>0</integer> 6413// CHECK-NEXT: <key>extended_message</key> 6414// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 6415// CHECK-NEXT: <key>message</key> 6416// CHECK-NEXT: <string>Type 'NSArray<NSString *> *' is inferred from this context</string> 6417// CHECK-NEXT: </dict> 6418// CHECK-NEXT: <dict> 6419// CHECK-NEXT: <key>kind</key><string>event</string> 6420// CHECK-NEXT: <key>location</key> 6421// CHECK-NEXT: <dict> 6422// CHECK-NEXT: <key>line</key><integer>321</integer> 6423// CHECK-NEXT: <key>col</key><integer>14</integer> 6424// CHECK-NEXT: <key>file</key><integer>0</integer> 6425// CHECK-NEXT: </dict> 6426// CHECK-NEXT: <key>ranges</key> 6427// CHECK-NEXT: <array> 6428// CHECK-NEXT: <array> 6429// CHECK-NEXT: <dict> 6430// CHECK-NEXT: <key>line</key><integer>321</integer> 6431// CHECK-NEXT: <key>col</key><integer>14</integer> 6432// CHECK-NEXT: <key>file</key><integer>0</integer> 6433// CHECK-NEXT: </dict> 6434// CHECK-NEXT: <dict> 6435// CHECK-NEXT: <key>line</key><integer>321</integer> 6436// CHECK-NEXT: <key>col</key><integer>33</integer> 6437// CHECK-NEXT: <key>file</key><integer>0</integer> 6438// CHECK-NEXT: </dict> 6439// CHECK-NEXT: </array> 6440// CHECK-NEXT: </array> 6441// CHECK-NEXT: <key>depth</key><integer>0</integer> 6442// CHECK-NEXT: <key>extended_message</key> 6443// CHECK-NEXT: <string>Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'</string> 6444// CHECK-NEXT: <key>message</key> 6445// CHECK-NEXT: <string>Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'</string> 6446// CHECK-NEXT: </dict> 6447// CHECK-NEXT: </array> 6448// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSArray<NSString *> *' which is incompatible with static type 'NSSet *'</string> 6449// CHECK-NEXT: <key>category</key><string>Type Error</string> 6450// CHECK-NEXT: <key>type</key><string>Dynamic and static type mismatch</string> 6451// CHECK-NEXT: <key>check_name</key><string>alpha.core.DynamicTypeChecker</string> 6452// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 6453// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>be6714fed24af6e7ac522b87a5098de0</string> 6454// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 6455// CHECK-NEXT: <key>issue_context</key><string>returnToUnrelatedType</string> 6456// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 6457// CHECK-NEXT: <key>location</key> 6458// CHECK-NEXT: <dict> 6459// CHECK-NEXT: <key>line</key><integer>321</integer> 6460// CHECK-NEXT: <key>col</key><integer>14</integer> 6461// CHECK-NEXT: <key>file</key><integer>0</integer> 6462// CHECK-NEXT: </dict> 6463// CHECK-NEXT: </dict> 6464// CHECK-NEXT: <dict> 6465// CHECK-NEXT: <key>path</key> 6466// CHECK-NEXT: <array> 6467// CHECK-NEXT: <dict> 6468// CHECK-NEXT: <key>kind</key><string>control</string> 6469// CHECK-NEXT: <key>edges</key> 6470// CHECK-NEXT: <array> 6471// CHECK-NEXT: <dict> 6472// CHECK-NEXT: <key>start</key> 6473// CHECK-NEXT: <array> 6474// CHECK-NEXT: <dict> 6475// CHECK-NEXT: <key>line</key><integer>326</integer> 6476// CHECK-NEXT: <key>col</key><integer>3</integer> 6477// CHECK-NEXT: <key>file</key><integer>0</integer> 6478// CHECK-NEXT: </dict> 6479// CHECK-NEXT: <dict> 6480// CHECK-NEXT: <key>line</key><integer>326</integer> 6481// CHECK-NEXT: <key>col</key><integer>9</integer> 6482// CHECK-NEXT: <key>file</key><integer>0</integer> 6483// CHECK-NEXT: </dict> 6484// CHECK-NEXT: </array> 6485// CHECK-NEXT: <key>end</key> 6486// CHECK-NEXT: <array> 6487// CHECK-NEXT: <dict> 6488// CHECK-NEXT: <key>line</key><integer>327</integer> 6489// CHECK-NEXT: <key>col</key><integer>3</integer> 6490// CHECK-NEXT: <key>file</key><integer>0</integer> 6491// CHECK-NEXT: </dict> 6492// CHECK-NEXT: <dict> 6493// CHECK-NEXT: <key>line</key><integer>327</integer> 6494// CHECK-NEXT: <key>col</key><integer>4</integer> 6495// CHECK-NEXT: <key>file</key><integer>0</integer> 6496// CHECK-NEXT: </dict> 6497// CHECK-NEXT: </array> 6498// CHECK-NEXT: </dict> 6499// CHECK-NEXT: </array> 6500// CHECK-NEXT: </dict> 6501// CHECK-NEXT: <dict> 6502// CHECK-NEXT: <key>kind</key><string>event</string> 6503// CHECK-NEXT: <key>location</key> 6504// CHECK-NEXT: <dict> 6505// CHECK-NEXT: <key>line</key><integer>327</integer> 6506// CHECK-NEXT: <key>col</key><integer>10</integer> 6507// CHECK-NEXT: <key>file</key><integer>0</integer> 6508// CHECK-NEXT: </dict> 6509// CHECK-NEXT: <key>ranges</key> 6510// CHECK-NEXT: <array> 6511// CHECK-NEXT: <array> 6512// CHECK-NEXT: <dict> 6513// CHECK-NEXT: <key>line</key><integer>327</integer> 6514// CHECK-NEXT: <key>col</key><integer>10</integer> 6515// CHECK-NEXT: <key>file</key><integer>0</integer> 6516// CHECK-NEXT: </dict> 6517// CHECK-NEXT: <dict> 6518// CHECK-NEXT: <key>line</key><integer>327</integer> 6519// CHECK-NEXT: <key>col</key><integer>29</integer> 6520// CHECK-NEXT: <key>file</key><integer>0</integer> 6521// CHECK-NEXT: </dict> 6522// CHECK-NEXT: </array> 6523// CHECK-NEXT: </array> 6524// CHECK-NEXT: <key>depth</key><integer>0</integer> 6525// CHECK-NEXT: <key>extended_message</key> 6526// CHECK-NEXT: <string>Type 'NSString *' is inferred from this context</string> 6527// CHECK-NEXT: <key>message</key> 6528// CHECK-NEXT: <string>Type 'NSString *' is inferred from this context</string> 6529// CHECK-NEXT: </dict> 6530// CHECK-NEXT: <dict> 6531// CHECK-NEXT: <key>kind</key><string>control</string> 6532// CHECK-NEXT: <key>edges</key> 6533// CHECK-NEXT: <array> 6534// CHECK-NEXT: <dict> 6535// CHECK-NEXT: <key>start</key> 6536// CHECK-NEXT: <array> 6537// CHECK-NEXT: <dict> 6538// CHECK-NEXT: <key>line</key><integer>327</integer> 6539// CHECK-NEXT: <key>col</key><integer>3</integer> 6540// CHECK-NEXT: <key>file</key><integer>0</integer> 6541// CHECK-NEXT: </dict> 6542// CHECK-NEXT: <dict> 6543// CHECK-NEXT: <key>line</key><integer>327</integer> 6544// CHECK-NEXT: <key>col</key><integer>4</integer> 6545// CHECK-NEXT: <key>file</key><integer>0</integer> 6546// CHECK-NEXT: </dict> 6547// CHECK-NEXT: </array> 6548// CHECK-NEXT: <key>end</key> 6549// CHECK-NEXT: <array> 6550// CHECK-NEXT: <dict> 6551// CHECK-NEXT: <key>line</key><integer>328</integer> 6552// CHECK-NEXT: <key>col</key><integer>3</integer> 6553// CHECK-NEXT: <key>file</key><integer>0</integer> 6554// CHECK-NEXT: </dict> 6555// CHECK-NEXT: <dict> 6556// CHECK-NEXT: <key>line</key><integer>328</integer> 6557// CHECK-NEXT: <key>col</key><integer>10</integer> 6558// CHECK-NEXT: <key>file</key><integer>0</integer> 6559// CHECK-NEXT: </dict> 6560// CHECK-NEXT: </array> 6561// CHECK-NEXT: </dict> 6562// CHECK-NEXT: </array> 6563// CHECK-NEXT: </dict> 6564// CHECK-NEXT: <dict> 6565// CHECK-NEXT: <key>kind</key><string>control</string> 6566// CHECK-NEXT: <key>edges</key> 6567// CHECK-NEXT: <array> 6568// CHECK-NEXT: <dict> 6569// CHECK-NEXT: <key>start</key> 6570// CHECK-NEXT: <array> 6571// CHECK-NEXT: <dict> 6572// CHECK-NEXT: <key>line</key><integer>328</integer> 6573// CHECK-NEXT: <key>col</key><integer>3</integer> 6574// CHECK-NEXT: <key>file</key><integer>0</integer> 6575// CHECK-NEXT: </dict> 6576// CHECK-NEXT: <dict> 6577// CHECK-NEXT: <key>line</key><integer>328</integer> 6578// CHECK-NEXT: <key>col</key><integer>10</integer> 6579// CHECK-NEXT: <key>file</key><integer>0</integer> 6580// CHECK-NEXT: </dict> 6581// CHECK-NEXT: </array> 6582// CHECK-NEXT: <key>end</key> 6583// CHECK-NEXT: <array> 6584// CHECK-NEXT: <dict> 6585// CHECK-NEXT: <key>line</key><integer>328</integer> 6586// CHECK-NEXT: <key>col</key><integer>19</integer> 6587// CHECK-NEXT: <key>file</key><integer>0</integer> 6588// CHECK-NEXT: </dict> 6589// CHECK-NEXT: <dict> 6590// CHECK-NEXT: <key>line</key><integer>328</integer> 6591// CHECK-NEXT: <key>col</key><integer>19</integer> 6592// CHECK-NEXT: <key>file</key><integer>0</integer> 6593// CHECK-NEXT: </dict> 6594// CHECK-NEXT: </array> 6595// CHECK-NEXT: </dict> 6596// CHECK-NEXT: </array> 6597// CHECK-NEXT: </dict> 6598// CHECK-NEXT: <dict> 6599// CHECK-NEXT: <key>kind</key><string>event</string> 6600// CHECK-NEXT: <key>location</key> 6601// CHECK-NEXT: <dict> 6602// CHECK-NEXT: <key>line</key><integer>328</integer> 6603// CHECK-NEXT: <key>col</key><integer>19</integer> 6604// CHECK-NEXT: <key>file</key><integer>0</integer> 6605// CHECK-NEXT: </dict> 6606// CHECK-NEXT: <key>ranges</key> 6607// CHECK-NEXT: <array> 6608// CHECK-NEXT: <array> 6609// CHECK-NEXT: <dict> 6610// CHECK-NEXT: <key>line</key><integer>328</integer> 6611// CHECK-NEXT: <key>col</key><integer>19</integer> 6612// CHECK-NEXT: <key>file</key><integer>0</integer> 6613// CHECK-NEXT: </dict> 6614// CHECK-NEXT: <dict> 6615// CHECK-NEXT: <key>line</key><integer>328</integer> 6616// CHECK-NEXT: <key>col</key><integer>19</integer> 6617// CHECK-NEXT: <key>file</key><integer>0</integer> 6618// CHECK-NEXT: </dict> 6619// CHECK-NEXT: </array> 6620// CHECK-NEXT: </array> 6621// CHECK-NEXT: <key>depth</key><integer>0</integer> 6622// CHECK-NEXT: <key>extended_message</key> 6623// CHECK-NEXT: <string>Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'</string> 6624// CHECK-NEXT: <key>message</key> 6625// CHECK-NEXT: <string>Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'</string> 6626// CHECK-NEXT: </dict> 6627// CHECK-NEXT: </array> 6628// CHECK-NEXT: <key>description</key><string>Object has a dynamic type 'NSString *' which is incompatible with static type 'NSNumber *'</string> 6629// CHECK-NEXT: <key>category</key><string>Type Error</string> 6630// CHECK-NEXT: <key>type</key><string>Dynamic and static type mismatch</string> 6631// CHECK-NEXT: <key>check_name</key><string>alpha.core.DynamicTypeChecker</string> 6632// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 6633// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>5e96ef711c8f115bc64f69baa3f6ea7a</string> 6634// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 6635// CHECK-NEXT: <key>issue_context</key><string>returnToIdVariable</string> 6636// CHECK-NEXT: <key>issue_hash_function_offset</key><string>3</string> 6637// CHECK-NEXT: <key>location</key> 6638// CHECK-NEXT: <dict> 6639// CHECK-NEXT: <key>line</key><integer>328</integer> 6640// CHECK-NEXT: <key>col</key><integer>19</integer> 6641// CHECK-NEXT: <key>file</key><integer>0</integer> 6642// CHECK-NEXT: </dict> 6643// CHECK-NEXT: </dict> 6644// CHECK-NEXT: <dict> 6645// CHECK-NEXT: <key>path</key> 6646// CHECK-NEXT: <array> 6647// CHECK-NEXT: <dict> 6648// CHECK-NEXT: <key>kind</key><string>event</string> 6649// CHECK-NEXT: <key>location</key> 6650// CHECK-NEXT: <dict> 6651// CHECK-NEXT: <key>line</key><integer>337</integer> 6652// CHECK-NEXT: <key>col</key><integer>12</integer> 6653// CHECK-NEXT: <key>file</key><integer>0</integer> 6654// CHECK-NEXT: </dict> 6655// CHECK-NEXT: <key>ranges</key> 6656// CHECK-NEXT: <array> 6657// CHECK-NEXT: <array> 6658// CHECK-NEXT: <dict> 6659// CHECK-NEXT: <key>line</key><integer>337</integer> 6660// CHECK-NEXT: <key>col</key><integer>12</integer> 6661// CHECK-NEXT: <key>file</key><integer>0</integer> 6662// CHECK-NEXT: </dict> 6663// CHECK-NEXT: <dict> 6664// CHECK-NEXT: <key>line</key><integer>337</integer> 6665// CHECK-NEXT: <key>col</key><integer>12</integer> 6666// CHECK-NEXT: <key>file</key><integer>0</integer> 6667// CHECK-NEXT: </dict> 6668// CHECK-NEXT: </array> 6669// CHECK-NEXT: </array> 6670// CHECK-NEXT: <key>depth</key><integer>0</integer> 6671// CHECK-NEXT: <key>extended_message</key> 6672// CHECK-NEXT: <string>Type 'UnrelatedTypeGeneric<NSString *> *' is inferred from implicit cast (from 'UnrelatedTypeGeneric<NSString *> *' to 'id')</string> 6673// CHECK-NEXT: <key>message</key> 6674// CHECK-NEXT: <string>Type 'UnrelatedTypeGeneric<NSString *> *' is inferred from implicit cast (from 'UnrelatedTypeGeneric<NSString *> *' to 'id')</string> 6675// CHECK-NEXT: </dict> 6676// CHECK-NEXT: <dict> 6677// CHECK-NEXT: <key>kind</key><string>control</string> 6678// CHECK-NEXT: <key>edges</key> 6679// CHECK-NEXT: <array> 6680// CHECK-NEXT: <dict> 6681// CHECK-NEXT: <key>start</key> 6682// CHECK-NEXT: <array> 6683// CHECK-NEXT: <dict> 6684// CHECK-NEXT: <key>line</key><integer>337</integer> 6685// CHECK-NEXT: <key>col</key><integer>3</integer> 6686// CHECK-NEXT: <key>file</key><integer>0</integer> 6687// CHECK-NEXT: </dict> 6688// CHECK-NEXT: <dict> 6689// CHECK-NEXT: <key>line</key><integer>337</integer> 6690// CHECK-NEXT: <key>col</key><integer>4</integer> 6691// CHECK-NEXT: <key>file</key><integer>0</integer> 6692// CHECK-NEXT: </dict> 6693// CHECK-NEXT: </array> 6694// CHECK-NEXT: <key>end</key> 6695// CHECK-NEXT: <array> 6696// CHECK-NEXT: <dict> 6697// CHECK-NEXT: <key>line</key><integer>338</integer> 6698// CHECK-NEXT: <key>col</key><integer>3</integer> 6699// CHECK-NEXT: <key>file</key><integer>0</integer> 6700// CHECK-NEXT: </dict> 6701// CHECK-NEXT: <dict> 6702// CHECK-NEXT: <key>line</key><integer>338</integer> 6703// CHECK-NEXT: <key>col</key><integer>3</integer> 6704// CHECK-NEXT: <key>file</key><integer>0</integer> 6705// CHECK-NEXT: </dict> 6706// CHECK-NEXT: </array> 6707// CHECK-NEXT: </dict> 6708// CHECK-NEXT: </array> 6709// CHECK-NEXT: </dict> 6710// CHECK-NEXT: <dict> 6711// CHECK-NEXT: <key>kind</key><string>control</string> 6712// CHECK-NEXT: <key>edges</key> 6713// CHECK-NEXT: <array> 6714// CHECK-NEXT: <dict> 6715// CHECK-NEXT: <key>start</key> 6716// CHECK-NEXT: <array> 6717// CHECK-NEXT: <dict> 6718// CHECK-NEXT: <key>line</key><integer>338</integer> 6719// CHECK-NEXT: <key>col</key><integer>3</integer> 6720// CHECK-NEXT: <key>file</key><integer>0</integer> 6721// CHECK-NEXT: </dict> 6722// CHECK-NEXT: <dict> 6723// CHECK-NEXT: <key>line</key><integer>338</integer> 6724// CHECK-NEXT: <key>col</key><integer>3</integer> 6725// CHECK-NEXT: <key>file</key><integer>0</integer> 6726// CHECK-NEXT: </dict> 6727// CHECK-NEXT: </array> 6728// CHECK-NEXT: <key>end</key> 6729// CHECK-NEXT: <array> 6730// CHECK-NEXT: <dict> 6731// CHECK-NEXT: <key>line</key><integer>338</integer> 6732// CHECK-NEXT: <key>col</key><integer>7</integer> 6733// CHECK-NEXT: <key>file</key><integer>0</integer> 6734// CHECK-NEXT: </dict> 6735// CHECK-NEXT: <dict> 6736// CHECK-NEXT: <key>line</key><integer>338</integer> 6737// CHECK-NEXT: <key>col</key><integer>9</integer> 6738// CHECK-NEXT: <key>file</key><integer>0</integer> 6739// CHECK-NEXT: </dict> 6740// CHECK-NEXT: </array> 6741// CHECK-NEXT: </dict> 6742// CHECK-NEXT: </array> 6743// CHECK-NEXT: </dict> 6744// CHECK-NEXT: <dict> 6745// CHECK-NEXT: <key>kind</key><string>event</string> 6746// CHECK-NEXT: <key>location</key> 6747// CHECK-NEXT: <dict> 6748// CHECK-NEXT: <key>line</key><integer>338</integer> 6749// CHECK-NEXT: <key>col</key><integer>7</integer> 6750// CHECK-NEXT: <key>file</key><integer>0</integer> 6751// CHECK-NEXT: </dict> 6752// CHECK-NEXT: <key>ranges</key> 6753// CHECK-NEXT: <array> 6754// CHECK-NEXT: <array> 6755// CHECK-NEXT: <dict> 6756// CHECK-NEXT: <key>line</key><integer>338</integer> 6757// CHECK-NEXT: <key>col</key><integer>7</integer> 6758// CHECK-NEXT: <key>file</key><integer>0</integer> 6759// CHECK-NEXT: </dict> 6760// CHECK-NEXT: <dict> 6761// CHECK-NEXT: <key>line</key><integer>338</integer> 6762// CHECK-NEXT: <key>col</key><integer>9</integer> 6763// CHECK-NEXT: <key>file</key><integer>0</integer> 6764// CHECK-NEXT: </dict> 6765// CHECK-NEXT: </array> 6766// CHECK-NEXT: </array> 6767// CHECK-NEXT: <key>depth</key><integer>0</integer> 6768// CHECK-NEXT: <key>extended_message</key> 6769// CHECK-NEXT: <string>Conversion from value of type 'UnrelatedTypeGeneric<NSString *> *' to incompatible type 'NSArray<NSString *> *'</string> 6770// CHECK-NEXT: <key>message</key> 6771// CHECK-NEXT: <string>Conversion from value of type 'UnrelatedTypeGeneric<NSString *> *' to incompatible type 'NSArray<NSString *> *'</string> 6772// CHECK-NEXT: </dict> 6773// CHECK-NEXT: </array> 6774// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'UnrelatedTypeGeneric<NSString *> *' to incompatible type 'NSArray<NSString *> *'</string> 6775// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 6776// CHECK-NEXT: <key>type</key><string>Generics</string> 6777// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 6778// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 6779// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>8347f65fb51a85ccd462d75ffd761078</string> 6780// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 6781// CHECK-NEXT: <key>issue_context</key><string>testGetMostInformativeDerivedForId</string> 6782// CHECK-NEXT: <key>issue_hash_function_offset</key><string>2</string> 6783// CHECK-NEXT: <key>location</key> 6784// CHECK-NEXT: <dict> 6785// CHECK-NEXT: <key>line</key><integer>338</integer> 6786// CHECK-NEXT: <key>col</key><integer>7</integer> 6787// CHECK-NEXT: <key>file</key><integer>0</integer> 6788// CHECK-NEXT: </dict> 6789// CHECK-NEXT: </dict> 6790// CHECK-NEXT: <dict> 6791// CHECK-NEXT: <key>path</key> 6792// CHECK-NEXT: <array> 6793// CHECK-NEXT: <dict> 6794// CHECK-NEXT: <key>kind</key><string>event</string> 6795// CHECK-NEXT: <key>location</key> 6796// CHECK-NEXT: <dict> 6797// CHECK-NEXT: <key>line</key><integer>337</integer> 6798// CHECK-NEXT: <key>col</key><integer>12</integer> 6799// CHECK-NEXT: <key>file</key><integer>0</integer> 6800// CHECK-NEXT: </dict> 6801// CHECK-NEXT: <key>ranges</key> 6802// CHECK-NEXT: <array> 6803// CHECK-NEXT: <array> 6804// CHECK-NEXT: <dict> 6805// CHECK-NEXT: <key>line</key><integer>337</integer> 6806// CHECK-NEXT: <key>col</key><integer>12</integer> 6807// CHECK-NEXT: <key>file</key><integer>0</integer> 6808// CHECK-NEXT: </dict> 6809// CHECK-NEXT: <dict> 6810// CHECK-NEXT: <key>line</key><integer>337</integer> 6811// CHECK-NEXT: <key>col</key><integer>12</integer> 6812// CHECK-NEXT: <key>file</key><integer>0</integer> 6813// CHECK-NEXT: </dict> 6814// CHECK-NEXT: </array> 6815// CHECK-NEXT: </array> 6816// CHECK-NEXT: <key>depth</key><integer>0</integer> 6817// CHECK-NEXT: <key>extended_message</key> 6818// CHECK-NEXT: <string>Type 'UnrelatedTypeGeneric<NSString *> *' is inferred from implicit cast (from 'UnrelatedTypeGeneric<NSString *> *' to 'id')</string> 6819// CHECK-NEXT: <key>message</key> 6820// CHECK-NEXT: <string>Type 'UnrelatedTypeGeneric<NSString *> *' is inferred from implicit cast (from 'UnrelatedTypeGeneric<NSString *> *' to 'id')</string> 6821// CHECK-NEXT: </dict> 6822// CHECK-NEXT: <dict> 6823// CHECK-NEXT: <key>kind</key><string>control</string> 6824// CHECK-NEXT: <key>edges</key> 6825// CHECK-NEXT: <array> 6826// CHECK-NEXT: <dict> 6827// CHECK-NEXT: <key>start</key> 6828// CHECK-NEXT: <array> 6829// CHECK-NEXT: <dict> 6830// CHECK-NEXT: <key>line</key><integer>337</integer> 6831// CHECK-NEXT: <key>col</key><integer>3</integer> 6832// CHECK-NEXT: <key>file</key><integer>0</integer> 6833// CHECK-NEXT: </dict> 6834// CHECK-NEXT: <dict> 6835// CHECK-NEXT: <key>line</key><integer>337</integer> 6836// CHECK-NEXT: <key>col</key><integer>4</integer> 6837// CHECK-NEXT: <key>file</key><integer>0</integer> 6838// CHECK-NEXT: </dict> 6839// CHECK-NEXT: </array> 6840// CHECK-NEXT: <key>end</key> 6841// CHECK-NEXT: <array> 6842// CHECK-NEXT: <dict> 6843// CHECK-NEXT: <key>line</key><integer>343</integer> 6844// CHECK-NEXT: <key>col</key><integer>3</integer> 6845// CHECK-NEXT: <key>file</key><integer>0</integer> 6846// CHECK-NEXT: </dict> 6847// CHECK-NEXT: <dict> 6848// CHECK-NEXT: <key>line</key><integer>343</integer> 6849// CHECK-NEXT: <key>col</key><integer>3</integer> 6850// CHECK-NEXT: <key>file</key><integer>0</integer> 6851// CHECK-NEXT: </dict> 6852// CHECK-NEXT: </array> 6853// CHECK-NEXT: </dict> 6854// CHECK-NEXT: </array> 6855// CHECK-NEXT: </dict> 6856// CHECK-NEXT: <dict> 6857// CHECK-NEXT: <key>kind</key><string>event</string> 6858// CHECK-NEXT: <key>location</key> 6859// CHECK-NEXT: <dict> 6860// CHECK-NEXT: <key>line</key><integer>343</integer> 6861// CHECK-NEXT: <key>col</key><integer>3</integer> 6862// CHECK-NEXT: <key>file</key><integer>0</integer> 6863// CHECK-NEXT: </dict> 6864// CHECK-NEXT: <key>ranges</key> 6865// CHECK-NEXT: <array> 6866// CHECK-NEXT: <array> 6867// CHECK-NEXT: <dict> 6868// CHECK-NEXT: <key>line</key><integer>343</integer> 6869// CHECK-NEXT: <key>col</key><integer>16</integer> 6870// CHECK-NEXT: <key>file</key><integer>0</integer> 6871// CHECK-NEXT: </dict> 6872// CHECK-NEXT: <dict> 6873// CHECK-NEXT: <key>line</key><integer>343</integer> 6874// CHECK-NEXT: <key>col</key><integer>38</integer> 6875// CHECK-NEXT: <key>file</key><integer>0</integer> 6876// CHECK-NEXT: </dict> 6877// CHECK-NEXT: </array> 6878// CHECK-NEXT: </array> 6879// CHECK-NEXT: <key>depth</key><integer>0</integer> 6880// CHECK-NEXT: <key>extended_message</key> 6881// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 6882// CHECK-NEXT: <key>message</key> 6883// CHECK-NEXT: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 6884// CHECK-NEXT: </dict> 6885// CHECK-NEXT: </array> 6886// CHECK-NEXT: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string> 6887// CHECK-NEXT: <key>category</key><string>Core Foundation/Objective-C</string> 6888// CHECK-NEXT: <key>type</key><string>Generics</string> 6889// CHECK-NEXT: <key>check_name</key><string>core.DynamicTypePropagation</string> 6890// CHECK-NEXT: <!-- This hash is experimental and going to change! --> 6891// CHECK-NEXT: <key>issue_hash_content_of_line_in_context</key><string>6528db66f562ac0c2a94933f3ca5f6a8</string> 6892// CHECK-NEXT: <key>issue_context_kind</key><string>function</string> 6893// CHECK-NEXT: <key>issue_context</key><string>testGetMostInformativeDerivedForId</string> 6894// CHECK-NEXT: <key>issue_hash_function_offset</key><string>7</string> 6895// CHECK-NEXT: <key>location</key> 6896// CHECK-NEXT: <dict> 6897// CHECK-NEXT: <key>line</key><integer>343</integer> 6898// CHECK-NEXT: <key>col</key><integer>3</integer> 6899// CHECK-NEXT: <key>file</key><integer>0</integer> 6900// CHECK-NEXT: </dict> 6901// CHECK-NEXT: </dict> 6902// CHECK-NEXT: </array> 6903