Generate equals/hashCode(): Swap class literals in comparison

This commit is contained in:
Alexey Sedunov
2017-06-28 15:40:53 +03:00
parent e3e4c447fa
commit 88968807b2
22 changed files with 24 additions and 24 deletions
@@ -140,11 +140,11 @@ class KotlinGenerateEqualsAndHashcodeAction : KotlinGenerateMemberActionBase<Kot
}
private fun generateClassLiteralsNotEqual(paramName: String, targetClass: KtClassOrObject): String {
val defaultExpression = "$paramName?.javaClass != javaClass"
val defaultExpression = "javaClass != $paramName?.javaClass"
if (!targetClass.languageVersionSettings.supportsFeature(LanguageFeature.BoundCallableReferences)) return defaultExpression
return when (targetClass.platform) {
is JsPlatform -> "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
}
}