JS: fixed inlining functions called through inheritor ("fake" override) from another module (#KT-16144)

This commit is contained in:
Anton Bannykh
2017-02-03 17:50:08 +03:00
parent 0709561869
commit a2431f0d85
4 changed files with 68 additions and 6 deletions
@@ -0,0 +1,28 @@
// MODULE: m3
// FILE: m3.kt
interface M3 {
fun foo(): Int
}
// MODULE: m2
// FILE: m2.kt
open class M2 {
inline fun foo() = 1
inline fun <reified T : Any> bar() = T::class
}
// MODULE: m1(m2, m3)
// FILE: m1.kt
class M1 : M2(), M3
// MODULE: main(m1, m2)
// FILE: main.kt
fun box(): String {
if (M1().foo() != 1) return "fail"
if (M1().bar<M1>().simpleName != "M1") return "fail"
return "OK"
}