K2: repeat K1 representation for flexible type parameters

This commit changes the behavior of KT-59138 effectively declining it in 2.0.
However, we plan to implement KT-59138 behavior under a feature
flag in 2.0 (see KT-66447), and switch this feature on version 2.x.

Also, this commit implements the LC resolution about postponing
KT-57014 change. We don't have KT-57014 described behavior in 2.0 anymore.
However, we plan to implement a deprecation warning here, see KT-65578.

After this commit, 6 diagnostic tests become incorrectly broken:
- 5 tests from PurelyImplementedCollection group
- a test platformTypes/nullableTypeArgument.kt

This commit also breaks currently fixed-in-k2 KT-50134
(it is fixed again in the following commits),
as well as KT-58933 (it will remain not fixed till we enable KT-59138
behavior again).

#KT-65596 In Progress
#KT-57014 In Progress
#KT-58933 Submitted
This commit is contained in:
Denis.Zharkov
2024-02-06 15:33:03 +01:00
committed by Space Team
parent 7fd46f1450
commit 81414d758d
160 changed files with 343 additions and 479 deletions
@@ -1,10 +1,10 @@
public abstract interface LoadIterable<T : R|kotlin/Any!|> : R|kotlin/Any| {
@R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/MutableIterable<ft<T & Any, T?>>?>|
@R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/MutableIterable<T!>?>|
public abstract fun setIterable(@R|kotlin/annotations/jvm/Mutable|() Iterable: R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/MutableIterable<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public abstract fun setIterable(@R|kotlin/annotations/jvm/Mutable|() Iterable: R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/MutableIterable<T!>?>|): R|kotlin/Unit|
@R|kotlin/annotations/jvm/ReadOnly|() public abstract fun getReadOnlyIterable(): R|ft<kotlin/collections/Iterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|
@R|kotlin/annotations/jvm/ReadOnly|() public abstract fun getReadOnlyIterable(): R|ft<kotlin/collections/Iterable<T!>, kotlin/collections/Iterable<T!>?>|
public abstract fun setReadOnlyIterable(@R|kotlin/annotations/jvm/ReadOnly|() Iterable: R|ft<kotlin/collections/Iterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public abstract fun setReadOnlyIterable(@R|kotlin/annotations/jvm/ReadOnly|() Iterable: R|ft<kotlin/collections/Iterable<T!>, kotlin/collections/Iterable<T!>?>|): R|kotlin/Unit|
}
@@ -1,6 +1,6 @@
public abstract interface LoadIterableWithConflict<T : R|kotlin/Any!|> : R|kotlin/Any| {
@R|kotlin/annotations/jvm/ReadOnly|() @R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|
@R|kotlin/annotations/jvm/ReadOnly|() @R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/Iterable<T!>?>|
public abstract fun setIterable(@R|kotlin/annotations/jvm/ReadOnly|() @R|kotlin/annotations/jvm/Mutable|() Iterable: R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public abstract fun setIterable(@R|kotlin/annotations/jvm/ReadOnly|() @R|kotlin/annotations/jvm/Mutable|() Iterable: R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/Iterable<T!>?>|): R|kotlin/Unit|
}
@@ -1,10 +1,10 @@
public abstract interface LoadIterableWithNullability<T : R|kotlin/Any!|> : R|kotlin/Any| {
@R|org/jetbrains/annotations/NotNull|() @R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|@EnhancedNullability kotlin/collections/MutableIterable<ft<T & Any, T?>>|
@R|org/jetbrains/annotations/NotNull|() @R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|@EnhancedNullability kotlin/collections/MutableIterable<T!>|
public abstract fun setIterable(@R|kotlin/annotations/jvm/Mutable|() @R|org/jetbrains/annotations/NotNull|() Iterable: R|@EnhancedNullability kotlin/collections/MutableIterable<ft<T & Any, T?>>|): R|kotlin/Unit|
public abstract fun setIterable(@R|kotlin/annotations/jvm/Mutable|() @R|org/jetbrains/annotations/NotNull|() Iterable: R|@EnhancedNullability kotlin/collections/MutableIterable<T!>|): R|kotlin/Unit|
@R|org/jetbrains/annotations/NotNull|() @R|kotlin/annotations/jvm/ReadOnly|() public abstract fun getReadOnlyIterable(): R|@EnhancedNullability kotlin/collections/Iterable<ft<T & Any, T?>>|
@R|org/jetbrains/annotations/NotNull|() @R|kotlin/annotations/jvm/ReadOnly|() public abstract fun getReadOnlyIterable(): R|@EnhancedNullability kotlin/collections/Iterable<T!>|
public abstract fun setReadOnlyIterable(@R|kotlin/annotations/jvm/ReadOnly|() @R|org/jetbrains/annotations/NotNull|() Iterable: R|@EnhancedNullability kotlin/collections/Iterable<ft<T & Any, T?>>|): R|kotlin/Unit|
public abstract fun setReadOnlyIterable(@R|kotlin/annotations/jvm/ReadOnly|() @R|org/jetbrains/annotations/NotNull|() Iterable: R|@EnhancedNullability kotlin/collections/Iterable<T!>|): R|kotlin/Unit|
}
@@ -1,22 +1,22 @@
public abstract interface LoadIterableWithPropagation : R|kotlin/Any| {
public abstract interface LoadIterable<T : R|kotlin/Any!|> : R|kotlin/Any| {
@R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/MutableIterable<ft<T & Any, T?>>?>|
@R|kotlin/annotations/jvm/Mutable|() public abstract fun getIterable(): R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/MutableIterable<T!>?>|
public abstract fun setIterable(@R|kotlin/annotations/jvm/Mutable|() Iterable: R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/MutableIterable<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public abstract fun setIterable(@R|kotlin/annotations/jvm/Mutable|() Iterable: R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/MutableIterable<T!>?>|): R|kotlin/Unit|
@R|kotlin/annotations/jvm/ReadOnly|() public abstract fun getReadOnlyIterable(): R|ft<kotlin/collections/Iterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|
@R|kotlin/annotations/jvm/ReadOnly|() public abstract fun getReadOnlyIterable(): R|ft<kotlin/collections/Iterable<T!>, kotlin/collections/Iterable<T!>?>|
public abstract fun setReadOnlyIterable(@R|kotlin/annotations/jvm/ReadOnly|() Iterable: R|ft<kotlin/collections/Iterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public abstract fun setReadOnlyIterable(@R|kotlin/annotations/jvm/ReadOnly|() Iterable: R|ft<kotlin/collections/Iterable<T!>, kotlin/collections/Iterable<T!>?>|): R|kotlin/Unit|
}
public open class LoadIterableImpl<T : R|kotlin/Any!|> : R|kotlin/Any|, R|test/LoadIterableWithPropagation.LoadIterable<ft<T & Any, T?>>| {
public open fun getIterable(): R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/MutableIterable<ft<T & Any, T?>>?>|
public open class LoadIterableImpl<T : R|kotlin/Any!|> : R|kotlin/Any|, R|test/LoadIterableWithPropagation.LoadIterable<T!>| {
public open fun getIterable(): R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/MutableIterable<T!>?>|
public open fun setIterable(Iterable: R|ft<kotlin/collections/MutableIterable<ft<T & Any, T?>>, kotlin/collections/MutableIterable<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public open fun setIterable(Iterable: R|ft<kotlin/collections/MutableIterable<T!>, kotlin/collections/MutableIterable<T!>?>|): R|kotlin/Unit|
public open fun getReadOnlyIterable(): R|ft<kotlin/collections/Iterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|
public open fun getReadOnlyIterable(): R|ft<kotlin/collections/Iterable<T!>, kotlin/collections/Iterable<T!>?>|
public open fun setReadOnlyIterable(Iterable: R|ft<kotlin/collections/Iterable<ft<T & Any, T?>>, kotlin/collections/Iterable<ft<T & Any, T?>>?>|): R|kotlin/Unit|
public open fun setReadOnlyIterable(Iterable: R|ft<kotlin/collections/Iterable<T!>, kotlin/collections/Iterable<T!>?>|): R|kotlin/Unit|
public constructor<T : R|kotlin/Any!|>(): R|test/LoadIterableWithPropagation.LoadIterableImpl<T>|