From 8d0a90a8386687cbcecc02fca073db90c6dba5f7 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Tue, 22 Dec 2015 15:11:06 +0300 Subject: [PATCH] Preserve type capabilities of captured type --- .../resolve/calls/inference/CapturedTypeConstructor.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt index 26bef2ba240..5e43fee276a 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt @@ -68,10 +68,15 @@ public class CapturedType( override fun getDelegate(): KotlinType = delegateType + override fun getCapabilities(): TypeCapabilities = object : TypeCapabilities { + override fun getCapability(capabilityClass: Class) = + this@CapturedType.getCapability(capabilityClass) + } + override fun getCapability(capabilityClass: Class): T? { @Suppress("UNCHECKED_CAST") - return if (capabilityClass == javaClass()) this as T - else super.getCapability(capabilityClass) + return if (capabilityClass == SubtypingRepresentatives::class.java) this as T + else super.getCapability(capabilityClass) } override val subTypeRepresentative: KotlinType