Added test to check default params in declaration (issue KT-23239)

This commit is contained in:
Roman Artemev
2018-03-16 20:43:41 +03:00
parent 7d72fe07bb
commit a121a4a6b2
7 changed files with 170 additions and 0 deletions
@@ -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"
}
@@ -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"
}