Index: cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp =================================================================== --- cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp +++ cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp @@ -41,7 +41,10 @@ // some cases the most derived type is not the most informative one about the // type parameters. This types that are stored for each symbol in this map must // be specialized. -REGISTER_MAP_WITH_PROGRAMSTATE(TypeParamMap, SymbolRef, +// TODO: In some case the type stored in this map is exactly the same that is +// stored in DynamicTypeMap. We should no store duplicated information in those +// cases. +REGISTER_MAP_WITH_PROGRAMSTATE(MostSpecializedTypeArgsMap, SymbolRef, const ObjCObjectPointerType *) namespace { @@ -96,11 +99,11 @@ SymbolRef Sym, CheckerContext &C, const Stmt *ReportedNode = nullptr) const; - void checkReturnType(const ObjCMessageExpr *MessageExpr, - const ObjCObjectPointerType *TrackedType, SymbolRef Sym, - const ObjCMethodDecl *Method, - ArrayRef TypeArgs, bool SubscriptOrProperty, - CheckerContext &C) const; + bool isReturnValueMisused(const ObjCMessageExpr *MessageExpr, + const ObjCObjectPointerType *TrackedType, + SymbolRef Sym, const ObjCMethodDecl *Method, + ArrayRef TypeArgs, + bool SubscriptOrProperty, CheckerContext &C) const; public: void checkPreCall(const CallEvent &Call, CheckerContext &C) const; @@ -132,11 +135,13 @@ return; } - TypeParamMapTy TyParMap = State->get(); - for (TypeParamMapTy::iterator I = TyParMap.begin(), E = TyParMap.end(); + MostSpecializedTypeArgsMapTy TyArgMap = + State->get(); + for (MostSpecializedTypeArgsMapTy::iterator I = TyArgMap.begin(), + E = TyArgMap.end(); I != E; ++I) { if (SR.isDead(I->first)) { - State = State->remove(I->first); + State = State->remove(I->first); } } @@ -455,13 +460,13 @@ // Case (1) if (!Current) { if (StaticUpperBound->isUnspecialized()) { - State = State->set(Sym, StaticLowerBound); + State = State->set(Sym, StaticLowerBound); return true; } // Upper bound is specialized. const ObjCObjectPointerType *WithMostInfo = getMostInformativeDerivedClass(StaticUpperBound, StaticLowerBound, C); - State = State->set(Sym, WithMostInfo); + State = State->set(Sym, WithMostInfo); return true; } @@ -479,7 +484,7 @@ getMostInformativeDerivedClass(WithMostInfo, StaticLowerBound, C); if (WithMostInfo == *Current) return false; - State = State->set(Sym, WithMostInfo); + State = State->set(Sym, WithMostInfo); return true; } @@ -487,7 +492,7 @@ const ObjCObjectPointerType *WithMostInfo = getMostInformativeDerivedClass(*Current, StaticLowerBound, C); if (WithMostInfo != *Current) { - State = State->set(Sym, WithMostInfo); + State = State->set(Sym, WithMostInfo); return true; } @@ -540,7 +545,7 @@ bool DestToOrig = ASTCtxt.canAssignObjCInterfaces(OrigObjectPtrType, DestObjectPtrType); const ObjCObjectPointerType *const *TrackedType = - State->get(Sym); + State->get(Sym); // Downcasts and upcasts handled in an uniform way regardless of being // explicit. Explicit casts however can happen between mismatched types. @@ -548,10 +553,10 @@ // Mismatched types. If the DestType specialized, store it. Forget the // tracked type otherwise. if (DestObjectPtrType->isSpecialized()) { - State = State->set(Sym, DestObjectPtrType); + State = State->set(Sym, DestObjectPtrType); C.addTransition(State, AfterTypeProp); } else if (TrackedType) { - State = State->remove(Sym); + State = State->remove(Sym); C.addTransition(State, AfterTypeProp); } return; @@ -596,41 +601,6 @@ return E; } -/// This callback is used to infer the types for Class variables. This info is -/// used later to validate messages that sent to classes. Class variables are -/// initialized with by invoking the 'class' method on a class. -void DynamicTypePropagation::checkPostObjCMessage(const ObjCMethodCall &M, - CheckerContext &C) const { - const ObjCMessageExpr *MessageExpr = M.getOriginExpr(); - - SymbolRef Sym = M.getReturnValue().getAsSymbol(); - if (!Sym) - return; - - Selector Sel = MessageExpr->getSelector(); - // We are only interested in cases where the class method is invoked on a - // class. This method is provided by the runtime and available on all classes. - if (MessageExpr->getReceiverKind() != ObjCMessageExpr::Class || - Sel.getAsString() != "class") - return; - - QualType ReceiverType = MessageExpr->getClassReceiver(); - const auto *ReceiverClassType = ReceiverType->getAs(); - QualType ReceiverClassPointerType = - C.getASTContext().getObjCObjectPointerType( - QualType(ReceiverClassType, 0)); - - if (!ReceiverClassType->isSpecialized()) - return; - const auto *InferredType = - ReceiverClassPointerType->getAs(); - assert(InferredType); - - ProgramStateRef State = C.getState(); - State = State->set(Sym, InferredType); - C.addTransition(State); -} - static bool isObjCTypeParamDependent(QualType Type) { // It is illegal to typedef parameterized types inside an interface. Therfore // an Objective-C type can only be dependent on a type parameter when the type @@ -692,24 +662,40 @@ return Method ? Method : MessageExpr->getMethodDecl(); } +/// Get the returned ObjCObjectPointerType by a method based on the tracked type +/// information, or null pointer when the returned type is not an +/// ObjCObjectPointerType. +static const ObjCObjectPointerType *getReturnTypeForMethod( + const ObjCMethodDecl *Method, ArrayRef TypeArgs, + const ObjCObjectPointerType *SelfType, ASTContext &C) { + QualType StaticResultType = Method->getReturnType(); + + // Is the return type declared as instance type? + if (StaticResultType == C.getObjCInstanceType()) + return SelfType; + + // Check whether the result type depends on a type parameter. + if (!isObjCTypeParamDependent(StaticResultType)) + return nullptr; + + QualType ResultType = StaticResultType.substObjCTypeArgs( + C, TypeArgs, ObjCSubstitutionContext::Result); + + return ResultType->getAs(); +} + /// Validate that the return type of a message expression is used correctly. -void DynamicTypePropagation::checkReturnType( +/// Returns true in case an error is detected. +bool DynamicTypePropagation::isReturnValueMisused( const ObjCMessageExpr *MessageExpr, - const ObjCObjectPointerType *TrackedType, SymbolRef Sym, + const ObjCObjectPointerType *SeflType, SymbolRef Sym, const ObjCMethodDecl *Method, ArrayRef TypeArgs, bool SubscriptOrProperty, CheckerContext &C) const { - QualType StaticResultType = Method->getReturnType(); ASTContext &ASTCtxt = C.getASTContext(); - // Check whether the result type was a type parameter. - bool IsDeclaredAsInstanceType = - StaticResultType == ASTCtxt.getObjCInstanceType(); - if (!isObjCTypeParamDependent(StaticResultType) && !IsDeclaredAsInstanceType) - return; - - QualType ResultType = Method->getReturnType().substObjCTypeArgs( - ASTCtxt, TypeArgs, ObjCSubstitutionContext::Result); - if (IsDeclaredAsInstanceType) - ResultType = QualType(TrackedType, 0); + const auto *ResultPtrType = + getReturnTypeForMethod(Method, TypeArgs, SeflType, ASTCtxt); + if (!ResultPtrType) + return false; const Stmt *Parent = C.getCurrentAnalysisDeclContext()->getParentMap().getParent(MessageExpr); @@ -721,14 +707,12 @@ const auto *ImplicitCast = dyn_cast_or_null(Parent); if (!ImplicitCast || ImplicitCast->getCastKind() != CK_BitCast) - return; + return false; const auto *ExprTypeAboveCast = ImplicitCast->getType()->getAs(); - const auto *ResultPtrType = ResultType->getAs(); - - if (!ExprTypeAboveCast || !ResultPtrType) - return; + if (!ExprTypeAboveCast) + return false; // Only warn on unrelated types to avoid too many false positives on // downcasts. @@ -737,8 +721,9 @@ static CheckerProgramPointTag Tag(this, "ReturnTypeMismatch"); ExplodedNode *N = C.addTransition(C.getState(), &Tag); reportGenericsBug(ResultPtrType, ExprTypeAboveCast, N, Sym, C); - return; + return true; } + return false; } /// When the receiver has a tracked type, use that type to validate the @@ -751,7 +736,7 @@ return; const ObjCObjectPointerType *const *TrackedType = - State->get(Sym); + State->get(Sym); if (!TrackedType) return; @@ -797,7 +782,7 @@ SymbolRef ArgSym = ArgSVal.getAsSymbol(); if (ArgSym) { const ObjCObjectPointerType *const *TrackedArgType = - State->get(ArgSym); + State->get(ArgSym); if (TrackedArgType && ASTCtxt.canAssignObjCInterfaces(ArgObjectPtrType, *TrackedArgType)) { ArgObjectPtrType = *TrackedArgType; @@ -813,9 +798,84 @@ return; } } +} + +/// This callback is used to infer the types for Class variables. This info is +/// used later to validate messages that sent to classes. Class variables are +/// initialized with by invoking the 'class' method on a class. +/// This method is also used to infer the type information for the return +/// types. +// TODO: right now it only tracks generic types. Extend this to track every +// type in the DynamicTypeMap and diagnose type errors! +void DynamicTypePropagation::checkPostObjCMessage(const ObjCMethodCall &M, + CheckerContext &C) const { + const ObjCMessageExpr *MessageExpr = M.getOriginExpr(); + + SymbolRef RetSym = M.getReturnValue().getAsSymbol(); + if (!RetSym) + return; + + Selector Sel = MessageExpr->getSelector(); + ProgramStateRef State = C.getState(); + // Inference for class variables. + // We are only interested in cases where the class method is invoked on a + // class. This method is provided by the runtime and available on all classes. + if (MessageExpr->getReceiverKind() == ObjCMessageExpr::Class && + Sel.getAsString() == "class") { + + QualType ReceiverType = MessageExpr->getClassReceiver(); + const auto *ReceiverClassType = ReceiverType->getAs(); + QualType ReceiverClassPointerType = + C.getASTContext().getObjCObjectPointerType( + QualType(ReceiverClassType, 0)); + + if (!ReceiverClassType->isSpecialized()) + return; + const auto *InferredType = + ReceiverClassPointerType->getAs(); + assert(InferredType); + + State = State->set(RetSym, InferredType); + C.addTransition(State); + return; + } + + // Tracking for return types. + SymbolRef RecSym = M.getReceiverSVal().getAsSymbol(); + if (!RecSym) + return; + + const ObjCObjectPointerType *const *TrackedType = + State->get(RecSym); + if (!TrackedType) + return; + + ASTContext &ASTCtxt = C.getASTContext(); + const ObjCMethodDecl *Method = + findMethodDecl(MessageExpr, *TrackedType, ASTCtxt); + if (!Method) + return; - checkReturnType(MessageExpr, *TrackedType, Sym, Method, *TypeArgs, - M.getMessageKind() != OCM_Message, C); + Optional> TypeArgs = + (*TrackedType)->getObjCSubstitutions(Method->getDeclContext()); + if (!TypeArgs) + return; + + if (isReturnValueMisused(MessageExpr, *TrackedType, RecSym, Method, *TypeArgs, + M.getMessageKind() != OCM_Message, C)) + return; + + const auto *ResultPtrType = + getReturnTypeForMethod(Method, *TypeArgs, *TrackedType, ASTCtxt); + if (!ResultPtrType || ResultPtrType->isUnspecialized()) + return; + + // When the result is a specialized type and it is not tracked yet, track it + // for the result symbol. + if (!State->get(RetSym)) { + State = State->set(RetSym, ResultPtrType); + C.addTransition(State); + } } void DynamicTypePropagation::reportGenericsBug( @@ -849,9 +909,9 @@ ProgramStateRef statePrev = PrevN->getState(); const ObjCObjectPointerType *const *TrackedType = - state->get(Sym); + state->get(Sym); const ObjCObjectPointerType *const *TrackedTypePrev = - statePrev->get(Sym); + statePrev->get(Sym); if (!TrackedType) return nullptr; Index: cfe/trunk/test/Analysis/generics.m =================================================================== --- cfe/trunk/test/Analysis/generics.m +++ cfe/trunk/test/Analysis/generics.m @@ -35,6 +35,9 @@ @interface NSNumber : NSObject @end +@interface NSSet : NSObject +@end + @interface NSArray<__covariant ObjectType> : NSObject + (instancetype)arrayWithObjects:(const ObjectType [])objects count:(NSUInteger)count; + (instancetype)getEmpty; @@ -301,6 +304,31 @@ [c addObject: [[NSString alloc] init]]; } +void returnCollectionToIdVariable(NSArray *> *arr) { + NSArray *erased = arr; + id a = [erased firstObject]; + NSArray *res = a; // expected-warning {{Conversion}} +} + +void eraseSpecialization(NSArray *> *arr) { + NSArray *erased = arr; + NSArray* a = [erased firstObject]; + NSArray *res = a; // expected-warning {{Conversion}} +} + +void returnToUnrelatedType(NSArray *> *arr) { + NSArray *erased = arr; + NSSet* a = [erased firstObject]; // expected-warning {{Conversion}} + (void)a; +} + +void returnToIdVariable(NSArray *arr) { + NSArray *erased = arr; + id a = [erased firstObject]; + // TODO: Warn in this case. Possibly in a separate checker. + NSNumber *res = a; +} + // CHECK: // CHECK: // CHECK: path @@ -309,7 +337,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: @@ -317,12 +345,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: @@ -342,12 +370,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col3 // CHECK: file0 // CHECK: @@ -355,12 +383,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col3 // CHECK: file0 // CHECK: @@ -376,12 +404,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col3 // CHECK: file0 // CHECK: @@ -389,12 +417,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col7 // CHECK: file0 // CHECK: @@ -406,7 +434,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col7 // CHECK: file0 // CHECK: @@ -414,12 +442,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col7 // CHECK: file0 // CHECK: @@ -441,7 +469,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line90 +// CHECK: line93 // CHECK: col7 // CHECK: file0 // CHECK: @@ -453,7 +481,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: @@ -461,12 +489,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: @@ -486,12 +514,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col3 // CHECK: file0 // CHECK: @@ -499,12 +527,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line91 +// CHECK: line94 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line91 +// CHECK: line94 // CHECK: col3 // CHECK: file0 // CHECK: @@ -516,7 +544,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line91 +// CHECK: line94 // CHECK: col3 // CHECK: file0 // CHECK: @@ -524,12 +552,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line91 +// CHECK: line94 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line91 +// CHECK: line94 // CHECK: col38 // CHECK: file0 // CHECK: @@ -551,7 +579,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line91 +// CHECK: line94 // CHECK: col3 // CHECK: file0 // CHECK: @@ -563,7 +591,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: @@ -571,12 +599,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col7 // CHECK: file0 // CHECK: @@ -596,12 +624,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line89 +// CHECK: line92 // CHECK: col3 // CHECK: file0 // CHECK: @@ -609,12 +637,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col9 // CHECK: file0 // CHECK: @@ -630,12 +658,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col9 // CHECK: file0 // CHECK: @@ -643,12 +671,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col11 // CHECK: file0 // CHECK: @@ -660,7 +688,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col11 // CHECK: file0 // CHECK: @@ -668,12 +696,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col11 // CHECK: file0 // CHECK: @@ -695,7 +723,7 @@ // CHECK: issue_hash5 // CHECK: location // CHECK: -// CHECK: line93 +// CHECK: line96 // CHECK: col11 // CHECK: file0 // CHECK: @@ -711,12 +739,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col9 // CHECK: file0 // CHECK: @@ -724,12 +752,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col40 // CHECK: file0 // CHECK: @@ -741,7 +769,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: @@ -749,12 +777,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col42 // CHECK: file0 // CHECK: @@ -770,7 +798,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line76 +// CHECK: line79 // CHECK: col1 // CHECK: file0 // CHECK: @@ -788,12 +816,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line76 +// CHECK: line79 // CHECK: col1 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line76 +// CHECK: line79 // CHECK: col7 // CHECK: file0 // CHECK: @@ -801,12 +829,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line80 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line80 // CHECK: col9 // CHECK: file0 // CHECK: @@ -818,7 +846,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line77 +// CHECK: line80 // CHECK: col28 // CHECK: file0 // CHECK: @@ -826,12 +854,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line80 // CHECK: col28 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line80 // CHECK: col37 // CHECK: file0 // CHECK: @@ -851,12 +879,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line80 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line77 +// CHECK: line80 // CHECK: col9 // CHECK: file0 // CHECK: @@ -864,12 +892,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line78 +// CHECK: line81 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line78 +// CHECK: line81 // CHECK: col8 // CHECK: file0 // CHECK: @@ -881,7 +909,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: @@ -889,12 +917,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col42 // CHECK: file0 // CHECK: @@ -910,7 +938,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: @@ -918,12 +946,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col42 // CHECK: file0 // CHECK: @@ -945,7 +973,7 @@ // CHECK: issue_hash1 // CHECK: location // CHECK: -// CHECK: line97 +// CHECK: line100 // CHECK: col28 // CHECK: file0 // CHECK: @@ -957,7 +985,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col7 // CHECK: file0 // CHECK: @@ -965,12 +993,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col7 // CHECK: file0 // CHECK: @@ -990,12 +1018,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1003,12 +1031,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line103 +// CHECK: line106 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line103 +// CHECK: line106 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1020,7 +1048,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line103 +// CHECK: line106 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1028,12 +1056,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line103 +// CHECK: line106 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line103 +// CHECK: line106 // CHECK: col38 // CHECK: file0 // CHECK: @@ -1055,7 +1083,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line103 +// CHECK: line106 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1067,7 +1095,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1075,12 +1103,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1100,12 +1128,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line102 +// CHECK: line105 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1113,12 +1141,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1134,12 +1162,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1147,12 +1175,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1164,7 +1192,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1172,12 +1200,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1199,7 +1227,7 @@ // CHECK: issue_hash4 // CHECK: location // CHECK: -// CHECK: line105 +// CHECK: line108 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1211,7 +1239,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1219,12 +1247,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1244,12 +1272,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1257,12 +1285,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line110 +// CHECK: line113 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line110 +// CHECK: line113 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1274,7 +1302,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line110 +// CHECK: line113 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1282,12 +1310,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line110 +// CHECK: line113 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line110 +// CHECK: line113 // CHECK: col38 // CHECK: file0 // CHECK: @@ -1309,7 +1337,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line110 +// CHECK: line113 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1321,7 +1349,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1329,12 +1357,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1354,12 +1382,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line109 +// CHECK: line112 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1367,12 +1395,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1388,12 +1416,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1401,12 +1429,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1418,7 +1446,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1426,12 +1454,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1453,7 +1481,7 @@ // CHECK: issue_hash4 // CHECK: location // CHECK: -// CHECK: line112 +// CHECK: line115 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1465,7 +1493,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1473,12 +1501,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1498,12 +1526,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1511,12 +1539,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1532,12 +1560,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1545,12 +1573,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1562,7 +1590,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1570,12 +1598,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1597,7 +1625,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line118 +// CHECK: line121 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1609,7 +1637,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1617,12 +1645,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1642,12 +1670,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1655,12 +1683,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line119 +// CHECK: line122 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line119 +// CHECK: line122 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1672,7 +1700,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line119 +// CHECK: line122 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1680,12 +1708,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line119 +// CHECK: line122 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line119 +// CHECK: line122 // CHECK: col38 // CHECK: file0 // CHECK: @@ -1707,7 +1735,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line119 +// CHECK: line122 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1719,7 +1747,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1727,12 +1755,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col7 // CHECK: file0 // CHECK: @@ -1752,12 +1780,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line117 +// CHECK: line120 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1765,12 +1793,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1786,12 +1814,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1799,12 +1827,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1816,7 +1844,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1824,12 +1852,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1851,7 +1879,7 @@ // CHECK: issue_hash5 // CHECK: location // CHECK: -// CHECK: line121 +// CHECK: line124 // CHECK: col11 // CHECK: file0 // CHECK: @@ -1867,12 +1895,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line126 +// CHECK: line129 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line126 +// CHECK: line129 // CHECK: col4 // CHECK: file0 // CHECK: @@ -1880,12 +1908,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line130 +// CHECK: line133 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line130 +// CHECK: line133 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1897,7 +1925,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line130 +// CHECK: line133 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1905,12 +1933,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line130 +// CHECK: line133 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line130 +// CHECK: line133 // CHECK: col9 // CHECK: file0 // CHECK: @@ -1930,12 +1958,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line130 +// CHECK: line133 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line130 +// CHECK: line133 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1943,12 +1971,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line131 +// CHECK: line134 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line131 +// CHECK: line134 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1964,12 +1992,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line131 +// CHECK: line134 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line131 +// CHECK: line134 // CHECK: col5 // CHECK: file0 // CHECK: @@ -1977,12 +2005,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line133 +// CHECK: line136 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line133 +// CHECK: line136 // CHECK: col3 // CHECK: file0 // CHECK: @@ -1994,7 +2022,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line133 +// CHECK: line136 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2002,12 +2030,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line133 +// CHECK: line136 // CHECK: col17 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line133 +// CHECK: line136 // CHECK: col39 // CHECK: file0 // CHECK: @@ -2029,7 +2057,7 @@ // CHECK: issue_hash8 // CHECK: location // CHECK: -// CHECK: line133 +// CHECK: line136 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2041,7 +2069,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line138 +// CHECK: line141 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2049,12 +2077,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line138 +// CHECK: line141 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line138 +// CHECK: line141 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2074,12 +2102,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line138 +// CHECK: line141 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line138 +// CHECK: line141 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2087,12 +2115,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col9 // CHECK: file0 // CHECK: @@ -2108,12 +2136,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col9 // CHECK: file0 // CHECK: @@ -2121,12 +2149,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col11 // CHECK: file0 // CHECK: @@ -2138,7 +2166,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col11 // CHECK: file0 // CHECK: @@ -2146,12 +2174,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col11 // CHECK: file0 // CHECK: @@ -2173,7 +2201,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line139 +// CHECK: line142 // CHECK: col11 // CHECK: file0 // CHECK: @@ -2185,7 +2213,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line144 +// CHECK: line147 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2193,12 +2221,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line144 +// CHECK: line147 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line144 +// CHECK: line147 // CHECK: col42 // CHECK: file0 // CHECK: @@ -2218,12 +2246,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line144 +// CHECK: line147 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line144 +// CHECK: line147 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2231,12 +2259,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line145 +// CHECK: line148 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line145 +// CHECK: line148 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2248,7 +2276,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line145 +// CHECK: line148 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2256,12 +2284,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line145 +// CHECK: line148 // CHECK: col17 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line145 +// CHECK: line148 // CHECK: col39 // CHECK: file0 // CHECK: @@ -2283,7 +2311,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line145 +// CHECK: line148 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2299,12 +2327,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line151 +// CHECK: line154 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line151 +// CHECK: line154 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2312,12 +2340,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line152 +// CHECK: line155 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line152 +// CHECK: line155 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2329,7 +2357,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line152 +// CHECK: line155 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2337,12 +2365,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line152 +// CHECK: line155 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line152 +// CHECK: line155 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2362,12 +2390,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line152 +// CHECK: line155 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line152 +// CHECK: line155 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2375,12 +2403,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2396,12 +2424,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2409,12 +2437,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2426,7 +2454,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2434,12 +2462,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2461,7 +2489,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line153 +// CHECK: line156 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2473,7 +2501,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2481,12 +2509,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2506,12 +2534,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2519,12 +2547,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line161 +// CHECK: line164 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line161 +// CHECK: line164 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2536,7 +2564,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line161 +// CHECK: line164 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2544,12 +2572,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line161 +// CHECK: line164 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line161 +// CHECK: line164 // CHECK: col38 // CHECK: file0 // CHECK: @@ -2571,7 +2599,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line161 +// CHECK: line164 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2583,7 +2611,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2591,12 +2619,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2616,12 +2644,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line159 +// CHECK: line162 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2629,12 +2657,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2650,12 +2678,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2663,12 +2691,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2680,7 +2708,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2688,12 +2716,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2715,7 +2743,7 @@ // CHECK: issue_hash5 // CHECK: location // CHECK: -// CHECK: line163 +// CHECK: line166 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2727,7 +2755,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2735,12 +2763,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2760,12 +2788,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2773,12 +2801,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line171 +// CHECK: line174 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line171 +// CHECK: line174 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2790,7 +2818,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line171 +// CHECK: line174 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2798,12 +2826,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line171 +// CHECK: line174 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line171 +// CHECK: line174 // CHECK: col38 // CHECK: file0 // CHECK: @@ -2825,7 +2853,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line171 +// CHECK: line174 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2837,7 +2865,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2845,12 +2873,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2870,12 +2898,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line169 +// CHECK: line172 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2883,12 +2911,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2904,12 +2932,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col3 // CHECK: file0 // CHECK: @@ -2917,12 +2945,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2934,7 +2962,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2942,12 +2970,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2969,7 +2997,7 @@ // CHECK: issue_hash5 // CHECK: location // CHECK: -// CHECK: line173 +// CHECK: line176 // CHECK: col7 // CHECK: file0 // CHECK: @@ -2981,7 +3009,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line179 +// CHECK: line182 // CHECK: col20 // CHECK: file0 // CHECK: @@ -2989,12 +3017,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line179 +// CHECK: line182 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line179 +// CHECK: line182 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3014,12 +3042,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line179 +// CHECK: line182 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line179 +// CHECK: line182 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3027,12 +3055,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3048,12 +3076,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3061,12 +3089,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3078,7 +3106,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3086,12 +3114,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3113,7 +3141,7 @@ // CHECK: issue_hash4 // CHECK: location // CHECK: -// CHECK: line180 +// CHECK: line183 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3125,7 +3153,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line184 +// CHECK: line187 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3133,12 +3161,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line184 +// CHECK: line187 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line184 +// CHECK: line187 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3158,12 +3186,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line184 +// CHECK: line187 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line184 +// CHECK: line187 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3171,12 +3199,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3192,12 +3220,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3205,12 +3233,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3222,7 +3250,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3230,12 +3258,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3257,7 +3285,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line185 +// CHECK: line188 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3269,7 +3297,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line189 +// CHECK: line192 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3277,12 +3305,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line189 +// CHECK: line192 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line189 +// CHECK: line192 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3302,12 +3330,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line189 +// CHECK: line192 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line189 +// CHECK: line192 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3315,12 +3343,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3336,12 +3364,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3349,12 +3377,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3366,7 +3394,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3374,12 +3402,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3401,7 +3429,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line190 +// CHECK: line193 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3413,7 +3441,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line194 +// CHECK: line197 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3421,12 +3449,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line194 +// CHECK: line197 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line194 +// CHECK: line197 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3446,12 +3474,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line194 +// CHECK: line197 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line194 +// CHECK: line197 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3459,12 +3487,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3480,12 +3508,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3493,12 +3521,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3510,7 +3538,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3518,12 +3546,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3545,7 +3573,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line195 +// CHECK: line198 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3557,7 +3585,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line199 +// CHECK: line202 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3565,12 +3593,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line199 +// CHECK: line202 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line199 +// CHECK: line202 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3590,12 +3618,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line199 +// CHECK: line202 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line199 +// CHECK: line202 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3603,12 +3631,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line200 +// CHECK: line203 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line200 +// CHECK: line203 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3620,7 +3648,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line200 +// CHECK: line203 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3628,12 +3656,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line200 +// CHECK: line203 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line200 +// CHECK: line203 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3653,12 +3681,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line200 +// CHECK: line203 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line200 +// CHECK: line203 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3666,12 +3694,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3687,12 +3715,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3700,12 +3728,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3717,7 +3745,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3725,12 +3753,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3752,7 +3780,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line201 +// CHECK: line204 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3764,7 +3792,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line205 +// CHECK: line208 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3772,12 +3800,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line205 +// CHECK: line208 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line205 +// CHECK: line208 // CHECK: col20 // CHECK: file0 // CHECK: @@ -3797,12 +3825,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line205 +// CHECK: line208 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line205 +// CHECK: line208 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3810,12 +3838,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3831,12 +3859,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3844,12 +3872,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3861,7 +3889,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3869,12 +3897,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3896,7 +3924,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line206 +// CHECK: line209 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3908,7 +3936,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line210 +// CHECK: line213 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3916,12 +3944,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line210 +// CHECK: line213 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line210 +// CHECK: line213 // CHECK: col27 // CHECK: file0 // CHECK: @@ -3941,12 +3969,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line210 +// CHECK: line213 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line210 +// CHECK: line213 // CHECK: col25 // CHECK: file0 // CHECK: @@ -3954,12 +3982,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3975,12 +4003,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col18 // CHECK: file0 // CHECK: @@ -3988,12 +4016,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4005,7 +4033,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4013,12 +4041,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4040,7 +4068,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line211 +// CHECK: line214 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4052,7 +4080,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line215 +// CHECK: line218 // CHECK: col10 // CHECK: file0 // CHECK: @@ -4060,12 +4088,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line215 +// CHECK: line218 // CHECK: col10 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line215 +// CHECK: line218 // CHECK: col10 // CHECK: file0 // CHECK: @@ -4085,12 +4113,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line215 +// CHECK: line218 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line215 +// CHECK: line218 // CHECK: col4 // CHECK: file0 // CHECK: @@ -4098,12 +4126,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col18 // CHECK: file0 // CHECK: @@ -4119,12 +4147,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col18 // CHECK: file0 // CHECK: @@ -4132,12 +4160,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4149,7 +4177,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4157,12 +4185,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4184,7 +4212,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line217 +// CHECK: line220 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4196,7 +4224,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line221 +// CHECK: line224 // CHECK: col45 // CHECK: file0 // CHECK: @@ -4204,12 +4232,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line221 +// CHECK: line224 // CHECK: col45 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line221 +// CHECK: line224 // CHECK: col45 // CHECK: file0 // CHECK: @@ -4229,12 +4257,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line221 +// CHECK: line224 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line221 +// CHECK: line224 // CHECK: col19 // CHECK: file0 // CHECK: @@ -4242,12 +4270,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line222 +// CHECK: line225 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line222 +// CHECK: line225 // CHECK: col18 // CHECK: file0 // CHECK: @@ -4259,7 +4287,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line222 +// CHECK: line225 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4267,12 +4295,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line222 +// CHECK: line225 // CHECK: col20 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line222 +// CHECK: line225 // CHECK: col20 // CHECK: file0 // CHECK: @@ -4292,12 +4320,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line222 +// CHECK: line225 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line222 +// CHECK: line225 // CHECK: col18 // CHECK: file0 // CHECK: @@ -4305,12 +4333,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col25 // CHECK: file0 // CHECK: @@ -4326,12 +4354,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col25 // CHECK: file0 // CHECK: @@ -4339,12 +4367,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col27 // CHECK: file0 // CHECK: @@ -4356,7 +4384,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col27 // CHECK: file0 // CHECK: @@ -4364,12 +4392,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col27 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col27 // CHECK: file0 // CHECK: @@ -4391,7 +4419,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line223 +// CHECK: line226 // CHECK: col27 // CHECK: file0 // CHECK: @@ -4403,7 +4431,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4411,12 +4439,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4436,12 +4464,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4449,12 +4477,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col10 // CHECK: file0 // CHECK: @@ -4470,12 +4498,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col10 // CHECK: file0 // CHECK: @@ -4483,12 +4511,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col19 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col19 // CHECK: file0 // CHECK: @@ -4500,7 +4528,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col19 // CHECK: file0 // CHECK: @@ -4508,12 +4536,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col19 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col38 // CHECK: file0 // CHECK: @@ -4535,7 +4563,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line236 +// CHECK: line239 // CHECK: col19 // CHECK: file0 // CHECK: @@ -4547,7 +4575,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4555,12 +4583,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4580,12 +4608,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4593,12 +4621,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col5 // CHECK: file0 // CHECK: @@ -4614,12 +4642,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col5 // CHECK: file0 // CHECK: @@ -4627,12 +4655,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4644,7 +4672,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4652,12 +4680,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col23 // CHECK: file0 // CHECK: @@ -4679,7 +4707,7 @@ // CHECK: issue_hash4 // CHECK: location // CHECK: -// CHECK: line238 +// CHECK: line241 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4691,7 +4719,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4699,12 +4727,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4724,12 +4752,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4737,12 +4765,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col5 // CHECK: file0 // CHECK: @@ -4758,12 +4786,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col5 // CHECK: file0 // CHECK: @@ -4771,12 +4799,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col21 // CHECK: file0 // CHECK: @@ -4788,7 +4816,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col11 // CHECK: file0 // CHECK: @@ -4796,12 +4824,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col11 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col21 // CHECK: file0 // CHECK: @@ -4823,7 +4851,7 @@ // CHECK: issue_hash6 // CHECK: location // CHECK: -// CHECK: line240 +// CHECK: line243 // CHECK: col11 // CHECK: file0 // CHECK: @@ -4835,7 +4863,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4843,12 +4871,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col16 // CHECK: file0 // CHECK: @@ -4868,12 +4896,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line235 +// CHECK: line238 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4881,12 +4909,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col5 // CHECK: file0 // CHECK: @@ -4902,12 +4930,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col5 // CHECK: file0 // CHECK: @@ -4915,12 +4943,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4932,7 +4960,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4940,12 +4968,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col9 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4967,7 +4995,7 @@ // CHECK: issue_hash8 // CHECK: location // CHECK: -// CHECK: line242 +// CHECK: line245 // CHECK: col9 // CHECK: file0 // CHECK: @@ -4979,7 +5007,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line248 +// CHECK: line251 // CHECK: col7 // CHECK: file0 // CHECK: @@ -4987,12 +5015,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line248 +// CHECK: line251 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line248 +// CHECK: line251 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5012,12 +5040,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line248 +// CHECK: line251 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line248 +// CHECK: line251 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5025,12 +5053,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line249 +// CHECK: line252 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line249 +// CHECK: line252 // CHECK: col4 // CHECK: file0 // CHECK: @@ -5046,12 +5074,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line249 +// CHECK: line252 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line249 +// CHECK: line252 // CHECK: col4 // CHECK: file0 // CHECK: @@ -5059,12 +5087,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line250 +// CHECK: line253 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line250 +// CHECK: line253 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5080,12 +5108,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line250 +// CHECK: line253 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line250 +// CHECK: line253 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5093,12 +5121,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line251 +// CHECK: line254 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line251 +// CHECK: line254 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5110,7 +5138,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line251 +// CHECK: line254 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5118,12 +5146,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line251 +// CHECK: line254 // CHECK: col19 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line251 +// CHECK: line254 // CHECK: col41 // CHECK: file0 // CHECK: @@ -5145,7 +5173,7 @@ // CHECK: issue_hash4 // CHECK: location // CHECK: -// CHECK: line251 +// CHECK: line254 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5157,7 +5185,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line260 +// CHECK: line263 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5165,12 +5193,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line260 +// CHECK: line263 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line260 +// CHECK: line263 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5190,12 +5218,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line260 +// CHECK: line263 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line260 +// CHECK: line263 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5203,12 +5231,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line261 +// CHECK: line264 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line261 +// CHECK: line264 // CHECK: col4 // CHECK: file0 // CHECK: @@ -5224,12 +5252,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line261 +// CHECK: line264 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line261 +// CHECK: line264 // CHECK: col4 // CHECK: file0 // CHECK: @@ -5237,12 +5265,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line262 +// CHECK: line265 // CHECK: col5 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line262 +// CHECK: line265 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5254,7 +5282,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line262 +// CHECK: line265 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5262,12 +5290,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line262 +// CHECK: line265 // CHECK: col19 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line262 +// CHECK: line265 // CHECK: col41 // CHECK: file0 // CHECK: @@ -5289,7 +5317,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line262 +// CHECK: line265 // CHECK: col5 // CHECK: file0 // CHECK: @@ -5301,7 +5329,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line275 +// CHECK: line278 // CHECK: col30 // CHECK: file0 // CHECK: @@ -5309,12 +5337,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line275 +// CHECK: line278 // CHECK: col30 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line275 +// CHECK: line278 // CHECK: col42 // CHECK: file0 // CHECK: @@ -5334,12 +5362,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line275 +// CHECK: line278 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line275 +// CHECK: line278 // CHECK: col9 // CHECK: file0 // CHECK: @@ -5347,12 +5375,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line277 +// CHECK: line280 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line277 +// CHECK: line280 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5364,7 +5392,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line277 +// CHECK: line280 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5372,12 +5400,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line277 +// CHECK: line280 // CHECK: col19 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line277 +// CHECK: line280 // CHECK: col41 // CHECK: file0 // CHECK: @@ -5399,7 +5427,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line277 +// CHECK: line280 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5411,7 +5439,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col13 // CHECK: file0 // CHECK: @@ -5419,12 +5447,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col13 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col39 // CHECK: file0 // CHECK: @@ -5444,12 +5472,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5457,12 +5485,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col9 // CHECK: file0 // CHECK: @@ -5478,12 +5506,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col9 // CHECK: file0 // CHECK: @@ -5491,12 +5519,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col28 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col28 // CHECK: file0 // CHECK: @@ -5508,7 +5536,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col28 // CHECK: file0 // CHECK: @@ -5516,12 +5544,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col28 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col39 // CHECK: file0 // CHECK: @@ -5543,7 +5571,7 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line287 +// CHECK: line290 // CHECK: col28 // CHECK: file0 // CHECK: @@ -5555,7 +5583,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col13 // CHECK: file0 // CHECK: @@ -5563,12 +5591,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col13 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col39 // CHECK: file0 // CHECK: @@ -5588,12 +5616,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line286 +// CHECK: line289 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5601,12 +5629,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5622,12 +5650,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5635,12 +5663,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5652,7 +5680,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5660,12 +5688,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col7 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col19 // CHECK: file0 // CHECK: @@ -5687,7 +5715,7 @@ // CHECK: issue_hash3 // CHECK: location // CHECK: -// CHECK: line288 +// CHECK: line291 // CHECK: col7 // CHECK: file0 // CHECK: @@ -5699,7 +5727,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line292 +// CHECK: line295 // CHECK: col13 // CHECK: file0 // CHECK: @@ -5707,12 +5735,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line292 +// CHECK: line295 // CHECK: col13 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line292 +// CHECK: line295 // CHECK: col15 // CHECK: file0 // CHECK: @@ -5732,12 +5760,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line292 +// CHECK: line295 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line292 +// CHECK: line295 // CHECK: col4 // CHECK: file0 // CHECK: @@ -5745,12 +5773,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5766,12 +5794,12 @@ // CHECK: start // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col3 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col3 // CHECK: file0 // CHECK: @@ -5779,12 +5807,12 @@ // CHECK: end // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col21 // CHECK: file0 // CHECK: @@ -5796,7 +5824,7 @@ // CHECK: kindevent // CHECK: location // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col18 // CHECK: file0 // CHECK: @@ -5804,12 +5832,12 @@ // CHECK: // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col21 // CHECK: file0 // CHECK: @@ -5831,9 +5859,509 @@ // CHECK: issue_hash2 // CHECK: location // CHECK: -// CHECK: line293 +// CHECK: line296 // CHECK: col18 // CHECK: file0 // CHECK: // CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line308 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line308 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line309 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line309 +// CHECK: col4 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line309 +// CHECK: col10 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line309 +// CHECK: col10 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line309 +// CHECK: col29 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Type 'NSArray<NSString *> *' is inferred from this context +// CHECK: message +// CHECK: Type 'NSArray<NSString *> *' is inferred from this context +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line309 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line309 +// CHECK: col4 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line310 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line310 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *' +// CHECK: message +// CHECK: Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *' +// CHECK: +// CHECK: +// CHECK: descriptionConversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *' +// CHECK: categoryCore Foundation/Objective-C +// CHECK: typeGenerics +// CHECK: check_namecore.DynamicTypePropagation +// CHECK: issue_context_kindfunction +// CHECK: issue_contextreturnCollectionToIdVariable +// CHECK: issue_hash3 +// CHECK: location +// CHECK: +// CHECK: line310 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line314 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line314 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line315 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line315 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line315 +// CHECK: col16 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line315 +// CHECK: col16 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line315 +// CHECK: col35 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Type 'NSArray<NSString *> *' is inferred from this context +// CHECK: message +// CHECK: Type 'NSArray<NSString *> *' is inferred from this context +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line315 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line315 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line316 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line316 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *' +// CHECK: message +// CHECK: Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *' +// CHECK: +// CHECK: +// CHECK: descriptionConversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSArray<NSNumber *> *' +// CHECK: categoryCore Foundation/Objective-C +// CHECK: typeGenerics +// CHECK: check_namecore.DynamicTypePropagation +// CHECK: issue_context_kindfunction +// CHECK: issue_contexteraseSpecialization +// CHECK: issue_hash3 +// CHECK: location +// CHECK: +// CHECK: line316 +// CHECK: col30 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: path +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line320 +// CHECK: col21 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line320 +// CHECK: col21 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line320 +// CHECK: col23 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Type 'NSArray<NSArray<NSString *> *> *' is inferred from implicit cast (from 'NSArray<NSArray<NSString *> *> *' to 'NSArray *') +// CHECK: message +// CHECK: Type 'NSArray<NSArray<NSString *> *> *' is inferred from implicit cast (from 'NSArray<NSArray<NSString *> *> *' to 'NSArray *') +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line320 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line320 +// CHECK: col9 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindcontrol +// CHECK: edges +// CHECK: +// CHECK: +// CHECK: start +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col3 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col7 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: end +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col14 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col14 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: +// CHECK: kindevent +// CHECK: location +// CHECK: +// CHECK: line321 +// CHECK: col14 +// CHECK: file0 +// CHECK: +// CHECK: ranges +// CHECK: +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col14 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: line321 +// CHECK: col33 +// CHECK: file0 +// CHECK: +// CHECK: +// CHECK: +// CHECK: depth0 +// CHECK: extended_message +// CHECK: Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSSet *' +// CHECK: message +// CHECK: Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSSet *' +// CHECK: +// CHECK: +// CHECK: descriptionConversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSSet *' +// CHECK: categoryCore Foundation/Objective-C +// CHECK: typeGenerics +// CHECK: check_namecore.DynamicTypePropagation +// CHECK: issue_context_kindfunction +// CHECK: issue_contextreturnToUnrelatedType +// CHECK: issue_hash2 +// CHECK: location +// CHECK: +// CHECK: line321 +// CHECK: col14 +// CHECK: file0 +// CHECK: +// CHECK: // CHECK: