FILE fqName:<root> fileName:/samConversions.kt
  FUN name:test0 visibility:public modality:FINAL <> ($receiver:<root>.J, a:java.lang.Runnable) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.J flags:[]
    VALUE_PARAMETER name:a index:0 type:java.lang.Runnable flags:[]
    BLOCK_BODY
      CALL 'FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:runStatic visibility:public modality:OPEN <> (r:java.lang.Runnable?) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
        r: GET_VAR 'VALUE_PARAMETER name:a index:0 type:java.lang.Runnable flags:[]' type=java.lang.Runnable origin=null
      CALL 'FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:runIt visibility:public modality:OPEN <> ($this:<root>.J, r:java.lang.Runnable?) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
        $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.J flags:[]' type=<root>.J origin=null
        r: GET_VAR 'VALUE_PARAMETER name:a index:0 type:java.lang.Runnable flags:[]' type=java.lang.Runnable origin=null
  FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      CALL 'FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:runStatic visibility:public modality:OPEN <> (r:java.lang.Runnable?) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
        r: TYPE_OP type=java.lang.Runnable? origin=SAM_CONVERSION typeOperand=java.lang.Runnable?
          typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB INTERFACE name:Runnable modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
          BLOCK type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
            FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit flags:[]
              BLOCK_BODY
                RETURN type=kotlin.Nothing from='FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit flags:[]'
                  CALL 'FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
            FUNCTION_REFERENCE 'FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit flags:[]' type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
  FUN name:test2 visibility:public modality:FINAL <> ($receiver:<root>.J) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.J flags:[]
    BLOCK_BODY
      CALL 'FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:runIt visibility:public modality:OPEN <> ($this:<root>.J, r:java.lang.Runnable?) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
        $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.J flags:[]' type=<root>.J origin=null
        r: TYPE_OP type=java.lang.Runnable? origin=SAM_CONVERSION typeOperand=java.lang.Runnable?
          typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB INTERFACE name:Runnable modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
          BLOCK type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
            FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit flags:[]
              BLOCK_BODY
                RETURN type=kotlin.Nothing from='FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit flags:[]'
                  CALL 'FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
            FUNCTION_REFERENCE 'FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit flags:[]' type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
  FUN name:test3 visibility:public modality:FINAL <> ($receiver:<root>.J, a:kotlin.Function0<kotlin.Unit>) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.J flags:[]
    VALUE_PARAMETER name:a index:0 type:kotlin.Function0<kotlin.Unit> flags:[]
    BLOCK_BODY
      CALL 'FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:run2 visibility:public modality:OPEN <> ($this:<root>.J, r1:java.lang.Runnable?, r2:java.lang.Runnable?) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
        $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.J flags:[]' type=<root>.J origin=null
        r1: TYPE_OP type=java.lang.Runnable? origin=SAM_CONVERSION typeOperand=java.lang.Runnable?
          typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB INTERFACE name:Runnable modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
          GET_VAR 'VALUE_PARAMETER name:a index:0 type:kotlin.Function0<kotlin.Unit> flags:[]' type=kotlin.Function0<kotlin.Unit> origin=null
        r2: TYPE_OP type=java.lang.Runnable? origin=SAM_CONVERSION typeOperand=java.lang.Runnable?
          typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB INTERFACE name:Runnable modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
          GET_VAR 'VALUE_PARAMETER name:a index:0 type:kotlin.Function0<kotlin.Unit> flags:[]' type=kotlin.Function0<kotlin.Unit> origin=null
  FUN name:test4 visibility:public modality:FINAL <> ($receiver:<root>.J, a:kotlin.Function0<kotlin.Unit>, b:kotlin.Function0<kotlin.Unit>, flag:kotlin.Boolean) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.J flags:[]
    VALUE_PARAMETER name:a index:0 type:kotlin.Function0<kotlin.Unit> flags:[]
    VALUE_PARAMETER name:b index:1 type:kotlin.Function0<kotlin.Unit> flags:[]
    VALUE_PARAMETER name:flag index:2 type:kotlin.Boolean flags:[]
    BLOCK_BODY
      CALL 'FUN IR_EXTERNAL_JAVA_DECLARATION_STUB name:runIt visibility:public modality:OPEN <> ($this:<root>.J, r:java.lang.Runnable?) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=null
        $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.J flags:[]' type=<root>.J origin=null
        r: TYPE_OP type=java.lang.Runnable? origin=SAM_CONVERSION typeOperand=java.lang.Runnable?
          typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB INTERFACE name:Runnable modality:ABSTRACT visibility:public flags:[] superTypes:[kotlin.Any]
          WHEN type=kotlin.Function0<kotlin.Unit> origin=IF
            BRANCH
              if: GET_VAR 'VALUE_PARAMETER name:flag index:2 type:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=null
              then: GET_VAR 'VALUE_PARAMETER name:a index:0 type:kotlin.Function0<kotlin.Unit> flags:[]' type=kotlin.Function0<kotlin.Unit> origin=null
            BRANCH
              if: CONST Boolean type=kotlin.Boolean value=true
              then: GET_VAR 'VALUE_PARAMETER name:b index:1 type:kotlin.Function0<kotlin.Unit> flags:[]' type=kotlin.Function0<kotlin.Unit> origin=null
