JVM_IR: Perform asm type conversion for string concat arguments.

This ensures that the Unit instance is loaded when string
concatenation contains a sub part that is a call of a Unit
return-type method.
This commit is contained in:
Mads Ager
2019-03-12 10:51:33 +01:00
committed by max-kammerer
parent 013ad4b8e4
commit 8b566fda76
2 changed files with 1 additions and 2 deletions
@@ -892,7 +892,7 @@ class ExpressionCodegen(
// Use StringBuilder to concatenate. // Use StringBuilder to concatenate.
AsmUtil.genStringBuilderConstructor(mv) AsmUtil.genStringBuilderConstructor(mv)
expression.arguments.forEach { expression.arguments.forEach {
val stackValue = gen(it, data) val stackValue = gen(it, it.asmType, data)
AsmUtil.genInvokeAppendMethod(mv, stackValue.type, stackValue.kotlinType) AsmUtil.genInvokeAppendMethod(mv, stackValue.type, stackValue.kotlinType)
} }
mv.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false) mv.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false)
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
data class A(val x: Unit) data class A(val x: Unit)
fun box(): String { fun box(): String {