mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 00:21:47 +00:00
Support default method invocation via super
#KT-5970 Fixed
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
public interface Test {
|
||||
default String test() {
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user