[MPP] Add default parameter tests for ^KT-50120

This commit is contained in:
sebastian.sellmair
2021-12-15 13:23:28 +01:00
committed by Space
parent 3598ba1d45
commit 017aacba44
7 changed files with 353 additions and 0 deletions
@@ -0,0 +1,29 @@
// MODULE: m1-common
// FILE: common.kt
expect class Ok(x: Int, y: String = "")
expect class FailX(x: Int, y: String = "")
expect class FailY(x: Int, y: String = "")
fun test() {
Ok()
Ok(42)
Ok(42, "OK")
}
// MODULE: m2-jvm()()(m1-common)
// FILE: jvm.kt
actual class Ok actual constructor(x: Int, y: String)
actual class FailX actual constructor(x: Int = 0, y: String)
actual class FailY actual constructor(x: Int, y: String = "")
fun testJvm() {
Ok()
Ok(42)
Ok(42, "OK")
}
@@ -0,0 +1,29 @@
// MODULE: m1-common
// FILE: common.kt
expect class Ok(x: Int, y: String = "")
expect class FailX(x: Int, y: String = "")
expect class FailY(x: Int, y: String = "")
fun test() {
Ok(<!NO_VALUE_FOR_PARAMETER!>)<!>
Ok(42)
Ok(42, "OK")
}
// MODULE: m2-jvm()()(m1-common)
// FILE: jvm.kt
actual class Ok actual constructor(x: Int, y: String)
actual class FailX actual constructor(<!ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS!>x: Int = 0<!>, y: String)
actual class FailY actual constructor(x: Int, <!ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS!>y: String = ""<!>)
fun testJvm() {
Ok(<!NO_VALUE_FOR_PARAMETER!>)<!>
Ok(42)
Ok(42, "OK")
}
@@ -0,0 +1,52 @@
// -- Module: <m1-common> --
package
public fun test(): kotlin.Unit
public final expect class FailX {
public constructor FailX(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final expect class FailY {
public constructor FailY(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final expect class Ok {
public constructor Ok(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
// -- Module: <m2-jvm> --
package
public fun testJvm(): kotlin.Unit
public final actual class FailX {
public constructor FailX(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.String)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final actual class FailY {
public constructor FailY(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final actual class Ok {
public constructor Ok(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,73 @@
// MODULE: m1-common
// FILE: common.kt
import A.Companion.companionExtensionFunction
expect class A() {
fun memberFunction(x: Int, y: String = "ok")
companion object {
fun companionFunction(x: Int, y: String = "ok")
fun String.companionExtensionFunction(x: Int, y: String = "ok")
}
}
expect fun topLevelFunction(x: Int, y: String = "ok")
expect fun String.topLevelExtensionFunction(x: Int, y: String = "ok")
fun test() {
A().memberFunction()
A().memberFunction(42)
A().memberFunction(42, "ok")
topLevelFunction()
topLevelFunction(42)
topLevelFunction(42, "ok")
"".topLevelExtensionFunction()
"".topLevelExtensionFunction(42)
"".topLevelExtensionFunction(42, "ok")
}
fun A.test() {
"".companionExtensionFunction()
"".companionExtensionFunction(42)
"".companionExtensionFunction(42, "ok")
}
// MODULE: m2-jvm()()(m1-common)
// FILE: jvm.kt
import A.Companion.companionExtensionFunction
actual class A {
actual fun memberFunction(x: Int, y: String) = Unit
actual companion object {
actual fun companionFunction(x: Int, y: String) = Unit
actual fun String.companionExtensionFunction(x: Int, y: String) = Unit
}
}
actual fun topLevelFunction(x: Int, y: String) = Unit
actual fun String.topLevelExtensionFunction(x: Int, y: String) = Unit
fun testJvm() {
A().memberFunction()
A().memberFunction(42)
A().memberFunction(42, "ok")
topLevelFunction()
topLevelFunction(42)
topLevelFunction(42, "ok")
"".topLevelExtensionFunction()
"".topLevelExtensionFunction(42)
"".topLevelExtensionFunction(42, "ok")
}
fun A.testJvm() {
"".companionExtensionFunction()
"".companionExtensionFunction(42)
"".companionExtensionFunction(42, "ok")
}
@@ -0,0 +1,73 @@
// MODULE: m1-common
// FILE: common.kt
import A.Companion.companionExtensionFunction
expect class A() {
fun memberFunction(x: Int, y: String = "ok")
companion object {
fun companionFunction(x: Int, y: String = "ok")
fun String.companionExtensionFunction(x: Int, y: String = "ok")
}
}
expect fun topLevelFunction(x: Int, y: String = "ok")
expect fun String.topLevelExtensionFunction(x: Int, y: String = "ok")
fun test() {
A().memberFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
A().memberFunction(42)
A().memberFunction(42, "ok")
topLevelFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
topLevelFunction(42)
topLevelFunction(42, "ok")
"".topLevelExtensionFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
"".topLevelExtensionFunction(42)
"".topLevelExtensionFunction(42, "ok")
}
fun A.test() {
"".companionExtensionFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
"".companionExtensionFunction(42)
"".companionExtensionFunction(42, "ok")
}
// MODULE: m2-jvm()()(m1-common)
// FILE: jvm.kt
import A.Companion.companionExtensionFunction
actual class A {
actual fun memberFunction(x: Int, y: String) = Unit
actual companion object {
actual fun companionFunction(x: Int, y: String) = Unit
actual fun String.companionExtensionFunction(x: Int, y: String) = Unit
}
}
actual fun topLevelFunction(x: Int, y: String) = Unit
actual fun String.topLevelExtensionFunction(x: Int, y: String) = Unit
fun testJvm() {
A().memberFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
A().memberFunction(42)
A().memberFunction(42, "ok")
topLevelFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
topLevelFunction(42)
topLevelFunction(42, "ok")
"".topLevelExtensionFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
"".topLevelExtensionFunction(42)
"".topLevelExtensionFunction(42, "ok")
}
fun A.testJvm() {
"".companionExtensionFunction(<!NO_VALUE_FOR_PARAMETER!>)<!>
"".companionExtensionFunction(42)
"".companionExtensionFunction(42, "ok")
}
@@ -0,0 +1,49 @@
// -- Module: <m1-common> --
package
public fun test(): kotlin.Unit
public expect fun topLevelFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...): kotlin.Unit
public fun A.test(): kotlin.Unit
public expect fun kotlin.String.topLevelExtensionFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...): kotlin.Unit
public final expect class A {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final expect fun memberFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public expect companion object Companion {
public final expect fun companionFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final expect fun kotlin.String.companionExtensionFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String = ...): kotlin.Unit
}
}
// -- Module: <m2-jvm> --
package
public fun testJvm(): kotlin.Unit
public actual fun topLevelFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String): kotlin.Unit
public fun A.testJvm(): kotlin.Unit
public actual fun kotlin.String.topLevelExtensionFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String): kotlin.Unit
public final actual class A {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final actual fun memberFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public actual companion object Companion {
private constructor Companion()
public final actual fun companionFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final actual fun kotlin.String.companionExtensionFunction(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String): kotlin.Unit
}
}