anchor.diff:  // BSD-style license that can be found in the LICENSE file.
   
   import 'package:analyzer/dart/ast/ast.dart';
  -import 'package:analyzer/dart/ast/standard_ast_factory.dart';
   import 'package:analyzer/dart/ast/token.dart';
   import 'package:analyzer/dart/ast/visitor.dart';
   import 'package:analyzer/dart/element/element.dart';
  
positive.code:       AstNode parent, NodeList<Annotation> nodes, Element element) {
      if (element != null) {
        resolveAnnotations(parent, nodes, element.metadata);
      }
    }
  
    /// Recursively apply each of the type arguments of the [type] to the
    /// corresponding type arguments of the [typeArguments].
    static void _applyTypeArgumentsToList(LibraryElement enclosingLibraryElement,
        DartType type, List<TypeAnnotation> typeArguments) {
      if (type != null && type.isDynamic) {
        for (TypeAnnotation argument in typeArguments) {
          applyToTypeAnnotation(enclosingLibraryElement, type, argument);
        }
      } else if (type is ParameterizedType) {
        List<DartType> argumentTypes = type.typeArguments;
        int argumentCount = argumentTypes.length;
        if (argumentCount != typeArguments.length) {
          throw new StateError('Found $argumentCount argument types '
              'for ${typeArguments.length} type arguments');
        }
        for (int i = 0; i < argumentCount; i++) {
          applyToTypeAnnotation(
              enclosingLibraryElement, argumentTypes[i], typeArguments[i]);
        }
      } else {
        throw new StateError('Attempting to apply a non-parameterized type '
            '(${type.runtimeType}) to type arguments');
      }
    }
  
  
negative.code:     _walker = outerWalker;
    }
  
    /// Associate each of the annotation [nodes] with the corresponding
    /// [ElementAnnotation] in [annotations]. If there is a problem, report it
    /// against the given [parent] node.
  