FILE fqName:<root> fileName:/kt30796.kt
  FUN name:magic visibility:public modality:FINAL <T> () returnType:T of <root>.magic
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun magic <T> (): T of <root>.magic declared in <root>'
        THROW type=kotlin.Nothing
          CONSTRUCTOR_CALL 'public constructor <init> () declared in java.lang.Exception' type=java.lang.Exception origin=null
  FUN name:test visibility:public modality:FINAL <T> (value:T of <root>.test, value2:T of <root>.test) returnType:kotlin.Unit
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    VALUE_PARAMETER name:value index:0 type:T of <root>.test
    VALUE_PARAMETER name:value2 index:1 type:T of <root>.test
    BLOCK_BODY
      VAR name:x1 type:kotlin.Any [val]
        BLOCK type=kotlin.Any origin=ELVIS
          VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:T of <root>.test [val]
            GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
          WHEN type=kotlin.Any origin=ELVIS
            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 tmp_0: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
                arg1: CONST Null type=kotlin.Nothing? value=null
              then: CONST Int type=kotlin.Int value=42
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'val tmp_0: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
      VAR name:x2 type:kotlin.Any [val]
        BLOCK type=kotlin.Any origin=ELVIS
          VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:T of <root>.test [val]
            GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
          WHEN type=kotlin.Any origin=ELVIS
            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 tmp_1: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
                arg1: CONST Null type=kotlin.Nothing? value=null
              then: BLOCK type=kotlin.Any origin=ELVIS
                VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:T of <root>.test [val]
                  GET_VAR 'value2: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
                WHEN type=kotlin.Any origin=ELVIS
                  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 tmp_2: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
                      arg1: CONST Null type=kotlin.Nothing? value=null
                    then: CONST Int type=kotlin.Int value=42
                  BRANCH
                    if: CONST Boolean type=kotlin.Boolean value=true
                    then: GET_VAR 'val tmp_2: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'val tmp_1: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
      VAR name:x3 type:kotlin.Any [val]
        BLOCK type=kotlin.Any origin=ELVIS
          VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.Any? [val]
            BLOCK type=kotlin.Any? origin=ELVIS
              VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:T of <root>.test [val]
                GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
              WHEN type=kotlin.Any? origin=ELVIS
                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 tmp_4: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
                    arg1: CONST Null type=kotlin.Nothing? value=null
                  then: GET_VAR 'value2: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
                BRANCH
                  if: CONST Boolean type=kotlin.Boolean value=true
                  then: GET_VAR 'val tmp_4: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
          WHEN type=kotlin.Any origin=ELVIS
            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 tmp_3: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
                arg1: CONST Null type=kotlin.Nothing? value=null
              then: CONST Int type=kotlin.Int value=42
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'val tmp_3: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
      VAR name:x4 type:kotlin.Any [val]
        BLOCK type=kotlin.Any origin=ELVIS
          VAR IR_TEMPORARY_VARIABLE name:tmp_5 type:kotlin.Any? [val]
            BLOCK type=kotlin.Any? origin=ELVIS
              VAR IR_TEMPORARY_VARIABLE name:tmp_6 type:T of <root>.test [val]
                GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
              WHEN type=kotlin.Any? origin=ELVIS
                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 tmp_6: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
                    arg1: CONST Null type=kotlin.Nothing? value=null
                  then: GET_VAR 'value2: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
                BRANCH
                  if: CONST Boolean type=kotlin.Boolean value=true
                  then: GET_VAR 'val tmp_6: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
          WHEN type=kotlin.Any origin=ELVIS
            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 tmp_5: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
                arg1: CONST Null type=kotlin.Nothing? value=null
              then: CONST Int type=kotlin.Int value=42
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'val tmp_5: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
      VAR name:x5 type:kotlin.Any [val]
        BLOCK type=kotlin.Any origin=ELVIS
          VAR IR_TEMPORARY_VARIABLE name:tmp_7 type:kotlin.Any? [val]
            CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Any? origin=null
              <T>: kotlin.Any?
          WHEN type=kotlin.Any origin=ELVIS
            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 tmp_7: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
                arg1: CONST Null type=kotlin.Nothing? value=null
              then: CONST Int type=kotlin.Int value=42
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'val tmp_7: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
      VAR name:x6 type:kotlin.Any [val]
        BLOCK type=kotlin.Any origin=ELVIS
          VAR IR_TEMPORARY_VARIABLE name:tmp_8 type:kotlin.Any? [val]
            BLOCK type=kotlin.Any? origin=ELVIS
              VAR IR_TEMPORARY_VARIABLE name:tmp_9 type:T of <root>.test [val]
                GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
              WHEN type=kotlin.Any? origin=ELVIS
                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 tmp_9: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
                    arg1: CONST Null type=kotlin.Nothing? value=null
                  then: CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Any? origin=null
                    <T>: kotlin.Any?
                BRANCH
                  if: CONST Boolean type=kotlin.Boolean value=true
                  then: GET_VAR 'val tmp_9: T of <root>.test [val] declared in <root>.test' type=T of <root>.test origin=null
          WHEN type=kotlin.Any origin=ELVIS
            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 tmp_8: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
                arg1: CONST Null type=kotlin.Nothing? value=null
              then: CONST Int type=kotlin.Int value=42
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'val tmp_8: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
      VAR name:x7 type:kotlin.Any [val]
        BLOCK type=kotlin.Any origin=ELVIS
          VAR IR_TEMPORARY_VARIABLE name:tmp_10 type:kotlin.Any? [val]
            BLOCK type=kotlin.Any? origin=ELVIS
              VAR IR_TEMPORARY_VARIABLE name:tmp_11 type:kotlin.Any? [val]
                CALL 'public final fun magic <T> (): T of <root>.magic declared in <root>' type=kotlin.Any? origin=null
                  <T>: kotlin.Any?
              WHEN type=kotlin.Any? origin=ELVIS
                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 tmp_11: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
                    arg1: CONST Null type=kotlin.Nothing? value=null
                  then: GET_VAR 'value: T of <root>.test declared in <root>.test' type=T of <root>.test origin=null
                BRANCH
                  if: CONST Boolean type=kotlin.Boolean value=true
                  then: GET_VAR 'val tmp_11: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
          WHEN type=kotlin.Any origin=ELVIS
            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 tmp_10: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
                arg1: CONST Null type=kotlin.Nothing? value=null
              then: CONST Int type=kotlin.Int value=42
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'val tmp_10: kotlin.Any? [val] declared in <root>.test' type=kotlin.Any? origin=null
