translator: fix class reassigment

This commit is contained in:
Alexey Stepanov
2016-08-10 19:53:01 +03:00
parent fb2e23913e
commit 2adb334e3f
3 changed files with 15 additions and 1 deletions
@@ -729,7 +729,8 @@ abstract class BlockCodegen(val state: TranslationState, val variableManager: Va
}
val result = firstOp as LLVMVariable
codeBuilder.storeVariable(result, secondNativeOp)
val sourceArgument = if (result.pointer == secondOp.pointer + 1) secondOp else secondNativeOp
codeBuilder.storeVariable(result, sourceArgument)
return result
}
else -> addPrimitiveReferenceOperation(referenceName!!, firstOp, secondNativeOp)
@@ -0,0 +1 @@
class_reassigment_1() == 567
@@ -0,0 +1,12 @@
class class_reassigment_1_class(val field: Int)
fun class_reassigment_1_base() : class_reassigment_1_class{
val instance = class_reassigment_1_class(567)
return instance
}
fun class_reassigment_1(): Int{
var instance = class_reassigment_1_class(123)
instance = class_reassigment_1_base()
return instance.field
}