diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/Scope.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/Scope.kt index 88352be6824..5bb4d6dfb17 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/Scope.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/Scope.kt @@ -81,13 +81,10 @@ class Scope(val scopeOwnerSymbol: IrSymbol) { endOffset: Int = UNDEFINED_OFFSET ): IrVariable { val originalKotlinType = type ?: irType.toKotlinType() + val descriptor = createDescriptorForTemporaryVariable(originalKotlinType, nameHint, isMutable) return IrVariableImpl( - startOffset, endOffset, origin, - createDescriptorForTemporaryVariable( - originalKotlinType, - nameHint, isMutable - ), - irType + startOffset, endOffset, origin, IrVariableSymbolImpl(descriptor), descriptor.name, + irType, isMutable, isConst = false, isLateinit = false ).apply { parent = getLocalDeclarationParent() } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt index 2aca8cc80c8..7adaed4ca27 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt @@ -25,7 +25,6 @@ import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol -import org.jetbrains.kotlin.ir.symbols.impl.IrVariableSymbolImpl import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor @@ -54,33 +53,6 @@ class IrVariableImpl( override var annotations: List = emptyList() override val metadata: MetadataSource? get() = null - constructor( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - descriptor: VariableDescriptor, - type: IrType, - name: Name = descriptor.name, - symbol: IrVariableSymbol = IrVariableSymbolImpl(descriptor) - ) : this( - startOffset, endOffset, origin, - symbol, name, type, - isVar = descriptor.isVar, - isConst = descriptor.isConst, - isLateinit = descriptor.isLateInit - ) - - constructor( - startOffset: Int, - endOffset: Int, - origin: IrDeclarationOrigin, - descriptor: VariableDescriptor, - type: IrType, - initializer: IrExpression? - ) : this(startOffset, endOffset, origin, descriptor, type) { - this.initializer = initializer - } - init { symbol.bind(this) } @@ -100,4 +72,4 @@ class IrVariableImpl( override fun transformChildren(transformer: IrElementTransformer, data: D) { initializer = initializer?.transform(transformer, data) } -} \ No newline at end of file +} 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 34137aec898..dc525fa40f1 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 @@ -927,9 +927,11 @@ open class SymbolTable( descriptor: VariableDescriptor, type: IrType, variableFactory: (IrVariableSymbol) -> IrVariable = { - IrVariableImpl(startOffset, endOffset, origin, descriptor, type, nameProvider.nameForDeclaration(descriptor), it) + IrVariableImpl( + startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor), type, + descriptor.isVar, descriptor.isConst, descriptor.isLateInit + ) } - ): IrVariable = variableSymbolTable.declareLocal( descriptor,