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
+3
-3
@@ -66,10 +66,10 @@ abstract class A<T> : Provider<T> {
|
||||
abstract class B<T> : Provider<T> {
|
||||
override fun get(): T & Any = null!!
|
||||
override fun getNullable(): T? = null!!
|
||||
override fun set(x: T & Any) {} // False positive in K1
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun set(x: T & Any) {} // False positive in K1
|
||||
override fun setNullable(x: T?) {}
|
||||
|
||||
override fun getSet(x: T & Any): T & Any = x // False positive in K1
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun getSet(x: T & Any): T & Any = x // False positive in K1
|
||||
override fun getSetNullable(x: T?): T? = x
|
||||
}
|
||||
|
||||
@@ -79,6 +79,6 @@ abstract class C<T> : Provider<T> {
|
||||
}
|
||||
|
||||
abstract class D<T> : Provider<T> {
|
||||
<!WRONG_NULLABILITY_FOR_JAVA_OVERRIDE!>override<!> fun getSet(x: T & Any): T = x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!> // False positive in K1
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun getSet(x: T & Any): T = x<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!> // False positive in K1
|
||||
override fun getSetNullable(x: T?): T = x!!
|
||||
}
|
||||
Reference in New Issue
Block a user