FILE fqName:kotlin.internal fileName:/annotation.kt
  CLASS ANNOTATION_CLASS name:ImplicitIntegerCoercion modality:OPEN visibility:public superTypes:[kotlin.Annotation]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:kotlin.internal.ImplicitIntegerCoercion
    CONSTRUCTOR visibility:public returnType:kotlin.internal.ImplicitIntegerCoercion [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ANNOTATION_CLASS name:ImplicitIntegerCoercion modality:OPEN visibility:public superTypes:[kotlin.Annotation]' type=kotlin.Unit
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Annotation
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Annotation
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Annotation
FILE fqName:<root> fileName:/test.kt
  FUN name:box visibility:public modality:FINAL returnType:kotlin.String
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
        WHEN type=kotlin.String origin=WHEN
          BRANCH
            if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
              ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
                ARG arg0: CALL 'public final fun testInt (x: kotlin.UInt): kotlin.UInt declared in <root>' type=kotlin.UInt origin=null
                  ARG x: CONST Int type=kotlin.UInt value=5
                ARG arg1: CALL 'public final fun toUInt (<this>: kotlin.Int): kotlin.UInt declared in kotlin' type=kotlin.UInt origin=null
                  ARG <this>: CONST Int type=kotlin.Int value=5
            then: CONST String type=kotlin.String value="Fail: testInt(5)"
          BRANCH
            if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
              ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
                ARG arg0: CALL 'public final fun testInt (x: kotlin.UInt): kotlin.UInt declared in <root>' type=kotlin.UInt origin=null
                  ARG x: CONST Int type=kotlin.UInt value=5
                ARG arg1: CALL 'public final fun toUInt (<this>: kotlin.Int): kotlin.UInt declared in kotlin' type=kotlin.UInt origin=null
                  ARG <this>: CONST Int type=kotlin.Int value=5
            then: CONST String type=kotlin.String value="Fail: testInt(x = 5)"
          BRANCH
            if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
              ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
                ARG arg0: CALL 'public final fun testLong (x: kotlin.ULong): kotlin.ULong declared in <root>' type=kotlin.ULong origin=null
                  ARG x: CONST Long type=kotlin.ULong value=5
                ARG arg1: CALL 'public final fun toULong (<this>: kotlin.Long): kotlin.ULong declared in kotlin' type=kotlin.ULong origin=null
                  ARG <this>: CONST Long type=kotlin.Long value=5
            then: CONST String type=kotlin.String value="Fail: testLong(5L)"
          BRANCH
            if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
              ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
                ARG arg0: CALL 'public final fun testLong (x: kotlin.ULong): kotlin.ULong declared in <root>' type=kotlin.ULong origin=null
                  ARG x: CONST Long type=kotlin.ULong value=5
                ARG arg1: CALL 'public final fun toULong (<this>: kotlin.Long): kotlin.ULong declared in kotlin' type=kotlin.ULong origin=null
                  ARG <this>: CONST Long type=kotlin.Long value=5
            then: CONST String type=kotlin.String value="Fail: testLong(x = 5L)"
          BRANCH
            if: CONST Boolean type=kotlin.Boolean value=true
            then: CONST String type=kotlin.String value="OK"
  FUN name:testInt visibility:public modality:FINAL returnType:kotlin.UInt
    VALUE_PARAMETER kind:Regular name:x index:0 type:kotlin.UInt
      annotations:
        ImplicitIntegerCoercion
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun testInt (x: kotlin.UInt): kotlin.UInt declared in <root>'
        TYPE_OP type=kotlin.UInt origin=CAST typeOperand=kotlin.UInt
          GET_VAR 'x: kotlin.UInt declared in <root>.testInt' type=kotlin.UInt origin=null
  FUN name:testLong visibility:public modality:FINAL returnType:kotlin.ULong
    VALUE_PARAMETER kind:Regular name:x index:0 type:kotlin.ULong
      annotations:
        ImplicitIntegerCoercion
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun testLong (x: kotlin.ULong): kotlin.ULong declared in <root>'
        TYPE_OP type=kotlin.ULong origin=CAST typeOperand=kotlin.ULong
          GET_VAR 'x: kotlin.ULong declared in <root>.testLong' type=kotlin.ULong origin=null
