091b935c2d
'Subject.Error' is redundant. 'Subject.None' can be an object. 'Subject#dataFlowValue' can be a lateinit property. TODO: fix - parsing local extension properties in 'when' subject - parsing destructuring declarations in 'when' subject - non-completed calls in nested 'when' with subject variable - non-completed calls for subject variable in 'in' pattern
27 lines
584 B
Kotlin
Vendored
27 lines
584 B
Kotlin
Vendored
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
|
|
|
fun foo(): Any = 42
|
|
fun useInt(i: Int) {}
|
|
|
|
fun testShadowingParameter(y: Any) {
|
|
when (val <!NAME_SHADOWING!>y<!> = foo()) {
|
|
else -> {}
|
|
}
|
|
}
|
|
|
|
fun testShadowedInWhenBody(x: Any) {
|
|
when (val y = x) {
|
|
is String -> {
|
|
val <!NAME_SHADOWING!>y<!> = <!DEBUG_INFO_SMARTCAST!>y<!>.length
|
|
useInt(y)
|
|
}
|
|
}
|
|
}
|
|
|
|
fun testShadowinLocalVariable() {
|
|
val y = foo()
|
|
when (val <!NAME_SHADOWING!>y<!> = foo()) {
|
|
else -> {}
|
|
}
|
|
} |