[FIR] Fix dispatch receivers on inner classes' constructors

1. Inner class constructor should have its outer class as a dispatch
receiver, since it is necessary for the call. Before it was null
2. Substituted inner class constructor should have its original dispatch
 receiver type with the proper substitution. Before it was set to the
 class itself (since the class was usually passed as a new dispatch
 receiver)

Also, modify FIR renderer, so it properly renders the dispatch receiver
of the constructors
This commit is contained in:
Roman Golyshev
2021-09-28 16:40:18 +03:00
committed by Space
parent 8673819260
commit 9b9c51bc8d
65 changed files with 169 additions and 129 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ public open class InnerClass : R|kotlin/Any| {
public constructor(): R|test/InnerClass|
public open inner class Inner : R|kotlin/Any| {
public constructor(): R|test/InnerClass.Inner|
public test/InnerClass.constructor(): R|test/InnerClass.Inner|
}
}
@@ -2,7 +2,7 @@ public open class InnerClassReferencesOuterTP<P : R|ft<kotlin/Any, kotlin/Any?>|
public constructor<P : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassReferencesOuterTP<P>|
public open inner class Inner<Q : R|ft<P, P?>|, P : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public constructor<Q : R|ft<P, P?>|>(): R|test/InnerClassReferencesOuterTP.Inner<Q, P>|
public test/InnerClassReferencesOuterTP<P>.constructor<Q : R|ft<P, P?>|>(): R|test/InnerClassReferencesOuterTP.Inner<Q, P>|
}
}
@@ -4,20 +4,20 @@ public open class InnerClassTypeMultipleGeneric : R|kotlin/Any| {
public constructor(): R|test/InnerClassTypeMultipleGeneric|
public open inner class BaseOuter<H1 : R|ft<kotlin/Any, kotlin/Any?>|, H2 : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public constructor<H1 : R|ft<kotlin/Any, kotlin/Any?>|, H2 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.BaseOuter<H1, H2>|
public test/InnerClassTypeMultipleGeneric.constructor<H1 : R|ft<kotlin/Any, kotlin/Any?>|, H2 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.BaseOuter<H1, H2>|
public abstract inner class BaseInner<H3 : R|ft<kotlin/Any, kotlin/Any?>|, H4 : R|ft<kotlin/Any, kotlin/Any?>|, H1 : R|ft<kotlin/Any, kotlin/Any?>|, H2 : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public constructor<H3 : R|ft<kotlin/Any, kotlin/Any?>|, H4 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<H3, H4, H1, H2>|
public test/InnerClassTypeMultipleGeneric.BaseOuter<H1, H2>.constructor<H3 : R|ft<kotlin/Any, kotlin/Any?>|, H4 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<H3, H4, H1, H2>|
}
}
public open inner class Outer<E1 : R|ft<kotlin/Any, kotlin/Any?>|, E2 : R|ft<kotlin/Any, kotlin/Any?>|> : R|test/InnerClassTypeMultipleGeneric.BaseOuter<ft<kotlin/Int, kotlin/Int?>, ft<E1, E1?>>| {
public open fun bar(): R|ft<test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<ft<java/lang/Class<*>, java/lang/Class<*>?>, ft<kotlin/CharSequence, kotlin/CharSequence?>, ft<kotlin/Int, kotlin/Int?>, ft<E1, E1?>>, test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<ft<java/lang/Class<*>, java/lang/Class<*>?>, ft<kotlin/CharSequence, kotlin/CharSequence?>, ft<kotlin/Int, kotlin/Int?>, ft<E1, E1?>>?>|
public constructor<E1 : R|ft<kotlin/Any, kotlin/Any?>|, E2 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.Outer<E1, E2>|
public test/InnerClassTypeMultipleGeneric.constructor<E1 : R|ft<kotlin/Any, kotlin/Any?>|, E2 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.Outer<E1, E2>|
public open inner class Inner<E3 : R|ft<kotlin/Any, kotlin/Any?>|, E1 : R|ft<kotlin/Any, kotlin/Any?>|, E2 : R|ft<kotlin/Any, kotlin/Any?>|> : R|test/InnerClassTypeMultipleGeneric.BaseOuter.BaseInner<ft<kotlin/Double, kotlin/Double?>, ft<kotlin/String, kotlin/String?>, ft<E2, E2?>, ft<E3, E3?>>| {
public constructor<E3 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.Outer.Inner<E3, E1, E2>|
public test/InnerClassTypeMultipleGeneric.Outer<E1, E2>.constructor<E3 : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassTypeMultipleGeneric.Outer.Inner<E3, E1, E2>|
}
}
@@ -2,13 +2,13 @@ public open class InnerClassesInGeneric<P : R|ft<kotlin/Any, kotlin/Any?>|, Q :
public constructor<P : R|ft<kotlin/Any, kotlin/Any?>|, Q : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerClassesInGeneric<P, Q>|
public open inner class Inner<P : R|ft<kotlin/Any, kotlin/Any?>|, Q : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public constructor(): R|test/InnerClassesInGeneric.Inner<P, Q>|
public test/InnerClassesInGeneric<P, Q>.constructor(): R|test/InnerClassesInGeneric.Inner<P, Q>|
}
public open inner class Inner2<P : R|ft<kotlin/Any, kotlin/Any?>|, Q : R|ft<kotlin/Any, kotlin/Any?>|> : R|test/InnerClassesInGeneric.Inner<ft<P, P?>, ft<Q, Q?>>| {
public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<ft<P, P?>>, kotlin/collections/Iterator<ft<P, P?>>?>|
public constructor(): R|test/InnerClassesInGeneric.Inner2<P, Q>|
public test/InnerClassesInGeneric<P, Q>.constructor(): R|test/InnerClassesInGeneric.Inner2<P, Q>|
}
}
@@ -2,27 +2,27 @@ public open class InnerOfGeneric : R|kotlin/Any| {
public constructor(): R|test/InnerOfGeneric|
public abstract inner class A<K : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public constructor<K : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerOfGeneric.A<K>|
public test/InnerOfGeneric.constructor<K : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerOfGeneric.A<K>|
public abstract inner class Inner<K : R|ft<kotlin/Any, kotlin/Any?>|> : R|test/InnerOfGeneric.S<ft<K, K?>>| {
public constructor(): R|test/InnerOfGeneric.A.Inner<K>|
public test/InnerOfGeneric.A<K>.constructor(): R|test/InnerOfGeneric.A.Inner<K>|
}
}
public open inner class B<L : R|ft<kotlin/Any, kotlin/Any?>|> : R|test/InnerOfGeneric.A<ft<L, L?>>| {
public constructor<L : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerOfGeneric.B<L>|
public test/InnerOfGeneric.constructor<L : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerOfGeneric.B<L>|
public open inner class SubInner<L : R|ft<kotlin/Any, kotlin/Any?>|> : R|test/InnerOfGeneric.A.Inner<ft<L, L?>>| {
@R|java/lang/Override|() public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<ft<L, L?>>, kotlin/collections/Iterator<ft<L, L?>>?>|
public constructor(): R|test/InnerOfGeneric.B.SubInner<L>|
public test/InnerOfGeneric.B<L>.constructor(): R|test/InnerOfGeneric.B.SubInner<L>|
}
}
public open inner class S<E : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<ft<E, E?>>, kotlin/collections/Iterator<ft<E, E?>>?>|
public constructor<E : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerOfGeneric.S<E>|
public test/InnerOfGeneric.constructor<E : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/InnerOfGeneric.S<E>|
}
}
@@ -4,7 +4,7 @@ public final class MethodReferencesOuterClassTP<P : R|ft<kotlin/Any, kotlin/Any?
public final inner class Inner<P : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public final fun <Q : R|ft<P, P?>|> f(): R|kotlin/Unit|
public constructor(): R|test/MethodReferencesOuterClassTP.Inner<P>|
public test/MethodReferencesOuterClassTP<P>.constructor(): R|test/MethodReferencesOuterClassTP.Inner<P>|
}
}
@@ -6,7 +6,7 @@ public open class OverrideMethod : R|kotlin/Any| {
public/*package*/ open fun bar(): R|kotlin/Unit|
public/*package*/ constructor(): R|test/OverrideMethod.Base|
public/*package*/ test/OverrideMethod.constructor(): R|test/OverrideMethod.Base|
}
public/*package*/ open inner class Derived : R|test/OverrideMethod.Base| {
@@ -14,13 +14,13 @@ public open class OverrideMethod : R|kotlin/Any| {
public/*package*/ open fun baz(): R|kotlin/Unit|
public/*package*/ constructor(): R|test/OverrideMethod.Derived|
public/*package*/ test/OverrideMethod.constructor(): R|test/OverrideMethod.Derived|
}
public/*package*/ open inner class SuperBase : R|kotlin/Any| {
public/*package*/ open fun quux(x: R|kotlin/Int|): R|kotlin/Unit|
public/*package*/ constructor(): R|test/OverrideMethod.SuperBase|
public/*package*/ test/OverrideMethod.constructor(): R|test/OverrideMethod.SuperBase|
}
}
@@ -10,7 +10,7 @@ public open class PrivateMembers : R|kotlin/Any| {
private constructor(): R|test/PrivateMembers|
private open inner class Inner : R|kotlin/Any| {
private constructor(): R|test/PrivateMembers.Inner|
private test/PrivateMembers.constructor(): R|test/PrivateMembers.Inner|
}
private open class Nested : R|kotlin/Any| {
@@ -8,13 +8,13 @@ public open class RawOverrides : R|kotlin/Any| {
public open inner class B : R|kotlin/Any|, R|test/RawOverrides.A<ft<kotlin/Any, kotlin/Any?>>| {
@R|java/lang/Override|() public open fun foo(x: R|ft<kotlin/Any, kotlin/Any?>|, y: R|ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|): R|ft<kotlin/String, kotlin/String?>|
public constructor(): R|test/RawOverrides.B|
public test/RawOverrides.constructor(): R|test/RawOverrides.B|
}
public open inner class C : R|kotlin/Any| {
public/*package*/ open fun <E : R|ft<kotlin/CharSequence, kotlin/CharSequence?>|, F : R|ft<E, E?>|> bar(x: R|ft<F, F?>|, y: R|ft<kotlin/collections/MutableList<ft<kotlin/collections/MutableMap<ft<E, E?>, ft<F, F?>>, kotlin/collections/Map<ft<E, E?>, ft<F, F?>>?>>, kotlin/collections/List<ft<kotlin/collections/MutableMap<ft<E, E?>, ft<F, F?>>, kotlin/collections/Map<ft<E, E?>, ft<F, F?>>?>>?>|): R|ft<E, E?>|
public constructor(): R|test/RawOverrides.C|
public test/RawOverrides.constructor(): R|test/RawOverrides.C|
}
public open inner class D : R|test/RawOverrides.C| {
@@ -22,7 +22,7 @@ public open class RawOverrides : R|kotlin/Any| {
public/*package*/ open fun <E : R|ft<kotlin/CharSequence, kotlin/CharSequence?>|, F : R|ft<E, E?>|> bar(x: R|ft<F, F?>|, y: R|ft<kotlin/collections/MutableList<ft<kotlin/collections/MutableMap<ft<E, E?>, ft<F, F?>>, kotlin/collections/Map<ft<E, E?>, ft<F, F?>>?>>, kotlin/collections/List<ft<kotlin/collections/MutableMap<ft<E, E?>, ft<F, F?>>, kotlin/collections/Map<ft<E, E?>, ft<F, F?>>?>>?>|): R|ft<E, E?>|
public constructor(): R|test/RawOverrides.D|
public test/RawOverrides.constructor(): R|test/RawOverrides.D|
}
}
@@ -6,11 +6,11 @@ public/*package*/ open class AnnotatedParameterInInnerClassConstructor : R|kotli
}
public/*package*/ open inner class Inner : R|kotlin/Any| {
public/*package*/ constructor(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.Inner|
public/*package*/ test/AnnotatedParameterInInnerClassConstructor.constructor(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.Inner|
}
public/*package*/ open inner class InnerGeneric<T : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public/*package*/ constructor<T : R|ft<kotlin/Any, kotlin/Any?>|>(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.InnerGeneric<T>|
public/*package*/ test/AnnotatedParameterInInnerClassConstructor.constructor<T : R|ft<kotlin/Any, kotlin/Any?>|>(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.InnerGeneric<T>|
}
}
@@ -6,7 +6,7 @@ public open class AnnotationRetentions : R|kotlin/Any| {
}
@R|test/AnnotationRetentions.BaseAnnotation|() public/*package*/ open inner class BaseClass : R|kotlin/Any| {
public/*package*/ constructor(): R|test/AnnotationRetentions.BaseClass|
public/*package*/ test/AnnotationRetentions.constructor(): R|test/AnnotationRetentions.BaseClass|
}
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|()) public final annotation class BinaryAnnotation : R|kotlin/Annotation| {
@@ -14,7 +14,7 @@ public open class AnnotationRetentions : R|kotlin/Any| {
}
@R|test/AnnotationRetentions.BinaryAnnotation|() public/*package*/ open inner class BinaryClass : R|kotlin/Any| {
public/*package*/ constructor(): R|test/AnnotationRetentions.BinaryClass|
public/*package*/ test/AnnotationRetentions.constructor(): R|test/AnnotationRetentions.BinaryClass|
}
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class RuntimeAnnotation : R|kotlin/Annotation| {
@@ -22,7 +22,7 @@ public open class AnnotationRetentions : R|kotlin/Any| {
}
@R|test/AnnotationRetentions.RuntimeAnnotation|() public/*package*/ open inner class RuntimeClass : R|kotlin/Any| {
public/*package*/ constructor(): R|test/AnnotationRetentions.RuntimeClass|
public/*package*/ test/AnnotationRetentions.constructor(): R|test/AnnotationRetentions.RuntimeClass|
}
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.SOURCE|()) public final annotation class SourceAnnotation : R|kotlin/Annotation| {
@@ -30,7 +30,7 @@ public open class AnnotationRetentions : R|kotlin/Any| {
}
@R|test/AnnotationRetentions.SourceAnnotation|() public/*package*/ open inner class SourceClass : R|kotlin/Any| {
public/*package*/ constructor(): R|test/AnnotationRetentions.SourceClass|
public/*package*/ test/AnnotationRetentions.constructor(): R|test/AnnotationRetentions.SourceClass|
}
}
@@ -2,23 +2,23 @@ public open class Rendering : R|kotlin/Any| {
public constructor(): R|test/Rendering|
public/*package*/ open inner class A_Plain : R|kotlin/Any| {
public/*package*/ constructor(): R|test/Rendering.A_Plain|
public/*package*/ test/Rendering.constructor(): R|test/Rendering.A_Plain|
}
public/*package*/ open inner class B_Super : R|kotlin/Any| {
public/*package*/ constructor(): R|test/Rendering.B_Super|
public/*package*/ test/Rendering.constructor(): R|test/Rendering.B_Super|
}
public/*package*/ open inner class C_Sub : R|test/Rendering.B_Super| {
public/*package*/ constructor(): R|test/Rendering.C_Sub|
public/*package*/ test/Rendering.constructor(): R|test/Rendering.C_Sub|
}
public/*package*/ open inner class D_SuperG<T : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public/*package*/ constructor<T : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/Rendering.D_SuperG<T>|
public/*package*/ test/Rendering.constructor<T : R|ft<kotlin/Any, kotlin/Any?>|>(): R|test/Rendering.D_SuperG<T>|
}
public/*package*/ open inner class E_SubG : R|test/Rendering.D_SuperG<ft<kotlin/String, kotlin/String?>>| {
public/*package*/ constructor(): R|test/Rendering.E_SubG|
public/*package*/ test/Rendering.constructor(): R|test/Rendering.E_SubG|
}
public/*package*/ abstract interface F_Array : R|kotlin/Any| {
@@ -4,7 +4,7 @@ public open class TypeParameterOfOuterClass<T : R|ft<kotlin/Any, kotlin/Any?>|>
public open inner class Inner<T : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public open fun foo(comparator: R|ft<java/util/Comparator<ft<T, T?>>, java/util/Comparator<ft<T, T?>>?>|): R|kotlin/Unit|
public constructor(): R|test/TypeParameterOfOuterClass.Inner<T>|
public test/TypeParameterOfOuterClass<T>.constructor(): R|test/TypeParameterOfOuterClass.Inner<T>|
}
}
@@ -6,7 +6,7 @@ public open class RawSuperType : R|kotlin/Any| {
@R|java/lang/Override|() public open fun dummy(): R|kotlin/Unit|
public constructor(): R|test/RawSuperType.Derived|
public test/RawSuperType.constructor(): R|test/RawSuperType.Derived|
}
public abstract interface Super<T : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
@@ -10,7 +10,7 @@ public open class RawSuperTypeWithBound : R|kotlin/Any| {
@R|java/lang/Override|() public open fun dummy(): R|kotlin/Unit|
public constructor(): R|test/RawSuperTypeWithBound.Derived|
public test/RawSuperTypeWithBound.constructor(): R|test/RawSuperTypeWithBound.Derived|
}
public abstract interface Super<T : R|ft<test/RawSuperTypeWithBound.Bound, test/RawSuperTypeWithBound.Bound?>|> : R|kotlin/Any| {
@@ -8,7 +8,7 @@ public open class RawSuperTypeWithRecursiveBound : R|kotlin/Any| {
@R|java/lang/Override|() public open fun dummy(): R|kotlin/Unit|
public constructor(): R|test/RawSuperTypeWithRecursiveBound.Derived|
public test/RawSuperTypeWithRecursiveBound.constructor(): R|test/RawSuperTypeWithRecursiveBound.Derived|
}
public abstract interface Super<T : R|ft<test/RawSuperTypeWithRecursiveBound.Super<ft<T, T?>>, test/RawSuperTypeWithRecursiveBound.Super<ft<T, T?>>?>|> : R|kotlin/Any| {
@@ -8,7 +8,7 @@ public open class RawSuperTypeWithRecursiveBoundMultipleParameters : R|kotlin/An
@R|java/lang/Override|() public open fun dummy(): R|kotlin/Unit|
public constructor(): R|test/RawSuperTypeWithRecursiveBoundMultipleParameters.Derived|
public test/RawSuperTypeWithRecursiveBoundMultipleParameters.constructor(): R|test/RawSuperTypeWithRecursiveBoundMultipleParameters.Derived|
}
public abstract interface Super<R : R|ft<kotlin/Any, kotlin/Any?>|, T : R|ft<test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<ft<R, R?>, ft<T, T?>>, test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<ft<R, R?>, ft<T, T?>>?>|> : R|kotlin/Any| {
@@ -5,7 +5,7 @@ public abstract interface ReturnInnerSubclassOfSupersInner : R|kotlin/Any| {
public/*package*/ open inner class Inner<B : R|ft<kotlin/Any, kotlin/Any?>|> : R|test/ReturnInnerSubclassOfSupersInner.Super.Inner<ft<B, B?>>| {
public/*package*/ open operator fun get(): R|ft<test/ReturnInnerSubclassOfSupersInner.Sub<ft<B, B?>>, test/ReturnInnerSubclassOfSupersInner.Sub<ft<B, B?>>?>|
public/*package*/ constructor(): R|test/ReturnInnerSubclassOfSupersInner.Sub.Inner<B>|
public/*package*/ test/ReturnInnerSubclassOfSupersInner.Sub<B>.constructor(): R|test/ReturnInnerSubclassOfSupersInner.Sub.Inner<B>|
}
}
@@ -15,7 +15,7 @@ public abstract interface ReturnInnerSubclassOfSupersInner : R|kotlin/Any| {
public/*package*/ open inner class Inner<A : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
public/*package*/ open operator fun get(): R|ft<test/ReturnInnerSubclassOfSupersInner.Super<ft<A, A?>>, test/ReturnInnerSubclassOfSupersInner.Super<ft<A, A?>>?>|
public/*package*/ constructor(): R|test/ReturnInnerSubclassOfSupersInner.Super.Inner<A>|
public/*package*/ test/ReturnInnerSubclassOfSupersInner.Super<A>.constructor(): R|test/ReturnInnerSubclassOfSupersInner.Super.Inner<A>|
}
}
@@ -4,17 +4,17 @@ public open class DeeplyInnerClass : R|kotlin/Any| {
public/*package*/ open inner class A : R|kotlin/Any| {
public/*package*/ open fun a(): R|kotlin/Unit|
public/*package*/ constructor(): R|test/DeeplyInnerClass.A|
public/*package*/ test/DeeplyInnerClass.constructor(): R|test/DeeplyInnerClass.A|
public/*package*/ open inner class B : R|kotlin/Any| {
public/*package*/ open fun b(): R|kotlin/Unit|
public/*package*/ constructor(): R|test/DeeplyInnerClass.A.B|
public/*package*/ test/DeeplyInnerClass.A.constructor(): R|test/DeeplyInnerClass.A.B|
public/*package*/ open inner class C : R|kotlin/Any| {
public/*package*/ open fun c(): R|kotlin/Unit|
public/*package*/ constructor(): R|test/DeeplyInnerClass.A.B.C|
public/*package*/ test/DeeplyInnerClass.A.B.constructor(): R|test/DeeplyInnerClass.A.B.C|
}
}
@@ -13,7 +13,7 @@ public final enum class Enum : R|kotlin/Enum<ft<test/Enum, test/Enum?>>| {
public/*package*/ open fun valueOf(s: R|ft<kotlin/String, kotlin/String?>|): R|kotlin/Unit|
public constructor(): R|test/Enum.Inner|
public test/Enum.constructor(): R|test/Enum.Inner|
}
public open class Nested : R|kotlin/Any| {
@@ -4,7 +4,7 @@ public open class InnerClass : R|kotlin/Any| {
public open inner class Inner : R|kotlin/Any| {
public open fun foo(): R|kotlin/Unit|
public constructor(): R|test/InnerClass.Inner|
public test/InnerClass.constructor(): R|test/InnerClass.Inner|
}
public open class Nested : R|kotlin/Any| {