81414d758d
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
29 lines
832 B
Kotlin
Vendored
29 lines
832 B
Kotlin
Vendored
// WITH_STDLIB
|
|
// ISSUE: KT-56722
|
|
// FILE: Option.java
|
|
public interface Option<T> {
|
|
T get();
|
|
|
|
public final class Some<T> implements Option<T> {
|
|
@Override
|
|
public T get() {
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 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
|
|
x.length
|
|
}
|
|
}
|
|
|
|
fun test_2(option: Option<Pair<String, String>>?) {
|
|
if (option is Option.Some) {
|
|
val x = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Pair<kotlin.String, kotlin.String>..kotlin.Pair<kotlin.String, kotlin.String>?!")!>option.get()<!>.first
|
|
x.length
|
|
}
|
|
}
|