diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt index 5563b1a7678..46b4ad0cdb1 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ExpressionConverter.kt @@ -137,6 +137,7 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter { is PsiClassType -> { val psiClass = type.resolve() ?: return false if (!psiClass.hasModifierProperty(PsiModifier.FINAL)) return false + if (psiClass.isEnum()) return true val equalsSignature = GenerateEqualsHelper.getEqualsSignature(converter.project, GlobalSearchScope.allScope(converter.project)) val equalsMethod = MethodSignatureUtil.findMethodBySignature(psiClass, equalsSignature, true) diff --git a/j2k/testData/fileOrElement/equals/EqOperator.java b/j2k/testData/fileOrElement/equals/EqOperator.java index b531b011f7f..163a2caf999 100644 --- a/j2k/testData/fileOrElement/equals/EqOperator.java +++ b/j2k/testData/fileOrElement/equals/EqOperator.java @@ -20,8 +20,12 @@ class B { final class BB extends B {} +enum EE { + A, B, C +} + class X { - void foo(I i1, I i2, String s1, String s2, C c1, C c2, int i, O o1, O o2, E e1, E e2, BB bb1, BB bb2, int[] arr1, int[] arr2) { + void foo(I i1, I i2, String s1, String s2, C c1, C c2, int i, O o1, O o2, E e1, E e2, BB bb1, BB bb2, int[] arr1, int[] arr2, EE ee1, EE ee2) { if (i1 == i2) return; if (s1 == s2) return; if (c1 == c2) return; @@ -32,6 +36,7 @@ class X { if (e1 == e2) return; if (bb1 == bb2) return; if (arr1 == arr2) return; + if (ee1 == ee2 || ee1 == null) return; if (s1 != s2) return; if (c1 != c2) return; diff --git a/j2k/testData/fileOrElement/equals/EqOperator.kt b/j2k/testData/fileOrElement/equals/EqOperator.kt index a4c061231cd..b551d93ef08 100644 --- a/j2k/testData/fileOrElement/equals/EqOperator.kt +++ b/j2k/testData/fileOrElement/equals/EqOperator.kt @@ -18,8 +18,12 @@ open class B { class BB : B() +enum class EE { + A, B, C +} + class X { - fun foo(i1: I?, i2: I?, s1: String, s2: String, c1: C, c2: C, i: Int, o1: O, o2: O, e1: E, e2: E, bb1: BB, bb2: BB, arr1: IntArray, arr2: IntArray) { + fun foo(i1: I?, i2: I?, s1: String, s2: String, c1: C, c2: C, i: Int, o1: O, o2: O, e1: E, e2: E, bb1: BB, bb2: BB, arr1: IntArray, arr2: IntArray, ee1: EE?, ee2: EE) { if (i1 === i2) return if (s1 === s2) return if (c1 == c2) return @@ -30,6 +34,7 @@ class X { if (e1 === e2) return if (bb1 === bb2) return if (arr1 == arr2) return + if (ee1 == ee2 || ee1 == null) return if (s1 !== s2) return if (c1 != c2) return