Fix for KT-14243: Wrong invocation descriptor on calling implicitly generated implementation in class

#KT-14243 Fixed
This commit is contained in:
Michael Bogdanov
2016-10-09 12:27:04 +03:00
parent ce0d81f670
commit 5bd045c79c
11 changed files with 242 additions and 1 deletions
+20
View File
@@ -0,0 +1,20 @@
// JVM_TARGET: 1.8
interface Z<T> {
fun test(p: T): T {
return p
}
}
open class ZImpl : Z<String>
class ZImpl2 : ZImpl() {
override fun test(p: String): String {
return super.test(p)
}
}
fun box(): String {
return ZImpl2().test("OK")
}
+22
View File
@@ -0,0 +1,22 @@
// JVM_TARGET: 1.8
interface Z<T> {
fun test(p: T): T {
return p
}
}
open class ZImpl : Z<String>
open class ZImpl2 : Z<String>, ZImpl()
class ZImpl3 : ZImpl2() {
override fun test(p: String): String {
return super.test(p)
}
}
fun box(): String {
return ZImpl3().test("OK")
}
@@ -0,0 +1,23 @@
// JVM_TARGET: 1.8
interface Z<T> {
val value: T
val z: T
get() = value
}
open class ZImpl : Z<String> {
override val value: String
get() = "OK"
}
open class ZImpl2 : ZImpl() {
override val z: String
get() = super.z
}
fun box(): String {
return ZImpl2().value
}