Added tests on interface calls of enum class
This commit is contained in:
@@ -366,6 +366,16 @@ task enum_companionObject(type: RunKonanTest) {
|
|||||||
source = "codegen/enum/companionObject.kt"
|
source = "codegen/enum/companionObject.kt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task enum_interfaceCallNoEntryClass(type: RunKonanTest) {
|
||||||
|
goldValue = "('z3', 3)\n('z3', 3)\n"
|
||||||
|
source = "codegen/enum/interfaceCallNoEntryClass.kt"
|
||||||
|
}
|
||||||
|
|
||||||
|
task enum_interfaceCallWithEntryClass(type: RunKonanTest) {
|
||||||
|
goldValue = "z1z2\nz1z2\n"
|
||||||
|
source = "codegen/enum/interfaceCallWithEntryClass.kt"
|
||||||
|
}
|
||||||
|
|
||||||
task innerClass_simple(type: RunKonanTest) {
|
task innerClass_simple(type: RunKonanTest) {
|
||||||
goldValue = "OK\n"
|
goldValue = "OK\n"
|
||||||
source = "codegen/innerClass/simple.kt"
|
source = "codegen/innerClass/simple.kt"
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
interface A {
|
||||||
|
fun foo(): String
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class Zzz(val zzz: String, val x: Int) : A {
|
||||||
|
Z1("z1", 1),
|
||||||
|
Z2("z2", 2),
|
||||||
|
Z3("z3", 3);
|
||||||
|
|
||||||
|
override fun foo(): String{
|
||||||
|
return "('$zzz', $x)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
println(Zzz.Z3.foo())
|
||||||
|
val a: A = Zzz.Z3
|
||||||
|
println(a.foo())
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
interface A {
|
||||||
|
fun f(): String
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class Zzz: A {
|
||||||
|
Z1 {
|
||||||
|
override fun f() = "z1"
|
||||||
|
},
|
||||||
|
|
||||||
|
Z2 {
|
||||||
|
override fun f() = "z2"
|
||||||
|
};
|
||||||
|
|
||||||
|
override fun f() = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main(args: Array<String>) {
|
||||||
|
println(Zzz.Z1.f() + Zzz.Z2.f())
|
||||||
|
val a1: A = Zzz.Z1
|
||||||
|
val a2: A = Zzz.Z2
|
||||||
|
println(a1.f() + a2.f())
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user