Fix for KT-14205
If detected unfinished expression it passed through, added warning on action "Convert Java to Kotlin", if Java files contains syntax errors.
This commit is contained in:
@@ -546,7 +546,11 @@ class DefaultExpressionConverter : JavaElementVisitor(), ExpressionConverter {
|
||||
return
|
||||
}
|
||||
|
||||
val referenceName = expression.referenceName!!
|
||||
val referenceName = expression.referenceName ?: run {
|
||||
result = LiteralExpression(expression.text).assignNoPrototype()
|
||||
return
|
||||
}
|
||||
|
||||
val target = expression.resolve()
|
||||
|
||||
val isNullable = target is PsiVariable && isNullable(target)
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
public class JavaClass {
|
||||
public String v = "";
|
||||
public void m(String s) {
|
||||
s.
|
||||
this.v.
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// ERROR: The expression cannot be a selector (occur after a dot)
|
||||
class JavaClass {
|
||||
var v = ""
|
||||
fun m(s: String) {
|
||||
s.
|
||||
this.v.
|
||||
}
|
||||
}
|
||||
@@ -3003,6 +3003,12 @@ public class JavaToKotlinConverterForWebDemoTestGenerated extends AbstractJavaTo
|
||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/issues/spaceBeforeAssignment.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("unfinishedReferenceExpression.java")
|
||||
public void testUnfinishedReferenceExpression() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/issues/unfinishedReferenceExpression.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("j2k/testData/fileOrElement/kotlinApiAccess")
|
||||
|
||||
@@ -3003,6 +3003,12 @@ public class JavaToKotlinConverterSingleFileTestGenerated extends AbstractJavaTo
|
||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/issues/spaceBeforeAssignment.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("unfinishedReferenceExpression.java")
|
||||
public void testUnfinishedReferenceExpression() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/issues/unfinishedReferenceExpression.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("j2k/testData/fileOrElement/kotlinApiAccess")
|
||||
|
||||
Reference in New Issue
Block a user