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,29 @@
// !LANGUAGE: +InlineClasses
// FILE: kt1.kt
package kt
inline class Z(val value: Int)
interface IFoo<T> {
fun foo(): T
}
open class KFooZ : IFoo<Z> {
override fun foo(): Z = Z(42)
}
// FILE: j/J.java
package j;
import kt.Z;
import kt.KFooZ;
public class J extends KFooZ {
}
// FILE: kt2.kt
package kt
import j.J
fun jfoo(x: J) = x.foo()
@@ -0,0 +1,39 @@
package
package j {
public open class J : kt.KFooZ {
public constructor J()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun foo(): kt.Z
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package kt {
public fun jfoo(/*0*/ x: j.J): kt.Z
public interface IFoo</*0*/ T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun foo(): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open class KFooZ : kt.IFoo<kt.Z> {
public constructor KFooZ()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ fun foo(): kt.Z
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final inline class Z {
public constructor Z(/*0*/ value: kotlin.Int)
public final val value: kotlin.Int
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
}