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:
committed by
Space Team
parent
7fd46f1450
commit
81414d758d
@@ -4,23 +4,23 @@ 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<Outer(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<K!>| {
|
||||
public test/InnerOfGeneric.A<K>.constructor(): R|test/InnerOfGeneric.A.Inner<K>|
|
||||
|
||||
}
|
||||
}
|
||||
public open inner class B<L : R|kotlin/Any!|> : R|test/InnerOfGeneric.A<ft<L & Any, L?>>| {
|
||||
public open inner class B<L : R|kotlin/Any!|> : R|test/InnerOfGeneric.A<L!>| {
|
||||
public test/InnerOfGeneric.constructor<L : R|kotlin/Any!|>(): R|test/InnerOfGeneric.B<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 open inner class SubInner<Outer(L) : R|kotlin/Any!|> : R|test/InnerOfGeneric.A.Inner<L!>| {
|
||||
@R|java/lang/Override|() public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<L!>, kotlin/collections/Iterator<L!>?>|
|
||||
|
||||
public test/InnerOfGeneric.B<L>.constructor(): R|test/InnerOfGeneric.B.SubInner<L>|
|
||||
|
||||
}
|
||||
}
|
||||
public open inner class S<E : R|kotlin/Any!|> : R|kotlin/Any| {
|
||||
public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<ft<E & Any, E?>>, kotlin/collections/Iterator<ft<E & Any, E?>>?>|
|
||||
public open operator fun iterator(): R|ft<kotlin/collections/MutableIterator<E!>, kotlin/collections/Iterator<E!>?>|
|
||||
|
||||
public test/InnerOfGeneric.constructor<E : R|kotlin/Any!|>(): R|test/InnerOfGeneric.S<E>|
|
||||
|
||||
|
||||
Reference in New Issue
Block a user