forked from OSchip/llvm-project
5840 lines
246 KiB
Objective-C
5840 lines
246 KiB
Objective-C
// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.osx.cocoa.ObjCGenerics -verify -Wno-objc-method-access %s
|
|
// RUN: %clang_cc1 -analyze -analyzer-checker=core,alpha.osx.cocoa.ObjCGenerics -verify -Wno-objc-method-access %s -analyzer-output=plist -o %t.plist
|
|
// RUN: FileCheck --input-file %t.plist %s
|
|
|
|
#if !__has_feature(objc_generics)
|
|
# error Compiler does not support Objective-C generics?
|
|
#endif
|
|
|
|
#if !__has_feature(objc_generics_variance)
|
|
# error Compiler does not support co- and contr-variance?
|
|
#endif
|
|
|
|
#define nil 0
|
|
typedef unsigned long NSUInteger;
|
|
typedef int BOOL;
|
|
|
|
@protocol NSObject
|
|
+ (id)alloc;
|
|
- (id)init;
|
|
@end
|
|
|
|
@protocol NSCopying
|
|
@end
|
|
|
|
__attribute__((objc_root_class))
|
|
@interface NSObject <NSObject>
|
|
@end
|
|
|
|
@interface NSString : NSObject <NSCopying>
|
|
@end
|
|
|
|
@interface NSMutableString : NSString
|
|
@end
|
|
|
|
@interface NSNumber : NSObject <NSCopying>
|
|
@end
|
|
|
|
@interface NSArray<__covariant ObjectType> : NSObject
|
|
+ (instancetype)arrayWithObjects:(const ObjectType [])objects count:(NSUInteger)count;
|
|
+ (instancetype)getEmpty;
|
|
+ (NSArray<ObjectType> *)getEmpty2;
|
|
- (BOOL)contains:(ObjectType)obj;
|
|
- (ObjectType)getObjAtIndex:(NSUInteger)idx;
|
|
- (ObjectType)objectAtIndexedSubscript:(NSUInteger)idx;
|
|
@property(readonly) ObjectType firstObject;
|
|
@end
|
|
|
|
@interface MutableArray<ObjectType> : NSArray<ObjectType>
|
|
- (void)addObject:(ObjectType)anObject;
|
|
@end
|
|
|
|
@interface LegacyMutableArray : MutableArray
|
|
@end
|
|
|
|
@interface LegacySpecialMutableArray : LegacyMutableArray
|
|
@end
|
|
|
|
@interface BuggyMutableArray<T> : MutableArray
|
|
@end
|
|
|
|
@interface BuggySpecialMutableArray<T> : BuggyMutableArray<T>
|
|
@end
|
|
|
|
@interface MyMutableStringArray : MutableArray<NSString *>
|
|
@end
|
|
|
|
@interface ExceptionalArray<ExceptionType> : MutableArray<NSString *>
|
|
- (ExceptionType) getException;
|
|
@end
|
|
|
|
@interface UnrelatedType : NSObject<NSCopying>
|
|
@end
|
|
|
|
int getUnknown();
|
|
NSArray *getStuff();
|
|
NSArray *getTypedStuff() {
|
|
NSArray<NSNumber *> *c = getStuff();
|
|
return c;
|
|
}
|
|
|
|
void doStuff(NSArray<NSNumber *> *);
|
|
void withArrString(NSArray<NSString *> *);
|
|
void withArrMutableString(NSArray<NSMutableString *> *);
|
|
void withMutArrString(MutableArray<NSString *> *);
|
|
void withMutArrMutableString(MutableArray<NSMutableString *> *);
|
|
|
|
void incompatibleTypesErased(NSArray *a, NSArray<NSString *> *b,
|
|
NSArray<NSNumber *> *c) {
|
|
a = b;
|
|
c = a; // expected-warning {{Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'}}
|
|
[a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
|
|
[a contains: [[NSString alloc] init]];
|
|
doStuff(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void crossProceduralErasedTypes() {
|
|
NSArray<NSString *> *a = getTypedStuff(); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void incompatibleTypesErasedReverseConversion(NSArray *a,
|
|
NSArray<NSString *> *b) {
|
|
b = a;
|
|
[a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
|
|
[a contains: [[NSString alloc] init]];
|
|
doStuff(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void idErasedIncompatibleTypesReverseConversion(id a, NSArray<NSString *> *b) {
|
|
b = a;
|
|
[a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
|
|
[a contains: [[NSString alloc] init]];
|
|
doStuff(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void idErasedIncompatibleTypes(id a, NSArray<NSString *> *b,
|
|
NSArray<NSNumber *> *c) {
|
|
a = b;
|
|
c = a; // expected-warning {{Conversion}}
|
|
[a contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
|
|
[a contains: [[NSString alloc] init]];
|
|
doStuff(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void pathSensitiveInference(MutableArray *m, MutableArray<NSString *> *a,
|
|
MutableArray<NSMutableString *> *b) {
|
|
if (getUnknown() == 5) {
|
|
m = a;
|
|
[m contains: [[NSString alloc] init]];
|
|
} else {
|
|
m = b;
|
|
[m contains: [[NSMutableString alloc] init]];
|
|
}
|
|
[m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
|
|
[m addObject: [[NSMutableString alloc] init]];
|
|
}
|
|
|
|
void verifyAPIusage(id a, MutableArray<NSString *> *b) {
|
|
b = a;
|
|
doStuff(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void trustExplicitCasts(MutableArray *a,
|
|
MutableArray<NSMutableString *> *b) {
|
|
b = (MutableArray<NSMutableString *> *)a;
|
|
[a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void subtypeOfGeneric(id d, MyMutableStringArray *a,
|
|
MutableArray<NSString *> *b,
|
|
MutableArray<NSNumber *> *c) {
|
|
d = a;
|
|
b = d;
|
|
c = d; // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void genericSubtypeOfGeneric(id d, ExceptionalArray<NSString *> *a,
|
|
MutableArray<NSString *> *b,
|
|
MutableArray<NSNumber *> *c) {
|
|
d = a;
|
|
[d contains: [[NSString alloc] init]];
|
|
[d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
|
|
b = d;
|
|
c = d; // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void genericSubtypeOfGenericReverse(id d, ExceptionalArray<NSString *> *a,
|
|
MutableArray<NSString *> *b,
|
|
MutableArray<NSNumber *> *c) {
|
|
a = d;
|
|
[d contains: [[NSString alloc] init]];
|
|
[d contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
|
|
b = d;
|
|
c = d; // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void inferenceFromAPI(id a) {
|
|
// Here the type parameter is invariant. There should be a warning every time
|
|
// when the type parameter changes during the conversions.
|
|
withMutArrString(a);
|
|
withMutArrMutableString(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void inferenceFromAPI2(id a) {
|
|
withMutArrMutableString(a);
|
|
withMutArrString(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void inferenceFromAPIWithLegacyTypes(LegacyMutableArray *a) {
|
|
withMutArrMutableString(a);
|
|
withMutArrString(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void inferenceFromAPIWithLegacyTypes2(LegacySpecialMutableArray *a) {
|
|
withMutArrString(a);
|
|
withMutArrMutableString(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void inferenceFromAPIWithLegacyTypes3(__kindof NSArray<NSString *> *a) {
|
|
LegacyMutableArray *b = a;
|
|
withMutArrString(b);
|
|
withMutArrMutableString(b); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void inferenceFromAPIWithBuggyTypes(BuggyMutableArray<NSMutableString *> *a) {
|
|
withMutArrString(a);
|
|
withMutArrMutableString(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void InferenceFromAPIWithBuggyTypes2(BuggySpecialMutableArray<NSMutableString *> *a) {
|
|
withMutArrMutableString(a);
|
|
withMutArrString(a); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void InferenceFromAPIWithBuggyTypes3(MutableArray<NSMutableString *> *a) {
|
|
id b = a;
|
|
withMutArrMutableString((BuggyMutableArray<NSMutableString *> *)b);
|
|
withMutArrString(b); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void InferenceFromAPIWithBuggyTypes4(__kindof NSArray<NSString *> *a) {
|
|
BuggyMutableArray<NSMutableString *> *b = a;
|
|
withMutArrString(b);
|
|
withMutArrMutableString(b); // expected-warning {{Conversion}}
|
|
}
|
|
|
|
NSArray<NSString *> *getStrings();
|
|
void enforceDynamicRulesInsteadOfStatic(NSArray<NSNumber *> *a) {
|
|
NSArray *b = a;
|
|
// Valid uses of NSArray of NSNumbers.
|
|
b = getStrings();
|
|
// Valid uses of NSArray of NSStrings.
|
|
}
|
|
|
|
void workWithProperties(NSArray<NSNumber *> *a) {
|
|
NSArray *b = a;
|
|
NSString *str = [b getObjAtIndex: 0]; // expected-warning {{Conversion}}
|
|
NSNumber *num = [b getObjAtIndex: 0];
|
|
str = [b firstObject]; // expected-warning {{Conversion}}
|
|
num = [b firstObject];
|
|
str = b.firstObject; // expected-warning {{Conversion}}
|
|
num = b.firstObject;
|
|
str = b[0]; // expected-warning {{Conversion}}
|
|
num = b[0];
|
|
}
|
|
|
|
void findMethodDeclInTrackedType(id m, NSArray<NSMutableString *> *a,
|
|
MutableArray<NSMutableString *> *b) {
|
|
a = b;
|
|
if (getUnknown() == 5) {
|
|
m = a;
|
|
[m addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
|
|
} else {
|
|
m = b;
|
|
[m addObject: [[NSMutableString alloc] init]];
|
|
}
|
|
}
|
|
|
|
void findMethodDeclInTrackedType2(__kindof NSArray<NSString *> *a,
|
|
MutableArray<NSMutableString *> *b) {
|
|
a = b;
|
|
if (getUnknown() == 5) {
|
|
[a addObject: [[NSString alloc] init]]; // expected-warning {{Conversion}}
|
|
} else {
|
|
[a addObject: [[NSMutableString alloc] init]];
|
|
}
|
|
}
|
|
|
|
void testUnannotatedLiterals() {
|
|
// ObjCArrayLiterals are not specialized in the AST.
|
|
NSArray *arr = @[@"A", @"B"];
|
|
[arr contains: [[NSNumber alloc] init]];
|
|
}
|
|
|
|
void testAnnotatedLiterals() {
|
|
NSArray<NSString *> *arr = @[@"A", @"B"];
|
|
NSArray *arr2 = arr;
|
|
[arr2 contains: [[NSNumber alloc] init]]; // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void nonExistentMethodDoesNotCrash(id a, MutableArray<NSMutableString *> *b) {
|
|
a = b;
|
|
[a nonExistentMethod];
|
|
}
|
|
|
|
void trackedClassVariables() {
|
|
Class c = [NSArray<NSString *> class];
|
|
NSArray<NSNumber *> *a = [c getEmpty]; // expected-warning {{Conversion}}
|
|
a = [c getEmpty2]; // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void nestedCollections(NSArray<NSArray<NSNumber *> *> *mat, NSArray<NSString *> *row) {
|
|
id temp = row;
|
|
[mat contains: temp]; // expected-warning {{Conversion}}
|
|
}
|
|
|
|
void testMistmatchedTypeCast(MutableArray<NSMutableString *> *a) {
|
|
MutableArray *b = (MutableArray<NSNumber *> *)a;
|
|
[b addObject: [[NSNumber alloc] init]];
|
|
id c = (UnrelatedType *)a;
|
|
[c addObject: [[NSNumber alloc] init]];
|
|
[c addObject: [[NSString alloc] init]];
|
|
}
|
|
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>incompatibleTypesErased</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>90</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>91</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>91</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>91</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>91</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>91</integer>
|
|
// CHECK: <key>col</key><integer>38</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>incompatibleTypesErased</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>91</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'NSArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>89</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>incompatibleTypesErased</string>
|
|
// CHECK: <key>issue_hash</key><string>5</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>93</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>40</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>42</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Calling 'getTypedStuff'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Calling 'getTypedStuff'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>76</integer>
|
|
// CHECK: <key>col</key><integer>1</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>depth</key><integer>1</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Entered call from 'crossProceduralErasedTypes'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Entered call from 'crossProceduralErasedTypes'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>76</integer>
|
|
// CHECK: <key>col</key><integer>1</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>76</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>77</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>77</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>77</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>77</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>77</integer>
|
|
// CHECK: <key>col</key><integer>37</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>1</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSNumber *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSNumber *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>77</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>77</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>78</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>78</integer>
|
|
// CHECK: <key>col</key><integer>8</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>42</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Returning from 'getTypedStuff'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Returning from 'getTypedStuff'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>42</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSNumber *> *' to incompatible type 'NSArray<NSString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>crossProceduralErasedTypes</string>
|
|
// CHECK: <key>issue_hash</key><string>1</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>97</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>103</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>103</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>103</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>103</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>103</integer>
|
|
// CHECK: <key>col</key><integer>38</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>103</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>102</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>incompatibleTypesErasedReverseConversion</string>
|
|
// CHECK: <key>issue_hash</key><string>4</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>105</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>110</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>110</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>110</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>110</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>110</integer>
|
|
// CHECK: <key>col</key><integer>38</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>110</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'id' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>109</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>idErasedIncompatibleTypesReverseConversion</string>
|
|
// CHECK: <key>issue_hash</key><string>4</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>112</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>idErasedIncompatibleTypes</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>118</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>119</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>119</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>119</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>119</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>119</integer>
|
|
// CHECK: <key>col</key><integer>38</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>idErasedIncompatibleTypes</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>119</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>117</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>idErasedIncompatibleTypes</string>
|
|
// CHECK: <key>issue_hash</key><string>5</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>121</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>126</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>126</integer>
|
|
// CHECK: <key>col</key><integer>4</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>130</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>130</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>130</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>130</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>130</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'MutableArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'MutableArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>130</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>130</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>131</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>131</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>131</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>131</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>133</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>133</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>133</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>133</integer>
|
|
// CHECK: <key>col</key><integer>17</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>133</integer>
|
|
// CHECK: <key>col</key><integer>39</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>pathSensitiveInference</string>
|
|
// CHECK: <key>issue_hash</key><string>8</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>133</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>138</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>138</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>138</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>138</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>138</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>verifyAPIusage</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>139</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>144</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>144</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>144</integer>
|
|
// CHECK: <key>col</key><integer>42</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from explicit cast (from 'MutableArray *' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from explicit cast (from 'MutableArray *' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>144</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>144</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>145</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>145</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>145</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>145</integer>
|
|
// CHECK: <key>col</key><integer>17</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>145</integer>
|
|
// CHECK: <key>col</key><integer>39</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>trustExplicitCasts</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>145</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>151</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>151</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>152</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>152</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>152</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>152</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>152</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>152</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>152</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>subtypeOfGeneric</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>153</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>161</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>161</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>161</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>161</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>161</integer>
|
|
// CHECK: <key>col</key><integer>38</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>genericSubtypeOfGeneric</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>161</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'ExceptionalArray<NSString *> *' to 'id')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>159</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>genericSubtypeOfGeneric</string>
|
|
// CHECK: <key>issue_hash</key><string>5</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>163</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>171</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>171</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>171</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>171</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>171</integer>
|
|
// CHECK: <key>col</key><integer>38</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>171</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'ExceptionalArray<NSString *> *' is inferred from implicit cast (from 'id' to 'ExceptionalArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>169</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'ExceptionalArray<NSString *> *' to incompatible type 'MutableArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>genericSubtypeOfGenericReverse</string>
|
|
// CHECK: <key>issue_hash</key><string>5</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>173</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>179</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>179</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>179</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>179</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>179</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>inferenceFromAPI</string>
|
|
// CHECK: <key>issue_hash</key><string>4</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>180</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>184</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>184</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>184</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'id' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>184</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>184</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>inferenceFromAPI2</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>185</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>189</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>189</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>189</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>189</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>189</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>190</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>194</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>194</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>194</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacySpecialMutableArray *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacySpecialMutableArray *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>194</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>194</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes2</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>195</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>199</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>199</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>199</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'LegacyMutableArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'LegacyMutableArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>199</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>199</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>200</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>200</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>200</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>200</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>200</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'LegacyMutableArray *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>200</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>200</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>inferenceFromAPIWithLegacyTypes3</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>201</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>205</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>205</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>205</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>205</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>205</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>inferenceFromAPIWithBuggyTypes</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>206</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>210</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>210</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>210</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'BuggySpecialMutableArray<NSMutableString *> *' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'BuggySpecialMutableArray<NSMutableString *> *' to 'MutableArray<NSMutableString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>210</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>210</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes2</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>211</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>215</integer>
|
|
// CHECK: <key>col</key><integer>10</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>215</integer>
|
|
// CHECK: <key>col</key><integer>10</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>215</integer>
|
|
// CHECK: <key>col</key><integer>10</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'id')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'id')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>215</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>215</integer>
|
|
// CHECK: <key>col</key><integer>4</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSMutableString *> *' to incompatible type 'MutableArray<NSString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes3</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>217</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>221</integer>
|
|
// CHECK: <key>col</key><integer>45</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>221</integer>
|
|
// CHECK: <key>col</key><integer>45</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>221</integer>
|
|
// CHECK: <key>col</key><integer>45</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'BuggyMutableArray<NSMutableString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from '__kindof NSArray<NSString *> *' to 'BuggyMutableArray<NSMutableString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>221</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>221</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>222</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>222</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>222</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>222</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>222</integer>
|
|
// CHECK: <key>col</key><integer>20</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSString *> *' is inferred from implicit cast (from 'BuggyMutableArray<NSMutableString *> *' to 'MutableArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>222</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>222</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>25</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'MutableArray<NSString *> *' to incompatible type 'MutableArray<NSMutableString *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>InferenceFromAPIWithBuggyTypes4</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>223</integer>
|
|
// CHECK: <key>col</key><integer>27</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>10</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>10</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>38</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>workWithProperties</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>236</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>23</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>workWithProperties</string>
|
|
// CHECK: <key>issue_hash</key><string>4</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>238</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>21</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>21</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>workWithProperties</string>
|
|
// CHECK: <key>issue_hash</key><string>6</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>240</integer>
|
|
// CHECK: <key>col</key><integer>11</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>16</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSNumber *> *' is inferred from implicit cast (from 'NSArray<NSNumber *> *' to 'NSArray *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>235</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>workWithProperties</string>
|
|
// CHECK: <key>issue_hash</key><string>8</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>242</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>248</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>248</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>248</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'NSArray<NSMutableString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to 'NSArray<NSMutableString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>248</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>248</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>249</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>249</integer>
|
|
// CHECK: <key>col</key><integer>4</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>249</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>249</integer>
|
|
// CHECK: <key>col</key><integer>4</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>250</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>250</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>250</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>250</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>251</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>251</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>251</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>251</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>251</integer>
|
|
// CHECK: <key>col</key><integer>41</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>findMethodDeclInTrackedType</string>
|
|
// CHECK: <key>issue_hash</key><string>4</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>251</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>260</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>260</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>260</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to '__kindof NSArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'MutableArray<NSMutableString *> *' is inferred from implicit cast (from 'MutableArray<NSMutableString *> *' to '__kindof NSArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>260</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>260</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>261</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>261</integer>
|
|
// CHECK: <key>col</key><integer>4</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>261</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>261</integer>
|
|
// CHECK: <key>col</key><integer>4</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>262</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>262</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>262</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>262</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>262</integer>
|
|
// CHECK: <key>col</key><integer>41</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSString *' to incompatible type 'NSMutableString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>findMethodDeclInTrackedType2</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>262</integer>
|
|
// CHECK: <key>col</key><integer>5</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>275</integer>
|
|
// CHECK: <key>col</key><integer>30</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>275</integer>
|
|
// CHECK: <key>col</key><integer>30</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>275</integer>
|
|
// CHECK: <key>col</key><integer>42</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray *' to 'NSArray<NSString *> *')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>275</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>275</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>277</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>277</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>277</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>277</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>277</integer>
|
|
// CHECK: <key>col</key><integer>41</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSNumber *' to incompatible type 'NSString *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>testAnnotatedLiterals</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>277</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>13</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>13</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>39</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from this context</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from this context</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>9</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>39</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>trackedClassVariables</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>287</integer>
|
|
// CHECK: <key>col</key><integer>28</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>13</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>13</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>39</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from this context</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from this context</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>286</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>19</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>trackedClassVariables</string>
|
|
// CHECK: <key>issue_hash</key><string>3</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>288</integer>
|
|
// CHECK: <key>col</key><integer>7</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>path</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>292</integer>
|
|
// CHECK: <key>col</key><integer>13</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>292</integer>
|
|
// CHECK: <key>col</key><integer>13</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>292</integer>
|
|
// CHECK: <key>col</key><integer>15</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Type 'NSArray<NSString *> *' is inferred from implicit cast (from 'NSArray<NSString *> *' to 'id')</string>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>292</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>292</integer>
|
|
// CHECK: <key>col</key><integer>4</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>control</string>
|
|
// CHECK: <key>edges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>start</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>3</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>end</key>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>21</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>kind</key><string>event</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <key>ranges</key>
|
|
// CHECK: <array>
|
|
// CHECK: <array>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>21</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: </array>
|
|
// CHECK: <key>depth</key><integer>0</integer>
|
|
// CHECK: <key>extended_message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>message</key>
|
|
// CHECK: <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|
|
// CHECK: <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *'</string>
|
|
// CHECK: <key>category</key><string>Core Foundation/Objective-C</string>
|
|
// CHECK: <key>type</key><string>Generics</string>
|
|
// CHECK: <key>check_name</key><string>core.DynamicTypePropagation</string>
|
|
// CHECK: <key>issue_context_kind</key><string>function</string>
|
|
// CHECK: <key>issue_context</key><string>nestedCollections</string>
|
|
// CHECK: <key>issue_hash</key><string>2</string>
|
|
// CHECK: <key>location</key>
|
|
// CHECK: <dict>
|
|
// CHECK: <key>line</key><integer>293</integer>
|
|
// CHECK: <key>col</key><integer>18</integer>
|
|
// CHECK: <key>file</key><integer>0</integer>
|
|
// CHECK: </dict>
|
|
// CHECK: </dict>
|
|
// CHECK: </array>
|