anchor.diff:        superClass: 'Injectable'),
   ];
   
  -const COMPONENTS = const [
  -  const ClassDescriptor('Component', 'package:angular2/src/core/metadata/directive.dart',
  +const _COMPONENTS = const [
  +  const ClassDescriptor(
  +      'Component', 'package:angular2/src/core/metadata/directive.dart',
         superClass: 'Directive'),
     const ClassDescriptor('Component', 'package:angular2/src/core/metadata.dart',
         superClass: 'Directive'),
  
positive.code: 
    factory AnnotationMatcher() {
      return new AnnotationMatcher._([]
        ..addAll(COMPONENTS)
        ..addAll(DIRECTIVES)
        ..addAll(INJECTABLES)
        ..addAll(VIEWS));
    }
  
    bool _implementsWithWarning(Annotation annotation, AssetId assetId,
  
negative.code: 
    /// Checks if an [Annotation] node implements [Injectable].
    bool isInjectable(Annotation annotation, AssetId assetId) =>
        _implementsWithWarning(annotation, assetId, _INJECTABLES);
  
    /// Checks if an [Annotation] node implements [Directive].
    bool isDirective(Annotation annotation, AssetId assetId) =>
        _implementsWithWarning(annotation, assetId, _DIRECTIVES);
  
    /// Checks if an [Annotation] node implements [Component].
    bool isComponent(Annotation annotation, AssetId assetId) =>
        _implementsWithWarning(annotation, assetId, _COMPONENTS);
  
    /// Checks if an [Annotation] node implements [View].
    bool isView(Annotation annotation, AssetId assetId) =>
        _implementsWithWarning(annotation, assetId, _VIEWS);
  }
  