anchor.diff:  
     @override
     void visitForPartsWithDeclarations(ForPartsWithDeclarations node) {
  -    safelyVisitNode(node.variables);
  -    sink.write(';');
  -    safelyVisitNodeWithPrefix(' ', node.condition);
  -    sink.write(';');
  -    safelyVisitNodeListWithSeparatorAndPrefix(' ', node.updaters, ', ');
  +    _visitNode(node.variables);
  +    sink.write(';');
  +    _visitNode(node.condition, prefix: ' ');
  +    sink.write(';');
  +    _visitNodeList(node.updaters, prefix: ' ', separator: ', ');
     }
   
     @override
     void visitForPartsWithExpression(ForPartsWithExpression node) {
  -    safelyVisitNode(node.initialization);
  -    sink.write(';');
  -    safelyVisitNodeWithPrefix(' ', node.condition);
  -    sink.write(';');
  -    safelyVisitNodeListWithSeparatorAndPrefix(" ", node.updaters, ', ');
  +    _visitNode(node.initialization);
  +    sink.write(';');
  +    _visitNode(node.condition, prefix: ' ');
  +    sink.write(';');
  +    _visitNodeList(node.updaters, prefix: ' ', separator: ', ');
     }
   
     @override
  
positive.code: 
    @override
    void visitTypeParameter(TypeParameter node) {
      safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
      // TODO (kallentu) : Clean up TypeParameterImpl casting once variance is
      // added to the interface.
      var varianceKeyword = (node as TypeParameterImpl).varianceKeyword;
      if (varianceKeyword != null) {
        sink.write(varianceKeyword.lexeme + ' ');
      }
      safelyVisitNode(node.name);
      safelyVisitNodeWithPrefix(" extends ", node.bound);
    }
  
    @override
    void visitTypeParameterList(TypeParameterList node) {
      sink.write('<');
      safelyVisitNodeListWithSeparator(node.typeParameters, ", ");
      sink.write('>');
    }
  
    @override
    void visitVariableDeclaration(VariableDeclaration node) {
      safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
      safelyVisitNode(node.name);
      safelyVisitNodeWithPrefix(" = ", node.initializer);
    }
  
    @override
    void visitVariableDeclarationList(VariableDeclarationList node) {
      safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
      safelyVisitTokenWithSuffix(node.lateKeyword, " ");
      safelyVisitTokenWithSuffix(node.keyword, " ");
      safelyVisitNodeWithSuffix(node.type, " ");
      safelyVisitNodeListWithSeparator(node.variables, ", ");
    }
  
    @override
    void visitVariableDeclarationStatement(VariableDeclarationStatement node) {
      safelyVisitNode(node.variables);
      sink.write(";");
    }
  
    @override
    void visitWhileStatement(WhileStatement node) {
      sink.write("while (");
      safelyVisitNode(node.condition);
      sink.write(") ");
      safelyVisitNode(node.body);
    }
  
    @override
    void visitWithClause(WithClause node) {
      sink.write("with ");
      safelyVisitNodeListWithSeparator(node.mixinTypes, ", ");
    }
  
    @override
    void visitYieldStatement(YieldStatement node) {
      if (node.star != null) {
        sink.write("yield* ");
      } else {
        sink.write("yield ");
      }
      safelyVisitNode(node.expression);
      sink.write(";");
    }
  
    void _writeOperand(Expression node, Expression operand) {
  
negative.code: 
    @override
    void visitPrefixedIdentifier(PrefixedIdentifier node) {
      _visitNode(node.prefix);
      sink.write('.');
      _visitNode(node.identifier);
    }
  
    @override
  