anchor.diff:            ' JavaScript event handler. Use the form '
             'on-event-name="handlerName" if you want a Dart handler '
             'that will automatically update the UI based on model changes.',
  -          node.attributeSpans[name]);
  +          span: node.attributeSpans[name]);
         return;
       }
   
       if (!_inPolymerElement) {
         _logger.warning('Inline event handlers are only supported inside '
  -          'declarations of <polymer-element>.', node.attributeSpans[name]);
  +          'declarations of <polymer-element>.',
  +          span: node.attributeSpans[name]);
       }
   
       var eventName = name.substring('on-'.length);
  
positive.code:       if (!src.endsWith('.dart')) {
          _logger.warning('"application/dart" scripts should '
              'use the .dart file extension.',
              node.sourceSpan);
        }
  
        if (node.innerHtml.trim() != '') {
          _logger.warning('script tag has "src" attribute and also has script '
              'text.', node.sourceSpan);
        }
      }
    }
  
negative.code:       _logger.warning('Invalid event name "$name". After the "on-" the event '
            'name should not use dashes. For example use "on-$newEvent" or '
            '"on-${newEvent.toLowerCase()}" (both forms are equivalent in HTML).',
            span: node.attributeSpans[name]);
      }
  
      if (value.contains('.') || value.contains('(')) {
        _logger.warning('Invalid event handler body "$value". Declare a method '
            'in your custom element "void handlerName(event, detail, target)" '
            'and use the form $name="handlerName".',
            span: node.attributeSpans[name]);
      }
    }
  }
  