From eccbf380610ef923b3cfd47601f802aab969bd44 Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Wed, 21 Jul 2021 23:19:23 +0300 Subject: [PATCH] IR: use existing type parameters when deserializing IR --- .../kotlin/ir/declarations/lazy/LazyIrFactory.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt index de40e626424..148cf3777c1 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource +import org.jetbrains.kotlin.types.Variance // An IrFactory that does not recreate declarations for already bound symbols. class LazyIrFactory( @@ -155,4 +156,18 @@ class LazyIrFactory( symbol.owner else delegate.createTypeAlias(startOffset, endOffset, symbol, name, visibility, expandedType, isActual, origin) + + override fun createTypeParameter( + startOffset: Int, + endOffset: Int, + origin: IrDeclarationOrigin, + symbol: IrTypeParameterSymbol, + name: Name, + index: Int, + isReified: Boolean, + variance: Variance + ): IrTypeParameter = if (symbol.isBound) + symbol.owner + else + delegate.createTypeParameter(startOffset, endOffset, origin, symbol, name, index, isReified, variance) } \ No newline at end of file