Prevent recursion on erasion of raw types with interdependent type parameters
^KT-47480 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
0774d4d734
commit
e071281b20
+14
@@ -0,0 +1,14 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: Boo.java
|
||||
public class Boo<N> {}
|
||||
|
||||
// FILE: Foo.java
|
||||
public class Foo<T extends Boo<K>, K extends Boo<X>, X extends Boo<K>> {
|
||||
T test2() { return null; }
|
||||
static Foo test1() { return null; }
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun main() {
|
||||
val x = Foo.test1().test2()
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
package
|
||||
|
||||
public fun main(): kotlin.Unit
|
||||
|
||||
public open class Boo</*0*/ N : kotlin.Any!> {
|
||||
public constructor Boo</*0*/ N : kotlin.Any!>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class Foo</*0*/ T : Boo<K!>!, /*1*/ K : Boo<X!>!, /*2*/ X : Boo<K!>!> {
|
||||
public constructor Foo</*0*/ T : Boo<K!>!, /*1*/ K : Boo<X!>!, /*2*/ X : Boo<K!>!>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public/*package*/ open fun test2(): T!
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public/*package*/ open fun test1(): (Foo<(raw) Boo<Boo<Boo<*>!>!>!, (raw) Boo<Boo<*>!>!, (raw) Boo<Boo<*>!>!>..Foo<out Boo<out Boo<out Boo<*>!>!>!, out Boo<out Boo<*>!>!, out Boo<out Boo<*>!>!>?)
|
||||
}
|
||||
Reference in New Issue
Block a user