Added test to check default params in declaration (issue KT-23239)
This commit is contained in:
Vendored
+30
@@ -0,0 +1,30 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: common.kt
|
||||
|
||||
expect open class C() {
|
||||
open fun f(p: Int = 2) : String
|
||||
}
|
||||
|
||||
// FILE: platform.kt
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
actual open class C {
|
||||
actual open fun f(p: Int) = "C" + p
|
||||
}
|
||||
|
||||
open class D : C() {
|
||||
override open fun f(p: Int) = "D" + p
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
|
||||
assertEquals("C2", C().f())
|
||||
assertEquals("C9", C().f(9))
|
||||
assertEquals("D2", D().f())
|
||||
assertEquals("D5", D().f(5))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Vendored
+34
@@ -0,0 +1,34 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: common.kt
|
||||
|
||||
expect open class A() {
|
||||
open fun f(p: Int = 1) : String
|
||||
}
|
||||
|
||||
expect open class B : A {
|
||||
override open fun f(p: Int) : String
|
||||
}
|
||||
|
||||
// FILE: platform.kt
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
actual open class A {
|
||||
actual open fun f(p: Int) = "A" + p
|
||||
}
|
||||
|
||||
actual open class B : A() {
|
||||
actual override open fun f(p: Int) = "B" + p
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
|
||||
assertEquals("A1", A().f())
|
||||
assertEquals("A9", A().f(9))
|
||||
assertEquals("B1", B().f())
|
||||
assertEquals("B5", B().f(5))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: common.kt
|
||||
|
||||
expect open class C() {
|
||||
open fun f(p: Int = 1) : String
|
||||
open fun f2(p1: Int = 1, p2: Int = 2) : String
|
||||
open fun ff(p1: Int, p2: Int = 2) : String
|
||||
open fun fff(p1: Int, p2: Int, p3: Int = 3) : String
|
||||
open fun fffx(p1: Int, p2: Int = 4, p3: Int = 5) : String
|
||||
}
|
||||
// FILE: platform.kt
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
actual open class C {
|
||||
actual open fun f(p: Int) = "f" + p
|
||||
actual open fun f2(p1: Int, p2: Int) = "f2" + p1 + "" + p2
|
||||
actual open fun ff(p1: Int, p2: Int) = "ff" + p1 + "" + p2
|
||||
actual open fun fff(p1: Int, p2: Int, p3: Int) = "fff" + p1 + "" + p2 + "" + p3
|
||||
actual open fun fffx(p1: Int, p2: Int, p3: Int) = "fffx" + p1 + "" + p2 + "" + p3
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
|
||||
assertEquals("f1", C().f())
|
||||
assertEquals("f212", C().f2())
|
||||
assertEquals("ff12", C().ff(1))
|
||||
assertEquals("fff123", C().fff(1, 2))
|
||||
assertEquals("fffx345", C().fffx(3))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user