FIR: Support special scope for raw types

^KT-46369 Fixed
^KT-41794 Fixed
^KT-49351 Fixed
This commit is contained in:
Denis.Zharkov
2022-10-13 10:50:45 +02:00
committed by Space Team
parent 1215ae0fe7
commit 5cc31114cd
39 changed files with 225 additions and 255 deletions
@@ -1,7 +1,7 @@
public open class RawSuperType : R|kotlin/Any| {
public constructor(): R|test/RawSuperType|
public open inner class Derived : R|kotlin/Any|, R|test/RawSuperType.Super<kotlin/Any!>| {
public open inner class Derived : R|kotlin/Any|, R|Raw type test/RawSuperType.Super<kotlin/Any!>| {
@R|java/lang/Override|() public open fun foo(o: R|kotlin/Any!|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun dummy(): R|kotlin/Unit|
@@ -3,7 +3,7 @@ public open class RawSuperTypeWithBound : R|kotlin/Any| {
public abstract interface Bound : R|kotlin/Any| {
}
public open inner class Derived : R|kotlin/Any|, R|test/RawSuperTypeWithBound.Super<test/RawSuperTypeWithBound.Bound!>| {
public open inner class Derived : R|kotlin/Any|, R|Raw type test/RawSuperTypeWithBound.Super<test/RawSuperTypeWithBound.Bound!>| {
public open fun foo(o: R|kotlin/Any!|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun foo(o: R|test/RawSuperTypeWithBound.Bound!|): R|kotlin/Unit|
@@ -1,10 +1,10 @@
public open class RawSuperTypeWithRecursiveBound : R|kotlin/Any| {
public constructor(): R|test/RawSuperTypeWithRecursiveBound|
public open inner class Derived : R|kotlin/Any|, R|test/RawSuperTypeWithRecursiveBound.Super<ft<test/RawSuperTypeWithRecursiveBound.Super<*>, test/RawSuperTypeWithRecursiveBound.Super<*>?>>| {
public open inner class Derived : R|kotlin/Any|, R|Raw type test/RawSuperTypeWithRecursiveBound.Super<ft<test/RawSuperTypeWithRecursiveBound.Super<*>, test/RawSuperTypeWithRecursiveBound.Super<*>?>>| {
public open fun foo(o: R|kotlin/Any!|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun foo(o: R|ft<test/RawSuperTypeWithRecursiveBound.Super<ft<test/RawSuperTypeWithRecursiveBound.Super<*>, test/RawSuperTypeWithRecursiveBound.Super<*>?>>, test/RawSuperTypeWithRecursiveBound.Super<*>?>|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun foo(o: R|ft<Raw type test/RawSuperTypeWithRecursiveBound.Super<ft<test/RawSuperTypeWithRecursiveBound.Super<*>, test/RawSuperTypeWithRecursiveBound.Super<*>?>>, test/RawSuperTypeWithRecursiveBound.Super<*>?>|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun dummy(): R|kotlin/Unit|
@@ -1,10 +1,10 @@
public open class RawSuperTypeWithRecursiveBoundMultipleParameters : R|kotlin/Any| {
public constructor(): R|test/RawSuperTypeWithRecursiveBoundMultipleParameters|
public open inner class Derived : R|kotlin/Any|, R|test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<kotlin/Any!, ft<test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>, test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>?>>| {
public open inner class Derived : R|kotlin/Any|, R|Raw type test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<kotlin/Any!, ft<test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>, test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>?>>| {
public open fun foo(o: R|kotlin/Any!|, o1: R|kotlin/Any!|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun foo(r: R|kotlin/Any!|, t: R|ft<test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<kotlin/Any!, ft<test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>, test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>?>>, test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>?>|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun foo(r: R|kotlin/Any!|, t: R|ft<Raw type test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<kotlin/Any!, ft<test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>, test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>?>>, test/RawSuperTypeWithRecursiveBoundMultipleParameters.Super<*, *>?>|): R|kotlin/Unit|
@R|java/lang/Override|() public open fun dummy(): R|kotlin/Unit|
@@ -4,33 +4,33 @@ public abstract interface SubclassWithRawType : R|kotlin/Any| {
public abstract fun simple2(): R|ft<kotlin/collections/MutableList<ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>, kotlin/collections/List<ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>?>|
public abstract fun simple3(): R|ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun simple3(): R|ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun boundWildcard1(): R|ft<kotlin/collections/MutableList<out ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>, kotlin/collections/List<out ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>?>|
public abstract fun boundWildcard2(): R|ft<kotlin/collections/MutableList<in ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/collections/MutableList<in ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
public abstract fun boundWildcard2(): R|ft<kotlin/collections/MutableList<in ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/collections/MutableList<in ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
public abstract fun wildcard(): R|ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun wildcard(): R|ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun array1(): R|ft<kotlin/Array<ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>, kotlin/Array<out ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>?>|
public abstract fun array2(): R|ft<kotlin/Array<ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/Array<out ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
public abstract fun array2(): R|ft<kotlin/Array<ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/Array<out ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
}
public abstract interface Super : R|kotlin/Any| {
public abstract fun simple1(): R|ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun simple1(): R|ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun simple2(): R|ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun simple2(): R|ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>|
public abstract fun simple3(): R|ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>|
public abstract fun boundWildcard1(): R|ft<kotlin/collections/MutableList<out ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/collections/List<out ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
public abstract fun boundWildcard1(): R|ft<kotlin/collections/MutableList<out ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/collections/List<out ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
public abstract fun boundWildcard2(): R|ft<kotlin/collections/MutableList<in ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>, kotlin/collections/MutableList<in ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>?>|
public abstract fun wildcard(): R|ft<kotlin/collections/MutableList<*>, kotlin/collections/List<*>?>|
public abstract fun array1(): R|ft<kotlin/Array<ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/Array<out ft<kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
public abstract fun array1(): R|ft<kotlin/Array<ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>, kotlin/Array<out ft<Raw type kotlin/collections/MutableList<kotlin/Any?>, kotlin/collections/List<*>?>>?>|
public abstract fun array2(): R|ft<kotlin/Array<ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>, kotlin/Array<out ft<kotlin/collections/MutableList<kotlin/String!>, kotlin/collections/List<kotlin/String!>?>>?>|