anchor.diff:    ClassBodyBuilder(
         ReferenceLevelLoader loader, ast.Class currentClass, this.element)
         : this.currentClass = currentClass,
  -        scope = new ExpressionScope(loader, currentClass.enclosingLibrary);
  +        scope = new ClassScope(loader, currentClass.enclosingLibrary),
  +        annotationScope =
  +            new ExpressionScope(loader, currentClass.enclosingLibrary);
   
     void build(CompilationUnitMember node) {
       if (node == null) {
  
positive.code:       DartType type, List<TypeParameterElement> boundVariables) {
      if (type is TypeParameterType) {
        if (boundVariables == null || boundVariables.contains(type)) {
          return new ast.TypeParameterType(
              scope.getTypeParameterReference(type.element));
        } else {
          return const ast.DynamicType();
        }
  
negative.code:       // Update the type arguments inplace on the [arguments] node.
        if (node.redirectedConstructor.type.typeArguments != null) {
          ast.InterfaceType type =
              classScope.buildType(node.redirectedConstructor.type.type);
          var targetClass = scope.getClassReference(element.enclosingElement);
          if (targetClass.typeParameters.length != arguments.types.length) {
            return scope.emitInvalidConstant();
  