From c68de4639fc848bd6721627970ecf33f36a664b4 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 19 May 2020 15:47:06 +0300 Subject: [PATCH] [IR] Unbind construction methods of IrLocalDelegatedPropertyImpl from symbol.descriptor --- .../impl/IrLocalDelegatedPropertyImpl.kt | 61 +------------------ .../ir/util/DeepCopyIrTreeWithSymbols.kt | 4 +- .../jetbrains/kotlin/ir/util/SymbolTable.kt | 7 ++- 3 files changed, 10 insertions(+), 62 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt index b65625f4d45..0eb50253037 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrLocalDelegatedPropertyImpl.kt @@ -32,9 +32,9 @@ class IrLocalDelegatedPropertyImpl( endOffset: Int, origin: IrDeclarationOrigin, override val symbol: IrLocalDelegatedPropertySymbol, - override val name: Name = symbol.descriptor.name, + override val name: Name, override val type: IrType, - override val isVar: Boolean = symbol.descriptor.isVar + override val isVar: Boolean ) : IrDeclarationBase(startOffset, endOffset, origin), IrLocalDelegatedProperty, @@ -44,63 +44,6 @@ class IrLocalDelegatedPropertyImpl( symbol.bind(this) } - constructor( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - symbol: IrLocalDelegatedPropertySymbol, - type: IrType - ) : this( - startOffset, endOffset, origin, symbol, - symbol.descriptor.name, - type, - symbol.descriptor.isVar - ) - - @Deprecated("Creates unbound symbol") - constructor( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - descriptor: VariableDescriptorWithAccessors, - name: Name, - type: IrType, - isVar: Boolean - ) : this( - startOffset, endOffset, origin, - IrLocalDelegatedPropertySymbolImpl(descriptor), - name, type, isVar - ) - - @Deprecated("Creates unbound symbol") - constructor( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - descriptor: VariableDescriptorWithAccessors, - type: IrType - ) : this( - startOffset, endOffset, origin, - IrLocalDelegatedPropertySymbolImpl(descriptor), - descriptor.name, type, descriptor.isVar - ) - - @Deprecated("Creates unbound symbol") - constructor( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - descriptor: VariableDescriptorWithAccessors, - type: IrType, - delegate: IrVariable, - getter: IrFunction, - setter: IrFunction? - ) : this(startOffset, endOffset, origin, descriptor, type) { - this.delegate = delegate - this.getter = getter - this.setter = setter - } - override val descriptor: VariableDescriptorWithAccessors get() = symbol.descriptor diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt index ecd80a4954e..bfac442d7b9 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt @@ -257,7 +257,9 @@ open class DeepCopyIrTreeWithSymbols( declaration.startOffset, declaration.endOffset, mapDeclarationOrigin(declaration.origin), symbolRemapper.getDeclaredLocalDelegatedProperty(declaration.symbol), - declaration.type.remapType() + declaration.name, + declaration.type.remapType(), + declaration.isVar ).apply { transformAnnotations(declaration) delegate = declaration.delegate.transform() 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 fbef966de50..e5b8efb3b24 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 @@ -875,8 +875,11 @@ open class SymbolTable( localDelegatedPropertySymbolTable.declareLocal( descriptor, { IrLocalDelegatedPropertySymbolImpl(descriptor) }, - { IrLocalDelegatedPropertyImpl(startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor), type) } - ) + ) { + IrLocalDelegatedPropertyImpl( + startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor), type, descriptor.isVar + ) + } fun referenceLocalDelegatedProperty(descriptor: VariableDescriptorWithAccessors) = localDelegatedPropertySymbolTable.referenced(descriptor) {