diff --git a/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt b/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt index efd2a66692d..eee1b070edf 100644 --- a/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt +++ b/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt @@ -29,7 +29,7 @@ class ArrayAccessExpression(val expression: Expression, val index: Expression, v class AssignmentExpression(val left: Expression, val right: Expression, val op: String) : Expression() { override fun generateCode(builder: CodeBuilder) { - builder.appendOperand(this, left).append(op).appendOperand(this, right) + builder.appendOperand(this, left).append(" ").append(op).append(" ").appendOperand(this, right) } } diff --git a/j2k/src/org/jetbrains/jet/j2k/ast/Field.kt b/j2k/src/org/jetbrains/jet/j2k/ast/Field.kt index ea5338ff058..9170924b60a 100644 --- a/j2k/src/org/jetbrains/jet/j2k/ast/Field.kt +++ b/j2k/src/org/jetbrains/jet/j2k/ast/Field.kt @@ -41,7 +41,7 @@ open class Field( initializerToUse = getDefaultInitializer(this) } if (!initializerToUse.isEmpty) { - builder append "=" append initializerToUse + builder append " = " append initializerToUse } } } diff --git a/j2k/src/org/jetbrains/jet/j2k/ast/LocalVariable.kt b/j2k/src/org/jetbrains/jet/j2k/ast/LocalVariable.kt index 9976c2ede32..68cb7538eea 100644 --- a/j2k/src/org/jetbrains/jet/j2k/ast/LocalVariable.kt +++ b/j2k/src/org/jetbrains/jet/j2k/ast/LocalVariable.kt @@ -38,9 +38,9 @@ class LocalVariable( else { val shouldSpecifyType = settings.specifyLocalVariableTypeByDefault if (shouldSpecifyType) - builder append identifier append ":" append typeCalculator() append "=" append initializer + builder append identifier append ":" append typeCalculator() append " = " append initializer else - builder append identifier append "=" append initializer + builder append identifier append " = " append initializer } } } diff --git a/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt b/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt index f3e0d56830f..52ad3fe0a75 100644 --- a/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt +++ b/j2k/src/org/jetbrains/jet/j2k/visitors/ExpressionVisitor.kt @@ -77,7 +77,7 @@ class ExpressionVisitor(private val converter: Converter, val lhs = converter.convertExpression(expression.getLExpression()) val rhs = converter.convertExpression(expression.getRExpression()!!, expression.getLExpression().getType()) if (!secondOp.isEmpty()) { - result = AssignmentExpression(lhs, BinaryExpression(lhs, rhs, secondOp), "=") + result = AssignmentExpression(lhs, BinaryExpression(lhs, rhs, secondOp), " = ") } else { result = AssignmentExpression(lhs, rhs, expression.getOperationSign().getText()!!) diff --git a/j2k/tests/test/org/jetbrains/jet/j2k/test/AbstractJavaToKotlinConverterTest.kt b/j2k/tests/test/org/jetbrains/jet/j2k/test/AbstractJavaToKotlinConverterTest.kt index 859f5c5ea88..2c183fbc49b 100644 --- a/j2k/tests/test/org/jetbrains/jet/j2k/test/AbstractJavaToKotlinConverterTest.kt +++ b/j2k/tests/test/org/jetbrains/jet/j2k/test/AbstractJavaToKotlinConverterTest.kt @@ -145,7 +145,7 @@ abstract class AbstractJavaToKotlinConverterTest() : LightIdeaTestCase() { private fun expressionToKotlin(code: String, settings: ConverterSettings, project: Project): String { val result = statementToKotlin("final Object o =" + code + "}", settings, project) - return result.replaceFirst("val o:Any\\?=", "").replaceFirst("val o:Any=", "").replaceFirst("val o=", "").trim() + return result.replaceFirst("val o:Any\\? = ", "").replaceFirst("val o:Any = ", "").replaceFirst("val o = ", "").trim() } override fun getProjectJDK(): Sdk? { diff --git a/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java b/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java index 2c51401dedd..16a6f7db03a 100644 --- a/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java +++ b/j2k/tests/test/org/jetbrains/jet/j2k/test/JavaToKotlinConverterTestGenerated.java @@ -1682,6 +1682,11 @@ public class JavaToKotlinConverterTestGenerated extends AbstractJavaToKotlinConv doTest("j2k/tests/testData/ast/issues/qualifyStatic.java"); } + @TestMetadata("spaceBeforeAssignment.java") + public void testSpaceBeforeAssignment() throws Exception { + doTest("j2k/tests/testData/ast/issues/spaceBeforeAssignment.java"); + } + } @TestMetadata("j2k/tests/testData/ast/kotlinApiAccess") diff --git a/j2k/tests/testData/ast/issues/spaceBeforeAssignment.java b/j2k/tests/testData/ast/issues/spaceBeforeAssignment.java new file mode 100644 index 00000000000..fc6916bfbb3 --- /dev/null +++ b/j2k/tests/testData/ast/issues/spaceBeforeAssignment.java @@ -0,0 +1,6 @@ +//file +import java.util.* + +class A { + List list = new ArrayList(); +} \ No newline at end of file diff --git a/j2k/tests/testData/ast/issues/spaceBeforeAssignment.kt b/j2k/tests/testData/ast/issues/spaceBeforeAssignment.kt new file mode 100644 index 00000000000..7f360fb4f0d --- /dev/null +++ b/j2k/tests/testData/ast/issues/spaceBeforeAssignment.kt @@ -0,0 +1,6 @@ +import java.util.* +import kotlin.List + +class A() { + var list: List = ArrayList() +} \ No newline at end of file