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
@@ -1,5 +1,5 @@
|
||||
FILE: main.kt
|
||||
public final fun <T : R|kotlin/CharSequence?|> foo(mapper: R|Mapper|, cls: R|java/lang/Class<T>?|): R|kotlin/Unit| {
|
||||
lval result: R|T & Any| = R|<local>/mapper|.R|/Mapper.readValue|<R|T|>(R|<local>/cls|)!!
|
||||
lval result: R|T & Any| = R|<local>/mapper|.R|/Mapper.readValue|<R|T!|>(R|<local>/cls|)!!
|
||||
R|<local>/result|.R|kotlin/CharSequence.length|
|
||||
}
|
||||
|
||||
compiler/fir/analysis-tests/testData/resolve/smartcasts/problems/smartcastToStarProjectedSubclass.kt
Vendored
+1
-1
@@ -15,7 +15,7 @@ public interface Option<T> {
|
||||
// FILE: test.kt
|
||||
fun test_1(option: Option<Pair<String, String>>?) {
|
||||
if (option is Option.Some<*>) {
|
||||
val x = <!DEBUG_INFO_EXPRESSION_TYPE("CapturedType(*)!! & kotlin.Pair<kotlin.String, kotlin.String>..CapturedType(*)? & kotlin.Pair<kotlin.String, kotlin.String>?")!>option.get()<!>.first
|
||||
val x = <!DEBUG_INFO_EXPRESSION_TYPE("CapturedType(*) & kotlin.Pair<kotlin.String, kotlin.String>..CapturedType(*)? & kotlin.Pair<kotlin.String, kotlin.String>?")!>option.get()<!>.first
|
||||
x.length
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
FILE: main.kt
|
||||
private final val anyProperty: R|Property<kotlin/Any>| = R|/Property.Property|<R|kotlin/Any|>()
|
||||
private get(): R|Property<kotlin/Any>|
|
||||
private final val boundedProperty: R|Property<kotlin/String>| = R|/Property.Property|<R|kotlin/String|>()
|
||||
private get(): R|Property<kotlin/String>|
|
||||
private final val anyProperty: R|Property<kotlin/Any!>| = R|/Property.Property|<R|kotlin/Any!|>()
|
||||
private get(): R|Property<kotlin/Any!>|
|
||||
private final val boundedProperty: R|Property<kotlin/String!>| = R|/Property.Property|<R|kotlin/String!|>()
|
||||
private get(): R|Property<kotlin/String!>|
|
||||
public final fun test_1(x: R|Property<kotlin/Any>|): R|kotlin/Unit| {
|
||||
when () {
|
||||
(R|<local>/x| is R|Reference|) -> {
|
||||
|
||||
Reference in New Issue
Block a user