Replace increment with step in For Loop codegen for progressions

This commit is contained in:
Ilya Gorbunov
2015-11-26 23:45:29 +03:00
parent 661e288362
commit b4256f0c89
2 changed files with 2 additions and 9 deletions
@@ -765,13 +765,6 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
v.invokevirtual(loopRangeType.getInternalName(), getterName, "()" + elementType.getDescriptor(), false);
v.store(varToStore, elementType);
}
protected void generateRangeOrProgressionBoxedProperty(Type loopRangeType, String getterName, Type elementType, int varToStore) {
Type boxedType = boxType(elementType);
v.invokevirtual(loopRangeType.getInternalName(), getterName, "()" + boxedType.getDescriptor(), false);
StackValue.coerce(boxedType, elementType, v);
v.store(varToStore, elementType);
}
}
private void generateLoopBody(@Nullable KtExpression body) {
@@ -1084,7 +1077,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
generateRangeOrProgressionProperty(asmLoopRangeType, "getFirst", asmElementType, loopParameterVar);
generateRangeOrProgressionProperty(asmLoopRangeType, "getLast", asmElementType, endVar);
generateRangeOrProgressionBoxedProperty(asmLoopRangeType, "getIncrement", incrementType, incrementVar);
generateRangeOrProgressionProperty(asmLoopRangeType, "getStep", incrementType, incrementVar);
}
@Override
@@ -8,4 +8,4 @@ fun f() {
// 0 iterator
// 2 getFirst
// 2 getLast
// 2 getIncrement
// 2 getStep