anchor.diff:        }
         if (iterable != null) {
           LocalVariableElementImpl element = loopVariable.declaredElement;
  -        DartType exprType = iterable.staticType;
  -        DartType targetType = (awaitKeyword == null)
  -            ? _typeProvider.iterableType
  -            : _typeProvider.streamType;
  -        DartType iteratedType = _findIteratedType(exprType, targetType);
  +
  +        DartType iterableType = iterable.staticType;
  +        iterableType = iterableType.resolveToBound(_typeProvider.objectType);
  +
  +        ClassElement iteratedElement = (awaitKeyword == null)
  +            ? _typeProvider.iterableType.element
  +            : _typeProvider.streamType.element;
  +
  +        InterfaceType iteratedType = iterableType is InterfaceTypeImpl
  +            ? iterableType.asInstanceOf(iteratedElement)
  +            : null;
  +
           if (element != null && iteratedType != null) {
  -          element.type = iteratedType;
  -          loopVariable.identifier.staticType = iteratedType;
  +          DartType elementType = iteratedType.typeArguments.single;
  +          element.type = elementType;
  +          loopVariable.identifier.staticType = elementType;
           }
         }
       }
  
positive.code: // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
  // for details. All rights reserved. Use of this source code is governed by a
  // BSD-style license that can be found in the LICENSE file.
  
  import 'dart:collection';
  
  import 'package:analyzer/dart/analysis/features.dart';
  import 'package:analyzer/dart/ast/ast.dart';
  
negative.code:       return _dynamicType;
      }
      return returnType.type;
    }
  
    /**
  