diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java b/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java index 8e9f4b63b47..6ffd7659f27 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java @@ -57,7 +57,8 @@ import static org.jetbrains.jet.lang.resolve.BindingContext.*; class CodegenAnnotatingVisitor extends JetVisitorVoid { private static final TokenSet BINARY_OPERATIONS = TokenSet.orSet(JetTokens.AUGMENTED_ASSIGNMENTS, - TokenSet.create(JetTokens.PLUS, JetTokens.MINUS, JetTokens.MUL, JetTokens.DIV, JetTokens.PERC, JetTokens.RANGE)); + TokenSet.create(JetTokens.PLUS, JetTokens.MINUS, JetTokens.MUL, JetTokens.DIV, JetTokens.PERC, JetTokens.RANGE, + JetTokens.LT, JetTokens.GT, JetTokens.LTEQ, JetTokens.GTEQ)); private final Map anonymousSubclassesCount = new HashMap(); diff --git a/compiler/testData/codegen/boxWithJava/samAdapters/operators/compareTo.java b/compiler/testData/codegen/boxWithJava/samAdapters/operators/compareTo.java new file mode 100644 index 00000000000..9f7d4bc01c9 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/samAdapters/operators/compareTo.java @@ -0,0 +1,6 @@ +class JavaClass { + int compareTo(Runnable i) { + i.run(); + return 239; + } +} diff --git a/compiler/testData/codegen/boxWithJava/samAdapters/operators/compareTo.kt b/compiler/testData/codegen/boxWithJava/samAdapters/operators/compareTo.kt new file mode 100644 index 00000000000..b73c74b1e24 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/samAdapters/operators/compareTo.kt @@ -0,0 +1,21 @@ +fun box(): String { + val obj = JavaClass() + + var v1 = "FAIL" + obj < { v1 = "OK" } + if (v1 != "OK") return "<: $v1" + + var v2 = "FAIL" + obj > { v2 = "OK" } + if (v2 != "OK") return ">: $v2" + + var v3 = "FAIL" + obj <= { v3 = "OK" } + if (v3 != "OK") return "<=: $v3" + + var v4 = "FAIL" + obj >= { v4 = "OK" } + if (v4 != "OK") return ">=: $v4" + + return "OK" +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java index a20670c6f11..189074f3d8e 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java @@ -247,6 +247,11 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/operators/binary.kt"); } + @TestMetadata("compareTo.kt") + public void testCompareTo() throws Exception { + doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/operators/compareTo.kt"); + } + @TestMetadata("contains.kt") public void testContains() throws Exception { doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/operators/contains.kt");