anchor.diff:      return fun;
     }
   
  +  // ---- CompilationUnit ----
     visitCompilationUnit(ast.CompilationUnit node) {
  +    // TODO(kmillikin): import 'dart:async' if necessary.
       return new ast.CompilationUnit(
           node.beginToken,
           node.scriptTag,
  
positive.code:         node.endToken);
    }
  
    visitClassDeclaration(ast.ClassDeclaration node) {
      return new ast.ClassDeclaration(
          node.documentationComment,
  
negative.code:   }
  }
  
  class AsyncTransformer extends ast.AstVisitor {
    final Set<ast.AstNode> awaits;
  
    ast.Block currentBlock;
    List<ast.Expression> breakTargets;
    List<ast.Expression> continueTargets;
  
    AsyncTransformer(this.awaits);
  
    visit(ast.AstNode node) => node.accept(this);
  
    int counter = 0;
  
    // TODO: Safely generate fresh identifiers.
    String newName(String base) => '$base${counter++}';
  
    /// Insert a declaration with initial value [expr] in [currentBlock] and
    /// return the fresh name.
  