Remove duplicate parameter null checks in JvmStatic delegate methods.

Remove unnecessary non-null parameter checks inside static delegate methods
created for @JvmStatic companion object methods. Allows function generation
strategy decide if such checks need to be injected.

 #KT-7188 Fixed
This commit is contained in:
Denis Vnukov
2017-12-12 11:51:36 -08:00
committed by Dmitry Petrov
parent 9e82ab38f0
commit 52ccd67ec1
9 changed files with 96 additions and 1 deletions
+46
View File
@@ -0,0 +1,46 @@
// WITH_RUNTIME
// TARGET_BACKEND: JVM
// FILE: Dummy.kt
// Empty body to trigger multifile test mode
// FILE: Test.kt
class TestMethod {
companion object {
@JvmStatic
fun test(s0: String, s1: String?) = s0 + (s1 ?: "null")
}
}
class TestMethodOverloads {
companion object {
@JvmStatic
@JvmOverloads
fun test(s0: String = "s0", s1: String = "s1", s2: String = "s2") = s0 + s1 + s2
}
}
class TestProperty {
companion object {
@JvmStatic
var prop: String = "Blah"
}
}
class TestAccessor {
companion object {
var prop: String = "Blah" @JvmStatic set
}
}
// @TestMethod.class:
// 0 INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull \(Ljava/lang/Object;Ljava/lang/String;\)V
// @TestMethodOverloads.class:
// 0 INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull \(Ljava/lang/Object;Ljava/lang/String;\)V
// @TestProperty.class:
// 0 INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull \(Ljava/lang/Object;Ljava/lang/String;\)V
// @TestAccessor.class:
// 0 INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull \(Ljava/lang/Object;Ljava/lang/String;\)V