Fixed KT-5396 J2K: properly format "else if" on conversion
#KT-5396 Fixed
This commit is contained in:
@@ -58,12 +58,14 @@ class IfStatement(
|
|||||||
val elseStatement: Element,
|
val elseStatement: Element,
|
||||||
singleLine: Boolean
|
singleLine: Boolean
|
||||||
) : Expression() {
|
) : Expression() {
|
||||||
|
|
||||||
private val br = if (singleLine) " " else "\n"
|
private val br = if (singleLine) " " else "\n"
|
||||||
|
private val brAfterElse = if (singleLine || elseStatement is IfStatement) " " else "\n"
|
||||||
|
|
||||||
override fun generateCode(builder: CodeBuilder) {
|
override fun generateCode(builder: CodeBuilder) {
|
||||||
builder append "if (" append condition append ")" append br append thenStatement
|
builder append "if (" append condition append ")" append br append thenStatement
|
||||||
if (!elseStatement.isEmpty) {
|
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);
|
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")
|
@TestMetadata("multiLine.java")
|
||||||
public void testMultiLine() throws Exception {
|
public void testMultiLine() throws Exception {
|
||||||
doTest("j2k/tests/testData/ast/ifStatement/multiLine.java");
|
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")
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user