From bb6a52c0cc437c39c7b6338b10eba340f78bbcc0 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 4 Oct 2017 09:32:13 +0300 Subject: [PATCH] Optimize subtyping for case of objects identity It may be rather frequent (e.g. in case of types without arguments or for dispatch receiver parameters) --- .../org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt b/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt index 055571ecb40..13e0b707480 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/checker/NewKotlinTypeChecker.kt @@ -113,6 +113,7 @@ object NewKotlinTypeChecker : KotlinTypeChecker { type.constructor.isDenotable && !type.isDynamic() && type.lowerIfFlexible().constructor == type.upperIfFlexible().constructor fun TypeCheckerContext.isSubtypeOf(subType: UnwrappedType, superType: UnwrappedType): Boolean { + if (subType === superType) return true val newSubType = transformToNewType(subType) val newSuperType = transformToNewType(superType)