anchor.diff:            _inferCollectionElementType(element.elseElement);
         return _InferredCollectionElementTypeInformation.forIfElement(
             _typeSystem, thenType, elseType);
  -    } else if (element is Expression) {
  -      return _InferredCollectionElementTypeInformation(
  -          elementType: element.staticType, keyType: null, valueType: null);
       } else if (element is MapLiteralEntry) {
         return _InferredCollectionElementTypeInformation(
             elementType: null,
  
positive.code: 
    /// Recursively add the given collection [element] to the counts.
    void _count(CollectionElement element) {
      if (element is ForElement) {
        _count(element.body);
      } else if (element is IfElement) {
        _count(element.thenElement);
        _count(element.elseElement);
      } else if (element is Expression) {
        if (_isComplete(element)) {
          expressionCount++;
        }
      } else if (element is MapLiteralEntry) {
        if (_isComplete(element)) {
          mapEntryCount++;
  
negative.code:           iterableType: iterableType,
            keyType: keyType,
            valueType: valueType);
      } else if (element is MapLiteralEntry) {
        InferenceContext.setType(element.key, keyType);
        InferenceContext.setType(element.value, valueType);
  