diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/PartiallyLinkedIrTreePatcher.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/PartiallyLinkedIrTreePatcher.kt index 7f88a0e2ce1..7195610b665 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/PartiallyLinkedIrTreePatcher.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/linkage/partial/PartiallyLinkedIrTreePatcher.kt @@ -334,7 +334,10 @@ internal class PartiallyLinkedIrTreePatcher( val invalidConstructorDelegationFound = if (calledConstructor.origin != PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION) { val constructedSuperClassSymbol = calledConstructor.parentAsClass.symbol - constructedSuperClassSymbol != constructedClassSymbol && constructedSuperClassSymbol != actualSuperClassSymbol + // Note: Constructor of an external class may delegate to kotlin.Any + constructedSuperClassSymbol != constructedClassSymbol + && constructedSuperClassSymbol != actualSuperClassSymbol + && (!constructedClass.isExternal || constructedSuperClassSymbol != builtIns.anyClass) } else { // Fallback to signatures. (calledConstructorSymbol.signature as? IdSignature.CommonSignature)?.let { constructorSignature ->