anchor.diff:    void _preVisit(AssignedVariables<Node, Var> assignedVariables) {}
   
     @override
  -  void _visit(
  -      Harness h, FlowAnalysis<Node, Statement, Expression, Var, Type> flow) {
  -    var promotedType = flow.promotedType(variable);
  +  void _visit(Harness h) {
  +    var promotedType = h._flow.promotedType(variable);
       expect(promotedType?.type, expectedTypeStr, reason: '$_creationTrace');
     }
   }
  
positive.code:   void _preVisit(AssignedVariables<Node, Var> assignedVariables) {}
  
    @override
    Type _visit(
        Harness h, FlowAnalysis<Node, Statement, Expression, Var, Type> flow) {
      var thisType = h.thisType!;
      flow.thisOrSuper(this, thisType);
      return thisType;
    }
  }
  
negative.code:   /// test that flow analysis is in the correct state before an expression is
    /// visited.
    Expression thenExpr(Expression expr) => _WrappedExpression(this, expr, null);
  
    void _preVisit(AssignedVariables<Node, Var> assignedVariables);
  
    void _visit(Harness h);
  }
  
  /// Representation of a single case clause in a switch statement.  Use [case_]
  /// to create instances of this class.
  class SwitchCase {
    final bool _hasLabel;
    final _Block _body;
  
  