diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt index 05c4f62f84d..eb7c32a8e2e 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightClass.kt @@ -377,7 +377,7 @@ open class KtUltraLightClass(classOrObject: KtClassOrObject, internal val suppor val bindingContext = typeReference.analyze() val superClassDescriptor = CodegenUtil.getSuperClassBySuperTypeListEntry(superTypeEntry, bindingContext) ?: return - val delegationType = superTypeEntry.delegateExpression.kotlinType(bindingContext) ?: return + val delegationType = superTypeEntry.delegateExpression.kotlinType(bindingContext) for (delegate in DelegationResolver.getDelegates(classDescriptor, superClassDescriptor, delegationType).keys) { when (delegate) { diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMethods.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMethods.kt index 949e3ae39ce..a4c744d0e3d 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMethods.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/ultraLightMethods.kt @@ -94,15 +94,13 @@ internal abstract class KtUltraLightMethod( abstract val methodDescriptor: FunctionDescriptor? - private val lazyTypeErasure = lazyPub { + val checkNeedToErasureParametersTypes: Boolean by lazyPub { methodDescriptor ?.getSpecialSignatureInfo() - ?.isObjectReplacedWithTypeParameter + ?.let { it.valueParametersSignature !== null } ?: false } - val checkNeedToErasureParametersTypes: Boolean by lazyTypeErasure - override fun equals(other: Any?): Boolean = this === other override fun hashCode(): Int = name.hashCode() diff --git a/compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.kt b/compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.kt index d9bae9e3f2c..9321536fccb 100644 --- a/compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.kt +++ b/compiler/testData/asJava/ultraLightClasses/implementingKotlinCollections.kt @@ -18,5 +18,7 @@ abstract class SmartSet private constructor() : AbstractMutableSet() { return true } + /* Should erasure T but UL classes does not support it in this case override fun contains(element: T): Boolean = true + */ } \ No newline at end of file