// MODULE: lib
MODULE_FRAGMENT name:<lib>
  FILE fqName:lib fileName:/lib.kt
    FUN name:createNSString signature:lib/createNSString|createNSString(){}[0] visibility:public modality:FINAL returnType:platform.Foundation.NSString
      BLOCK_BODY
        VAR name:x type:platform.Foundation.NSString [val]
          CONSTRUCTOR_CALL 'platform.Foundation/NSString.<init>|objc:init#Constructor[100]' type=platform.Foundation.NSString origin=null
        RETURN type=kotlin.Nothing from='lib/createNSString|createNSString(){}[0]'
          GET_VAR 'val x: platform.Foundation.NSString [val] declared in lib.createNSString' type=platform.Foundation.NSString origin=null

// MODULE: app
MODULE_FRAGMENT name:<app>
  FILE fqName:app fileName:/app.kt
    FUN name:main signature:app/main|main(){}[0] visibility:public modality:FINAL returnType:kotlin.Unit
      BLOCK_BODY
        VAR name:x type:platform.Foundation.NSString [val]
          CALL 'lib/createNSString|createNSString(){}[0]' type=platform.Foundation.NSString origin=null
        BLOCK type=kotlin.Unit origin=INLINE_ARGS_CONTAINER
          VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Boolean [val]
            TYPE_OP type=kotlin.Boolean origin=IMPLICIT_CAST typeOperand=kotlin.Boolean
              CALL 'kotlin.internal.ir/EQEQ|EQEQ(kotlin.Any?;kotlin.Any?){}[0]' type=kotlin.Boolean origin=EQEQ
                ARG 1: BLOCK type=kotlin.Int origin=INLINE_ARGS_CONTAINER
                  VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.ULong [val]
                    TYPE_OP type=kotlin.ULong origin=IMPLICIT_CAST typeOperand=kotlin.ULong
                      CALL 'platform.Foundation/NSString.length.<get-length>|objc:length#Accessor[100]' type=kotlin.ULong origin=GET_PROPERTY
                        ARG 1: GET_VAR 'val x: platform.Foundation.NSString [val] declared in app.main' type=platform.Foundation.NSString origin=null
                  RETURNABLE_BLOCK type=kotlin.Int origin=null
                    INLINED_BLOCK type=kotlin.Int origin=null
                      inlinedFunctionSymbol: kotlin/ULong.toInt|toInt(){}[0]
                      inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/unsigned/src/kotlin/ULong.kt
                      VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:this type:kotlin.ULong [val]
                        GET_VAR 'val tmp0: kotlin.ULong [val] declared in app.main' type=kotlin.ULong origin=null
                      RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                        TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
                          CALL 'kotlin/Long.toInt|toInt(){}[0]' type=kotlin.Int origin=null
                            ARG 1: CALL 'kotlin/ULong.data.<get-data>|<get-data>(){}[0]' type=kotlin.Long origin=GET_PROPERTY
                              ARG 1: GET_VAR 'val this: kotlin.ULong [val] declared in app.main' type=kotlin.ULong origin=IMPLICIT_ARGUMENT
                ARG 2: CONST Int type=kotlin.Int value=0
          RETURNABLE_BLOCK type=kotlin.Unit origin=null
            INLINED_BLOCK type=kotlin.Unit origin=null
              inlinedFunctionSymbol: kotlin/check|check(kotlin.Boolean){}[0]
              inlinedFunctionFileEntry: FILE_ENTRY path:stdlib/src/kotlin/util/Preconditions.kt
              VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:value type:kotlin.Boolean [val]
                GET_VAR 'val tmp0: kotlin.Boolean [val] declared in app.main' type=kotlin.Boolean origin=null
              WHEN type=kotlin.Unit origin=IF
                BRANCH
                  if: CALL 'kotlin/Boolean.not|not(){}[0]' type=kotlin.Boolean origin=null
                    ARG 1: GET_VAR 'val value: kotlin.Boolean [val] declared in app.main' type=kotlin.Boolean origin=null
                  then: BLOCK type=kotlin.Unit origin=null
                    THROW type=kotlin.Nothing
                      CONSTRUCTOR_CALL 'kotlin/IllegalStateException.<init>|<init>(kotlin.String?){}[0]' type=kotlin.IllegalStateException origin=null
                        ARG 1: CONST String type=kotlin.String value="Check failed."
              RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
                GET_OBJECT 'kotlin/Unit|null[0]' type=kotlin.Unit

