r247861 - [Static Analyzer] Generics Checker: When an ObjC method returns a specialized object, track it properly.

Gabor Horvath via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 16 15:44:36 PDT 2015


Author: xazax
Date: Wed Sep 16 17:44:36 2015
New Revision: 247861

URL: http://llvm.org/viewvc/llvm-project?rev=247861&view=rev
Log:
[Static Analyzer] Generics Checker: When an ObjC method returns a specialized object, track it properly.

Differential Revision: http://reviews.llvm.org/D12889


Modified:
    cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
    cfe/trunk/test/Analysis/generics.m

Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp?rev=247861&r1=247860&r2=247861&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp Wed Sep 16 17:44:36 2015
@@ -41,7 +41,10 @@ using namespace ento;
 // 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 @@ class DynamicTypePropagation:
                          SymbolRef Sym, CheckerContext &C,
                          const Stmt *ReportedNode = nullptr) const;
 
-  void checkReturnType(const ObjCMessageExpr *MessageExpr,
-                       const ObjCObjectPointerType *TrackedType, SymbolRef Sym,
-                       const ObjCMethodDecl *Method,
-                       ArrayRef<QualType> TypeArgs, bool SubscriptOrProperty,
-                       CheckerContext &C) const;
+  bool isReturnValueMisused(const ObjCMessageExpr *MessageExpr,
+                            const ObjCObjectPointerType *TrackedType,
+                            SymbolRef Sym, const ObjCMethodDecl *Method,
+                            ArrayRef<QualType> TypeArgs,
+                            bool SubscriptOrProperty, CheckerContext &C) const;
 
 public:
   void checkPreCall(const CallEvent &Call, CheckerContext &C) const;
@@ -132,11 +135,13 @@ void DynamicTypePropagation::checkDeadSy
     return;
   }
 
