anchor.diff:    @override
     void declaredClass(ClassDeclaration declaration) {
       if (optype.includeTypeNameSuggestions) {
  -      bool deprecated = isDeprecated(declaration);
  -      CompletionSuggestion suggestion = _addSuggestion(
  -          declaration.name, NO_RETURN_TYPE, deprecated, DART_RELEVANCE_DEFAULT);
  -      if (suggestion != null) {
  -        suggestion.element = createElement(
  -            protocol.ElementKind.CLASS, declaration.name,
  -            returnType: NO_RETURN_TYPE,
  -            isAbstract: declaration.isAbstract,
  -            isDeprecated: deprecated);
  -      }
  +      _addSuggestion(
  +          declaration.name, NO_RETURN_TYPE, protocol.ElementKind.CLASS,
  +          isAbstract: declaration.isAbstract,
  +          isDeprecated: isDeprecated(declaration));
       }
     }
   
     @override
     void declaredClassTypeAlias(ClassTypeAlias declaration) {
       if (optype.includeTypeNameSuggestions) {
  -      bool deprecated = isDeprecated(declaration);
  -      CompletionSuggestion suggestion = _addSuggestion(
  -          declaration.name, NO_RETURN_TYPE, deprecated, DART_RELEVANCE_DEFAULT);
  -      if (suggestion != null) {
  -        suggestion.element = createElement(
  -            protocol.ElementKind.CLASS_TYPE_ALIAS, declaration.name,
  -            returnType: NO_RETURN_TYPE,
  -            isAbstract: true,
  -            isDeprecated: deprecated);
  -      }
  +      _addSuggestion(declaration.name, NO_RETURN_TYPE,
  +          protocol.ElementKind.CLASS_TYPE_ALIAS,
  +          isAbstract: true, isDeprecated: isDeprecated(declaration));
       }
     }
   
     @override
     void declaredEnum(EnumDeclaration declaration) {
  -    SimpleIdentifier enumId = declaration.name;
  -    if (enumId != null) {
  -      bool deprecated = isDeprecated(declaration);
  -      if (optype.includeTypeNameSuggestions) {
  -        CompletionSuggestion suggestion = _addSuggestion(
  -            enumId, NO_RETURN_TYPE, deprecated, DART_RELEVANCE_DEFAULT);
  -        if (suggestion != null) {
  -          suggestion.element = createElement(protocol.ElementKind.ENUM, enumId,
  -              returnType: NO_RETURN_TYPE, isDeprecated: deprecated);
  -        }
  -      }
  +    if (optype.includeTypeNameSuggestions) {
  +      _addSuggestion(
  +          declaration.name, NO_RETURN_TYPE, protocol.ElementKind.ENUM,
  +          isDeprecated: isDeprecated(declaration));
       }
     }
   
  
positive.code:   void declaredFunction(FunctionDeclaration declaration) {
      if (optype.includeReturnValueSuggestions ||
          optype.includeVoidReturnSuggestions) {
        TypeName returnType = declaration.returnType;
        bool deprecated = isDeprecated(declaration);
        protocol.ElementKind kind;
        int defaultRelevance = DART_RELEVANCE_DEFAULT;
        if (declaration.isGetter) {
          kind = protocol.ElementKind.GETTER;
          defaultRelevance = DART_RELEVANCE_LOCAL_ACCESSOR;
        } else if (declaration.isSetter) {
          if (!optype.includeVoidReturnSuggestions) {
            return;
          }
          kind = protocol.ElementKind.SETTER;
          returnType = NO_RETURN_TYPE;
          defaultRelevance = DART_RELEVANCE_LOCAL_ACCESSOR;
        } else {
          if (!optype.includeVoidReturnSuggestions && _isVoid(returnType)) {
            return;
          }
          kind = protocol.ElementKind.FUNCTION;
          defaultRelevance = DART_RELEVANCE_LOCAL_FUNCTION;
        }
        CompletionSuggestion suggestion = _addSuggestion(
            declaration.name, returnType, deprecated, defaultRelevance);
        if (suggestion != null) {
          FormalParameterList param = declaration.functionExpression.parameters;
          suggestion.element = createElement(kind, declaration.name,
              parameters: param != null ? param.toSource() : null,
              returnType: returnType,
              isDeprecated: deprecated);
          if (kind == protocol.ElementKind.FUNCTION) {
            _addParameterInfo(
                suggestion, declaration.functionExpression.parameters);
          }
        }
      }
    }
  
    @override
    void declaredFunctionTypeAlias(FunctionTypeAlias declaration) {
      if (optype.includeTypeNameSuggestions) {
        bool deprecated = isDeprecated(declaration);
        TypeName returnType = declaration.returnType;
        CompletionSuggestion suggestion = _addSuggestion(
            declaration.name, returnType, deprecated, DART_RELEVANCE_DEFAULT);
        if (suggestion != null) {
          // TODO (danrubel) determine parameters and return type
          suggestion.element = createElement(
              protocol.ElementKind.FUNCTION_TYPE_ALIAS, declaration.name,
              returnType: returnType, isAbstract: true, isDeprecated: deprecated);
        }
      }
    }
  
  
negative.code:   }
  
    @override
    void declaredLocalVar(SimpleIdentifier id, TypeName typeName) {
      if (optype.includeReturnValueSuggestions) {
        _addSuggestion(id, typeName, protocol.ElementKind.LOCAL_VARIABLE,
            relevance: DART_RELEVANCE_LOCAL_VARIABLE);
      }
    }
  
  