From 0ae18372c5f104380f99a2a2c8223984a3c0ae5a Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 30 Aug 2021 11:44:18 +0300 Subject: [PATCH] Revert "FIR: don't report EQUALITY_NOT_APPLICABLE for classes from java.*" This reverts commit 73a8b4544a460000067526257590d77891d55076. --- .../analysis/checkers/ConeTypeCompatibilityChecker.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt index a2561805d31..fbe28db4084 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* -import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.types.Variance @@ -209,10 +208,10 @@ internal object ConeTypeCompatibilityChecker { val classes = classesOrInterfaces.filter { !it.isInterface } // Java force single inheritance, so any pair of unrelated classes are incompatible. if (classes.size >= 2) { - return when { - classes.any { it.firClass.classId.packageFqName.startsWith(Name.identifier("java")) } -> Compatibility.SOFT_INCOMPATIBLE - classes.any { it.getHasPredefinedEqualityContract(this) } -> compatibilityUpperBound - else -> Compatibility.SOFT_INCOMPATIBLE + return if (classes.any { it.getHasPredefinedEqualityContract(this) }) { + compatibilityUpperBound + } else { + Compatibility.SOFT_INCOMPATIBLE } } val finalClass = classes.firstOrNull { it.isFinal } ?: return null