From 6d63214d1bb1a19e024a3b6b4f2d14fbff1c6839 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 19 Jun 2019 14:19:21 +0300 Subject: [PATCH] Optimize AbstractTypeChecker::collectAllSupertypesWithGivenTypeConstructor Add fast path for a case when subType is a class and super is not Classes may only have classes supertypes --- .../src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/type-system/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt b/core/type-system/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt index 362073c97b9..8e264cf4128 100644 --- a/core/type-system/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt +++ b/core/type-system/src/org/jetbrains/kotlin/types/AbstractTypeChecker.kt @@ -383,6 +383,8 @@ object AbstractTypeChecker { return it } + if (!superConstructor.isClassTypeConstructor() && subType.isClassType()) return emptyList() + if (superConstructor.isCommonFinalClassConstructor()) { return if (areEqualTypeConstructors(subType.typeConstructor(), superConstructor)) listOf(captureFromArguments(subType, CaptureStatus.FOR_SUBTYPING) ?: subType)