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>()
override fun visitVariable(declaration: IrVariable): IrStatement {
val newDescriptor = WrappedVariableDescriptor(declaration.descriptor.annotations, declaration.descriptor.source)
if (declaration.parent == oldParent) {
val newDescriptor = WrappedVariableDescriptor(declaration.descriptor.annotations, declaration.descriptor.source)
val newVariable = IrVariableImpl(
declaration.startOffset, declaration.endOffset,
declaration.origin, IrVariableSymbolImpl(newDescriptor),
@@ -133,6 +133,8 @@ class MoveCompanionObjectFieldsLowering(val context: CommonBackendContext) : Cla
newDescriptor.bind(this)
parent = newParent
initializer = declaration.initializer
annotations.addAll(declaration.annotations)
}
variableMap[declaration] = newVariable
return super.visitVariable(newVariable)
@@ -181,7 +183,7 @@ class MoveCompanionObjectFieldsLowering(val context: CommonBackendContext) : Cla
).apply {
descriptor.bind(this)
parent = fieldParent
oldField.annotations.mapTo(annotations) { it }
annotations.addAll(oldField.annotations)
}
val oldInitializer = oldField.initializer
if (oldInitializer != null) {