Support singleton access

This commit is contained in:
Michael Bogdanov
2016-09-23 15:49:38 +03:00
committed by Dmitry Petrov
parent 58ba5ed37b
commit bdecffa1e1
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.backend.jvm.intrinsics.IrIntrinsicMethods
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.codegen.*
import org.jetbrains.kotlin.codegen.AsmUtil.*
import org.jetbrains.kotlin.codegen.ExpressionCodegen
import org.jetbrains.kotlin.codegen.StackValue.*
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.IrElement
@@ -242,6 +243,11 @@ class ExpressionCodegen(
return onStack(type)
}
override fun visitGetObjectValue(expression: IrGetObjectValue, data: BlockInfo): StackValue {
StackValue.singleton(expression.descriptor, typeMapper).put(expression.asmType, mv)
return expression.onStack
}
override fun visitSetVariable(expression: IrSetVariable, data: BlockInfo): StackValue {
val value = expression.value.accept(this, data)
StackValue.local(frame.getIndex(expression.descriptor), expression.descriptor.asmType).store(value, mv)