Proper enhancement for type parameters
This commit is contained in:
committed by
Denis Zharkov
parent
04aee291b9
commit
8c78739983
@@ -0,0 +1,15 @@
|
||||
// FILE: k.kt
|
||||
|
||||
trait ML<T> {
|
||||
public fun foo(): MutableList<T>
|
||||
}
|
||||
|
||||
class K : J<String>(), ML<String>
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
import java.util.*;
|
||||
|
||||
class J<T> extends ML<T> {
|
||||
public List<T> foo() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package
|
||||
|
||||
public/*package*/ open class J</*0*/ T> : ML<T!> {
|
||||
public/*package*/ constructor J</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun foo(): kotlin.MutableList<T!>
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class K : J<kotlin.String>, ML<kotlin.String> {
|
||||
public constructor K()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ /*fake_override*/ fun foo(): kotlin.MutableList<kotlin.String>
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal trait ML</*0*/ T> {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun foo(): kotlin.MutableList<T>
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// FILE: k.kt
|
||||
|
||||
trait K {
|
||||
fun <T> foo(t: T)
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
interface J extends K {
|
||||
<T> void foo(T t);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package
|
||||
|
||||
public/*package*/ trait J : K {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*1*/ fun </*0*/ T> foo(/*0*/ t: T): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal trait K {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal abstract fun </*0*/ T> foo(/*0*/ t: T): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user