b6af13f18d
Known type parameters appear after inheriting from class with type parameters. Their substitution matters for inner class constructor, because without substitution it's parameters will be type checked against incorrect (original) parameter descriptor with unsubstituted type parameters. Skip creation of composite substitutor, if old substitutor is empty. New substitutors return null in case they don't substitute a type, but old type substitutors have explicit isEmpty method. Composite substitutor with empty old substitutor leads to creation of incorrect descriptor copies.
32 lines
1.6 KiB
Plaintext
Vendored
32 lines
1.6 KiB
Plaintext
Vendored
package
|
|
|
|
public final class Derived : TestType<kotlin.Long> {
|
|
public constructor Derived()
|
|
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 final inner class DerivedInner : TestType<kotlin.Long>.Inner {
|
|
public constructor DerivedInner(/*0*/ item: kotlin.Long)
|
|
public final override /*1*/ /*fake_override*/ val item: kotlin.Long
|
|
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 abstract class TestType</*0*/ V : kotlin.Any> {
|
|
public constructor TestType</*0*/ V : 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 inner class Inner /*captured type parameters: /*0*/ V : kotlin.Any*/ {
|
|
public constructor Inner(/*0*/ item: V)
|
|
public final val item: V
|
|
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
|
|
}
|
|
}
|