FILE fqName: fileName:/whenWithSubjectVariable.kt FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Any BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun foo (): kotlin.Any declared in ' CONST Int type=kotlin.Int value=1 FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Int BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun test (): kotlin.Int declared in ' BLOCK type=kotlin.Int origin=WHEN VAR name:y type:kotlin.Any [val] CALL 'public final fun foo (): kotlin.Any declared in ' type=kotlin.Any origin=null WHEN type=kotlin.Int origin=WHEN BRANCH if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ arg0: GET_VAR 'val y: kotlin.Any [val] declared in .test' type=kotlin.Any origin=null arg1: CONST Int type=kotlin.Int value=42 then: CONST Int type=kotlin.Int value=1 BRANCH if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.String GET_VAR 'val y: kotlin.Any [val] declared in .test' type=kotlin.Any origin=null then: CALL 'public open fun (): kotlin.Int declared in kotlin.String' type=kotlin.Int origin=GET_PROPERTY $this: TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String GET_VAR 'val y: kotlin.Any [val] declared in .test' type=kotlin.Any origin=null BRANCH if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Int GET_VAR 'val y: kotlin.Any [val] declared in .test' type=kotlin.Any origin=null then: CONST Int type=kotlin.Int value=2 BRANCH if: ERROR_CALL 'Unresolved reference: #' type=kotlin.Boolean GET_VAR 'val y: kotlin.Any [val] declared in .test' type=kotlin.Any origin=null then: CONST Int type=kotlin.Int value=3 BRANCH if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=null $this: ERROR_CALL 'Unresolved reference: #' type=kotlin.Boolean GET_VAR 'val y: kotlin.Any [val] declared in .test' type=kotlin.Any origin=null then: CONST Int type=kotlin.Int value=4 BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CONST Int type=kotlin.Int value=-1