Proper concrete implementation filtering in java 8 interface case

This commit is contained in:
Michael Bogdanov
2016-09-05 15:21:41 +03:00
parent 4b0c272e19
commit 69dc18b8b4
6 changed files with 66 additions and 2 deletions
@@ -0,0 +1,19 @@
// JVM_TARGET: 1.8
interface KCallable {
val returnType: String
}
interface KCallableImpl : KCallable {
override val returnType: String
get() = "OK"
}
interface KCallableImpl2 : KCallableImpl
open class DescriptorBasedProperty : KCallableImpl
open class KProperty1Impl : DescriptorBasedProperty(), KCallableImpl2
open class KMutableProperty1Impl : KProperty1Impl(), KCallable
fun box(): String {
return KMutableProperty1Impl().returnType
}