JVM_IR. Copy annotations properly in MoveCompanionObjectFieldsLowering

This commit is contained in:
Georgy Bronnikov
2018-10-23 16:08:16 +03:00
parent a5fea34f12
commit 481bef9799
@@ -123,8 +123,8 @@ class MoveCompanionObjectFieldsLowering(val context: CommonBackendContext) : Cla
val variableMap = mutableMapOf<IrVariable, IrVariable>() val variableMap = mutableMapOf<IrVariable, IrVariable>()
override fun visitVariable(declaration: IrVariable): IrStatement { override fun visitVariable(declaration: IrVariable): IrStatement {
val newDescriptor = WrappedVariableDescriptor(declaration.descriptor.annotations, declaration.descriptor.source)
if (declaration.parent == oldParent) { if (declaration.parent == oldParent) {
val newDescriptor = WrappedVariableDescriptor(declaration.descriptor.annotations, declaration.descriptor.source)
val newVariable = IrVariableImpl( val newVariable = IrVariableImpl(
declaration.startOffset, declaration.endOffset, declaration.startOffset, declaration.endOffset,
declaration.origin, IrVariableSymbolImpl(newDescriptor), declaration.origin, IrVariableSymbolImpl(newDescriptor),
@@ -133,6 +133,8 @@ class MoveCompanionObjectFieldsLowering(val context: CommonBackendContext) : Cla
newDescriptor.bind(this) newDescriptor.bind(this)
parent = newParent parent = newParent
initializer = declaration.initializer initializer = declaration.initializer
annotations.addAll(declaration.annotations)
} }
variableMap[declaration] = newVariable variableMap[declaration] = newVariable
return super.visitVariable(newVariable) return super.visitVariable(newVariable)
@@ -181,7 +183,7 @@ class MoveCompanionObjectFieldsLowering(val context: CommonBackendContext) : Cla
).apply { ).apply {
descriptor.bind(this) descriptor.bind(this)
parent = fieldParent parent = fieldParent
oldField.annotations.mapTo(annotations) { it } annotations.addAll(oldField.annotations)
} }
val oldInitializer = oldField.initializer val oldInitializer = oldField.initializer
if (oldInitializer != null) { if (oldInitializer != null) {