anchor.diff:        }
   
         var doIncludePrivateVersion =
  -          optype.inFieldDeclaration || optype.inTopLevelVariableDeclaration;
  +          opType.inFieldDeclaration || opType.inTopLevelVariableDeclaration;
   
  -      List<String> variableNameSuggestions = getCamelWordCombinations(strName);
  +      var variableNameSuggestions = getCamelWordCombinations(strName);
         variableNameSuggestions.remove(strName);
  -      List<CompletionSuggestion> suggestions = <CompletionSuggestion>[];
  -      for (String varName in variableNameSuggestions) {
  -        CompletionSuggestion suggestion = _createNameSuggestion(varName);
  +      var suggestions = <CompletionSuggestion>[];
  +      for (var varName in variableNameSuggestions) {
  +        var suggestion = _createNameSuggestion(request, varName);
           if (suggestion != null) {
             suggestions.add(suggestion);
           }
           if (doIncludePrivateVersion) {
  -          CompletionSuggestion privateSuggestion =
  -              _createNameSuggestion('_' + varName);
  +          var privateSuggestion = _createNameSuggestion(request, '_' + varName);
             if (privateSuggestion != null) {
               suggestions.add(privateSuggestion);
             }
  
positive.code:         // 'Foo ': handled above
          // 'Foo ;': TopLevelVariableDeclaration with type null, and a first
          // variable of 'Foo'
          VariableDeclarationList varDeclarationList = node.variables;
          TypeAnnotation typeAnnotation = varDeclarationList.type;
          if (typeAnnotation != null) {
            var identifier = _typeAnnotationIdentifier(typeAnnotation);
            strName = _getStringName(identifier);
          } else {
            NodeList<VariableDeclaration> varDeclarations =
                varDeclarationList.variables;
            if (varDeclarations.length == 1) {
              VariableDeclaration varDeclaration = varDeclarations.first;
              strName = _getStringName(varDeclaration.name);
            }
          }
        }
  
negative.code: import 'package:analysis_server/src/protocol_server.dart'
      show CompletionSuggestion, CompletionSuggestionKind;
  import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
  import 'package:analysis_server/src/services/correction/name_suggestion.dart';
  import 'package:analyzer/dart/ast/ast.dart';
  import 'package:analyzer_plugin/src/utilities/completion/completion_target.dart';
  
  /// A contributor that produces suggestions for variable names based on the
  /// static type of the variable.
  class VariableNameContributor extends DartCompletionContributor {
    @override
    Future<List<CompletionSuggestion>> computeSuggestions(
        DartCompletionRequest request) async {
      var opType = request.opType;
  
      // Collect suggestions from the specific child [AstNode] that contains
      // the completion offset and all of its parents recursively.
      if (opType.includeVarNameSuggestions) {
        // Resolution not needed for this completion.
  
        var node = request.target.containingNode;
        var offset = request.target.offset;
  
        // Use the refined node.
        if (node is FormalParameterList) {
  