anchor.diff:      }
       return _typeProvider.nullObject;
     }
  +
  +  /// Return `true` if the [type] has a type parameter reference, so is not
  +  /// valid in a constant context.
  +  static bool _hasTypeParameterReference(DartType type) {
  +    if (type is TypeParameterType) {
  +      return true;
  +    }
  +    if (type is ParameterizedType) {
  +      return type.typeArguments.any(_hasTypeParameterReference);
  +    }
  +    return false;
  +  }
   }
   
   /// A utility class that contains methods for manipulating instances of a Dart
  
positive.code:         _typeProvider.symbolType, new SymbolState(buffer.toString()));
    }
  
    DartObjectImpl visitTypeAnnotation(TypeAnnotation node) {
      DartType type = evaluateType(node.type);
      if (type == null) {
        return super.visitTypeName(node);
      }
      return typeConstant(type);
    }
  
    @override
    DartObjectImpl visitTypeName(TypeName node) => visitTypeAnnotation(node);
  
    /// Add the entries produced by evaluating the given collection [element] to
    /// the given [list]. Return `true` if the evaluation of one or more of the
  
negative.code:   /// Convenience getter to gain access to the [evaluationEngine]'s type
    /// provider.
    TypeProvider get _typeProvider => evaluationEngine.typeProvider;
  
    @override
    DartObjectImpl visitAdjacentStrings(AdjacentStrings node) {
  