anchor.diff:      resolvedElements.forEach((element, treeElements) {
         if (!shouldOutput(element)) return;
   
  -      var elementAst = new ElementAst.rewrite(parse(element), treeElements);
  +      var elementAst = new ElementAst.rewrite(compiler, parse(element), treeElements);
         if (element.isField()) {
           final list = (element as VariableElement).variables;
           elementAst = elementAsts.putIfAbsent(
  
positive.code: }
  
  class FunctionBodyRewriter extends CloningVisitor {
    FunctionBodyRewriter(originalTreeElements) : super(originalTreeElements);
  
    visitFunctionExpression(FunctionExpression node) {
      shouldOmit(Statement statement) => statement is EmptyStatement;
  
      rewriteBody(Statement body) {
        if (body is !Block) return visit(body);
  
negative.code: // for details. All rights reserved. Use of this source code is governed by a
  // BSD-style license that can be found in the LICENSE file.
  
  const bool REMOVE_ASSERTS = false;
  
  class ElementAst {
    final Node ast;
    final TreeElements treeElements;
  
    ElementAst(this.ast, this.treeElements);
  
    factory ElementAst.rewrite(compiler, ast, treeElements) {
      final rewriter = new FunctionBodyRewriter(compiler, treeElements);
      return new ElementAst(rewriter.visit(ast), rewriter.cloneTreeElements);
    }
  
  