-  TypeParamMapTy TyParMap = State->get<TypeParamMap>();
-  for (TypeParamMapTy::iterator I = TyParMap.begin(), E = TyParMap.end();
+  MostSpecializedTypeArgsMapTy TyArgMap =
+      State->get<MostSpecializedTypeArgsMap>();
+  for (MostSpecializedTypeArgsMapTy::iterator I = TyArgMap.begin(),
+                                              E = TyArgMap.end();
        I != E; ++I) {
     if (SR.isDead(I->first)) {
-      State = State->remove<TypeParamMap>(I->first);
+      State = State->remove<MostSpecializedTypeArgsMap>(I->first);
     }
   }
 
@@ -455,13 +460,13 @@ storeWhenMoreInformative(ProgramStateRef
   // Case (1)
   if (!Current) {
     if (StaticUpperBound->isUnspecialized()) {
-      State = State->set<TypeParamMap>(Sym, StaticLowerBound);
+      State = State->set<MostSpecializedTypeArgsMap>(Sym, StaticLowerBound);
       return true;
     }
     // Upper bound is specialized.
     const ObjCObjectPointerType *WithMostInfo =
         getMostInformativeDerivedClass(StaticUpperBound, StaticLowerBound, C);
-    State = State->set<TypeParamMap>(Sym, WithMostInfo);
+    State = State->set<MostSpecializedTypeArgsMap>(Sym, WithMostInfo);
     return true;
   }
 
@@ -479,7 +484,7 @@ storeWhenMoreInformative(ProgramStateRef
         getMostInformativeDerivedClass(WithMostInfo, StaticLowerBound, C);
     if (WithMostInfo == *Current)
       return false;
-    State = State->set<TypeParamMap>(Sym, WithMostInfo);
+    State = State->set<MostSpecializedTypeArgsMap>(Sym, WithMostInfo);
     return true;
   }
 
@@ -487,7 +492,7 @@ storeWhenMoreInformative(ProgramStateRef
   const ObjCObjectPointerType *WithMostInfo =
       getMostInformativeDerivedClass(*Current, StaticLowerBound, C);
   if (WithMostInfo != *Current) {
-    State = State->set<TypeParamMap>(Sym, WithMostInfo);
+    State = State->set<MostSpecializedTypeArgsMap>(Sym, WithMostInfo);
     return true;
   }
 
@@ -540,7 +545,7 @@ void DynamicTypePropagation::checkPostSt
   bool DestToOrig =
       ASTCtxt.canAssignObjCInterfaces(OrigObjectPtrType, DestObjectPtrType);
   const ObjCObjectPointerType *const *TrackedType =
-      State->get<TypeParamMap>(Sym);
+      State->get<MostSpecializedTypeArgsMap>(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 @@ void DynamicTypePropagation::checkPostSt
     // Mismatched types. If the DestType specialized, store it. Forget the
     // tracked type otherwise.
     if (DestObjectPtrType->isSpecialized()) {
-      State = State->set<TypeParamMap>(Sym, DestObjectPtrType);
+      State = State->set<MostSpecializedTypeArgsMap>(Sym, DestObjectPtrType);
       C.addTransition(State, AfterTypeProp);
     } else if (TrackedType) {
-      State = State->remove<TypeParamMap>(Sym);
+      State = State->remove<MostSpecializedTypeArgsMap>(Sym);
       C.addTransition(State, AfterTypeProp);
     }
     return;
@@ -596,41 +601,6 @@ static const Expr *stripCastsAndSugar(co
   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<ObjCObjectType>();
-  QualType ReceiverClassPointerType =
-      C.getASTContext().getObjCObjectPointerType(
-          QualType(ReceiverClassType, 0));
-
-  if (!ReceiverClassType->isSpecialized())
-    return;
-  const auto *InferredType =
-      ReceiverClassPointerType->getAs<ObjCObjectPointerType>();
-  assert(InferredType);
-
-  ProgramStateRef State = C.getState();
-  State = State->set<TypeParamMap>(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 @@ findMethodDecl(const ObjCMessageExpr *Me
   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<QualType> 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<ObjCObjectPointerType>();
+}
+
 /// 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<QualType> 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 @@ void DynamicTypePropagation::checkReturn
 
   const auto *ImplicitCast = dyn_cast_or_null<ImplicitCastExpr>(Parent);
   if (!ImplicitCast || ImplicitCast->getCastKind() != CK_BitCast)
-    return;
+    return false;
 
   const auto *ExprTypeAboveCast =
       ImplicitCast->getType()->getAs<ObjCObjectPointerType>();
-  const auto *ResultPtrType = ResultType->getAs<ObjCObjectPointerType>();
-
-  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 @@ void DynamicTypePropagation::checkReturn
     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 @@ void DynamicTypePropagation::checkPreObj
     return;
 
   const ObjCObjectPointerType *const *TrackedType =
-      State->get<TypeParamMap>(Sym);
+      State->get<MostSpecializedTypeArgsMap>(Sym);
   if (!TrackedType)
     return;
 
@@ -797,7 +782,7 @@ void DynamicTypePropagation::checkPreObj
     SymbolRef ArgSym = ArgSVal.getAsSymbol();
     if (ArgSym) {
       const ObjCObjectPointerType *const *TrackedArgType =
-          State->get<TypeParamMap>(ArgSym);
+          State->get<MostSpecializedTypeArgsMap>(ArgSym);
       if (TrackedArgType &&
           ASTCtxt.canAssignObjCInterfaces(ArgObjectPtrType, *TrackedArgType)) {
         ArgObjectPtrType = *TrackedArgType;
@@ -813,9 +798,84 @@ void DynamicTypePropagation::checkPreObj
       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<ObjCObjectType>();
+    QualType ReceiverClassPointerType =
+        C.getASTContext().getObjCObjectPointerType(
+            QualType(ReceiverClassType, 0));
+
+    if (!ReceiverClassType->isSpecialized())
+      return;
+    const auto *InferredType =
+        ReceiverClassPointerType->getAs<ObjCObjectPointerType>();
+    assert(InferredType);
+
+    State = State->set<MostSpecializedTypeArgsMap>(RetSym, InferredType);
+    C.addTransition(State);
+    return;
+  }
+
+  // Tracking for return types.
+  SymbolRef RecSym = M.getReceiverSVal().getAsSymbol();
+  if (!RecSym)
+    return;
+
+  const ObjCObjectPointerType *const *TrackedType =
+      State->get<MostSpecializedTypeArgsMap>(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<ArrayRef<QualType>> 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<MostSpecializedTypeArgsMap>(RetSym)) {
+    State = State->set<MostSpecializedTypeArgsMap>(RetSym, ResultPtrType);
+    C.addTransition(State);
+  }
 }
 
 void DynamicTypePropagation::reportGenericsBug(
@@ -849,9 +909,9 @@ PathDiagnosticPiece *DynamicTypePropagat
   ProgramStateRef statePrev = PrevN->getState();
 
   const ObjCObjectPointerType *const *TrackedType =
-      state->get<TypeParamMap>(Sym);
+      state->get<MostSpecializedTypeArgsMap>(Sym);
   const ObjCObjectPointerType *const *TrackedTypePrev =
-      statePrev->get<TypeParamMap>(Sym);
+      statePrev->get<MostSpecializedTypeArgsMap>(Sym);
   if (!TrackedType)
     return nullptr;
 

Modified: cfe/trunk/test/Analysis/generics.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/generics.m?rev=247861&r1=247860&r2=247861&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/generics.m (original)
+++ cfe/trunk/test/Analysis/generics.m Wed Sep 16 17:44:36 2015
@@ -35,6 +35,9 @@ __attribute__((objc_root_class))
 @interface NSNumber : NSObject <NSCopying>
 @end
 
+ at interface NSSet : NSObject <NSCopying>
+ at end
+
 @interface NSArray<__covariant ObjectType> : NSObject
 + (instancetype)arrayWithObjects:(const ObjectType [])objects count:(NSUInteger)count;
 + (instancetype)getEmpty;
@@ -301,6 +304,31 @@ void testMistmatchedTypeCast(MutableArra
   [c addObject: [[NSString alloc] init]];
 }
 
+void returnCollectionToIdVariable(NSArray<NSArray<NSString *> *> *arr) {
+  NSArray *erased = arr;
+  id a = [erased firstObject];
+  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
+}
+
+void eraseSpecialization(NSArray<NSArray<NSString *> *> *arr) {
+  NSArray *erased = arr;
+  NSArray* a = [erased firstObject];
+  NSArray<NSNumber *> *res = a; // expected-warning {{Conversion}}
+}
+
+void returnToUnrelatedType(NSArray<NSArray<NSString *> *> *arr) {
+  NSArray *erased = arr;
+  NSSet* a = [erased firstObject]; // expected-warning {{Conversion}}
+  (void)a;
+}
+
+void returnToIdVariable(NSArray<NSString *> *arr) {
+  NSArray *erased = arr;
+  id a = [erased firstObject];
+  // TODO: Warn in this case. Possibly in a separate checker.
+  NSNumber *res = a;
+}
+
 // CHECK:  <array>
 // CHECK:   <dict>
 // CHECK:    <key>path</key>
@@ -309,7 +337,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>89</integer>
+// CHECK:       <key>line</key><integer>92</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -317,12 +345,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>89</integer>
+// CHECK:          <key>line</key><integer>92</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>line</key><integer>92</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -342,12 +370,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>89</integer>
+// CHECK:            <key>line</key><integer>92</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>line</key><integer>92</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -355,12 +383,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>90</integer>
+// 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>90</integer>
+// CHECK:            <key>line</key><integer>93</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -376,12 +404,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>90</integer>
+// 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>90</integer>
+// CHECK:            <key>line</key><integer>93</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -389,12 +417,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>90</integer>
+// CHECK:            <key>line</key><integer>93</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>line</key><integer>93</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -406,7 +434,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>90</integer>
+// CHECK:       <key>line</key><integer>93</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -414,12 +442,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>90</integer>
+// CHECK:          <key>line</key><integer>93</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>line</key><integer>93</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -441,7 +469,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>90</integer>
+// CHECK:    <key>line</key><integer>93</integer>
 // CHECK:    <key>col</key><integer>7</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -453,7 +481,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>89</integer>
+// CHECK:       <key>line</key><integer>92</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -461,12 +489,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>89</integer>
+// CHECK:          <key>line</key><integer>92</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>line</key><integer>92</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -486,12 +514,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>89</integer>
+// CHECK:            <key>line</key><integer>92</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>line</key><integer>92</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -499,12 +527,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>91</integer>
+// CHECK:            <key>line</key><integer>94</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>line</key><integer>94</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -516,7 +544,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>91</integer>
+// CHECK:       <key>line</key><integer>94</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -524,12 +552,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>91</integer>
+// CHECK:          <key>line</key><integer>94</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>line</key><integer>94</integer>
 // CHECK:          <key>col</key><integer>38</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -551,7 +579,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>91</integer>
+// CHECK:    <key>line</key><integer>94</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -563,7 +591,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>89</integer>
+// CHECK:       <key>line</key><integer>92</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -571,12 +599,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>89</integer>
+// CHECK:          <key>line</key><integer>92</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>line</key><integer>92</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -596,12 +624,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>89</integer>
+// CHECK:            <key>line</key><integer>92</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>line</key><integer>92</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -609,12 +637,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>93</integer>
+// CHECK:            <key>line</key><integer>96</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>line</key><integer>96</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -630,12 +658,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>93</integer>
+// CHECK:            <key>line</key><integer>96</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>line</key><integer>96</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -643,12 +671,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>93</integer>
+// CHECK:            <key>line</key><integer>96</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>line</key><integer>96</integer>
 // CHECK:            <key>col</key><integer>11</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -660,7 +688,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>93</integer>
+// CHECK:       <key>line</key><integer>96</integer>
 // CHECK:       <key>col</key><integer>11</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -668,12 +696,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>93</integer>
+// CHECK:          <key>line</key><integer>96</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>line</key><integer>96</integer>
 // CHECK:          <key>col</key><integer>11</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -695,7 +723,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>5</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>93</integer>
+// CHECK:    <key>line</key><integer>96</integer>
 // CHECK:    <key>col</key><integer>11</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -711,12 +739,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>97</integer>
+// CHECK:            <key>line</key><integer>100</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>line</key><integer>100</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -724,12 +752,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>97</integer>
+// CHECK:            <key>line</key><integer>100</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>line</key><integer>100</integer>
 // CHECK:            <key>col</key><integer>40</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -741,7 +769,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>97</integer>
+// CHECK:       <key>line</key><integer>100</integer>
 // CHECK:       <key>col</key><integer>28</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -749,12 +777,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>97</integer>
+// CHECK:          <key>line</key><integer>100</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>line</key><integer>100</integer>
 // CHECK:          <key>col</key><integer>42</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -770,7 +798,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>76</integer>
+// CHECK:       <key>line</key><integer>79</integer>
 // CHECK:       <key>col</key><integer>1</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -788,12 +816,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>76</integer>
+// CHECK:            <key>line</key><integer>79</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>line</key><integer>79</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -801,12 +829,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>77</integer>
+// CHECK:            <key>line</key><integer>80</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>line</key><integer>80</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -818,7 +846,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>77</integer>
+// CHECK:       <key>line</key><integer>80</integer>
 // CHECK:       <key>col</key><integer>28</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -826,12 +854,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>77</integer>
+// CHECK:          <key>line</key><integer>80</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>line</key><integer>80</integer>
 // CHECK:          <key>col</key><integer>37</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -851,12 +879,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>77</integer>
+// CHECK:            <key>line</key><integer>80</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>line</key><integer>80</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -864,12 +892,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>78</integer>
+// CHECK:            <key>line</key><integer>81</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>line</key><integer>81</integer>
 // CHECK:            <key>col</key><integer>8</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -881,7 +909,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>97</integer>
+// CHECK:       <key>line</key><integer>100</integer>
 // CHECK:       <key>col</key><integer>28</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -889,12 +917,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>97</integer>
+// CHECK:          <key>line</key><integer>100</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>line</key><integer>100</integer>
 // CHECK:          <key>col</key><integer>42</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -910,7 +938,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>97</integer>
+// CHECK:       <key>line</key><integer>100</integer>
 // CHECK:       <key>col</key><integer>28</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -918,12 +946,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>97</integer>
+// CHECK:          <key>line</key><integer>100</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>line</key><integer>100</integer>
 // CHECK:          <key>col</key><integer>42</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -945,7 +973,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>1</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>97</integer>
+// CHECK:    <key>line</key><integer>100</integer>
 // CHECK:    <key>col</key><integer>28</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -957,7 +985,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>102</integer>
+// CHECK:       <key>line</key><integer>105</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -965,12 +993,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>102</integer>
+// CHECK:          <key>line</key><integer>105</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>line</key><integer>105</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -990,12 +1018,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>102</integer>
+// 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>102</integer>
+// CHECK:            <key>line</key><integer>105</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1003,12 +1031,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>103</integer>
+// CHECK:            <key>line</key><integer>106</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>line</key><integer>106</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1020,7 +1048,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>103</integer>
+// CHECK:       <key>line</key><integer>106</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1028,12 +1056,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>103</integer>
+// CHECK:          <key>line</key><integer>106</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>line</key><integer>106</integer>
 // CHECK:          <key>col</key><integer>38</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1055,7 +1083,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>103</integer>
+// CHECK:    <key>line</key><integer>106</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -1067,7 +1095,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>102</integer>
+// CHECK:       <key>line</key><integer>105</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1075,12 +1103,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>102</integer>
+// CHECK:          <key>line</key><integer>105</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>line</key><integer>105</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1100,12 +1128,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>102</integer>
+// 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>102</integer>
+// CHECK:            <key>line</key><integer>105</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1113,12 +1141,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>105</integer>
+// CHECK:            <key>line</key><integer>108</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>line</key><integer>108</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1134,12 +1162,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>105</integer>
+// CHECK:            <key>line</key><integer>108</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>line</key><integer>108</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1147,12 +1175,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>105</integer>
+// CHECK:            <key>line</key><integer>108</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>line</key><integer>108</integer>
 // CHECK:            <key>col</key><integer>11</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1164,7 +1192,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>105</integer>
+// CHECK:       <key>line</key><integer>108</integer>
 // CHECK:       <key>col</key><integer>11</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1172,12 +1200,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>105</integer>
+// CHECK:          <key>line</key><integer>108</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>line</key><integer>108</integer>
 // CHECK:          <key>col</key><integer>11</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1199,7 +1227,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>4</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>105</integer>
+// CHECK:    <key>line</key><integer>108</integer>
 // CHECK:    <key>col</key><integer>11</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -1211,7 +1239,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>109</integer>
+// CHECK:       <key>line</key><integer>112</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1219,12 +1247,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>109</integer>
+// CHECK:          <key>line</key><integer>112</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>line</key><integer>112</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1244,12 +1272,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>109</integer>
+// 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>109</integer>
+// CHECK:            <key>line</key><integer>112</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1257,12 +1285,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>110</integer>
+// CHECK:            <key>line</key><integer>113</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>line</key><integer>113</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1274,7 +1302,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>110</integer>
+// CHECK:       <key>line</key><integer>113</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1282,12 +1310,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>110</integer>
+// CHECK:          <key>line</key><integer>113</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>line</key><integer>113</integer>
 // CHECK:          <key>col</key><integer>38</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1309,7 +1337,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>110</integer>
+// CHECK:    <key>line</key><integer>113</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -1321,7 +1349,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>109</integer>
+// CHECK:       <key>line</key><integer>112</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1329,12 +1357,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>109</integer>
+// CHECK:          <key>line</key><integer>112</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>line</key><integer>112</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1354,12 +1382,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>109</integer>
+// 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>109</integer>
+// CHECK:            <key>line</key><integer>112</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1367,12 +1395,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>112</integer>
+// CHECK:            <key>line</key><integer>115</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>line</key><integer>115</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1388,12 +1416,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>112</integer>
+// CHECK:            <key>line</key><integer>115</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>line</key><integer>115</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1401,12 +1429,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>112</integer>
+// CHECK:            <key>line</key><integer>115</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>line</key><integer>115</integer>
 // CHECK:            <key>col</key><integer>11</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1418,7 +1446,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>112</integer>
+// CHECK:       <key>line</key><integer>115</integer>
 // CHECK:       <key>col</key><integer>11</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1426,12 +1454,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>112</integer>
+// CHECK:          <key>line</key><integer>115</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>line</key><integer>115</integer>
 // CHECK:          <key>col</key><integer>11</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1453,7 +1481,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>4</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>112</integer>
+// CHECK:    <key>line</key><integer>115</integer>
 // CHECK:    <key>col</key><integer>11</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -1465,7 +1493,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>117</integer>
+// CHECK:       <key>line</key><integer>120</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1473,12 +1501,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>117</integer>
+// CHECK:          <key>line</key><integer>120</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>line</key><integer>120</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1498,12 +1526,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>117</integer>
+// CHECK:            <key>line</key><integer>120</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>line</key><integer>120</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1511,12 +1539,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>118</integer>
+// 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>118</integer>
+// CHECK:            <key>line</key><integer>121</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1532,12 +1560,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>118</integer>
+// 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>118</integer>
+// CHECK:            <key>line</key><integer>121</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1545,12 +1573,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>118</integer>
+// CHECK:            <key>line</key><integer>121</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>line</key><integer>121</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1562,7 +1590,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>118</integer>
+// CHECK:       <key>line</key><integer>121</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1570,12 +1598,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>118</integer>
+// CHECK:          <key>line</key><integer>121</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>line</key><integer>121</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1597,7 +1625,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>118</integer>
+// CHECK:    <key>line</key><integer>121</integer>
 // CHECK:    <key>col</key><integer>7</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -1609,7 +1637,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>117</integer>
+// CHECK:       <key>line</key><integer>120</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1617,12 +1645,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>117</integer>
+// CHECK:          <key>line</key><integer>120</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>line</key><integer>120</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1642,12 +1670,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>117</integer>
+// CHECK:            <key>line</key><integer>120</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>line</key><integer>120</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1655,12 +1683,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>119</integer>
+// CHECK:            <key>line</key><integer>122</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>line</key><integer>122</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1672,7 +1700,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>119</integer>
+// CHECK:       <key>line</key><integer>122</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1680,12 +1708,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>119</integer>
+// CHECK:          <key>line</key><integer>122</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>line</key><integer>122</integer>
 // CHECK:          <key>col</key><integer>38</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1707,7 +1735,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>119</integer>
+// CHECK:    <key>line</key><integer>122</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -1719,7 +1747,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>117</integer>
+// CHECK:       <key>line</key><integer>120</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1727,12 +1755,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>117</integer>
+// CHECK:          <key>line</key><integer>120</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>line</key><integer>120</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1752,12 +1780,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>117</integer>
+// CHECK:            <key>line</key><integer>120</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>line</key><integer>120</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1765,12 +1793,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>121</integer>
+// CHECK:            <key>line</key><integer>124</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>line</key><integer>124</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1786,12 +1814,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>121</integer>
+// CHECK:            <key>line</key><integer>124</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>line</key><integer>124</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1799,12 +1827,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>121</integer>
+// CHECK:            <key>line</key><integer>124</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>line</key><integer>124</integer>
 // CHECK:            <key>col</key><integer>11</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1816,7 +1844,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>121</integer>
+// CHECK:       <key>line</key><integer>124</integer>
 // CHECK:       <key>col</key><integer>11</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1824,12 +1852,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>121</integer>
+// CHECK:          <key>line</key><integer>124</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>line</key><integer>124</integer>
 // CHECK:          <key>col</key><integer>11</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1851,7 +1879,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>5</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>121</integer>
+// CHECK:    <key>line</key><integer>124</integer>
 // CHECK:    <key>col</key><integer>11</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -1867,12 +1895,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>126</integer>
+// CHECK:            <key>line</key><integer>129</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>line</key><integer>129</integer>
 // CHECK:            <key>col</key><integer>4</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1880,12 +1908,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>130</integer>
+// CHECK:            <key>line</key><integer>133</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>line</key><integer>133</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1897,7 +1925,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>130</integer>
+// CHECK:       <key>line</key><integer>133</integer>
 // CHECK:       <key>col</key><integer>9</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -1905,12 +1933,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>130</integer>
+// CHECK:          <key>line</key><integer>133</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>line</key><integer>133</integer>
 // CHECK:          <key>col</key><integer>9</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -1930,12 +1958,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>130</integer>
+// CHECK:            <key>line</key><integer>133</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>line</key><integer>133</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1943,12 +1971,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>131</integer>
+// CHECK:            <key>line</key><integer>134</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>line</key><integer>134</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1964,12 +1992,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>131</integer>
+// CHECK:            <key>line</key><integer>134</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>line</key><integer>134</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1977,12 +2005,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>133</integer>
+// CHECK:            <key>line</key><integer>136</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>line</key><integer>136</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -1994,7 +2022,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>133</integer>
+// CHECK:       <key>line</key><integer>136</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2002,12 +2030,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>133</integer>
+// CHECK:          <key>line</key><integer>136</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>line</key><integer>136</integer>
 // CHECK:          <key>col</key><integer>39</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2029,7 +2057,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>8</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>133</integer>
+// CHECK:    <key>line</key><integer>136</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2041,7 +2069,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>138</integer>
+// CHECK:       <key>line</key><integer>141</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2049,12 +2077,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>138</integer>
+// CHECK:          <key>line</key><integer>141</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>line</key><integer>141</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2074,12 +2102,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>138</integer>
+// CHECK:            <key>line</key><integer>141</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>line</key><integer>141</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2087,12 +2115,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>139</integer>
+// CHECK:            <key>line</key><integer>142</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>line</key><integer>142</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2108,12 +2136,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>139</integer>
+// CHECK:            <key>line</key><integer>142</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>line</key><integer>142</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2121,12 +2149,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>139</integer>
+// CHECK:            <key>line</key><integer>142</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>line</key><integer>142</integer>
 // CHECK:            <key>col</key><integer>11</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2138,7 +2166,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>139</integer>
+// CHECK:       <key>line</key><integer>142</integer>
 // CHECK:       <key>col</key><integer>11</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2146,12 +2174,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>139</integer>
+// CHECK:          <key>line</key><integer>142</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>line</key><integer>142</integer>
 // CHECK:          <key>col</key><integer>11</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2173,7 +2201,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>139</integer>
+// CHECK:    <key>line</key><integer>142</integer>
 // CHECK:    <key>col</key><integer>11</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2185,7 +2213,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>144</integer>
+// CHECK:       <key>line</key><integer>147</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2193,12 +2221,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>144</integer>
+// CHECK:          <key>line</key><integer>147</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>line</key><integer>147</integer>
 // CHECK:          <key>col</key><integer>42</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2218,12 +2246,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>144</integer>
+// CHECK:            <key>line</key><integer>147</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>line</key><integer>147</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2231,12 +2259,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>145</integer>
+// CHECK:            <key>line</key><integer>148</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>line</key><integer>148</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2248,7 +2276,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>145</integer>
+// CHECK:       <key>line</key><integer>148</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2256,12 +2284,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>145</integer>
+// CHECK:          <key>line</key><integer>148</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>line</key><integer>148</integer>
 // CHECK:          <key>col</key><integer>39</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2283,7 +2311,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>145</integer>
+// CHECK:    <key>line</key><integer>148</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2299,12 +2327,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>151</integer>
+// CHECK:            <key>line</key><integer>154</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>line</key><integer>154</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2312,12 +2340,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>152</integer>
+// CHECK:            <key>line</key><integer>155</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>line</key><integer>155</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2329,7 +2357,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>152</integer>
+// CHECK:       <key>line</key><integer>155</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2337,12 +2365,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>152</integer>
+// CHECK:          <key>line</key><integer>155</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>line</key><integer>155</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2362,12 +2390,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>152</integer>
+// CHECK:            <key>line</key><integer>155</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>line</key><integer>155</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2375,12 +2403,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>153</integer>
+// CHECK:            <key>line</key><integer>156</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>line</key><integer>156</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2396,12 +2424,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>153</integer>
+// CHECK:            <key>line</key><integer>156</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>line</key><integer>156</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2409,12 +2437,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>153</integer>
+// CHECK:            <key>line</key><integer>156</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>line</key><integer>156</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2426,7 +2454,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>153</integer>
+// CHECK:       <key>line</key><integer>156</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2434,12 +2462,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>153</integer>
+// CHECK:          <key>line</key><integer>156</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>line</key><integer>156</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2461,7 +2489,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>153</integer>
+// CHECK:    <key>line</key><integer>156</integer>
 // CHECK:    <key>col</key><integer>7</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2473,7 +2501,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>159</integer>
+// CHECK:       <key>line</key><integer>162</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2481,12 +2509,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>159</integer>
+// CHECK:          <key>line</key><integer>162</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>line</key><integer>162</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2506,12 +2534,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>159</integer>
+// CHECK:            <key>line</key><integer>162</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>line</key><integer>162</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2519,12 +2547,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>161</integer>
+// CHECK:            <key>line</key><integer>164</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>line</key><integer>164</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2536,7 +2564,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>161</integer>
+// CHECK:       <key>line</key><integer>164</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2544,12 +2572,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>161</integer>
+// CHECK:          <key>line</key><integer>164</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>line</key><integer>164</integer>
 // CHECK:          <key>col</key><integer>38</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2571,7 +2599,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>161</integer>
+// CHECK:    <key>line</key><integer>164</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2583,7 +2611,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>159</integer>
+// CHECK:       <key>line</key><integer>162</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2591,12 +2619,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>159</integer>
+// CHECK:          <key>line</key><integer>162</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>line</key><integer>162</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2616,12 +2644,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>159</integer>
+// CHECK:            <key>line</key><integer>162</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>line</key><integer>162</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2629,12 +2657,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>163</integer>
+// CHECK:            <key>line</key><integer>166</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>line</key><integer>166</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2650,12 +2678,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>163</integer>
+// CHECK:            <key>line</key><integer>166</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>line</key><integer>166</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2663,12 +2691,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>163</integer>
+// CHECK:            <key>line</key><integer>166</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>line</key><integer>166</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2680,7 +2708,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>163</integer>
+// CHECK:       <key>line</key><integer>166</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2688,12 +2716,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>163</integer>
+// CHECK:          <key>line</key><integer>166</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>line</key><integer>166</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2715,7 +2743,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>5</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>163</integer>
+// CHECK:    <key>line</key><integer>166</integer>
 // CHECK:    <key>col</key><integer>7</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2727,7 +2755,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>169</integer>
+// CHECK:       <key>line</key><integer>172</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2735,12 +2763,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>169</integer>
+// CHECK:          <key>line</key><integer>172</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>line</key><integer>172</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2760,12 +2788,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>169</integer>
+// CHECK:            <key>line</key><integer>172</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>line</key><integer>172</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2773,12 +2801,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>171</integer>
+// CHECK:            <key>line</key><integer>174</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>line</key><integer>174</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2790,7 +2818,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>171</integer>
+// CHECK:       <key>line</key><integer>174</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2798,12 +2826,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>171</integer>
+// CHECK:          <key>line</key><integer>174</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>line</key><integer>174</integer>
 // CHECK:          <key>col</key><integer>38</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2825,7 +2853,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>171</integer>
+// CHECK:    <key>line</key><integer>174</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2837,7 +2865,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>169</integer>
+// CHECK:       <key>line</key><integer>172</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2845,12 +2873,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>169</integer>
+// CHECK:          <key>line</key><integer>172</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>line</key><integer>172</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2870,12 +2898,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>169</integer>
+// CHECK:            <key>line</key><integer>172</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>line</key><integer>172</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2883,12 +2911,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>173</integer>
+// CHECK:            <key>line</key><integer>176</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>line</key><integer>176</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2904,12 +2932,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>173</integer>
+// CHECK:            <key>line</key><integer>176</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>line</key><integer>176</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2917,12 +2945,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>173</integer>
+// CHECK:            <key>line</key><integer>176</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>line</key><integer>176</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -2934,7 +2962,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>173</integer>
+// CHECK:       <key>line</key><integer>176</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2942,12 +2970,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>173</integer>
+// CHECK:          <key>line</key><integer>176</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>line</key><integer>176</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -2969,7 +2997,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>5</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>173</integer>
+// CHECK:    <key>line</key><integer>176</integer>
 // CHECK:    <key>col</key><integer>7</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -2981,7 +3009,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>179</integer>
+// CHECK:       <key>line</key><integer>182</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -2989,12 +3017,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>179</integer>
+// CHECK:          <key>line</key><integer>182</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>line</key><integer>182</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3014,12 +3042,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>179</integer>
+// CHECK:            <key>line</key><integer>182</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>line</key><integer>182</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3027,12 +3055,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>180</integer>
+// CHECK:            <key>line</key><integer>183</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>line</key><integer>183</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3048,12 +3076,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>180</integer>
+// CHECK:            <key>line</key><integer>183</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>line</key><integer>183</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3061,12 +3089,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>180</integer>
+// CHECK:            <key>line</key><integer>183</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>line</key><integer>183</integer>
 // CHECK:            <key>col</key><integer>27</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3078,7 +3106,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>180</integer>
+// CHECK:       <key>line</key><integer>183</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3086,12 +3114,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>180</integer>
+// CHECK:          <key>line</key><integer>183</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>line</key><integer>183</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3113,7 +3141,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>4</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>180</integer>
+// CHECK:    <key>line</key><integer>183</integer>
 // CHECK:    <key>col</key><integer>27</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -3125,7 +3153,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>184</integer>
+// CHECK:       <key>line</key><integer>187</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3133,12 +3161,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>184</integer>
+// CHECK:          <key>line</key><integer>187</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>line</key><integer>187</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3158,12 +3186,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>184</integer>
+// CHECK:            <key>line</key><integer>187</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>line</key><integer>187</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3171,12 +3199,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>185</integer>
+// CHECK:            <key>line</key><integer>188</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>line</key><integer>188</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3192,12 +3220,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>185</integer>
+// CHECK:            <key>line</key><integer>188</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>line</key><integer>188</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3205,12 +3233,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>185</integer>
+// CHECK:            <key>line</key><integer>188</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>line</key><integer>188</integer>
 // CHECK:            <key>col</key><integer>20</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3222,7 +3250,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>185</integer>
+// CHECK:       <key>line</key><integer>188</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3230,12 +3258,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>185</integer>
+// CHECK:          <key>line</key><integer>188</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>line</key><integer>188</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3257,7 +3285,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>185</integer>
+// CHECK:    <key>line</key><integer>188</integer>
 // CHECK:    <key>col</key><integer>20</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -3269,7 +3297,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>189</integer>
+// CHECK:       <key>line</key><integer>192</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3277,12 +3305,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>189</integer>
+// CHECK:          <key>line</key><integer>192</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>line</key><integer>192</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3302,12 +3330,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>189</integer>
+// CHECK:            <key>line</key><integer>192</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>line</key><integer>192</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3315,12 +3343,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>190</integer>
+// CHECK:            <key>line</key><integer>193</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>line</key><integer>193</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3336,12 +3364,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>190</integer>
+// CHECK:            <key>line</key><integer>193</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>line</key><integer>193</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3349,12 +3377,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>190</integer>
+// CHECK:            <key>line</key><integer>193</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>line</key><integer>193</integer>
 // CHECK:            <key>col</key><integer>20</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3366,7 +3394,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>190</integer>
+// CHECK:       <key>line</key><integer>193</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3374,12 +3402,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>190</integer>
+// CHECK:          <key>line</key><integer>193</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>line</key><integer>193</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3401,7 +3429,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>190</integer>
+// CHECK:    <key>line</key><integer>193</integer>
 // CHECK:    <key>col</key><integer>20</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -3413,7 +3441,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>194</integer>
+// CHECK:       <key>line</key><integer>197</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3421,12 +3449,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>194</integer>
+// CHECK:          <key>line</key><integer>197</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>line</key><integer>197</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3446,12 +3474,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>194</integer>
+// CHECK:            <key>line</key><integer>197</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>line</key><integer>197</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3459,12 +3487,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>195</integer>
+// CHECK:            <key>line</key><integer>198</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>line</key><integer>198</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3480,12 +3508,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>195</integer>
+// CHECK:            <key>line</key><integer>198</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>line</key><integer>198</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3493,12 +3521,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>195</integer>
+// CHECK:            <key>line</key><integer>198</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>line</key><integer>198</integer>
 // CHECK:            <key>col</key><integer>27</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3510,7 +3538,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>195</integer>
+// CHECK:       <key>line</key><integer>198</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3518,12 +3546,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>195</integer>
+// CHECK:          <key>line</key><integer>198</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>line</key><integer>198</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3545,7 +3573,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>195</integer>
+// CHECK:    <key>line</key><integer>198</integer>
 // CHECK:    <key>col</key><integer>27</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -3557,7 +3585,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>199</integer>
+// CHECK:       <key>line</key><integer>202</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3565,12 +3593,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>199</integer>
+// CHECK:          <key>line</key><integer>202</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>line</key><integer>202</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3590,12 +3618,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>199</integer>
+// CHECK:            <key>line</key><integer>202</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>line</key><integer>202</integer>
 // CHECK:            <key>col</key><integer>20</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3603,12 +3631,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>200</integer>
+// CHECK:            <key>line</key><integer>203</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>line</key><integer>203</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3620,7 +3648,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>200</integer>
+// CHECK:       <key>line</key><integer>203</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3628,12 +3656,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>200</integer>
+// CHECK:          <key>line</key><integer>203</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>line</key><integer>203</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3653,12 +3681,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>200</integer>
+// CHECK:            <key>line</key><integer>203</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>line</key><integer>203</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3666,12 +3694,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>201</integer>
+// CHECK:            <key>line</key><integer>204</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>line</key><integer>204</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3687,12 +3715,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>201</integer>
+// CHECK:            <key>line</key><integer>204</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>line</key><integer>204</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3700,12 +3728,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>201</integer>
+// CHECK:            <key>line</key><integer>204</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>line</key><integer>204</integer>
 // CHECK:            <key>col</key><integer>27</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3717,7 +3745,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>201</integer>
+// CHECK:       <key>line</key><integer>204</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3725,12 +3753,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>201</integer>
+// CHECK:          <key>line</key><integer>204</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>line</key><integer>204</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3752,7 +3780,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>201</integer>
+// CHECK:    <key>line</key><integer>204</integer>
 // CHECK:    <key>col</key><integer>27</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -3764,7 +3792,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>205</integer>
+// CHECK:       <key>line</key><integer>208</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3772,12 +3800,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>205</integer>
+// CHECK:          <key>line</key><integer>208</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>line</key><integer>208</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3797,12 +3825,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>205</integer>
+// CHECK:            <key>line</key><integer>208</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>line</key><integer>208</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3810,12 +3838,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>206</integer>
+// CHECK:            <key>line</key><integer>209</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>line</key><integer>209</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3831,12 +3859,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>206</integer>
+// CHECK:            <key>line</key><integer>209</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>line</key><integer>209</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3844,12 +3872,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>206</integer>
+// CHECK:            <key>line</key><integer>209</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>line</key><integer>209</integer>
 // CHECK:            <key>col</key><integer>27</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3861,7 +3889,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>206</integer>
+// CHECK:       <key>line</key><integer>209</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3869,12 +3897,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>206</integer>
+// CHECK:          <key>line</key><integer>209</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>line</key><integer>209</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3896,7 +3924,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>206</integer>
+// CHECK:    <key>line</key><integer>209</integer>
 // CHECK:    <key>col</key><integer>27</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -3908,7 +3936,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>210</integer>
+// CHECK:       <key>line</key><integer>213</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -3916,12 +3944,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>210</integer>
+// CHECK:          <key>line</key><integer>213</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>line</key><integer>213</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -3941,12 +3969,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>210</integer>
+// CHECK:            <key>line</key><integer>213</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>line</key><integer>213</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3954,12 +3982,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>211</integer>
+// CHECK:            <key>line</key><integer>214</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>line</key><integer>214</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3975,12 +4003,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>211</integer>
+// CHECK:            <key>line</key><integer>214</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>line</key><integer>214</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -3988,12 +4016,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>211</integer>
+// CHECK:            <key>line</key><integer>214</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>line</key><integer>214</integer>
 // CHECK:            <key>col</key><integer>20</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4005,7 +4033,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>211</integer>
+// CHECK:       <key>line</key><integer>214</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4013,12 +4041,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>211</integer>
+// CHECK:          <key>line</key><integer>214</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>line</key><integer>214</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4040,7 +4068,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>211</integer>
+// CHECK:    <key>line</key><integer>214</integer>
 // CHECK:    <key>col</key><integer>20</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -4052,7 +4080,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>215</integer>
+// CHECK:       <key>line</key><integer>218</integer>
 // CHECK:       <key>col</key><integer>10</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4060,12 +4088,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>215</integer>
+// CHECK:          <key>line</key><integer>218</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>line</key><integer>218</integer>
 // CHECK:          <key>col</key><integer>10</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4085,12 +4113,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>215</integer>
+// CHECK:            <key>line</key><integer>218</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>line</key><integer>218</integer>
 // CHECK:            <key>col</key><integer>4</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4098,12 +4126,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>217</integer>
+// CHECK:            <key>line</key><integer>220</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>line</key><integer>220</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4119,12 +4147,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>217</integer>
+// CHECK:            <key>line</key><integer>220</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>line</key><integer>220</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4132,12 +4160,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>217</integer>
+// CHECK:            <key>line</key><integer>220</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>line</key><integer>220</integer>
 // CHECK:            <key>col</key><integer>20</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4149,7 +4177,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>217</integer>
+// CHECK:       <key>line</key><integer>220</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4157,12 +4185,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>217</integer>
+// CHECK:          <key>line</key><integer>220</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>line</key><integer>220</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4184,7 +4212,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>217</integer>
+// CHECK:    <key>line</key><integer>220</integer>
 // CHECK:    <key>col</key><integer>20</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -4196,7 +4224,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>221</integer>
+// CHECK:       <key>line</key><integer>224</integer>
 // CHECK:       <key>col</key><integer>45</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4204,12 +4232,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>221</integer>
+// CHECK:          <key>line</key><integer>224</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>line</key><integer>224</integer>
 // CHECK:          <key>col</key><integer>45</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4229,12 +4257,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>221</integer>
+// CHECK:            <key>line</key><integer>224</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>line</key><integer>224</integer>
 // CHECK:            <key>col</key><integer>19</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4242,12 +4270,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>222</integer>
+// CHECK:            <key>line</key><integer>225</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>line</key><integer>225</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4259,7 +4287,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>222</integer>
+// CHECK:       <key>line</key><integer>225</integer>
 // CHECK:       <key>col</key><integer>20</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4267,12 +4295,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>222</integer>
+// CHECK:          <key>line</key><integer>225</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>line</key><integer>225</integer>
 // CHECK:          <key>col</key><integer>20</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4292,12 +4320,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>222</integer>
+// CHECK:            <key>line</key><integer>225</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>line</key><integer>225</integer>
 // CHECK:            <key>col</key><integer>18</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4305,12 +4333,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>223</integer>
+// CHECK:            <key>line</key><integer>226</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>line</key><integer>226</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4326,12 +4354,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>223</integer>
+// CHECK:            <key>line</key><integer>226</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>line</key><integer>226</integer>
 // CHECK:            <key>col</key><integer>25</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4339,12 +4367,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>223</integer>
+// CHECK:            <key>line</key><integer>226</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>line</key><integer>226</integer>
 // CHECK:            <key>col</key><integer>27</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4356,7 +4384,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>223</integer>
+// CHECK:       <key>line</key><integer>226</integer>
 // CHECK:       <key>col</key><integer>27</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4364,12 +4392,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>223</integer>
+// CHECK:          <key>line</key><integer>226</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>line</key><integer>226</integer>
 // CHECK:          <key>col</key><integer>27</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4391,7 +4419,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>223</integer>
+// CHECK:    <key>line</key><integer>226</integer>
 // CHECK:    <key>col</key><integer>27</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -4403,7 +4431,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>235</integer>
+// CHECK:       <key>line</key><integer>238</integer>
 // CHECK:       <key>col</key><integer>16</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4411,12 +4439,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>235</integer>
+// CHECK:          <key>line</key><integer>238</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>line</key><integer>238</integer>
 // CHECK:          <key>col</key><integer>16</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4436,12 +4464,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>235</integer>
+// 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>235</integer>
+// CHECK:            <key>line</key><integer>238</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4449,12 +4477,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>236</integer>
+// CHECK:            <key>line</key><integer>239</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>line</key><integer>239</integer>
 // CHECK:            <key>col</key><integer>10</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4470,12 +4498,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>236</integer>
+// CHECK:            <key>line</key><integer>239</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>line</key><integer>239</integer>
 // CHECK:            <key>col</key><integer>10</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4483,12 +4511,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>236</integer>
+// CHECK:            <key>line</key><integer>239</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>line</key><integer>239</integer>
 // CHECK:            <key>col</key><integer>19</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4500,7 +4528,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>236</integer>
+// CHECK:       <key>line</key><integer>239</integer>
 // CHECK:       <key>col</key><integer>19</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4508,12 +4536,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>236</integer>
+// CHECK:          <key>line</key><integer>239</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>line</key><integer>239</integer>
 // CHECK:          <key>col</key><integer>38</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4535,7 +4563,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>236</integer>
+// CHECK:    <key>line</key><integer>239</integer>
 // CHECK:    <key>col</key><integer>19</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -4547,7 +4575,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>235</integer>
+// CHECK:       <key>line</key><integer>238</integer>
 // CHECK:       <key>col</key><integer>16</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4555,12 +4583,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>235</integer>
+// CHECK:          <key>line</key><integer>238</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>line</key><integer>238</integer>
 // CHECK:          <key>col</key><integer>16</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4580,12 +4608,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>235</integer>
+// 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>235</integer>
+// CHECK:            <key>line</key><integer>238</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4593,12 +4621,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>238</integer>
+// CHECK:            <key>line</key><integer>241</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>line</key><integer>241</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4614,12 +4642,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>238</integer>
+// CHECK:            <key>line</key><integer>241</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>line</key><integer>241</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4627,12 +4655,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>238</integer>
+// CHECK:            <key>line</key><integer>241</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>line</key><integer>241</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4644,7 +4672,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>238</integer>
+// CHECK:       <key>line</key><integer>241</integer>
 // CHECK:       <key>col</key><integer>9</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4652,12 +4680,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>238</integer>
+// CHECK:          <key>line</key><integer>241</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>line</key><integer>241</integer>
 // CHECK:          <key>col</key><integer>23</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4679,7 +4707,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>4</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>238</integer>
+// CHECK:    <key>line</key><integer>241</integer>
 // CHECK:    <key>col</key><integer>9</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -4691,7 +4719,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>235</integer>
+// CHECK:       <key>line</key><integer>238</integer>
 // CHECK:       <key>col</key><integer>16</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4699,12 +4727,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>235</integer>
+// CHECK:          <key>line</key><integer>238</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>line</key><integer>238</integer>
 // CHECK:          <key>col</key><integer>16</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4724,12 +4752,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>235</integer>
+// 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>235</integer>
+// CHECK:            <key>line</key><integer>238</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4737,12 +4765,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>240</integer>
+// CHECK:            <key>line</key><integer>243</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>line</key><integer>243</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4758,12 +4786,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>240</integer>
+// CHECK:            <key>line</key><integer>243</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>line</key><integer>243</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4771,12 +4799,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>240</integer>
+// CHECK:            <key>line</key><integer>243</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>line</key><integer>243</integer>
 // CHECK:            <key>col</key><integer>21</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4788,7 +4816,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>240</integer>
+// CHECK:       <key>line</key><integer>243</integer>
 // CHECK:       <key>col</key><integer>11</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4796,12 +4824,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>240</integer>
+// CHECK:          <key>line</key><integer>243</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>line</key><integer>243</integer>
 // CHECK:          <key>col</key><integer>21</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4823,7 +4851,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>6</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>240</integer>
+// CHECK:    <key>line</key><integer>243</integer>
 // CHECK:    <key>col</key><integer>11</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -4835,7 +4863,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>235</integer>
+// CHECK:       <key>line</key><integer>238</integer>
 // CHECK:       <key>col</key><integer>16</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4843,12 +4871,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>235</integer>
+// CHECK:          <key>line</key><integer>238</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>line</key><integer>238</integer>
 // CHECK:          <key>col</key><integer>16</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4868,12 +4896,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>235</integer>
+// 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>235</integer>
+// CHECK:            <key>line</key><integer>238</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4881,12 +4909,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>242</integer>
+// CHECK:            <key>line</key><integer>245</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>line</key><integer>245</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4902,12 +4930,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>242</integer>
+// CHECK:            <key>line</key><integer>245</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>line</key><integer>245</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4915,12 +4943,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>242</integer>
+// CHECK:            <key>line</key><integer>245</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>line</key><integer>245</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -4932,7 +4960,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>242</integer>
+// CHECK:       <key>line</key><integer>245</integer>
 // CHECK:       <key>col</key><integer>9</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4940,12 +4968,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>242</integer>
+// CHECK:          <key>line</key><integer>245</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>line</key><integer>245</integer>
 // CHECK:          <key>col</key><integer>9</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -4967,7 +4995,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>8</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>242</integer>
+// CHECK:    <key>line</key><integer>245</integer>
 // CHECK:    <key>col</key><integer>9</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -4979,7 +5007,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>248</integer>
+// CHECK:       <key>line</key><integer>251</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -4987,12 +5015,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>248</integer>
+// CHECK:          <key>line</key><integer>251</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>line</key><integer>251</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5012,12 +5040,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>248</integer>
+// CHECK:            <key>line</key><integer>251</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>line</key><integer>251</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5025,12 +5053,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>249</integer>
+// CHECK:            <key>line</key><integer>252</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>line</key><integer>252</integer>
 // CHECK:            <key>col</key><integer>4</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5046,12 +5074,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>249</integer>
+// CHECK:            <key>line</key><integer>252</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>line</key><integer>252</integer>
 // CHECK:            <key>col</key><integer>4</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5059,12 +5087,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>250</integer>
+// CHECK:            <key>line</key><integer>253</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>line</key><integer>253</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5080,12 +5108,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>250</integer>
+// CHECK:            <key>line</key><integer>253</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>line</key><integer>253</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5093,12 +5121,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>251</integer>
+// CHECK:            <key>line</key><integer>254</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>line</key><integer>254</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5110,7 +5138,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>251</integer>
+// CHECK:       <key>line</key><integer>254</integer>
 // CHECK:       <key>col</key><integer>5</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5118,12 +5146,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>251</integer>
+// CHECK:          <key>line</key><integer>254</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>line</key><integer>254</integer>
 // CHECK:          <key>col</key><integer>41</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5145,7 +5173,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>4</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>251</integer>
+// CHECK:    <key>line</key><integer>254</integer>
 // CHECK:    <key>col</key><integer>5</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -5157,7 +5185,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>260</integer>
+// CHECK:       <key>line</key><integer>263</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5165,12 +5193,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>260</integer>
+// CHECK:          <key>line</key><integer>263</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>line</key><integer>263</integer>
 // CHECK:          <key>col</key><integer>7</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5190,12 +5218,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>260</integer>
+// CHECK:            <key>line</key><integer>263</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>line</key><integer>263</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5203,12 +5231,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>261</integer>
+// CHECK:            <key>line</key><integer>264</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>line</key><integer>264</integer>
 // CHECK:            <key>col</key><integer>4</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5224,12 +5252,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>261</integer>
+// CHECK:            <key>line</key><integer>264</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>line</key><integer>264</integer>
 // CHECK:            <key>col</key><integer>4</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5237,12 +5265,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>262</integer>
+// CHECK:            <key>line</key><integer>265</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>line</key><integer>265</integer>
 // CHECK:            <key>col</key><integer>5</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5254,7 +5282,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>262</integer>
+// CHECK:       <key>line</key><integer>265</integer>
 // CHECK:       <key>col</key><integer>5</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5262,12 +5290,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>262</integer>
+// CHECK:          <key>line</key><integer>265</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>line</key><integer>265</integer>
 // CHECK:          <key>col</key><integer>41</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5289,7 +5317,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>262</integer>
+// CHECK:    <key>line</key><integer>265</integer>
 // CHECK:    <key>col</key><integer>5</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -5301,7 +5329,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>275</integer>
+// CHECK:       <key>line</key><integer>278</integer>
 // CHECK:       <key>col</key><integer>30</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5309,12 +5337,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>275</integer>
+// CHECK:          <key>line</key><integer>278</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>line</key><integer>278</integer>
 // CHECK:          <key>col</key><integer>42</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5334,12 +5362,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>275</integer>
+// CHECK:            <key>line</key><integer>278</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>line</key><integer>278</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5347,12 +5375,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>277</integer>
+// CHECK:            <key>line</key><integer>280</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>line</key><integer>280</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5364,7 +5392,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>277</integer>
+// CHECK:       <key>line</key><integer>280</integer>
 // CHECK:       <key>col</key><integer>3</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5372,12 +5400,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>277</integer>
+// CHECK:          <key>line</key><integer>280</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>line</key><integer>280</integer>
 // CHECK:          <key>col</key><integer>41</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5399,7 +5427,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>277</integer>
+// CHECK:    <key>line</key><integer>280</integer>
 // CHECK:    <key>col</key><integer>3</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -5411,7 +5439,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>286</integer>
+// CHECK:       <key>line</key><integer>289</integer>
 // CHECK:       <key>col</key><integer>13</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5419,12 +5447,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>286</integer>
+// CHECK:          <key>line</key><integer>289</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>line</key><integer>289</integer>
 // CHECK:          <key>col</key><integer>39</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5444,12 +5472,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>286</integer>
+// CHECK:            <key>line</key><integer>289</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>line</key><integer>289</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5457,12 +5485,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>287</integer>
+// CHECK:            <key>line</key><integer>290</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>line</key><integer>290</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5478,12 +5506,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>287</integer>
+// CHECK:            <key>line</key><integer>290</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>line</key><integer>290</integer>
 // CHECK:            <key>col</key><integer>9</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5491,12 +5519,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>287</integer>
+// CHECK:            <key>line</key><integer>290</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>line</key><integer>290</integer>
 // CHECK:            <key>col</key><integer>28</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5508,7 +5536,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>287</integer>
+// CHECK:       <key>line</key><integer>290</integer>
 // CHECK:       <key>col</key><integer>28</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5516,12 +5544,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>287</integer>
+// CHECK:          <key>line</key><integer>290</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>line</key><integer>290</integer>
 // CHECK:          <key>col</key><integer>39</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5543,7 +5571,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>287</integer>
+// CHECK:    <key>line</key><integer>290</integer>
 // CHECK:    <key>col</key><integer>28</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -5555,7 +5583,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>286</integer>
+// CHECK:       <key>line</key><integer>289</integer>
 // CHECK:       <key>col</key><integer>13</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5563,12 +5591,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>286</integer>
+// CHECK:          <key>line</key><integer>289</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>line</key><integer>289</integer>
 // CHECK:          <key>col</key><integer>39</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5588,12 +5616,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>286</integer>
+// CHECK:            <key>line</key><integer>289</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>line</key><integer>289</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5601,12 +5629,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>288</integer>
+// CHECK:            <key>line</key><integer>291</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>line</key><integer>291</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5622,12 +5650,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>288</integer>
+// CHECK:            <key>line</key><integer>291</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>line</key><integer>291</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5635,12 +5663,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>288</integer>
+// CHECK:            <key>line</key><integer>291</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>line</key><integer>291</integer>
 // CHECK:            <key>col</key><integer>7</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5652,7 +5680,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>288</integer>
+// CHECK:       <key>line</key><integer>291</integer>
 // CHECK:       <key>col</key><integer>7</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5660,12 +5688,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>288</integer>
+// CHECK:          <key>line</key><integer>291</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>line</key><integer>291</integer>
 // CHECK:          <key>col</key><integer>19</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5687,7 +5715,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>3</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>288</integer>
+// CHECK:    <key>line</key><integer>291</integer>
 // CHECK:    <key>col</key><integer>7</integer>
 // CHECK:    <key>file</key><integer>0</integer>
 // CHECK:   </dict>
@@ -5699,7 +5727,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>292</integer>
+// CHECK:       <key>line</key><integer>295</integer>
 // CHECK:       <key>col</key><integer>13</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5707,12 +5735,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>292</integer>
+// CHECK:          <key>line</key><integer>295</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>line</key><integer>295</integer>
 // CHECK:          <key>col</key><integer>15</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5732,12 +5760,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>292</integer>
+// CHECK:            <key>line</key><integer>295</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>line</key><integer>295</integer>
 // CHECK:            <key>col</key><integer>4</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5745,12 +5773,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>293</integer>
+// CHECK:            <key>line</key><integer>296</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>line</key><integer>296</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5766,12 +5794,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>start</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>293</integer>
+// CHECK:            <key>line</key><integer>296</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>line</key><integer>296</integer>
 // CHECK:            <key>col</key><integer>3</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5779,12 +5807,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:         <key>end</key>
 // CHECK:          <array>
 // CHECK:           <dict>
-// CHECK:            <key>line</key><integer>293</integer>
+// CHECK:            <key>line</key><integer>296</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>line</key><integer>296</integer>
 // CHECK:            <key>col</key><integer>21</integer>
 // CHECK:            <key>file</key><integer>0</integer>
 // CHECK:           </dict>
@@ -5796,7 +5824,7 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <key>kind</key><string>event</string>
 // CHECK:      <key>location</key>
 // CHECK:      <dict>
-// CHECK:       <key>line</key><integer>293</integer>
+// CHECK:       <key>line</key><integer>296</integer>
 // CHECK:       <key>col</key><integer>18</integer>
 // CHECK:       <key>file</key><integer>0</integer>
 // CHECK:      </dict>
@@ -5804,12 +5832,12 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:      <array>
 // CHECK:        <array>
 // CHECK:         <dict>
-// CHECK:          <key>line</key><integer>293</integer>
+// CHECK:          <key>line</key><integer>296</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>line</key><integer>296</integer>
 // CHECK:          <key>col</key><integer>21</integer>
 // CHECK:          <key>file</key><integer>0</integer>
 // CHECK:         </dict>
@@ -5831,9 +5859,509 @@ void testMistmatchedTypeCast(MutableArra
 // CHECK:   <key>issue_hash</key><string>2</string>
 // CHECK:   <key>location</key>
 // CHECK:   <dict>
-// CHECK:    <key>line</key><integer>293</integer>
+// CHECK:    <key>line</key><integer>296</integer>
 // CHECK:    <key>col</key><integer>18</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>308</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>308</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>309</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>309</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>event</string>
+// CHECK:      <key>location</key>
+// CHECK:      <dict>
+// CHECK:       <key>line</key><integer>309</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>309</integer>
+// CHECK:          <key>col</key><integer>10</integer>
+// CHECK:          <key>file</key><integer>0</integer>
+// CHECK:         </dict>
+// CHECK:         <dict>
+// CHECK:          <key>line</key><integer>309</integer>
+// CHECK:          <key>col</key><integer>29</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>309</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>309</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>310</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>310</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>310</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>310</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>310</integer>
+// CHECK:            <key>col</key><integer>30</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>310</integer>
+// CHECK:            <key>col</key><integer>30</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>310</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>310</integer>
+// CHECK:          <key>col</key><integer>30</integer>
+// CHECK:          <key>file</key><integer>0</integer>
+// CHECK:         </dict>
+// CHECK:         <dict>
+// CHECK:          <key>line</key><integer>310</integer>
+// CHECK:          <key>col</key><integer>30</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>returnCollectionToIdVariable</string>
+// CHECK:   <key>issue_hash</key><string>3</string>
+// CHECK:   <key>location</key>
+// CHECK:   <dict>
+// CHECK:    <key>line</key><integer>310</integer>
+// CHECK:    <key>col</key><integer>30</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>314</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>314</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>315</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>315</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>315</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>315</integer>
+// CHECK:          <key>col</key><integer>16</integer>
+// CHECK:          <key>file</key><integer>0</integer>
+// CHECK:         </dict>
+// CHECK:         <dict>
+// CHECK:          <key>line</key><integer>315</integer>
+// CHECK:          <key>col</key><integer>35</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>315</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>315</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>316</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>316</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>316</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>316</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>316</integer>
+// CHECK:            <key>col</key><integer>30</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>316</integer>
+// CHECK:            <key>col</key><integer>30</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>316</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>316</integer>
+// CHECK:          <key>col</key><integer>30</integer>
+// CHECK:          <key>file</key><integer>0</integer>
+// CHECK:         </dict>
+// CHECK:         <dict>
+// CHECK:          <key>line</key><integer>316</integer>
+// CHECK:          <key>col</key><integer>30</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>eraseSpecialization</string>
+// CHECK:   <key>issue_hash</key><string>3</string>
+// CHECK:   <key>location</key>
+// CHECK:   <dict>
+// CHECK:    <key>line</key><integer>316</integer>
+// CHECK:    <key>col</key><integer>30</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>320</integer>
+// CHECK:       <key>col</key><integer>21</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>320</integer>
+// CHECK:          <key>col</key><integer>21</integer>
+// CHECK:          <key>file</key><integer>0</integer>
+// CHECK:         </dict>
+// CHECK:         <dict>
+// CHECK:          <key>line</key><integer>320</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>Type 'NSArray<NSArray<NSString *> *> *' is inferred from implicit cast (from 'NSArray<NSArray<NSString *> *> *' to 'NSArray *')</string>
+// CHECK:      <key>message</key>
+// CHECK:      <string>Type 'NSArray<NSArray<NSString *> *> *' is inferred from implicit cast (from 'NSArray<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>320</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>320</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>321</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>321</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>control</string>
+// CHECK:      <key>edges</key>
+// CHECK:       <array>
+// CHECK:        <dict>
+// CHECK:         <key>start</key>
+// CHECK:          <array>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>321</integer>
+// CHECK:            <key>col</key><integer>3</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>321</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>321</integer>
+// CHECK:            <key>col</key><integer>14</integer>
+// CHECK:            <key>file</key><integer>0</integer>
+// CHECK:           </dict>
+// CHECK:           <dict>
+// CHECK:            <key>line</key><integer>321</integer>
+// CHECK:            <key>col</key><integer>14</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>321</integer>
+// CHECK:       <key>col</key><integer>14</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>321</integer>
+// CHECK:          <key>col</key><integer>14</integer>
+// CHECK:          <key>file</key><integer>0</integer>
+// CHECK:         </dict>
+// CHECK:         <dict>
+// CHECK:          <key>line</key><integer>321</integer>
+// CHECK:          <key>col</key><integer>33</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 'NSSet *'</string>
+// CHECK:      <key>message</key>
+// CHECK:      <string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSSet *'</string>
+// CHECK:     </dict>
+// CHECK:    </array>
+// CHECK:    <key>description</key><string>Conversion from value of type 'NSArray<NSString *> *' to incompatible type 'NSSet *'</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>returnToUnrelatedType</string>
+// CHECK:   <key>issue_hash</key><string>2</string>
+// CHECK:   <key>location</key>
+// CHECK:   <dict>
+// CHECK:    <key>line</key><integer>321</integer>
+// CHECK:    <key>col</key><integer>14</integer>
+// CHECK:    <key>file</key><integer>0</integer>
+// CHECK:   </dict>
+// CHECK:   </dict>
 // CHECK:  </array>




More information about the cfe-commits mailing list