langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java
changeset 24612 75dc732b45af
parent 24604 7f68545b5128
child 25007 eb097d3a68f5
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java	Tue May 27 14:23:55 2014 -0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java	Tue May 27 16:32:56 2014 -0600
@@ -3522,7 +3522,7 @@
         private void visitIterableForeachLoop(JCEnhancedForLoop tree) {
             make_at(tree.expr.pos());
             Type iteratorTarget = syms.objectType;
-            Type iterableType = types.asSuper(types.upperBound(tree.expr.type),
+            Type iterableType = types.asSuper(types.cvarUpperBound(tree.expr.type),
                                               syms.iterableType.tsym);
             if (iterableType.getTypeArguments().nonEmpty())
                 iteratorTarget = types.erasure(iterableType.getTypeArguments().head);
@@ -3556,7 +3556,7 @@
                                        List.<Type>nil());
             JCExpression vardefinit = make.App(make.Select(make.Ident(itvar), next));
             if (tree.var.type.isPrimitive())
-                vardefinit = make.TypeCast(types.upperBound(iteratorTarget), vardefinit);
+                vardefinit = make.TypeCast(types.cvarUpperBound(iteratorTarget), vardefinit);
             else
                 vardefinit = make.TypeCast(tree.var.type, vardefinit);
             JCVariableDecl indexDef = (JCVariableDecl)make.VarDef(tree.var.mods,