From 88968807b2324d96198e0b98108c38aaea6e1994 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 28 Jun 2017 15:40:53 +0300 Subject: [PATCH] Generate equals/hashCode(): Swap class literals in comparison --- .../generate/KotlinGenerateEqualsAndHashcodeAction.kt | 6 +++--- .../codeInsight/generate/equalsWithHashCode/arrays.kt.after | 2 +- .../generate/equalsWithHashCode/customAccessors.kt.after | 2 +- .../equalsWithHashCode/dataClassHasArrayProperty.kt.after | 2 +- .../equalsWithHashCode/explicitDefaultAccessors.kt.after | 2 +- .../generate/equalsWithHashCode/genericClass.kt.after | 2 +- .../generate/equalsWithHashCode/keepQuotes.kt.after | 2 +- .../generate/equalsWithHashCode/multipleVars.kt.after | 2 +- .../generate/equalsWithHashCode/multipleVarsCommon.kt.after | 2 +- .../generate/equalsWithHashCode/multipleVarsJS.kt.after | 2 +- .../equalsWithHashCode/multipleVarsNullable.kt.after | 2 +- .../equalsWithHashCode/multipleVarsWithSuperClass.kt.after | 2 +- .../generate/equalsWithHashCode/nameClash.kt.after | 2 +- .../codeInsight/generate/equalsWithHashCode/noVars.kt.after | 2 +- .../generate/equalsWithHashCode/noVarsCommon.kt.after | 2 +- .../generate/equalsWithHashCode/noVarsJS.kt.after | 2 +- .../equalsWithHashCode/noVarsWithSuperClass.kt.after | 2 +- .../generate/equalsWithHashCode/nullableArrays.kt.after | 2 +- .../generate/equalsWithHashCode/singleVar.kt.after | 2 +- .../generate/equalsWithHashCode/singleVarNullable.kt.after | 2 +- .../equalsWithHashCode/singleVarWithJavaSuperClass.kt.after | 2 +- .../equalsWithHashCode/singleVarWithSuperClass.kt.after | 2 +- 22 files changed, 24 insertions(+), 24 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateEqualsAndHashcodeAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateEqualsAndHashcodeAction.kt index 33cb9f586be..f34d011b076 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateEqualsAndHashcodeAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/generate/KotlinGenerateEqualsAndHashcodeAction.kt @@ -140,11 +140,11 @@ class KotlinGenerateEqualsAndHashcodeAction : KotlinGenerateMemberActionBase "other == null || $paramName::class.js != this::class.js" - is TargetPlatform.Default -> "other == null || $paramName::class != this::class" + is JsPlatform -> "other == null || this::class.js != $paramName::class.js" + is TargetPlatform.Default -> "other == null || this::class != $paramName::class" else -> defaultExpression } } diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/arrays.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/arrays.kt.after index ebf0bb0b367..e02b7825ab4 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/arrays.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/arrays.kt.after @@ -9,7 +9,7 @@ class A(val n: IntArray, val s: Array) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/customAccessors.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/customAccessors.kt.after index f491f3b1fe5..ed7b81a0f71 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/customAccessors.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/customAccessors.kt.after @@ -6,7 +6,7 @@ class Test { var name: String = "" override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as Test diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/dataClassHasArrayProperty.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/dataClassHasArrayProperty.kt.after index 4f612a74720..29e36f36ff9 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/dataClassHasArrayProperty.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/dataClassHasArrayProperty.kt.after @@ -3,7 +3,7 @@ import java.util.Arrays data class A(val a: IntArray) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/explicitDefaultAccessors.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/explicitDefaultAccessors.kt.after index 135184e78fe..4d778fc1f50 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/explicitDefaultAccessors.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/explicitDefaultAccessors.kt.after @@ -7,7 +7,7 @@ class Test { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false return true } diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/genericClass.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/genericClass.kt.after index 4d3fc193dcb..2bf2fba5a01 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/genericClass.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/genericClass.kt.after @@ -5,7 +5,7 @@ class A(val n: T) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A<*> diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/keepQuotes.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/keepQuotes.kt.after index 3140e91c3aa..84718fc80c7 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/keepQuotes.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/keepQuotes.kt.after @@ -1,7 +1,7 @@ class Example(val `in`: String, val `cl ass`: String, val `valid`: Boolean) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as Example diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVars.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVars.kt.after index df1d50d95f0..312ecc38549 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVars.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVars.kt.after @@ -7,7 +7,7 @@ class A(val n: Int, val s: String) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsCommon.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsCommon.kt.after index 5c3b2292543..f9875704b25 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsCommon.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsCommon.kt.after @@ -8,7 +8,7 @@ class A(val n: Int, val s: String) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other == null || other::class != this::class) return false + if (other == null || this::class != other::class) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsJS.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsJS.kt.after index 76e1d350814..5f4cb0bfe34 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsJS.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsJS.kt.after @@ -8,7 +8,7 @@ class A(val n: Int, val s: String) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other == null || other::class.js != this::class.js) return false + if (other == null || this::class.js != other::class.js) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsNullable.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsNullable.kt.after index f8c7f4a32fa..d6cb1fd147e 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsNullable.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsNullable.kt.after @@ -7,7 +7,7 @@ class A(val n: Int?, val s: String) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsWithSuperClass.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsWithSuperClass.kt.after index 3d194ed47d7..695ec214503 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsWithSuperClass.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/multipleVarsWithSuperClass.kt.after @@ -12,7 +12,7 @@ class A(val n: Int, val s: String) : X() { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false if (!super.equals(other)) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/nameClash.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/nameClash.kt.after index eb233767dfd..fddcabc62b0 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/nameClash.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/nameClash.kt.after @@ -5,7 +5,7 @@ class A(val result: Int, val s: String) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/noVars.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/noVars.kt.after index ef9933bd63b..b89df63a798 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/noVars.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/noVars.kt.after @@ -5,7 +5,7 @@ class A { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false return true } diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsCommon.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsCommon.kt.after index 92cacc96628..21405583b11 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsCommon.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsCommon.kt.after @@ -6,7 +6,7 @@ class A { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other == null || other::class != this::class) return false + if (other == null || this::class != other::class) return false return true } diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsJS.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsJS.kt.after index 3372a58291d..1b0eea7128f 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsJS.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsJS.kt.after @@ -6,7 +6,7 @@ class A { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other == null || other::class.js != this::class.js) return false + if (other == null || this::class.js != other::class.js) return false return true } diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsWithSuperClass.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsWithSuperClass.kt.after index 84942c006d5..b57fbda0f5e 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsWithSuperClass.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/noVarsWithSuperClass.kt.after @@ -10,7 +10,7 @@ class A : X() { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false if (!super.equals(other)) return false return true } diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/nullableArrays.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/nullableArrays.kt.after index 05fee20cd0c..3840c5aa1ab 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/nullableArrays.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/nullableArrays.kt.after @@ -9,7 +9,7 @@ class A(val n: IntArray?, val s: Array?) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVar.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVar.kt.after index 1970177ca00..1de3d6cd7c2 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVar.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVar.kt.after @@ -5,7 +5,7 @@ class A(val n: Int) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarNullable.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarNullable.kt.after index 7493fce059b..3deb2a9dd59 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarNullable.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarNullable.kt.after @@ -5,7 +5,7 @@ class A(val n: Int?) { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithJavaSuperClass.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithJavaSuperClass.kt.after index 7764d03a78a..c93a2f42055 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithJavaSuperClass.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithJavaSuperClass.kt.after @@ -5,7 +5,7 @@ class A(val n: Int) : X() { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false if (!super.equals(other)) return false other as A diff --git a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithSuperClass.kt.after b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithSuperClass.kt.after index bd6b50804c2..684d1338261 100644 --- a/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithSuperClass.kt.after +++ b/idea/testData/codeInsight/generate/equalsWithHashCode/singleVarWithSuperClass.kt.after @@ -10,7 +10,7 @@ class A(val n: Int) : X() { override fun equals(other: Any?): Boolean { if (this === other) return true - if (other?.javaClass != javaClass) return false + if (javaClass != other?.javaClass) return false if (!super.equals(other)) return false other as A