anchor.diff:    final TransformLogger logger;
     bool _inTemplate = false;
   
  -  _HtmlExtractor(this.logger, SmokeCodeGenerator generator,
  +  _HtmlExtractor(TransformLogger logger, SmokeCodeGenerator generator,
         this.publishedAttributes)
  -      : generator = generator,
  -        visitor = new _SubExpressionVisitor(generator);
  +      : logger = logger, generator = generator,
  +        visitor = new _SubExpressionVisitor(generator, logger);
   
     void visitElement(Element node) {
       if (_inTemplate) _processNormalElement(node);
  
positive.code: import 'package:analyzer/src/generated/element.dart' as analyzer show Element;
  import 'package:barback/barback.dart';
  import 'package:path/path.dart' as path;
  import 'package:source_maps/span.dart' show SourceFile;
  import 'package:smoke/codegen/generator.dart';
  import 'package:smoke/codegen/recorder.dart';
  import 'package:code_transformers/resolver.dart';
  
negative.code:   }
  
    void _addExpression(String stringExpression, bool inEvent, bool isTwoWay,
        Span span) {
  
      if (inEvent) {
        if (stringExpression.startsWith('@')) {
  