From 58ef59074d35491c80fad486bd7b4de3ae8e0a74 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 19 May 2020 15:31:28 +0300 Subject: [PATCH] [IR] Unbind construction methods of IrTypeParameterImpl from symbol.descriptor --- .../declarations/impl/IrTypeParameterImpl.kt | 28 ++++++++----------- .../jetbrains/kotlin/ir/util/SymbolTable.kt | 4 +-- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt index 020f37b9d72..ee0f2300248 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt @@ -34,33 +34,27 @@ class IrTypeParameterImpl( endOffset: Int, origin: IrDeclarationOrigin, override val symbol: IrTypeParameterSymbol, - override val name: Name = symbol.descriptor.name, - override val index: Int = symbol.descriptor.index, - override val isReified: Boolean = symbol.descriptor.isReified, - override val variance: Variance = symbol.descriptor.variance + override val name: Name, + override val index: Int, + override val isReified: Boolean, + override val variance: Variance ) : IrDeclarationBase(startOffset, endOffset, origin), IrTypeParameter, TypeParameterCarrier { - constructor( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - symbol: IrTypeParameterSymbol, - name: Name, - index: Int, - variance: Variance - ) : this(startOffset, endOffset, origin, symbol, name, index, symbol.descriptor.isReified, variance) - @Deprecated("Use constructor which takes symbol instead of descriptor") constructor( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - descriptor: TypeParameterDescriptor - ) : - this(startOffset, endOffset, origin, IrTypeParameterSymbolImpl(descriptor)) + descriptor: TypeParameterDescriptor, + name: Name = descriptor.name, + symbol: IrTypeParameterSymbol = IrTypeParameterSymbolImpl(descriptor) + ) : this( + startOffset, endOffset, origin, symbol, name, + index = descriptor.index, isReified = descriptor.isReified, variance = descriptor.variance + ) init { symbol.bind(this) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt index c03e525b689..fbef966de50 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt @@ -747,7 +747,7 @@ open class SymbolTable( origin: IrDeclarationOrigin, descriptor: TypeParameterDescriptor, typeParameterFactory: (IrTypeParameterSymbol) -> IrTypeParameter = { - IrTypeParameterImpl(startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor)) + IrTypeParameterImpl(startOffset, endOffset, origin, descriptor, nameProvider.nameForDeclaration(descriptor), it) } ): IrTypeParameter = globalTypeParameterSymbolTable.declare( @@ -771,7 +771,7 @@ open class SymbolTable( origin: IrDeclarationOrigin, descriptor: TypeParameterDescriptor, typeParameterFactory: (IrTypeParameterSymbol) -> IrTypeParameter = { - IrTypeParameterImpl(startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor)) + IrTypeParameterImpl(startOffset, endOffset, origin, descriptor, nameProvider.nameForDeclaration(descriptor), it) } ): IrTypeParameter = scopedTypeParameterSymbolTable.declare(