53d6ac24e5
* Change 1.6 to 1.7 constants * Fix SAFE_CALL_WILL_CHANGE_NULLABILITY for testData * Change EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING to EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR * Change NON_EXHAUSTIVE_WHEN_STATEMENT to NO_ELSE_IN_WHEN * Fix testData for SafeCallsAreAlwaysNullable * Change T -> T & Any in test dumps * Change INVALID_CHARACTERS_NATIVE_WARNING -> INVALID_CHARACTERS_NATIVE_ERROR * TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING -> TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR
32 lines
769 B
Kotlin
Vendored
32 lines
769 B
Kotlin
Vendored
// LANGUAGE: +WarnAboutNonExhaustiveWhenOnAlgebraicTypes
|
|
// See also: KT-11998
|
|
data class My(val x: Boolean?)
|
|
|
|
fun doIt() {}
|
|
|
|
fun foo(my: My) {
|
|
if (my.x != null) {
|
|
// my.x should be smart-cast
|
|
if (<!DEBUG_INFO_SMARTCAST!>my.x<!>) doIt()
|
|
<!NO_ELSE_IN_WHEN!>when<!> (<!DEBUG_INFO_SMARTCAST!>my.x<!>) {
|
|
true -> doIt()
|
|
}
|
|
when {
|
|
<!DEBUG_INFO_SMARTCAST!>my.x<!> -> doIt()
|
|
}
|
|
}
|
|
}
|
|
|
|
fun bar(x: Boolean?) {
|
|
if (x != null) {
|
|
// x should be smart-cast
|
|
if (<!DEBUG_INFO_SMARTCAST!>x<!>) doIt()
|
|
<!NO_ELSE_IN_WHEN!>when<!> (<!DEBUG_INFO_SMARTCAST!>x<!>) {
|
|
true -> doIt()
|
|
}
|
|
when {
|
|
<!DEBUG_INFO_SMARTCAST!>x<!> -> doIt()
|
|
}
|
|
}
|
|
}
|