anchor.diff:          element.setVisibleRange(enclosingBlock.offset, enclosingBlock.length);
         }
       }
  -    if (_functionTypesToFix != null) {
  -      _functionTypesToFix.add(element);
  -    } else {
  -      element.type = new FunctionTypeImpl(element);
  -    }
  +    element.type = new FunctionTypeImpl(element);
       element.hasImplicitReturnType = true;
       _currentHolder.addFunction(element);
       node.element = element;
  
positive.code:     element.constructors = constructors;
      element.fields = holder.fields;
      element.methods = holder.methods;
      // Function types must be initialized after the enclosing element has been
      // set, for them to pick up the type parameters.
      for (ExecutableElementImpl e in _functionTypesToFix) {
        e.type = new FunctionTypeImpl(e);
      }
      _functionTypesToFix = null;
      _currentHolder.addType(element);
      className.staticElement = element;
      _fieldMap = null;
  
negative.code:   @override
    Object visitClassDeclaration(ClassDeclaration node) {
      ElementHolder holder = new ElementHolder();
      //
      // Process field declarations before constructors and methods so that field
      // formal parameters can be correctly resolved to their fields.
  