--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java Tue Apr 15 17:48:22 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java Wed Apr 23 17:10:03 2008 +0100
@@ -2863,13 +2863,15 @@
JCExpressionStatement step = make.Exec(makeUnary(JCTree.PREINC, make.Ident(index)));
Type elemtype = types.elemtype(tree.expr.type);
- JCStatement loopvarinit = make.
- VarDef(tree.var.sym,
- make.
- Indexed(make.Ident(arraycache), make.Ident(index)).
- setType(elemtype));
+ JCExpression loopvarinit = make.Indexed(make.Ident(arraycache),
+ make.Ident(index)).setType(elemtype);
+ JCVariableDecl loopvardef = (JCVariableDecl)make.VarDef(tree.var.mods,
+ tree.var.name,
+ tree.var.vartype,
+ loopvarinit).setType(tree.var.type);
+ loopvardef.sym = tree.var.sym;
JCBlock body = make.
- Block(0, List.of(loopvarinit, tree.body));
+ Block(0, List.of(loopvardef, tree.body));
result = translate(make.
ForLoop(loopinit,
@@ -2944,7 +2946,11 @@
JCExpression vardefinit = make.App(make.Select(make.Ident(itvar), next));
if (iteratorTarget != syms.objectType)
vardefinit = make.TypeCast(iteratorTarget, vardefinit);
- JCVariableDecl indexDef = make.VarDef(tree.var.sym, vardefinit);
+ JCVariableDecl indexDef = (JCVariableDecl)make.VarDef(tree.var.mods,
+ tree.var.name,
+ tree.var.vartype,
+ vardefinit).setType(tree.var.type);
+ indexDef.sym = tree.var.sym;
JCBlock body = make.Block(0, List.of(indexDef, tree.body));
result = translate(make.
ForLoop(List.of(init),