diff --git a/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt b/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt index decdf5a7333..312452f741c 100644 --- a/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt +++ b/j2k/src/org/jetbrains/jet/j2k/ast/Expressions.kt @@ -73,14 +73,11 @@ class SuperExpression(val identifier: Identifier) : Expression() { class QualifiedExpression(val expression: Expression, val identifier: Expression) : Expression() { override val isNullable: Boolean - get() { - if (!expression.isEmpty && expression.isNullable) return true - return identifier.isNullable - } + get() = identifier.isNullable override fun toKotlin(): String { if (!expression.isEmpty) { - return operandToKotlin(expression) + (if (expression.isNullable) "?." else ".") + identifier.toKotlin() + return operandToKotlin(expression) + (if (expression.isNullable) "!!." else ".") + identifier.toKotlin() } return identifier.toKotlin() diff --git a/j2k/src/org/jetbrains/jet/j2k/ast/MethodCallExpression.kt b/j2k/src/org/jetbrains/jet/j2k/ast/MethodCallExpression.kt index 28aa928cea1..bea2bd5b9bd 100644 --- a/j2k/src/org/jetbrains/jet/j2k/ast/MethodCallExpression.kt +++ b/j2k/src/org/jetbrains/jet/j2k/ast/MethodCallExpression.kt @@ -18,20 +18,19 @@ package org.jetbrains.jet.j2k.ast import java.util.ArrayList -open class MethodCallExpression( +class MethodCallExpression( val methodExpression: Expression, val arguments: List, val typeParameters: List, - val resultIsNullable: Boolean = false + override val isNullable: Boolean = false ) : Expression() { - override val isNullable: Boolean - get() = methodExpression.isNullable || resultIsNullable - override fun toKotlin(): String { - val typeParamsToKotlin: String = typeParameters.toKotlin(", ", "<", ">") - val argumentsMapped = arguments.map { it.toKotlin() } - return operandToKotlin(methodExpression) + typeParamsToKotlin + "(" + argumentsMapped.makeString(", ") + ")" + return operandToKotlin(methodExpression) + + typeParameters.toKotlin(", ", "<", ">") + + "(" + + arguments.map { it.toKotlin() }.makeString(", ") + + ")" } class object { diff --git a/j2k/tests/testData/ast/annotations/jetbrainsNotNull.kt b/j2k/tests/testData/ast/annotations/jetbrainsNotNull.kt index 7598605805e..c17e1652311 100644 --- a/j2k/tests/testData/ast/annotations/jetbrainsNotNull.kt +++ b/j2k/tests/testData/ast/annotations/jetbrainsNotNull.kt @@ -6,7 +6,7 @@ public class Test(str: String) { var myStr: String = "String2" public fun sout(str: String) { - System.out?.println(str) + System.out!!.println(str) } public fun dummy(str: String): String { diff --git a/j2k/tests/testData/ast/annotations/jetbrainsNotNullChainExpr.kt b/j2k/tests/testData/ast/annotations/jetbrainsNotNullChainExpr.kt index b3b71dabab0..8d6ab2860e1 100644 --- a/j2k/tests/testData/ast/annotations/jetbrainsNotNullChainExpr.kt +++ b/j2k/tests/testData/ast/annotations/jetbrainsNotNullChainExpr.kt @@ -15,8 +15,8 @@ class Bar() { class Test() { public fun test(barNotNull: Bar, barNullable: Bar?) { barNotNull.fooNotNull.execute() - barNotNull.fooNullable?.execute() - barNullable?.fooNotNull?.execute() - barNullable?.fooNullable?.execute() + barNotNull.fooNullable!!.execute() + barNullable!!.fooNotNull.execute() + barNullable!!.fooNullable!!.execute() } } \ No newline at end of file diff --git a/j2k/tests/testData/ast/assignmentExpression/nullability-settings.kt b/j2k/tests/testData/ast/assignmentExpression/nullability-settings.kt index 907706ff69f..cf6a283fc4e 100644 --- a/j2k/tests/testData/ast/assignmentExpression/nullability-settings.kt +++ b/j2k/tests/testData/ast/assignmentExpression/nullability-settings.kt @@ -6,6 +6,6 @@ class Foo() { fun foo(o: BitSet?) { val o2: BitSet? = o val foo: Int = 0 - foo = o2?.size()!! + foo = o2!!.size() } } \ No newline at end of file diff --git a/j2k/tests/testData/ast/callChainExpression/libraryMethodCallFromInstance-settings.kt b/j2k/tests/testData/ast/callChainExpression/libraryMethodCallFromInstance-settings.kt index 3a175bc155e..4225353cd8f 100644 --- a/j2k/tests/testData/ast/callChainExpression/libraryMethodCallFromInstance-settings.kt +++ b/j2k/tests/testData/ast/callChainExpression/libraryMethodCallFromInstance-settings.kt @@ -13,9 +13,9 @@ class User() { fun main() { val lib: Library = Library() lib.call() - lib.getString()?.isEmpty() + lib.getString()!!.isEmpty() Library().call() - Library().getString()?.isEmpty() + Library().getString()!!.isEmpty() } } \ No newline at end of file diff --git a/j2k/tests/testData/ast/issues/kt-824-isDir.kt b/j2k/tests/testData/ast/issues/kt-824-isDir.kt index a723949070d..a02066bb927 100644 --- a/j2k/tests/testData/ast/issues/kt-824-isDir.kt +++ b/j2k/tests/testData/ast/issues/kt-824-isDir.kt @@ -8,11 +8,11 @@ import java.io.File public class Test() { class object { public fun isDir(parent: File?): Boolean { - if (parent == null || !parent?.exists()!!) { + if (parent == null || !parent!!.exists()) { return false } val result = true - if (parent?.isDirectory()!!) { + if (parent!!.isDirectory()) { return true } else return false diff --git a/j2k/tests/testData/ast/kotlinApiAccess/CorrectFunNullabilityDetected.kt b/j2k/tests/testData/ast/kotlinApiAccess/CorrectFunNullabilityDetected.kt index 636dbbc12e0..fc60f982b07 100644 --- a/j2k/tests/testData/ast/kotlinApiAccess/CorrectFunNullabilityDetected.kt +++ b/j2k/tests/testData/ast/kotlinApiAccess/CorrectFunNullabilityDetected.kt @@ -2,6 +2,6 @@ import kotlinApi.* class A() { fun foo(t: KotlinTrait): Int { - return t.nullableFun()?.length()!! + t.notNullableFun().length() + return t.nullableFun()!!.length() + t.notNullableFun().length() } } \ No newline at end of file diff --git a/j2k/tests/testData/ast/kotlinApiAccess/CorrectNullabilityDetected.kt b/j2k/tests/testData/ast/kotlinApiAccess/CorrectNullabilityDetected.kt index c6e87d24074..5f0a497b350 100644 --- a/j2k/tests/testData/ast/kotlinApiAccess/CorrectNullabilityDetected.kt +++ b/j2k/tests/testData/ast/kotlinApiAccess/CorrectNullabilityDetected.kt @@ -2,6 +2,6 @@ import kotlinApi.* class A() { fun foo(c: KotlinClass): Int { - return c.nullableProperty?.length()!! + c.property.length() + KotlinClass.nullableStaticVar!! + KotlinClass.staticVar + KotlinClass.nullableStaticFun(1)!! + KotlinClass.staticFun(1) + nullableGlobalFunction("")?.length()!! + globalFunction("").length() + return c.nullableProperty!!.length() + c.property.length() + KotlinClass.nullableStaticVar!! + KotlinClass.staticVar + KotlinClass.nullableStaticFun(1)!! + KotlinClass.staticFun(1) + nullableGlobalFunction("")!!.length() + globalFunction("").length() } } \ No newline at end of file diff --git a/j2k/tests/testData/ast/nullability/NullableMethodDotAccess.kt b/j2k/tests/testData/ast/nullability/NullableMethodDotAccess.kt index efc5e709736..4bef51b9f32 100644 --- a/j2k/tests/testData/ast/nullability/NullableMethodDotAccess.kt +++ b/j2k/tests/testData/ast/nullability/NullableMethodDotAccess.kt @@ -4,6 +4,6 @@ class C() { } fun foo(): Int { - return getString(true)?.length()!! + return getString(true)!!.length() } -} \ No newline at end of file +} diff --git a/j2k/tests/testData/ast/nullability/NullableVariableDotAccess.kt b/j2k/tests/testData/ast/nullability/NullableVariableDotAccess.kt index 93b77147fd1..01480307817 100644 --- a/j2k/tests/testData/ast/nullability/NullableVariableDotAccess.kt +++ b/j2k/tests/testData/ast/nullability/NullableVariableDotAccess.kt @@ -1,5 +1,5 @@ fun foo(s: String?, b: Boolean): Int { if (s == null) System.out.println("null") - if (b) return s?.length()!! + if (b) return s!!.length() return 10 } \ No newline at end of file diff --git a/j2k/tests/testData/ast/prefixOperator/nullableIf.kt b/j2k/tests/testData/ast/prefixOperator/nullableIf.kt index 209e96d341b..d294f76c13d 100644 --- a/j2k/tests/testData/ast/prefixOperator/nullableIf.kt +++ b/j2k/tests/testData/ast/prefixOperator/nullableIf.kt @@ -1,3 +1,3 @@ val s = null -if (!s?.isEmpty()!!) { +if (!s!!.isEmpty()) { } \ No newline at end of file