KT-3652: Char is converted to Int when used inside string interpolation
#KT-3652 Fixed
This commit is contained in:
@@ -354,8 +354,8 @@ public class AsmUtil {
|
||||
v.invokevirtual("java/lang/StringBuilder", "append", "(" + type.getDescriptor() + ")Ljava/lang/StringBuilder;");
|
||||
}
|
||||
|
||||
public static StackValue genToString(InstructionAdapter v, StackValue receiver) {
|
||||
Type type = stringValueOfOrStringBuilderAppendType(receiver.type);
|
||||
public static StackValue genToString(InstructionAdapter v, StackValue receiver, Type receiverType) {
|
||||
Type type = stringValueOfOrStringBuilderAppendType(receiverType);
|
||||
receiver.put(type, v);
|
||||
v.invokestatic("java/lang/String", "valueOf", "(" + type.getDescriptor() + ")Ljava/lang/String;");
|
||||
return StackValue.onStack(JAVA_STRING_TYPE);
|
||||
|
||||
@@ -1173,7 +1173,8 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
JetStringTemplateEntry[] entries = expression.getEntries();
|
||||
|
||||
if (entries.length == 1 && entries[0] instanceof JetStringTemplateEntryWithExpression) {
|
||||
return genToString(v, gen(entries[0].getExpression()));
|
||||
JetExpression expr = entries[0].getExpression();
|
||||
return genToString(v, gen(expr), expressionType(expr));
|
||||
}
|
||||
|
||||
for (JetStringTemplateEntry entry : entries) {
|
||||
|
||||
@@ -40,6 +40,6 @@ public class ToString implements IntrinsicMethod {
|
||||
StackValue receiver,
|
||||
@NotNull GenerationState state
|
||||
) {
|
||||
return genToString(v, receiver);
|
||||
return genToString(v, receiver, receiver.type);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user