Revert "FIR: don't report EQUALITY_NOT_APPLICABLE for classes from java.*"

This reverts commit 73a8b4544a.
This commit is contained in:
Dmitriy Novozhilov
2021-08-30 11:44:18 +03:00
committed by TeamCityServer
parent fdd069ddec
commit 0ae18372c5
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.Variance
@@ -209,10 +208,10 @@ internal object ConeTypeCompatibilityChecker {
val classes = classesOrInterfaces.filter { !it.isInterface } val classes = classesOrInterfaces.filter { !it.isInterface }
// Java force single inheritance, so any pair of unrelated classes are incompatible. // Java force single inheritance, so any pair of unrelated classes are incompatible.
if (classes.size >= 2) { if (classes.size >= 2) {
return when { return if (classes.any { it.getHasPredefinedEqualityContract(this) }) {
classes.any { it.firClass.classId.packageFqName.startsWith(Name.identifier("java")) } -> Compatibility.SOFT_INCOMPATIBLE compatibilityUpperBound
classes.any { it.getHasPredefinedEqualityContract(this) } -> compatibilityUpperBound } else {
else -> Compatibility.SOFT_INCOMPATIBLE Compatibility.SOFT_INCOMPATIBLE
} }
} }
val finalClass = classes.firstOrNull { it.isFinal } ?: return null val finalClass = classes.firstOrNull { it.isFinal } ?: return null