[FIR] Render outer type parameters differently

This commit is contained in:
Nikolay Lunyak
2023-07-27 11:51:48 +03:00
committed by Space Team
parent e4246e8f51
commit c2ad475153
37 changed files with 118 additions and 109 deletions
@@ -1,7 +1,7 @@
public open class InnerClassReferencesOuterTP<P : R|kotlin/Any!|> : R|kotlin/Any| {
public constructor<P : R|kotlin/Any!|>(): R|test/InnerClassReferencesOuterTP<P>|
public open inner class Inner<Q : R|ft<P & Any, P?>|, P : R|kotlin/Any!|> : R|kotlin/Any| {
public open inner class Inner<Q : R|ft<P & Any, P?>|, Outer(P) : R|kotlin/Any!|> : R|kotlin/Any| {
public test/InnerClassReferencesOuterTP<P>.constructor<Q : R|ft<P & Any, P?>|>(): R|test/InnerClassReferencesOuterTP.Inner<Q, P>|
}
@@ -6,7 +6,7 @@ public open class InnerClassTypeMultipleGeneric : R|kotlin/Any| {
public open inner class BaseOuter<H1 : R|kotlin/Any!|, H2 : R|kotlin/Any!|> : R|kotlin/Any| {
public test/InnerClassTypeMultipleGeneric.constructor<H1 : R|kotlin/Any!|, H2 : R|kotlin/Any!|>(): R|test/InnerClassTypeMultipleGeneric.BaseOuter<H1, H2>|
public abstract inner class BaseInner<H3 : R|kotlin/Any!|, H4 : R|kotlin/Any!|, H1 : R|kotlin/Any!|, H2 : R|kotlin/Any!|> : R|kotlin/Any| {
public abstract inner class BaseInner<H3 : R|kotlin/Any!|, H4 : R|kotlin/Any!|, Outer(H1) : R|kotlin/Any!|, Outer(H2) : R|kotlin/Any!|> : R|kotlin/Any| {
public test/InnerClassTypeMultipleGeneric.BaseOuter<H1, H2>.constructor<H3 : R|kotlin/Any!|, H4 : R|kotlin/Any!|>(): R|test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<H3, H4, H1, H2>|
}
@@ -16,7 +16,7 @@ public open class InnerClassTypeMultipleGeneric : R|kotlin/Any| {
public test/InnerClassTypeMultipleGeneric.constructor<E1 : R|kotlin/Any!|, E2 : R|kotlin/Any!|>(): R|test/InnerClassTypeMultipleGeneric.Outer<E1, E2>|
public open inner class Inner<E3 : R|kotlin/Any!|, E1 : R|kotlin/Any!|, E2 : R|kotlin/Any!|> : R|test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<kotlin/Double!, kotlin/String!, ft<E2 & Any, E2?>, ft<E3 & Any, E3?>>| {
public open inner class Inner<E3 : R|kotlin/Any!|, Outer(E1) : R|kotlin/Any!|, Outer(E2) : R|kotlin/Any!|> : R|test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<kotlin/Double!, kotlin/String!, ft<E2 & Any, E2?>, ft<E3 & Any, E3?>>| {
public test/InnerClassTypeMultipleGeneric.Outer<E1, E2>.constructor<E3 : R|kotlin/Any!|>(): R|test/InnerClassTypeMultipleGeneric.Outer.Inner<E3, E1, E2>|
}
@@ -1,11 +1,11 @@
public open class InnerClassesInGeneric<P : R|kotlin/Any!|, Q : R|kotlin/Any!|> : R|kotlin/Any| {
public constructor<P : R|kotlin/Any!|, Q : R|kotlin/Any!|>(): R|test/InnerClassesInGeneric<P, Q>|
public open inner class Inner<P : R|kotlin/Any!|, Q : R|kotlin/Any!|> : R|kotlin/Any| {
public open inner class Inner<Outer(P) : R|kotlin/Any!|, Outer(Q) : R|kotlin/Any!|> : R|kotlin/Any| {
public test/InnerClassesInGeneric<P, Q>.constructor(): R|test/InnerClassesInGeneric.Inner<P, Q>|
}
public open inner class Inner2<P : R|kotlin/Any!|, Q : R|kotlin/Any!|> : R|test/InnerClassesInGeneric.Inner<ft<P & Any, P?>, ft<Q & Any, Q?>>| {
public open inner class Inner2<Outer(P) : R|kotlin/Any!|, Outer(Q) : R|kotlin/Any!|> : R|test/InnerClassesInGeneric.Inner<ft<P & Any, P?>, ft<Q & Any, Q?>>| {
public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<ft<P & Any, P?>>, kotlin/collections/Iterator<ft<P & Any, P?>>?>|
public test/InnerClassesInGeneric<P, Q>.constructor(): R|test/InnerClassesInGeneric.Inner2<P, Q>|
@@ -4,7 +4,7 @@ public open class InnerOfGeneric : R|kotlin/Any| {
public abstract inner class A<K : R|kotlin/Any!|> : R|kotlin/Any| {
public test/InnerOfGeneric.constructor<K : R|kotlin/Any!|>(): R|test/InnerOfGeneric.A<K>|
public abstract inner class Inner<K : R|kotlin/Any!|> : R|test/InnerOfGeneric.S<ft<K & Any, K?>>| {
public abstract inner class Inner<Outer(K) : R|kotlin/Any!|> : R|test/InnerOfGeneric.S<ft<K & Any, K?>>| {
public test/InnerOfGeneric.A<K>.constructor(): R|test/InnerOfGeneric.A.Inner<K>|
}
@@ -12,7 +12,7 @@ public open class InnerOfGeneric : R|kotlin/Any| {
public open inner class B<L : R|kotlin/Any!|> : R|test/InnerOfGeneric.A<ft<L & Any, L?>>| {
public test/InnerOfGeneric.constructor<L : R|kotlin/Any!|>(): R|test/InnerOfGeneric.B<L>|
public open inner class SubInner<L : R|kotlin/Any!|> : R|test/InnerOfGeneric.A.Inner<ft<L & Any, L?>>| {
public open inner class SubInner<Outer(L) : R|kotlin/Any!|> : R|test/InnerOfGeneric.A.Inner<ft<L & Any, L?>>| {
@R|java/lang/Override|() public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<ft<L & Any, L?>>, kotlin/collections/Iterator<ft<L & Any, L?>>?>|
public test/InnerOfGeneric.B<L>.constructor(): R|test/InnerOfGeneric.B.SubInner<L>|
@@ -1,7 +1,7 @@
public final class MethodReferencesOuterClassTP<P : R|kotlin/Any!|> : R|kotlin/Any| {
public constructor<P : R|kotlin/Any!|>(): R|test/MethodReferencesOuterClassTP<P>|
public final inner class Inner<P : R|kotlin/Any!|> : R|kotlin/Any| {
public final inner class Inner<Outer(P) : R|kotlin/Any!|> : R|kotlin/Any| {
public final fun <Q : R|ft<P & Any, P?>|> f(): R|kotlin/Unit|
public test/MethodReferencesOuterClassTP<P>.constructor(): R|test/MethodReferencesOuterClassTP.Inner<P>|
@@ -1,7 +1,7 @@
public open class TypeParameterOfOuterClass<T : R|kotlin/Any!|> : R|kotlin/Any| {
public constructor<T : R|kotlin/Any!|>(): R|test/TypeParameterOfOuterClass<T>|
public open inner class Inner<T : R|kotlin/Any!|> : R|kotlin/Any| {
public open inner class Inner<Outer(T) : R|kotlin/Any!|> : R|kotlin/Any| {
public open fun foo(comparator: R|ft<java/util/Comparator<ft<T & Any, T?>>, java/util/Comparator<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public test/TypeParameterOfOuterClass<T>.constructor(): R|test/TypeParameterOfOuterClass.Inner<T>|
@@ -2,7 +2,7 @@ public abstract interface ReturnInnerSubclassOfSupersInner : R|kotlin/Any| {
public open class Sub<B : R|kotlin/Any!|> : R|test/ReturnInnerSubclassOfSupersInner.Super<ft<B & Any, B?>>| {
public constructor<B : R|kotlin/Any!|>(): R|test/ReturnInnerSubclassOfSupersInner.Sub<B>|
public/*package*/ open inner class Inner<B : R|kotlin/Any!|> : R|test/ReturnInnerSubclassOfSupersInner.Super.Inner<ft<B & Any, B?>>| {
public/*package*/ open inner class Inner<Outer(B) : R|kotlin/Any!|> : R|test/ReturnInnerSubclassOfSupersInner.Super.Inner<ft<B & Any, B?>>| {
public/*package*/ open fun get(): R|ft<test/ReturnInnerSubclassOfSupersInner.Sub<ft<B & Any, B?>>, test/ReturnInnerSubclassOfSupersInner.Sub<ft<B & Any, B?>>?>|
public/*package*/ test/ReturnInnerSubclassOfSupersInner.Sub<B>.constructor(): R|test/ReturnInnerSubclassOfSupersInner.Sub.Inner<B>|
@@ -12,7 +12,7 @@ public abstract interface ReturnInnerSubclassOfSupersInner : R|kotlin/Any| {
public open class Super<A : R|kotlin/Any!|> : R|kotlin/Any| {
public constructor<A : R|kotlin/Any!|>(): R|test/ReturnInnerSubclassOfSupersInner.Super<A>|
public/*package*/ open inner class Inner<A : R|kotlin/Any!|> : R|kotlin/Any| {
public/*package*/ open inner class Inner<Outer(A) : R|kotlin/Any!|> : R|kotlin/Any| {
public/*package*/ open fun get(): R|ft<test/ReturnInnerSubclassOfSupersInner.Super<ft<A & Any, A?>>, test/ReturnInnerSubclassOfSupersInner.Super<ft<A & Any, A?>>?>|
public/*package*/ test/ReturnInnerSubclassOfSupersInner.Super<A>.constructor(): R|test/ReturnInnerSubclassOfSupersInner.Super.Inner<A>|
@@ -27,7 +27,7 @@ public final class Generic<T> : R|kotlin/Any| {
public final class InnerGeneric<A, B> : R|kotlin/Any| {
public constructor<A, B>(): R|test/InnerGeneric<A, B>|
public final inner class Inner<in C, D : R|A|, A, B> : R|kotlin/Any| {
public final inner class Inner<in C, D : R|A|, Outer(A), Outer(B)> : R|kotlin/Any| {
public test/InnerGeneric<A, B>.constructor<in C, D : R|A|>(): R|test/InnerGeneric.Inner<C, D, A, B>|
}
@@ -27,7 +27,7 @@ public final class Generic<T> : R|kotlin/Any| {
public final class InnerGeneric<A, B> : R|kotlin/Any| {
public constructor<A, B>(): R|test/InnerGeneric<A, B>|
public final inner class Inner<in C, D : R|A|, A, B> : R|kotlin/Any| {
public final inner class Inner<in C, D : R|A|, Outer(A), Outer(B)> : R|kotlin/Any| {
public test/InnerGeneric<A, B>.constructor<in C, D : R|A|>(): R|test/InnerGeneric.Inner<C, D, A, B>|
}
@@ -3,10 +3,10 @@ public final class Outer<E, F> : R|kotlin/Any| {
public constructor<E, F>(): R|test/Outer<E, F>|
public final inner class Inner<G, H, E, F> : R|kotlin/Any| {
public final inner class Inner<G, H, Outer(E), Outer(F)> : R|kotlin/Any| {
public test/Outer<E, F>.constructor<G, H>(): R|test/Outer.Inner<G, H, E, F>|
public final inner class Inner3<I, G, H, E, F> : R|kotlin/Any| {
public final inner class Inner3<I, Outer(G), Outer(H), Outer(E), Outer(F)> : R|kotlin/Any| {
public final fun foo(x: R|test/Outer.Inner<G, kotlin/Int, kotlin/String, F>|, y: R|test/Outer.Inner<E, kotlin/Double, E, F>|, z: R|test/Outer.Inner.Inner3<kotlin/Double, G, kotlin/Int, kotlin/String, F>|, w: R|test/Outer.Inner.Inner3<*, G, H, E, F>|): R|kotlin/Unit|
public test/Outer.Inner<G, H, E, F>.constructor<I>(): R|test/Outer.Inner.Inner3<I, G, H, E, F>|
@@ -15,7 +15,7 @@ public final class Outer<E, F> : R|kotlin/Any| {
}
public final inner class Inner2<E, F> : R|kotlin/Any| {
public final inner class Inner2<Outer(E), Outer(F)> : R|kotlin/Any| {
public test/Outer<E, F>.constructor(): R|test/Outer.Inner2<E, F>|
}
@@ -1,13 +1,13 @@
public final class A<TA> : R|kotlin/Any| {
public constructor<TA>(): R|test/A<TA>|
public final inner class B<TB, TA> : R|kotlin/Any| {
public final inner class B<TB, Outer(TA)> : R|kotlin/Any| {
public test/A<TA>.constructor<TB>(): R|test/A.B<TB, TA>|
public final inner class C<TC, TB, TA> : R|kotlin/Any| {
public final inner class C<TC, Outer(TB), Outer(TA)> : R|kotlin/Any| {
public test/A.B<TB, TA>.constructor<TC>(): R|test/A.B.C<TC, TB, TA>|
public final inner class D<TD, TC, TB, TA> : R|kotlin/Any| {
public final inner class D<TD, Outer(TC), Outer(TB), Outer(TA)> : R|kotlin/Any| {
public final fun bar(ta: R|TA|, tb: R|TB|, tc: R|TC|, td: R|TD|): R|test/A.B.C.D<TD, TC, TB, TA>|
public final fun <P1, P2, P3, P4> foo(p1: R|P1|, p2: R|P2|, p3: R|P3|, p4: R|P4|): R|kotlin/Nothing|
@@ -1,13 +1,13 @@
public final class A<TA> : R|kotlin/Any| {
public constructor<TA>(): R|test/A<TA>|
public final inner class B<TB, TA> : R|kotlin/Any| {
public final inner class B<TB, Outer(TA)> : R|kotlin/Any| {
public test/A<TA>.constructor<TB>(): R|test/A.B<TB, TA>|
public final inner class C<TC, TB, TA> : R|kotlin/Any| {
public final inner class C<TC, Outer(TB), Outer(TA)> : R|kotlin/Any| {
public test/A.B<TB, TA>.constructor<TC>(): R|test/A.B.C<TC, TB, TA>|
public final inner class D<TD, TC, TB, TA> : R|kotlin/Any| {
public final inner class D<TD, Outer(TC), Outer(TB), Outer(TA)> : R|kotlin/Any| {
public final fun <P1, P2, P3, P4> foo(p1: R|P1|, p2: R|P2|, p3: R|P3|, p4: R|P4|): R|kotlin/Nothing|
public final fun bar(ta: R|TA|, tb: R|TB|, tc: R|TC|, td: R|TD|): R|test/A.B.C.D<TD, TC, TB, TA>|
@@ -1,7 +1,7 @@
public final class InnerClassReferencesOuterTP<P> : R|kotlin/Any| {
public constructor<P>(): R|test/InnerClassReferencesOuterTP<P>|
public final inner class Inner<Q : R|P|, P> : R|kotlin/Any| {
public final inner class Inner<Q : R|P|, Outer(P)> : R|kotlin/Any| {
public test/InnerClassReferencesOuterTP<P>.constructor<Q : R|P|>(): R|test/InnerClassReferencesOuterTP.Inner<Q, P>|
}
@@ -1,7 +1,7 @@
public final class MembersReferenceOuterTP<P> : R|kotlin/Any| {
public constructor<P>(): R|test/MembersReferenceOuterTP<P>|
public final inner class Inner<P> : R|kotlin/Any| {
public final inner class Inner<Outer(P)> : R|kotlin/Any| {
public final fun <Q : R|P|> f(): R|kotlin/Unit|
public final fun g(p: R|P|): R|P|