diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 244122199e0..fbdec54b7f9 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1551,13 +1551,14 @@ public class ExpressionCodegen extends JetVisitor { private StackValue generateIn(JetBinaryExpression expression) { JetExpression expr = expression.getLeft(); - StackValue leftValue = gen(expr); if(isIntRangeExpr(expression.getRight())) { + StackValue leftValue = StackValue.expression(Type.INT_TYPE, expression.getLeft(), this); JetBinaryExpression rangeExpression = (JetBinaryExpression) expression.getRight(); boolean inverted = expression.getOperationReference().getReferencedNameElementType() == JetTokens.NOT_IN; getInIntRange(leftValue, rangeExpression, inverted); } else { + StackValue leftValue = gen(expr); FunctionDescriptor op = (FunctionDescriptor) bindingContext.get(BindingContext.REFERENCE_TARGET, expression.getOperationReference()); assert op != null; leftValue.put(asmType(op.getValueParameters().get(0).getOutType()), v); diff --git a/compiler/testData/codegen/regressions/kt958.jet b/compiler/testData/codegen/regressions/kt958.jet new file mode 100644 index 00000000000..bc5fceff9f5 --- /dev/null +++ b/compiler/testData/codegen/regressions/kt958.jet @@ -0,0 +1,3 @@ +fun test() = 239 + +fun box() = if(test() in 239..240) "OK" else "fail" \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java b/compiler/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java index 36e3fe909f0..eb8e8b1aa3e 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java @@ -241,6 +241,11 @@ public class ControlStructuresTest extends CodegenTestCase { // System.out.println(generateToText()); } + public void testKt958() throws Exception { + blackBoxFile("regressions/kt958.jet"); +// System.out.println(generateToText()); + } + public void testQuicksort() throws Exception { blackBoxFile("controlStructures/quicksort.jet"); // System.out.println(generateToText());