anchor.diff:  
     _InferredCollectionElementTypeInformation _inferCollectionElementType(
         CollectionElement element) {
  -    if (element is ForElement) {
  +    if (element is Expression) {
  +      return _InferredCollectionElementTypeInformation(
  +          elementType: element.staticType, keyType: null, valueType: null);
  +    } else if (element is ForElement) {
         return _inferCollectionElementType(element.body);
       } else if (element is IfElement) {
         _InferredCollectionElementTypeInformation thenType =
  
positive.code:   }
  
    DartType _computeElementType(CollectionElement element) {
      if (element is ForElement) {
        return _computeElementType(element.body);
      } else if (element is IfElement) {
        DartType thenType = _computeElementType(element.thenElement);
        if (element.elseElement == null) {
          return thenType;
        }
        DartType elseType = _computeElementType(element.elseElement);
        return _typeSystem.leastUpperBound(thenType, elseType);
      } else if (element is Expression) {
        return element.staticType;
      } else if (element is MapLiteralEntry) {
        // This error will be reported elsewhere.
        return _typeProvider.dynamicType;
      } else if (element is SpreadElement) {
        DartType expressionType = element.expression.staticType;
        bool isNull = expressionType.isDartCoreNull;
        if (!isNull && expressionType is InterfaceType) {
          if (_typeSystem.isSubtypeOf(
              expressionType, _typeProvider.iterableObjectType)) {
            InterfaceType iterableType = (expressionType as InterfaceTypeImpl)
                .asInstanceOf(_typeProvider.iterableElement);
            return iterableType.typeArguments[0];
          }
        } else if (expressionType.isDynamic) {
          return expressionType;
        } else if (isNull && element.isNullAware) {
          return expressionType;
        }
        // TODO(brianwilkerson) Report this as an error.
        return _typeProvider.dynamicType;
  
negative.code:           _inferCollectionElementType(element.elseElement);
        return _InferredCollectionElementTypeInformation.forIfElement(
            _typeSystem, thenType, elseType);
      } else if (element is MapLiteralEntry) {
        return _InferredCollectionElementTypeInformation(
            elementType: null,
  