diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java index 6ed6cb5dd29..2d97b6ede04 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/intrinsics/Concat.java @@ -18,7 +18,7 @@ public class Concat implements IntrinsicMethod { codegen.generateStringBuilderConstructor(); if (receiver == null) { // LHS.plus(RHS) v.swap(); // StringBuilder LHS - codegen.invokeAppendMethod(codegen.expressionType(arguments.get(0))); // StringBuilder(LHS) + codegen.invokeAppendMethod(expectedType); // StringBuilder(LHS) codegen.invokeAppend(arguments.get(0)); } else { // LHS + RHS diff --git a/compiler/testData/codegen/regressions/kt446.jet b/compiler/testData/codegen/regressions/kt446.jet new file mode 100644 index 00000000000..c148b490f81 --- /dev/null +++ b/compiler/testData/codegen/regressions/kt446.jet @@ -0,0 +1,5 @@ +fun box(): String { + var s = "s" + s += 1 + return if (s == "s1") "OK" else "fail" +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java b/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java index c2365b7b71d..d667cf4598f 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java @@ -4,6 +4,7 @@ import java.lang.reflect.Method; /** * @author yole + * @author alex.tkachman */ public class PrimitiveTypesTest extends CodegenTestCase { public void testPlus() throws Exception { @@ -274,4 +275,8 @@ public class PrimitiveTypesTest extends CodegenTestCase { public void testKt248 () throws Exception { blackBoxFile("regressions/kt248.jet"); } + + public void testKt446 () throws Exception { + blackBoxFile("regressions/kt446.jet"); + } }