Added tests on interface calls of enum class

This commit is contained in:
Igor Chevdar
2017-02-22 14:37:42 +03:00
parent e664473f74
commit 9165d65560
3 changed files with 51 additions and 0 deletions
+10
View File
@@ -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())
}