equal
deleted
inserted
replaced
2861 JCBinary cond = makeBinary(JCTree.LT, make.Ident(index), make.Ident(lencache)); |
2861 JCBinary cond = makeBinary(JCTree.LT, make.Ident(index), make.Ident(lencache)); |
2862 |
2862 |
2863 JCExpressionStatement step = make.Exec(makeUnary(JCTree.PREINC, make.Ident(index))); |
2863 JCExpressionStatement step = make.Exec(makeUnary(JCTree.PREINC, make.Ident(index))); |
2864 |
2864 |
2865 Type elemtype = types.elemtype(tree.expr.type); |
2865 Type elemtype = types.elemtype(tree.expr.type); |
2866 JCStatement loopvarinit = make. |
2866 JCExpression loopvarinit = make.Indexed(make.Ident(arraycache), |
2867 VarDef(tree.var.sym, |
2867 make.Ident(index)).setType(elemtype); |
2868 make. |
2868 JCVariableDecl loopvardef = (JCVariableDecl)make.VarDef(tree.var.mods, |
2869 Indexed(make.Ident(arraycache), make.Ident(index)). |
2869 tree.var.name, |
2870 setType(elemtype)); |
2870 tree.var.vartype, |
|
2871 loopvarinit).setType(tree.var.type); |
|
2872 loopvardef.sym = tree.var.sym; |
2871 JCBlock body = make. |
2873 JCBlock body = make. |
2872 Block(0, List.of(loopvarinit, tree.body)); |
2874 Block(0, List.of(loopvardef, tree.body)); |
2873 |
2875 |
2874 result = translate(make. |
2876 result = translate(make. |
2875 ForLoop(loopinit, |
2877 ForLoop(loopinit, |
2876 cond, |
2878 cond, |
2877 List.of(step), |
2879 List.of(step), |
2942 itvar.type, |
2944 itvar.type, |
2943 List.<Type>nil()); |
2945 List.<Type>nil()); |
2944 JCExpression vardefinit = make.App(make.Select(make.Ident(itvar), next)); |
2946 JCExpression vardefinit = make.App(make.Select(make.Ident(itvar), next)); |
2945 if (iteratorTarget != syms.objectType) |
2947 if (iteratorTarget != syms.objectType) |
2946 vardefinit = make.TypeCast(iteratorTarget, vardefinit); |
2948 vardefinit = make.TypeCast(iteratorTarget, vardefinit); |
2947 JCVariableDecl indexDef = make.VarDef(tree.var.sym, vardefinit); |
2949 JCVariableDecl indexDef = (JCVariableDecl)make.VarDef(tree.var.mods, |
|
2950 tree.var.name, |
|
2951 tree.var.vartype, |
|
2952 vardefinit).setType(tree.var.type); |
|
2953 indexDef.sym = tree.var.sym; |
2948 JCBlock body = make.Block(0, List.of(indexDef, tree.body)); |
2954 JCBlock body = make.Block(0, List.of(indexDef, tree.body)); |
2949 result = translate(make. |
2955 result = translate(make. |
2950 ForLoop(List.of(init), |
2956 ForLoop(List.of(init), |
2951 cond, |
2957 cond, |
2952 List.<JCExpressionStatement>nil(), |
2958 List.<JCExpressionStatement>nil(), |