From 6dbb13c32d1b17ef051f573c6ac52ee6ed38d136 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 26 Mar 2015 19:04:05 +0300 Subject: [PATCH] KT-6798 J2K: Needless use of run {} function after converting for-loop #KT-6798 Fixed --- .../org/jetbrains/kotlin/j2k/ForConverter.kt | 80 ++++++++++++++++--- .../kotlin/j2k/StatementConverter.kt | 5 +- .../fileOrElement/for/commonCaseForTest.kt | 10 +-- .../fileOrElement/for/falseForRange.kt | 10 +-- .../fileOrElement/for/forWithBlock.kt | 14 ++-- .../for/forWithBlockAndDoubleUpdate.kt | 14 ++-- .../fileOrElement/for/forWithEmptyBlock.kt | 10 +-- .../fileOrElement/for/forWithNullCondition.kt | 10 +-- .../fileOrElement/for/forWithNullUpdate.kt | 6 +- .../fileOrElement/for/forWithReturn.kt | 12 ++- .../fileOrElement/for/nameConflict1.java | 11 +++ .../fileOrElement/for/nameConflict1.kt | 17 ++++ .../fileOrElement/for/nameConflict2.java | 11 +++ .../fileOrElement/for/nameConflict2.kt | 19 +++++ .../fileOrElement/for/nameConflict3.java | 11 +++ .../fileOrElement/for/nameConflict3.kt | 15 ++++ .../fileOrElement/for/nameConflict4.java | 11 +++ .../fileOrElement/for/nameConflict4.kt | 15 ++++ .../fileOrElement/for/nameConflict5.java | 11 +++ .../fileOrElement/for/nameConflict5.kt | 13 +++ .../fileOrElement/for/notInBlock.java | 8 ++ j2k/testData/fileOrElement/for/notInBlock.kt | 11 +++ .../fileOrElement/for/withContinue1.kt | 16 ++-- .../fileOrElement/for/withContinue2.kt | 20 +++-- .../fileOrElement/for/withContinue3.kt | 14 ++-- .../for/withContinueAndLabels.kt | 40 +++++----- ...otlinConverterForWebDemoTestGenerated.java | 36 +++++++++ ...otlinConverterSingleFileTestGenerated.java | 36 +++++++++ 28 files changed, 373 insertions(+), 113 deletions(-) create mode 100644 j2k/testData/fileOrElement/for/nameConflict1.java create mode 100644 j2k/testData/fileOrElement/for/nameConflict1.kt create mode 100644 j2k/testData/fileOrElement/for/nameConflict2.java create mode 100644 j2k/testData/fileOrElement/for/nameConflict2.kt create mode 100644 j2k/testData/fileOrElement/for/nameConflict3.java create mode 100644 j2k/testData/fileOrElement/for/nameConflict3.kt create mode 100644 j2k/testData/fileOrElement/for/nameConflict4.java create mode 100644 j2k/testData/fileOrElement/for/nameConflict4.kt create mode 100644 j2k/testData/fileOrElement/for/nameConflict5.java create mode 100644 j2k/testData/fileOrElement/for/nameConflict5.kt create mode 100644 j2k/testData/fileOrElement/for/notInBlock.java create mode 100644 j2k/testData/fileOrElement/for/notInBlock.kt diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ForConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/ForConverter.kt index 58d132db84e..3f1e7268d2c 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ForConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ForConverter.kt @@ -18,7 +18,10 @@ package org.jetbrains.kotlin.j2k import com.intellij.psi.* import com.intellij.psi.tree.IElementType +import com.intellij.util.IncorrectOperationException import org.jetbrains.kotlin.j2k.ast.* +import org.jetbrains.kotlin.psi.psiUtil.parents +import org.jetbrains.kotlin.psi.psiUtil.siblings class ForConverter( private val statement: PsiForStatement, @@ -101,23 +104,44 @@ class ForConverter( statement.isInSingleLine()).assignNoPrototype() if (initializationConverted.isEmpty) return whileStatement - //TODO: we could omit "run { ... }" when it won't cause any name conflicts - return RunBlockWithLoopStatement(initializationConverted, whileStatement) + val kind = if (statement.parents(withItself = false).filter { it !is PsiLabeledStatement }.first() !is PsiCodeBlock) { + WhileWithInitializationPseudoStatement.Kind.WITH_BLOCK + } + else if (hasNameConflict()) + WhileWithInitializationPseudoStatement.Kind.WITH_RUN_BLOCK + else + WhileWithInitializationPseudoStatement.Kind.SIMPLE + return WhileWithInitializationPseudoStatement(initializationConverted, whileStatement, kind) } - public class RunBlockWithLoopStatement( + public class WhileWithInitializationPseudoStatement( public val initialization: Statement, - public val loop: Statement + public val loop: Statement, + public val kind: WhileWithInitializationPseudoStatement.Kind ) : Statement() { - private val methodCall = run { - val statements = listOf(initialization, loop) - val block = Block(statements, LBrace().assignNoPrototype(), RBrace().assignNoPrototype()).assignNoPrototype() - MethodCallExpression.build(null, "run", listOf(), listOf(), false, LambdaExpression(null, block)) + public enum class Kind { + SIMPLE + WITH_BLOCK + WITH_RUN_BLOCK } + private val statements = listOf(initialization, loop) + override fun generateCode(builder: CodeBuilder) { - methodCall.generateCode(builder) + if (kind == Kind.SIMPLE) { + builder.append(statements, "\n") + } + else { + val block = Block(statements, LBrace().assignNoPrototype(), RBrace().assignNoPrototype()).assignNoPrototype() + if (kind == Kind.WITH_BLOCK) { + block.generateCode(builder) + } + else { + val call = MethodCallExpression.build(null, "run", listOf(), listOf(), false, LambdaExpression(null, block)) + call.generateCode(builder) + } + } } } @@ -260,4 +284,42 @@ class ForConverter( else -> null } } + + private fun hasNameConflict(): Boolean { + val names = statement.getInitialization()?.declaredVariableNames() ?: return false + if (names.isEmpty()) return false + + val factory = PsiElementFactory.SERVICE.getInstance(project) + for (name in names) { + val refExpr = try { + factory.createExpressionFromText(name, statement) as? PsiReferenceExpression ?: return true + } + catch(e: IncorrectOperationException) { + return true + } + if (refExpr.resolve() != null) return true + } + + var hasConflict = false + for (laterStatement in statement.siblings(forward = true, withItself = false)) { + laterStatement.accept(object: JavaRecursiveElementVisitor() { + override fun visitDeclarationStatement(statement: PsiDeclarationStatement) { + super.visitDeclarationStatement(statement) + + if (statement.declaredVariableNames().any { it in names }) { + hasConflict = true + } + } + }) + } + + return hasConflict + } + + private fun PsiStatement.declaredVariableNames(): Collection { + val declarationStatement = this as? PsiDeclarationStatement ?: return listOf() + return declarationStatement.getDeclaredElements() + .filterIsInstance() + .map { it.getName() } + } } diff --git a/j2k/src/org/jetbrains/kotlin/j2k/StatementConverter.kt b/j2k/src/org/jetbrains/kotlin/j2k/StatementConverter.kt index 80a4013baba..3549a72b82d 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/StatementConverter.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/StatementConverter.kt @@ -144,12 +144,11 @@ class DefaultStatementConverter : JavaElementVisitor(), StatementConverter { } override fun visitLabeledStatement(statement: PsiLabeledStatement) { - //TODO: multiple labels val statementConverted = codeConverter.convertStatement(statement.getStatement()) val identifier = converter.convertIdentifier(statement.getLabelIdentifier()) - if (statementConverted is ForConverter.RunBlockWithLoopStatement) { // special case - if our loop gets converted to run { ... } we should move label inside + if (statementConverted is ForConverter.WhileWithInitializationPseudoStatement) { // special case - if our loop gets converted to while with initialization we should move the label to the loop val labeledLoop = LabeledStatement(identifier, statementConverted.loop).assignPrototype(statement) - result = ForConverter.RunBlockWithLoopStatement(statementConverted.initialization, labeledLoop) + result = ForConverter.WhileWithInitializationPseudoStatement(statementConverted.initialization, labeledLoop, statementConverted.kind) } else { result = LabeledStatement(identifier, statementConverted) diff --git a/j2k/testData/fileOrElement/for/commonCaseForTest.kt b/j2k/testData/fileOrElement/for/commonCaseForTest.kt index 8efe40b3183..feb2653d659 100644 --- a/j2k/testData/fileOrElement/for/commonCaseForTest.kt +++ b/j2k/testData/fileOrElement/for/commonCaseForTest.kt @@ -1,7 +1,5 @@ -run { - init() - while (condition()) { - body() - update() - } +init() +while (condition()) { + body() + update() } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/falseForRange.kt b/j2k/testData/fileOrElement/for/falseForRange.kt index 7e5b6286927..730cd24d311 100644 --- a/j2k/testData/fileOrElement/for/falseForRange.kt +++ b/j2k/testData/fileOrElement/for/falseForRange.kt @@ -1,7 +1,5 @@ -run { - var i = 0 - while (i * 2 <= 10) { - foo(i) - i++ - } +var i = 0 +while (i * 2 <= 10) { + foo(i) + i++ } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithBlock.kt b/j2k/testData/fileOrElement/for/forWithBlock.kt index ee19f621697..5f076fc172b 100644 --- a/j2k/testData/fileOrElement/for/forWithBlock.kt +++ b/j2k/testData/fileOrElement/for/forWithBlock.kt @@ -1,9 +1,7 @@ -run { - var i = 0 - while (i < 10) { - System.out.println(i) - System.out.println(j) - j++ - i++ - } +var i = 0 +while (i < 10) { + System.out.println(i) + System.out.println(j) + j++ + i++ } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt b/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt index 661e69a8d90..bff66609413 100644 --- a/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt +++ b/j2k/testData/fileOrElement/for/forWithBlockAndDoubleUpdate.kt @@ -1,11 +1,9 @@ -run { - var i = 0 - while (i < 0) { - run { - var i = 1 - i++ - } - j++ +var i = 0 +while (i < 0) { + run { + var i = 1 i++ } + j++ + i++ } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt b/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt index f114f788c27..af6e9462b9a 100644 --- a/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt +++ b/j2k/testData/fileOrElement/for/forWithEmptyBlock.kt @@ -1,7 +1,5 @@ -run { - var i = 0 - while (i < 0) { - j++ - i++ - } +var i = 0 +while (i < 0) { + j++ + i++ } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithNullCondition.kt b/j2k/testData/fileOrElement/for/forWithNullCondition.kt index 5eb7f9d06c6..25f356c02aa 100644 --- a/j2k/testData/fileOrElement/for/forWithNullCondition.kt +++ b/j2k/testData/fileOrElement/for/forWithNullCondition.kt @@ -1,7 +1,5 @@ -run { - init() - while (true) { - body() - update() - } +init() +while (true) { + body() + update() } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithNullUpdate.kt b/j2k/testData/fileOrElement/for/forWithNullUpdate.kt index d912eb3ed07..3cea64cf15a 100644 --- a/j2k/testData/fileOrElement/for/forWithNullUpdate.kt +++ b/j2k/testData/fileOrElement/for/forWithNullUpdate.kt @@ -1,4 +1,2 @@ -run { - init() - while (condition()) body() -} \ No newline at end of file +init() +while (condition()) body() \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/forWithReturn.kt b/j2k/testData/fileOrElement/for/forWithReturn.kt index b1625400382..4daf0d87881 100644 --- a/j2k/testData/fileOrElement/for/forWithReturn.kt +++ b/j2k/testData/fileOrElement/for/forWithReturn.kt @@ -1,8 +1,6 @@ -run { - var i = 0 - while (i < 0) { - return i - j++ - i++ - } +var i = 0 +while (i < 0) { + return i + j++ + i++ } \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/nameConflict1.java b/j2k/testData/fileOrElement/for/nameConflict1.java new file mode 100644 index 00000000000..8bc722491bf --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict1.java @@ -0,0 +1,11 @@ +class A { + void foo() { + for (int i = 1; i < 1000; i *= 2) { + System.out.println(i); + } + + for (int i = 1; i < 2000; i *= 2) { + System.out.println(i); + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/nameConflict1.kt b/j2k/testData/fileOrElement/for/nameConflict1.kt new file mode 100644 index 00000000000..085cb029a4f --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict1.kt @@ -0,0 +1,17 @@ +class A { + fun foo() { + run { + var i = 1 + while (i < 1000) { + System.out.println(i) + i *= 2 + } + } + + var i = 1 + while (i < 2000) { + System.out.println(i) + i *= 2 + } + } +} diff --git a/j2k/testData/fileOrElement/for/nameConflict2.java b/j2k/testData/fileOrElement/for/nameConflict2.java new file mode 100644 index 00000000000..5d08496dede --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict2.java @@ -0,0 +1,11 @@ +class A { + void foo() { + for (int i = 1, j = 0; i < 1000; i *= 2, j++) { + System.out.println(i); + } + + for (int j = 1; j < 2000; j *= 2) { + System.out.println(j); + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/nameConflict2.kt b/j2k/testData/fileOrElement/for/nameConflict2.kt new file mode 100644 index 00000000000..dd7ec89e425 --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict2.kt @@ -0,0 +1,19 @@ +class A { + fun foo() { + run { + var i = 1 + var j = 0 + while (i < 1000) { + System.out.println(i) + i *= 2 + j++ + } + } + + var j = 1 + while (j < 2000) { + System.out.println(j) + j *= 2 + } + } +} diff --git a/j2k/testData/fileOrElement/for/nameConflict3.java b/j2k/testData/fileOrElement/for/nameConflict3.java new file mode 100644 index 00000000000..59534bf6bdc --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict3.java @@ -0,0 +1,11 @@ +class A { + int i = 1; + + void foo() { + for (int i = 1; i < 1000; i *= 2) { + System.out.println(i); + } + + i = 10; + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/nameConflict3.kt b/j2k/testData/fileOrElement/for/nameConflict3.kt new file mode 100644 index 00000000000..a9b6a9aca3f --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict3.kt @@ -0,0 +1,15 @@ +class A { + var i = 1 + + fun foo() { + run { + var i = 1 + while (i < 1000) { + System.out.println(i) + i *= 2 + } + } + + i = 10 + } +} diff --git a/j2k/testData/fileOrElement/for/nameConflict4.java b/j2k/testData/fileOrElement/for/nameConflict4.java new file mode 100644 index 00000000000..2201f26480e --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict4.java @@ -0,0 +1,11 @@ +class A { + void foo(boolean p) { + for (int i = 1; i < 1000; i *= 2) { + System.out.println(i); + } + + if (p) { + int i = 10 + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/nameConflict4.kt b/j2k/testData/fileOrElement/for/nameConflict4.kt new file mode 100644 index 00000000000..d87c4265a30 --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict4.kt @@ -0,0 +1,15 @@ +class A { + fun foo(p: Boolean) { + run { + var i = 1 + while (i < 1000) { + System.out.println(i) + i *= 2 + } + } + + if (p) { + val i = 10 + } + } +} diff --git a/j2k/testData/fileOrElement/for/nameConflict5.java b/j2k/testData/fileOrElement/for/nameConflict5.java new file mode 100644 index 00000000000..22fa141669e --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict5.java @@ -0,0 +1,11 @@ +class A { + void foo(boolean p) { + if (p) { + int i = 10 + } + + for (int i = 1; i < 1000; i *= 2) { + System.out.println(i); + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/nameConflict5.kt b/j2k/testData/fileOrElement/for/nameConflict5.kt new file mode 100644 index 00000000000..dee36f44469 --- /dev/null +++ b/j2k/testData/fileOrElement/for/nameConflict5.kt @@ -0,0 +1,13 @@ +class A { + fun foo(p: Boolean) { + if (p) { + val i = 10 + } + + var i = 1 + while (i < 1000) { + System.out.println(i) + i *= 2 + } + } +} diff --git a/j2k/testData/fileOrElement/for/notInBlock.java b/j2k/testData/fileOrElement/for/notInBlock.java new file mode 100644 index 00000000000..14d723e6651 --- /dev/null +++ b/j2k/testData/fileOrElement/for/notInBlock.java @@ -0,0 +1,8 @@ +class A { + void foo(boolean p) { + if (p) + for (int i = 1; i < 1000; i *= 2) { + System.out.println(i); + } + } +} \ No newline at end of file diff --git a/j2k/testData/fileOrElement/for/notInBlock.kt b/j2k/testData/fileOrElement/for/notInBlock.kt new file mode 100644 index 00000000000..b1d7c600be5 --- /dev/null +++ b/j2k/testData/fileOrElement/for/notInBlock.kt @@ -0,0 +1,11 @@ +class A { + fun foo(p: Boolean) { + if (p) { + var i = 1 + while (i < 1000) { + System.out.println(i) + i *= 2 + } + } + } +} diff --git a/j2k/testData/fileOrElement/for/withContinue1.kt b/j2k/testData/fileOrElement/for/withContinue1.kt index 51488ee59b2..3fc0a80131c 100644 --- a/j2k/testData/fileOrElement/for/withContinue1.kt +++ b/j2k/testData/fileOrElement/for/withContinue1.kt @@ -1,17 +1,15 @@ public class TestClass { companion object { public fun main(args: Array) { - run { - var i = 0 - while (i < 10) { - if (i == 4 || i == 8) { - i++ - ++i - continue - } - System.err.println(i) + var i = 0 + while (i < 10) { + if (i == 4 || i == 8) { + i++ ++i + continue } + System.err.println(i) + ++i } } } diff --git a/j2k/testData/fileOrElement/for/withContinue2.kt b/j2k/testData/fileOrElement/for/withContinue2.kt index 43f07c7e810..c2cadb941a0 100644 --- a/j2k/testData/fileOrElement/for/withContinue2.kt +++ b/j2k/testData/fileOrElement/for/withContinue2.kt @@ -1,20 +1,18 @@ public class TestClass { companion object { public fun main(args: Array) { - run { - var i = 0 - var j = 1 - while (i < 10) { - if (i == 4 || i == 8) { - i++ - ++i - j *= 2 - continue - } - System.err.println(j) + var i = 0 + var j = 1 + while (i < 10) { + if (i == 4 || i == 8) { + i++ ++i j *= 2 + continue } + System.err.println(j) + ++i + j *= 2 } } } diff --git a/j2k/testData/fileOrElement/for/withContinue3.kt b/j2k/testData/fileOrElement/for/withContinue3.kt index 28a9f3a1fcd..248fae032dd 100644 --- a/j2k/testData/fileOrElement/for/withContinue3.kt +++ b/j2k/testData/fileOrElement/for/withContinue3.kt @@ -1,16 +1,14 @@ public class TestClass { companion object { public fun main(args: Array) { - run { - var i = 1 - while (i < 1000) { - if (i == 4 || i == 8) { - i *= 2 - continue - } - System.err.println(i) + var i = 1 + while (i < 1000) { + if (i == 4 || i == 8) { i *= 2 + continue } + System.err.println(i) + i *= 2 } } } diff --git a/j2k/testData/fileOrElement/for/withContinueAndLabels.kt b/j2k/testData/fileOrElement/for/withContinueAndLabels.kt index 5aa34412c08..830115714fe 100644 --- a/j2k/testData/fileOrElement/for/withContinueAndLabels.kt +++ b/j2k/testData/fileOrElement/for/withContinueAndLabels.kt @@ -2,30 +2,26 @@ public class TestClass { companion object { public fun main(args: Array) { - run { - var i = 1 - @OuterLoop1 @OuterLoop2 while (i < 1000) { - run { - var j = 1 - @InnerLoop while (j < 100) { - if (j == 3) { - j *= 3 - continue@InnerLoop - } - if (i == j) { - i *= 2 - continue@OuterLoop1 - } - System.err.println(j) - if (j == 9) { - j *= 3 - continue - } - j *= 3 - } + var i = 1 + @OuterLoop1 @OuterLoop2 while (i < 1000) { + var j = 1 + @InnerLoop while (j < 100) { + if (j == 3) { + j *= 3 + continue@InnerLoop } - i *= 2 + if (i == j) { + i *= 2 + continue@OuterLoop1 + } + System.err.println(j) + if (j == 9) { + j *= 3 + continue + } + j *= 3 } + i *= 2 } } } diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java index b7e64a129ee..31bd9f3dd12 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java +++ b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java @@ -2002,6 +2002,42 @@ public class JavaToKotlinConverterForWebDemoTestGenerated extends AbstractJavaTo doTest(fileName); } + @TestMetadata("nameConflict1.java") + public void testNameConflict1() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict1.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict2.java") + public void testNameConflict2() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict2.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict3.java") + public void testNameConflict3() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict3.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict4.java") + public void testNameConflict4() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict4.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict5.java") + public void testNameConflict5() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict5.java"); + doTest(fileName); + } + + @TestMetadata("notInBlock.java") + public void testNotInBlock() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/notInBlock.java"); + doTest(fileName); + } + @TestMetadata("withContinue1.java") public void testWithContinue1() throws Exception { String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/withContinue1.java"); diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java index 7bb933fc657..b049b5328ba 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java +++ b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java @@ -2002,6 +2002,42 @@ public class JavaToKotlinConverterSingleFileTestGenerated extends AbstractJavaTo doTest(fileName); } + @TestMetadata("nameConflict1.java") + public void testNameConflict1() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict1.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict2.java") + public void testNameConflict2() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict2.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict3.java") + public void testNameConflict3() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict3.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict4.java") + public void testNameConflict4() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict4.java"); + doTest(fileName); + } + + @TestMetadata("nameConflict5.java") + public void testNameConflict5() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/nameConflict5.java"); + doTest(fileName); + } + + @TestMetadata("notInBlock.java") + public void testNotInBlock() throws Exception { + String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/notInBlock.java"); + doTest(fileName); + } + @TestMetadata("withContinue1.java") public void testWithContinue1() throws Exception { String fileName = JetTestUtils.navigationMetadata("j2k/testData/fileOrElement/for/withContinue1.java");