| // RUN_PIPELINE_TILL: FRONTEND | |
| data class Foo(val name: String) | |
| fun main() { | |
| val foo = Foo("John") | |
| when (<!ILLEGAL_DECLARATION_IN_WHEN_SUBJECT!>val (name) = foo<!>) { | |
| <!IMPOSSIBLE_IS_CHECK_ERROR!>is String<!> -> bar("1") | |
| <!IMPOSSIBLE_IS_CHECK_ERROR!>is Foo<!> -> bar("2") | |
| else -> bar(<!UNRESOLVED_REFERENCE!>name<!>) | |
| } | |
| } | |
| fun main2() { | |
| val foo = Foo("John") | |
| when (<!ILLEGAL_DECLARATION_IN_WHEN_SUBJECT!>val (name) = foo<!>) { | |
| <!IMPOSSIBLE_IS_CHECK_ERROR!>is String<!> -> bar("1") | |
| <!IMPOSSIBLE_IS_CHECK_ERROR!>is Foo<!> -> bar("2") | |
| } | |
| } | |
| fun bar(x: Any) {} | |
| /* GENERATED_FIR_TAGS: classDeclaration, data, functionDeclaration, isExpression, localProperty, primaryConstructor, | |
| propertyDeclaration, smartcast, stringLiteral, whenExpression, whenWithSubject */ |