anchor.diff:      result.add(_appendContext(ast, res));
     }
   
  +  @override
     void visitAttr(AttrAst ast, _) {
       var res = [AttrAst, ast.name];
       var attributeValue = ast.value;
  
positive.code:     ]);
    }
  
    void visitText(TextAst ast, _) {
      result.add(['#text(${ast.value})', ast.ngContentIndex]);
    }
  
    void visitDirective(DirectiveAst ast, _) {}
  
    void visitDirectiveProperty(BoundDirectivePropertyAst ast, _) {}
  
    void visitProvider(ProviderAst ast, _) {}
  
    void visitI18nText(I18nTextAst ast, _) {}
  }
  
  
negative.code:     templateVisitAll(this, ast.children);
    }
  
    @override
    void visitReference(ReferenceAst ast, _) {
      var res = [ReferenceAst, ast.name, ast.value];
      result.add(_appendContext(ast, res));
    }
  
    @override
    void visitVariable(VariableAst ast, _) {
      var res = [VariableAst, ast.name, ast.value];
      if (ast.type != null) {
  