diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 30d86ffde76..db7c53d62d4 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -2484,16 +2484,17 @@ public class ExpressionCodegen extends JetVisitor implem JetExpression left = expression.getLeft(); JetExpression right = expression.getRight(); - StackValue receiver = gen(left); Callable callable = resolveToCallable(descriptor, false); Type type; if (callable instanceof IntrinsicMethod) { // Compare two primitive values type = comparisonOperandType(expressionType(left), expressionType(right)); + StackValue receiver = gen(left); receiver.put(type, v); gen(right, type); - } else { + } + else { type = Type.INT_TYPE; StackValue result = invokeOperation(expression, descriptor, (CallableMethod) callable); result.put(type, v); diff --git a/compiler/testData/codegen/box/classes/kt3114.kt b/compiler/testData/codegen/box/classes/kt3114.kt new file mode 100644 index 00000000000..32d42899074 --- /dev/null +++ b/compiler/testData/codegen/box/classes/kt3114.kt @@ -0,0 +1,13 @@ +class KeySpan(val left: String) { + + public fun matches(value : String) : Boolean { + + return left > value && left > value + } + +} + +fun box() : String { + KeySpan("1").matches("3") + return "OK" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java index 2e9195888e7..4f29232b103 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxCodegenTestGenerated.java @@ -742,6 +742,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { doTest("compiler/testData/codegen/box/classes/kt285.kt"); } + @TestMetadata("kt3114.kt") + public void testKt3114() throws Exception { + doTest("compiler/testData/codegen/box/classes/kt3114.kt"); + } + @TestMetadata("kt343.kt") public void testKt343() throws Exception { doTest("compiler/testData/codegen/box/classes/kt343.kt");