Fix order of type parameters loaded from PSI
#KT-10285 Fixed
This commit is contained in:
@@ -7,7 +7,7 @@ public open class Outer</*0*/ E : kotlin.Any!> {
|
||||
public/*package*/ open fun baz(): Outer<E!>.Inner<E!>!
|
||||
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 set(/*0*/ x: Outer<kotlin.String!>.Inner<E!>!): kotlin.Unit
|
||||
public/*package*/ open fun set(/*0*/ x: Outer<E!>.Inner<kotlin.String!>!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public open inner class Inner</*0*/ F : kotlin.Any!> /*captured type parameters: /*1*/ E : kotlin.Any!*/ {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
// !CHECK_TYPE
|
||||
// FILE: BaseOuter.java
|
||||
// See KT-10285
|
||||
public class BaseOuter<H> {
|
||||
abstract public class BaseInner<E, F> {
|
||||
public H foo1() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public E foo2() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public F foo3() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: Outer.java
|
||||
public class Outer<H> extends BaseOuter<H> {
|
||||
public BaseInner<Double, String> bar() { return null; }
|
||||
public class Inner extends BaseOuter<H>.BaseInner<Double, String> {}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
fun foo(x1: Outer<Int>, x2: Outer<Int>.Inner) {
|
||||
x1.bar().foo1().checkType { _<Int>() }
|
||||
x1.bar().foo2().checkType { _<Double>() }
|
||||
x1.bar().foo3().checkType { _<String>() }
|
||||
|
||||
x2.foo1().checkType { _<Int>() }
|
||||
x2.foo2().checkType { _<Double>() }
|
||||
x2.foo3().checkType { _<String>() }
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package
|
||||
|
||||
public fun foo(/*0*/ x1: Outer<kotlin.Int>, /*1*/ x2: Outer<kotlin.Int>.Inner): kotlin.Unit
|
||||
|
||||
public open class BaseOuter</*0*/ H : kotlin.Any!> {
|
||||
public constructor BaseOuter</*0*/ H : 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 abstract inner class BaseInner</*0*/ E : kotlin.Any!, /*1*/ F : kotlin.Any!> /*captured type parameters: /*2*/ H : kotlin.Any!*/ {
|
||||
public constructor BaseInner</*0*/ E : kotlin.Any!, /*1*/ F : kotlin.Any!>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun foo1(): H!
|
||||
public open fun foo2(): E!
|
||||
public open fun foo3(): F!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public open class Outer</*0*/ H : kotlin.Any!> : BaseOuter<H!> {
|
||||
public constructor Outer</*0*/ H : kotlin.Any!>()
|
||||
public open fun bar(): BaseOuter<H!>.BaseInner<kotlin.Double!, kotlin.String!>!
|
||||
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*/ H : kotlin.Any!*/ : BaseOuter<H!>.BaseInner<kotlin.Double!, kotlin.String!> {
|
||||
public constructor Inner()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun foo1(): H!
|
||||
public open override /*1*/ /*fake_override*/ fun foo2(): kotlin.Double!
|
||||
public open override /*1*/ /*fake_override*/ fun foo3(): kotlin.String!
|
||||
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