anchor.diff:    Object visitClassDeclaration(ClassDeclaration node) {
       ElementHolder holder = new ElementHolder();
       _isValidMixin = true;
  +    _functionTypesToFix = new List<ExecutableElementImpl>();
       //
       // Process field declarations before constructors and methods so that field
       // formal parameters can be correctly resolved to their fields.
  
positive.code:     InterfaceTypeImpl interfaceType = new InterfaceTypeImpl(element);
      interfaceType.typeArguments = typeArguments;
      element.type = interfaceType;
      List<ConstructorElement> constructors = holder.constructors;
      if (constructors.length == 0) {
        //
        // Create the default constructor.
        //
        constructors = _createDefaultConstructors(interfaceType);
      }
      _setDocRange(element, node);
      element.abstract = node.isAbstract;
      element.accessors = holder.accessors;
      element.constructors = constructors;
      element.fields = holder.fields;
      element.methods = holder.methods;
      element.typeParameters = typeParameters;
      element.validMixin = _isValidMixin;
      _currentHolder.addType(element);
      className.staticElement = element;
      _fieldMap = null;
  
negative.code:   bool _isValidMixin = false;
  
    /**
     * A collection holding the elements defined in a class that need to have
     * their function type fixed to take into account type parameters of the
     * enclosing class, or `null` if we are not currently processing nodes within
     * a class.
     */
    List<ExecutableElementImpl> _functionTypesToFix = null;
  
    /**
     * A table mapping field names to field elements for the fields defined in the current class, or
     * `null` if we are not in the scope of a class.
     */
  