anchor.diff:        location = _createLocationForOffset(start, 0);
       }
       recordRelationship(element, IndexConstants.IS_REFERENCED_BY, location);
  -    return super.visitRedirectingConstructorInvocation(node);
  -  }
  -
  -  @override
  -  Object visitSimpleIdentifier(SimpleIdentifier node) {
  +    super.visitRedirectingConstructorInvocation(node);
  +  }
  +
  +  @override
  +  visitSimpleIdentifier(SimpleIdentifier node) {
       Element nameElement = new NameElement(node.name);
       Location location = _createLocationForNode(node);
       // name in declaration
  
positive.code:     if (fieldName != null) {
        Element element = fieldName.staticElement;
        Location location = _createLocationForNode(fieldName);
        _store.recordRelationship(element, IndexConstants.IS_WRITTEN_BY, location);
      }
      // index expression
      if (expression != null) {
  
negative.code:       location = _createLocationForOffset(start, 0);
      }
      recordRelationship(element, IndexConstants.IS_REFERENCED_BY, location);
      super.visitSuperConstructorInvocation(node);
    }
  
    @override
    visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
      VariableDeclarationList variables = node.variables;
      for (VariableDeclaration variableDeclaration in variables.variables) {
        Element element = variableDeclaration.element;
        _recordElementDefinition(element);
      }
      super.visitTopLevelVariableDeclaration(node);
    }
  
    @override
    visitTypeParameter(TypeParameter node) {
      TypeParameterElement element = node.element;
      enterScope(element);
      try {
        super.visitTypeParameter(node);
      } finally {
        _exitScope();
      }
    }
  
    @override
    visitVariableDeclaration(VariableDeclaration node) {
      VariableElement element = node.element;
      // record declaration
      {
  