KT-1759 str.plus(str)
This commit is contained in:
@@ -34,12 +34,14 @@ import java.util.List;
|
||||
public class Concat implements IntrinsicMethod {
|
||||
@Override
|
||||
public StackValue generate(ExpressionCodegen codegen, InstructionAdapter v, Type expectedType, PsiElement element, List<JetExpression> arguments, StackValue receiver, @NotNull GenerationState state) {
|
||||
codegen.generateStringBuilderConstructor();
|
||||
if (receiver == null || receiver == StackValue.none()) { // LHS + RHS
|
||||
codegen.generateStringBuilderConstructor();
|
||||
codegen.invokeAppend(arguments.get(0)); // StringBuilder(LHS)
|
||||
codegen.invokeAppend(arguments.get(1));
|
||||
}
|
||||
else { // LHS.plus(RHS)
|
||||
receiver.put(JetTypeMapper.TYPE_OBJECT, v);
|
||||
codegen.generateStringBuilderConstructor();
|
||||
v.swap(); // StringBuilder LHS
|
||||
codegen.invokeAppendMethod(expectedType); // StringBuilder(LHS)
|
||||
codegen.invokeAppend(arguments.get(0));
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class Greeter(var name : String) {
|
||||
fun greet() {
|
||||
name = name.plus("")
|
||||
System.out?.println("Hello, $name");
|
||||
}
|
||||
}
|
||||
|
||||
fun box() : String {
|
||||
Greeter("OK").greet()
|
||||
return "OK"
|
||||
}
|
||||
@@ -310,7 +310,10 @@ public class ClassGenTest extends CodegenTestCase {
|
||||
|
||||
public void testKt1538() throws Exception {
|
||||
blackBoxFile("regressions/kt1538.kt");
|
||||
System.out.println(generateToText());
|
||||
}
|
||||
|
||||
public void testKt1759() throws Exception {
|
||||
blackBoxFile("regressions/kt1759.kt");
|
||||
}
|
||||
|
||||
public void testResolveOrder() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user