--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Fri Feb 27 11:51:53 2015 +0000
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Fri Feb 27 18:20:33 2015 +0000
@@ -3446,10 +3446,7 @@
syms.iterableType.tsym);
if (iterableType.getTypeArguments().nonEmpty())
iteratorTarget = types.erasure(iterableType.getTypeArguments().head);
- Type eType = tree.expr.type;
- while (eType.hasTag(TYPEVAR)) {
- eType = eType.getUpperBound();
- }
+ Type eType = types.skipTypeVars(tree.expr.type, false);
tree.expr.type = types.erasure(eType);
if (eType.isCompound())
tree.expr = make.TypeCast(types.erasure(iterableType), tree.expr);