anchor.diff:    /// which currently do have function values).
     void buildFunctionNode(FunctionNode node, Environment environment,
         {int function, bool addTypeBasedSummary: false}) {
  -    var expressionBuilder = new ExpressionBuilder(this, environment);
  +    var expressionBuilder =
  +        new StatementBuilder(this, environment).expressionBuilder;
       int minArity = node.requiredParameterCount;
       int maxArity = node.positionalParameters.length;
       for (int i = 0; i < node.positionalParameters.length; ++i) {
  
positive.code:     var environment = new Environment(this, null, field);
      int initializer = field.initializer == null
          ? nullNode
          : new ExpressionBuilder(this, environment).build(field.initializer);
      environment.addAssign(initializer, getSharedFieldVariable(field));
    }
  
  
negative.code:   FieldNames get names => builder.fieldNames;
  
    StatementBuilder(this.builder, this.environment) {
      expressionBuilder = new ExpressionBuilder(builder, this, environment);
    }
  
    Completion build(Statement node) => node.accept(this);
  