FILE fqName:<root> fileName:/kt24804.kt
  FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Boolean flags:[inline]
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Boolean flags:[inline]'
        CONST Boolean type=kotlin.Boolean value=false
  FUN name:run visibility:public modality:FINAL <> (x:kotlin.Boolean, y:kotlin.Boolean) returnType:kotlin.String flags:[]
    VALUE_PARAMETER name:x index:0 type:kotlin.Boolean flags:[]
    VALUE_PARAMETER name:y index:1 type:kotlin.Boolean flags:[]
    BLOCK_BODY
      VAR name:z type:kotlin.Int flags:[var]
        CONST Int type=kotlin.Int value=10
      BLOCK type=kotlin.Unit origin=null
        DO_WHILE label=l2 origin=DO_WHILE_LOOP
          body: COMPOSITE type=kotlin.Unit origin=null
            SET_VAR 'VAR name:z type:kotlin.Int flags:[var]' type=kotlin.Unit origin=PLUSEQ
              CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:plus visibility:public modality:FINAL <> ($this:kotlin.Int, other:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PLUSEQ
                $this: GET_VAR 'VAR name:z type:kotlin.Int flags:[var]' type=kotlin.Int origin=PLUSEQ
                other: CONST Int type=kotlin.Int value=1
            WHEN type=kotlin.Unit origin=IF
              BRANCH
                if: CALL 'FUN IR_BUILTINS_STUB name:greater visibility:public modality:FINAL <> (arg0:kotlin.Int, arg1:kotlin.Int) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=GT
                  arg0: GET_VAR 'VAR name:z type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
                  arg1: CONST Int type=kotlin.Int value=100
                then: RETURN type=kotlin.Nothing from='FUN name:run visibility:public modality:FINAL <> (x:kotlin.Boolean, y:kotlin.Boolean) returnType:kotlin.String flags:[]'
                  CONST String type=kotlin.String value="NOT_OK"
            WHEN type=kotlin.Unit origin=IF
              BRANCH
                if: GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=null
                then: CONTINUE label=l2 loop.label=l2
            WHEN type=kotlin.Unit origin=IF
              BRANCH
                if: GET_VAR 'VALUE_PARAMETER name:y index:1 type:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=null
                then: CONTINUE label=l2 loop.label=l2
          condition: CALL 'FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Boolean flags:[inline]' type=kotlin.Boolean origin=null
      RETURN type=kotlin.Nothing from='FUN name:run visibility:public modality:FINAL <> (x:kotlin.Boolean, y:kotlin.Boolean) returnType:kotlin.String flags:[]'
        CONST String type=kotlin.String value="OK"
  FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String flags:[]'
        CALL 'FUN name:run visibility:public modality:FINAL <> (x:kotlin.Boolean, y:kotlin.Boolean) returnType:kotlin.String flags:[]' type=kotlin.String origin=null
          x: CONST Boolean type=kotlin.Boolean value=true
          y: CONST Boolean type=kotlin.Boolean value=true
