Drop isEqualTypeConstructor in favour of areEqualTypeConstructors

This commit is contained in:
Dmitry Savvinov
2020-10-02 17:44:35 +03:00
parent fc4b488d43
commit f02593074f
10 changed files with 10 additions and 27 deletions
@@ -41,7 +41,7 @@ object AbstractStrictEqualityTypeChecker {
if (a.argumentsCount() != b.argumentsCount()
|| a.isMarkedNullable() != b.isMarkedNullable()
|| (a.asDefinitelyNotNullType() == null) != (b.asDefinitelyNotNullType() == null)
|| !isEqualTypeConstructors(a.typeConstructor(), b.typeConstructor())
|| !areEqualTypeConstructors(a.typeConstructor(), b.typeConstructor())
) {
return false
}
@@ -18,8 +18,6 @@ abstract class AbstractTypeCheckerContext : TypeSystemContext {
abstract fun substitutionSupertypePolicy(type: SimpleTypeMarker): SupertypesPolicy
abstract fun areEqualTypeConstructors(a: TypeConstructorMarker, b: TypeConstructorMarker): Boolean
override fun prepareType(type: KotlinTypeMarker): KotlinTypeMarker {
return type
}
@@ -309,7 +307,7 @@ object AbstractTypeChecker {
val superConstructor = superType.typeConstructor()
if (isEqualTypeConstructors(subType.typeConstructor(), superConstructor) && superConstructor.parametersCount() == 0) return true
if (areEqualTypeConstructors(subType.typeConstructor(), superConstructor) && superConstructor.parametersCount() == 0) return true
if (superType.typeConstructor().isAnyConstructor()) return true
val supertypesWithSameConstructor = findCorrespondingSupertypes(subType, superConstructor)
@@ -611,7 +609,7 @@ object AbstractNullabilityChecker {
if (isStubTypeEqualsToAnything && type.isStubType()) return true
return isEqualTypeConstructors(type.typeConstructor(), end)
return areEqualTypeConstructors(type.typeConstructor(), end)
}
}
@@ -260,7 +260,7 @@ interface TypeSystemContext : TypeSystemOptimizationContext {
fun TypeParameterMarker.getUpperBound(index: Int): KotlinTypeMarker
fun TypeParameterMarker.getTypeConstructor(): TypeConstructorMarker
fun isEqualTypeConstructors(c1: TypeConstructorMarker, c2: TypeConstructorMarker): Boolean
fun areEqualTypeConstructors(c1: TypeConstructorMarker, c2: TypeConstructorMarker): Boolean
fun TypeConstructorMarker.isDenotable(): Boolean