langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java
changeset 29292 c10d63c667cd
parent 29051 7244db2ab176
child 29293 1583c6dd6df7
equal deleted inserted replaced
29291:076c277565f7 29292:c10d63c667cd
  3444             Type iteratorTarget = syms.objectType;
  3444             Type iteratorTarget = syms.objectType;
  3445             Type iterableType = types.asSuper(types.cvarUpperBound(tree.expr.type),
  3445             Type iterableType = types.asSuper(types.cvarUpperBound(tree.expr.type),
  3446                                               syms.iterableType.tsym);
  3446                                               syms.iterableType.tsym);
  3447             if (iterableType.getTypeArguments().nonEmpty())
  3447             if (iterableType.getTypeArguments().nonEmpty())
  3448                 iteratorTarget = types.erasure(iterableType.getTypeArguments().head);
  3448                 iteratorTarget = types.erasure(iterableType.getTypeArguments().head);
  3449             Type eType = tree.expr.type;
  3449             Type eType = types.skipTypeVars(tree.expr.type, false);
  3450             while (eType.hasTag(TYPEVAR)) {
       
  3451                 eType = eType.getUpperBound();
       
  3452             }
       
  3453             tree.expr.type = types.erasure(eType);
  3450             tree.expr.type = types.erasure(eType);
  3454             if (eType.isCompound())
  3451             if (eType.isCompound())
  3455                 tree.expr = make.TypeCast(types.erasure(iterableType), tree.expr);
  3452                 tree.expr = make.TypeCast(types.erasure(iterableType), tree.expr);
  3456             Symbol iterator = lookupMethod(tree.expr.pos(),
  3453             Symbol iterator = lookupMethod(tree.expr.pos(),
  3457                                            names.iterator,
  3454                                            names.iterator,