Fix primitive override with inline class in Kotlin-Java inheritance
This commit is contained in:
+4
@@ -0,0 +1,4 @@
|
||||
package test;
|
||||
|
||||
class JExtendsKFooZ extends KFooZ {
|
||||
}
|
||||
+13
@@ -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)
|
||||
}
|
||||
+20
@@ -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
|
||||
}
|
||||
+29
@@ -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()
|
||||
+39
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user