Resolve variable declaration in 'when' subject
This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
fun foo(): Any = 42
|
||||
|
||||
fun test(x: Any) {
|
||||
val z1 = when (val y = foo()) {
|
||||
42 -> "Magic: $y, $x"
|
||||
else -> {
|
||||
"Not magic: $y, $x"
|
||||
}
|
||||
}
|
||||
val z2 = "Anyway, it was $<!UNRESOLVED_REFERENCE!>y<!>"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun foo(): kotlin.Any
|
||||
public fun test(/*0*/ x: kotlin.Any): kotlin.Unit
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// !LANGUAGE: +VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
|
||||
fun foo(): Any = 42
|
||||
|
||||
fun test(y: Any) {
|
||||
val z = when (val <!NAME_SHADOWING!>y<!> = foo()) {
|
||||
42 -> "Magic: $y"
|
||||
else -> "Not magic: $y"
|
||||
}
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun foo(): kotlin.Any
|
||||
public fun test(/*0*/ y: kotlin.Any): kotlin.Unit
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// !LANGUAGE: -VariableDeclarationInWhenSubject
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
fun foo(): Any = 42
|
||||
|
||||
fun test(x: Any) {
|
||||
// NB check that we still resolve 'y', even though current language version doesn' support variable declaration in when subject
|
||||
|
||||
val z1 = when (<!UNSUPPORTED_FEATURE!>val y = foo()<!>) {
|
||||
42 -> "Magic: $y, $x"
|
||||
else -> {
|
||||
"Not magic: $y, $x"
|
||||
}
|
||||
}
|
||||
val z2 = "Anyway, it was $<!UNRESOLVED_REFERENCE!>y<!>"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun foo(): kotlin.Any
|
||||
public fun test(/*0*/ x: kotlin.Any): kotlin.Unit
|
||||
Reference in New Issue
Block a user