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"
|
||||
}
|
||||
|
||||
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) {
|
||||
goldValue = "OK\n"
|
||||
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