anchor.diff:      final directive = element.accept(new _ComponentVisitor(_library));
       if (directive != null) {
         if (directive.isComponent) {
  -        var pipes = _visitPipes(element);
           components.add(new NormalizedComponentWithViewDirectives(
  -            directive, _visitDirectives(element), pipes));
  +          directive,
  +          _visitDirectives(element),
  +          _visitPipes(element),
  +        ));
         } else {
           directives.add(directive);
         }
  
positive.code:       _visitTypes(
          element,
          _directivesProperty,
          safeMatcher(isDirective),
          () => new _ComponentVisitor(_library),
        );
  
    List<T> _visitTypes<T>(
      ClassElement element,
      String field,
      AnnotationMatcher annotationMatcher,
      ElementVisitor<T> visitor(),
    ) {
      return element.metadata
          .where(safeMatcher(hasDirectives))
          .expand((annotation) => _visitTypesForComponent(
                coerceList(annotation.computeConstantValue(), field),
                safeMatcher(annotationMatcher),
                visitor,
                // Only pass the annotation for directives: [ ... ], not other
                // elements. They also can cause problems if not resolved but it
  
negative.code:   List<CompilePipeMetadata> _visitPipes(ClassElement element) => _visitTypes(
          element,
          'pipes',
          () => new PipeVisitor(_library),
        );
  
  