Fix primitive override with inline class in Kotlin-Java inheritance

This commit is contained in:
Dmitry Petrov
2018-08-22 11:00:57 +03:00
parent 01eca8bac8
commit 34548a0667
15 changed files with 241 additions and 28 deletions
@@ -0,0 +1,4 @@
package test;
class JExtendsKFooZ extends KFooZ {
}
@@ -0,0 +1,13 @@
// !LANGUAGE: +InlineClasses
package test
inline class Z(val value: Int)
interface IFoo<T> {
fun foo(): T
}
open class KFooZ : IFoo<Z> {
override fun foo(): Z = Z(42)
}
@@ -0,0 +1,20 @@
package test
public interface IFoo</*0*/ T> {
public abstract fun foo(): T
}
public/*package*/ open class JExtendsKFooZ : test.KFooZ {
public/*package*/ constructor JExtendsKFooZ()
public open /*fake_override*/ fun foo(): test.Z
}
public open class KFooZ : test.IFoo<test.Z> {
public constructor KFooZ()
public open fun foo(): test.Z
}
public final inline class Z {
public constructor Z(/*0*/ kotlin.Int)
public final val value: kotlin.Int
}