Support default method invocation via super

#KT-5970 Fixed
This commit is contained in:
Michael Bogdanov
2015-05-05 16:04:16 +03:00
parent 3fbdf05921
commit 99cad4b43f
4 changed files with 54 additions and 3 deletions

View File

@@ -0,0 +1,5 @@
public interface Test {
default String test() {
return "OK";
}
}

View File

@@ -0,0 +1,32 @@
trait KTrait : Test {
}
class KClass : Test {
fun ktest(): String {
return super.test() + test()
}
}
class KTClass : KTrait {
fun ktest(): String {
return super.test() + test()
}
}
fun box(): String {
val p = object : KTrait {
fun ktest(): String {
return super.test() + test()
}
}.ktest()
if (p != "OKOK") return "fail1: $p"
if (KClass().ktest() != "OKOK") return "fail 2: ${KClass().ktest()}"
if (KTClass().ktest() != "OKOK") return "fail 3: ${KTClass().ktest()}"
return "OK"
}