Java to Kotlin converter: fixed crash in converter + more correct auto insertion of !!
#KT-851 Fixed
This commit is contained in:
@@ -569,9 +569,9 @@ public class Converter private(val project: Project, val settings: ConverterSett
|
|||||||
val actualType = expression.getType()
|
val actualType = expression.getType()
|
||||||
if (actualType == null) return convertedExpression
|
if (actualType == null) return convertedExpression
|
||||||
|
|
||||||
if (actualType is PsiPrimitiveType && convertedExpression.isNullable ||
|
if (convertedExpression.isNullable &&
|
||||||
expectedType is PsiPrimitiveType && actualType is PsiClassType) {
|
(actualType is PsiPrimitiveType || actualType is PsiClassType && expectedType is PsiPrimitiveType)) {
|
||||||
convertedExpression = BangBangExpression(convertedExpression)
|
convertedExpression = BangBangExpression(convertedExpression).assignNoPrototype()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canConvertType(actualType, expectedType) && convertedExpression !is LiteralExpression) {
|
if (canConvertType(actualType, expectedType) && convertedExpression !is LiteralExpression) {
|
||||||
|
|||||||
@@ -1672,6 +1672,11 @@ public class JavaToKotlinConverterTestGenerated extends AbstractJavaToKotlinConv
|
|||||||
doTest("j2k/tests/testData/ast/issues/kt-837.java");
|
doTest("j2k/tests/testData/ast/issues/kt-837.java");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt-851.java")
|
||||||
|
public void testKt_851() throws Exception {
|
||||||
|
doTest("j2k/tests/testData/ast/issues/kt-851.java");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("kt-852.java")
|
@TestMetadata("kt-852.java")
|
||||||
public void testKt_852() throws Exception {
|
public void testKt_852() throws Exception {
|
||||||
doTest("j2k/tests/testData/ast/issues/kt-852.java");
|
doTest("j2k/tests/testData/ast/issues/kt-852.java");
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ class Test() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
val i = getInteger(10)!!
|
val i = getInteger(10)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
//file
|
||||||
|
class Test {
|
||||||
|
void putInt(int i) {}
|
||||||
|
|
||||||
|
void test() {
|
||||||
|
Byte b = 10;
|
||||||
|
putInt(b);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
class Test() {
|
||||||
|
fun putInt(i: Int) {
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
val b = 10
|
||||||
|
putInt(b.toInt())
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,6 @@ import kotlinApi.*
|
|||||||
|
|
||||||
class C() {
|
class C() {
|
||||||
fun foo() {
|
fun foo() {
|
||||||
val v = globalGenericFunction<Int>(1)!!
|
val v = globalGenericFunction<Int>(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
fun foo(i: Int) {
|
fun foo(i: Int) {
|
||||||
var i1 = i!!
|
var i1 = i
|
||||||
i1++
|
i1++
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user