anchor.diff:      _resolver.checkUnreachableNode(node);
   
       var forLoopParts = node.forLoopParts;
  +    void visitBody() {
  +      node.body.accept(_resolver);
  +    }
  +
       if (forLoopParts is ForPartsImpl) {
  -      _forParts(node, forLoopParts, node.body);
  +      _forParts(node, forLoopParts, visitBody);
       } else if (forLoopParts is ForEachPartsImpl) {
  -      _forEachParts(node, node.awaitKeyword != null, forLoopParts, node.body);
  +      _forEachParts(node, node.awaitKeyword != null, forLoopParts, visitBody);
       }
     }
   
  
positive.code:     }
  
      _resolver.flowAnalysis.for_bodyBegin(node, condition);
      _visitBody(body, context);
  
      _resolver.flowAnalysis.flow?.for_updaterBegin();
      forParts.updaters.accept(_resolver);
  
      _resolver.flowAnalysis.flow?.for_end();
    }
  
    void _visitBody(AstNode body, CollectionLiteralContext? context) {
      if (body is CollectionElementImpl) {
        body.resolveElement(_resolver, context);
      } else {
        assert(body is Statement);
        body.accept(_resolver);
      }
    }
  }
  
negative.code: 
    void resolveElement(ForElementImpl node, CollectionLiteralContext? context) {
      var forLoopParts = node.forLoopParts;
      void visitBody() {
        node.body.resolveElement(_resolver, context);
      }
  
      if (forLoopParts is ForPartsImpl) {
        _forParts(node, forLoopParts, visitBody);
      } else if (forLoopParts is ForEachPartsImpl) {
        _forEachParts(node, node.awaitKeyword != null, forLoopParts, visitBody);
      }
    }
  
  