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:       // Update the type arguments inplace on the [arguments] node.
        if (node.redirectedConstructor.type.typeArguments != null) {
          ast.InterfaceType type =
              scope.buildType(node.redirectedConstructor.type.type);
          var targetClass = scope.getClassReference(element.enclosingElement);
          if (targetClass.typeParameters.length != arguments.types.length) {
            return scope.emitInvalidConstant();
  
negative.code:   ast.Class get currentClass => currentMember.enclosingClass;
  
    bool get allowThis => _memberHasThis(currentMember);
  
    @override
    bool get allowClassTypeParameters {
      return currentMember.isInstanceMember || currentMember is ast.Constructor;
    }
  
    /// Returns a string for debugging use, indicating the location of the member
    /// being built.
  