diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index e62e277244f..1ece17f99fa 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1068,12 +1068,12 @@ public class ExpressionCodegen extends JetVisitor implem v.load(loopParameterVar, asmElementType); v.load(endVar, asmElementType); - v.load(incrementVar, asmElementType); + v.load(incrementVar, incrementType); Label negativeIncrement = new Label(); Label afterIf = new Label(); - if (asmElementType.getSort() == Type.DOUBLE) { + if (incrementType.getSort() == Type.DOUBLE) { v.dconst(0.0); } else { @@ -1100,7 +1100,7 @@ public class ExpressionCodegen extends JetVisitor implem v.load(loopParameterVar, asmElementType); v.load(endVar, asmElementType); - v.load(incrementVar, asmElementType); + v.load(incrementVar, incrementType); Label negativeIncrement = new Label(); Label afterIf = new Label(); diff --git a/compiler/testData/codegen/boxWithStdlib/ranges/forByteProgressionWithIntIncrement.kt b/compiler/testData/codegen/boxWithStdlib/ranges/forByteProgressionWithIntIncrement.kt new file mode 100644 index 00000000000..ec16945a875 --- /dev/null +++ b/compiler/testData/codegen/boxWithStdlib/ranges/forByteProgressionWithIntIncrement.kt @@ -0,0 +1,7 @@ +fun box(): String { + for (element in 5.toByte()..1.toByte() step 255) { + return "Fail: iterating over an empty progression, element: $element" + } + + return "OK" +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java index 540c6ab73aa..e187758dbe1 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithStdlibCodegenTestGenerated.java @@ -403,6 +403,11 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/codegen/boxWithStdlib/ranges"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("forByteProgressionWithIntIncrement.kt") + public void testForByteProgressionWithIntIncrement() throws Exception { + doTestWithStdlib("compiler/testData/codegen/boxWithStdlib/ranges/forByteProgressionWithIntIncrement.kt"); + } + @TestMetadata("multiAssignmentIterationOverIntRange.kt") public void testMultiAssignmentIterationOverIntRange() throws Exception { doTestWithStdlib("compiler/testData/codegen/boxWithStdlib/ranges/multiAssignmentIterationOverIntRange.kt"); diff --git a/compiler/tests/org/jetbrains/jet/resolve/JetResolveTestGenerated.java b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTestGenerated.java index faf1d4c2435..5b23f67300b 100644 --- a/compiler/tests/org/jetbrains/jet/resolve/JetResolveTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTestGenerated.java @@ -162,7 +162,7 @@ public class JetResolveTestGenerated extends AbstractResolveTest { public void testAllFilesPresentInCandidatesPriority() throws Exception { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/resolve/candidatesPriority"), Pattern.compile("^(.+)\\.resolve$"), true); } - + @TestMetadata("classObjectOuterResolve.resolve") public void testClassObjectOuterResolve() throws Exception { doTest("compiler/testData/resolve/candidatesPriority/classObjectOuterResolve.resolve");