IR: use existing type parameters when deserializing IR

This commit is contained in:
Georgy Bronnikov
2021-07-21 23:19:23 +03:00
committed by TeamCityServer
parent fb801bdc33
commit eccbf38061
@@ -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)
}