Java to Kotlin converter: fixed exception on conversion
This commit is contained in:
@@ -176,13 +176,8 @@ open class StatementVisitor(public val converter: Converter) : JavaElementVisito
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitForeachStatement(statement: PsiForeachStatement) {
|
override fun visitForeachStatement(statement: PsiForeachStatement) {
|
||||||
val iterator = run {
|
val iteratorExpr = converter.convertExpression(statement.getIteratedValue())
|
||||||
val iteratorExpr = converter.convertExpression(statement.getIteratedValue())
|
val iterator = if (iteratorExpr.isNullable) BangBangExpression(iteratorExpr).assignNoPrototype() else iteratorExpr
|
||||||
if (iteratorExpr.isNullable)
|
|
||||||
BangBangExpression(iteratorExpr)
|
|
||||||
else
|
|
||||||
iteratorExpr
|
|
||||||
}
|
|
||||||
result = ForeachStatement(converter.convertParameter(statement.getIterationParameter()),
|
result = ForeachStatement(converter.convertParameter(statement.getIterationParameter()),
|
||||||
iterator,
|
iterator,
|
||||||
convertStatementOrBlock(statement.getBody()),
|
convertStatementOrBlock(statement.getBody()),
|
||||||
|
|||||||
@@ -1300,6 +1300,11 @@ public class JavaToKotlinConverterTestGenerated extends AbstractJavaToKotlinConv
|
|||||||
doTest("j2k/tests/testData/ast/foreachStatement/enhancedForWithReturn.java");
|
doTest("j2k/tests/testData/ast/foreachStatement/enhancedForWithReturn.java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nullableIterable.java")
|
||||||
|
public void testNullableIterable() throws Exception {
|
||||||
|
doTest("j2k/tests/testData/ast/foreachStatement/nullableIterable.java");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("j2k/tests/testData/ast/formatting")
|
@TestMetadata("j2k/tests/testData/ast/formatting")
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
//file
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
class A {
|
||||||
|
List<String> list = null;
|
||||||
|
|
||||||
|
void foo() {
|
||||||
|
for (String e : list) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
class A {
|
||||||
|
var list: List<String>? = null
|
||||||
|
|
||||||
|
fun foo() {
|
||||||
|
for (e in list!!) {
|
||||||
|
System.out.println(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user