IrFile /smartCastsWithDestructuring.kt
  DUMMY I1
  DUMMY I2
  IrFunction public operator fun I1.component1(): kotlin.Int
    IrExpressionBody
      BLOCK type=<no-type> hasResult=false isDesugared=true
        RETURN type=<no-type>
          LITERAL Int type=kotlin.Int value='1'
  IrFunction public operator fun I2.component2(): kotlin.String
    IrExpressionBody
      BLOCK type=<no-type> hasResult=false isDesugared=true
        RETURN type=<no-type>
          LITERAL String type=kotlin.String value=''
  IrFunction public fun test(/*0*/ x: I1): kotlin.Unit
    IrExpressionBody
      BLOCK type=<no-type> hasResult=false isDesugared=false
        DUMMY KtIfExpression type=kotlin.Unit
        VAR val tmp0: I1
          GET_VAR x type=I1
        VAR val c1: kotlin.Int
          CALL .component1 type=kotlin.Int operator=COMPONENT_N(index=1)
            $receiver: GET_VAR tmp0 type=I1
        VAR val c2: kotlin.String
          CALL .component2 type=kotlin.String operator=COMPONENT_N(index=2)
            $receiver: TYPE_OP operator=IMPLICIT_CAST typeOperand=I2
              GET_VAR tmp0 type=I1
