Fixed KT-5396 J2K: properly format "else if" on conversion

#KT-5396 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-07-04 21:35:25 +04:00
parent 88235c3eb2
commit e84c753e99
4 changed files with 38 additions and 1 deletions
@@ -58,12 +58,14 @@ class IfStatement(
val elseStatement: Element,
singleLine: Boolean
) : Expression() {
private val br = if (singleLine) " " else "\n"
private val brAfterElse = if (singleLine || elseStatement is IfStatement) " " else "\n"
override fun generateCode(builder: CodeBuilder) {
builder append "if (" append condition append ")" append br append thenStatement
if (!elseStatement.isEmpty) {
builder append br append "else" append br append elseStatement
builder append br append "else" append brAfterElse append elseStatement
}
}
}
@@ -1512,6 +1512,11 @@ public class JavaToKotlinConverterTestGenerated extends AbstractJavaToKotlinConv
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("j2k/tests/testData/ast/ifStatement"), Pattern.compile("^(.+)\\.java$"), true);
}
@TestMetadata("elseIf.java")
public void testElseIf() throws Exception {
doTest("j2k/tests/testData/ast/ifStatement/elseIf.java");
}
@TestMetadata("multiLine.java")
public void testMultiLine() throws Exception {
doTest("j2k/tests/testData/ast/ifStatement/multiLine.java");
@@ -0,0 +1,16 @@
//method
void foo() {
if (a)
System.out.println("a")
else if (b)
System.out.println("b")
else
System.out.println("else")
if (c) {
System.out.println("c")
}
else if (d) {
System.out.println("d")
}
}
@@ -0,0 +1,14 @@
fun foo() {
if (a)
System.out.println("a")
else if (b)
System.out.println("b")
else
System.out.println("else")
if (c) {
System.out.println("c")
} else if (d) {
System.out.println("d")
}
}