FILE fqName:<root> fileName:/coroutinescope1.kt
  PROPERTY name:coroutineScope1 visibility:internal modality:FINAL [val]
    annotations:
      NativeCoroutineScope
    FIELD PROPERTY_BACKING_FIELD name:coroutineScope1 type:kotlinx.coroutines.CoroutineScope visibility:private [final,static]
      EXPRESSION_BODY
        CALL 'public final fun CoroutineScope (context: kotlin.coroutines.CoroutineContext): kotlinx.coroutines.CoroutineScope declared in kotlinx.coroutines' type=kotlinx.coroutines.CoroutineScope origin=null
          context: CALL 'public final fun <get-Default> (): kotlinx.coroutines.CoroutineDispatcher declared in kotlinx.coroutines.Dispatchers' type=kotlinx.coroutines.CoroutineDispatcher origin=GET_PROPERTY
            $this: GET_OBJECT 'CLASS OBJECT name:Dispatchers modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlinx.coroutines.Dispatchers
    FUN DEFAULT_PROPERTY_ACCESSOR name:<get-coroutineScope1> visibility:internal modality:FINAL <> () returnType:kotlinx.coroutines.CoroutineScope
      correspondingProperty: PROPERTY name:coroutineScope1 visibility:internal modality:FINAL [val]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='internal final fun <get-coroutineScope1> (): kotlinx.coroutines.CoroutineScope declared in <root>'
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:coroutineScope1 type:kotlinx.coroutines.CoroutineScope visibility:private [final,static]' type=kotlinx.coroutines.CoroutineScope origin=null
  PROPERTY name:flowProperty visibility:public modality:FINAL [val]
    annotations:
      NativeCoroutines
    FIELD PROPERTY_BACKING_FIELD name:flowProperty type:kotlinx.coroutines.flow.Flow<kotlin.String> visibility:private [final,static]
      EXPRESSION_BODY
        CALL 'public final fun flowOf <T> (value: T of kotlinx.coroutines.flow.flowOf): kotlinx.coroutines.flow.Flow<T of kotlinx.coroutines.flow.flowOf> declared in kotlinx.coroutines.flow' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
          <T>: kotlin.String
          value: CONST String type=kotlin.String value="OK2"
    FUN DEFAULT_PROPERTY_ACCESSOR name:<get-flowProperty> visibility:public modality:FINAL <> () returnType:kotlinx.coroutines.flow.Flow<kotlin.String>
      correspondingProperty: PROPERTY name:flowProperty visibility:public modality:FINAL [val]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun <get-flowProperty> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>'
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:flowProperty type:kotlinx.coroutines.flow.Flow<kotlin.String> visibility:private [final,static]' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
  CLASS CLASS name:MyClass1 modality:OPEN visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass1
    PROPERTY name:coroutineScope2 visibility:protected modality:FINAL [val]
      annotations:
        NativeCoroutineScope
      FIELD PROPERTY_BACKING_FIELD name:coroutineScope2 type:kotlinx.coroutines.CoroutineScope visibility:private [final]
        EXPRESSION_BODY
          CALL 'public final fun CoroutineScope (context: kotlin.coroutines.CoroutineContext): kotlinx.coroutines.CoroutineScope declared in kotlinx.coroutines' type=kotlinx.coroutines.CoroutineScope origin=null
            context: CALL 'public final fun <get-Default> (): kotlinx.coroutines.CoroutineDispatcher declared in kotlinx.coroutines.Dispatchers' type=kotlinx.coroutines.CoroutineDispatcher origin=GET_PROPERTY
              $this: GET_OBJECT 'CLASS OBJECT name:Dispatchers modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlinx.coroutines.Dispatchers
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-coroutineScope2> visibility:protected modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlinx.coroutines.CoroutineScope
        correspondingProperty: PROPERTY name:coroutineScope2 visibility:protected modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='protected final fun <get-coroutineScope2> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass1'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:coroutineScope2 type:kotlinx.coroutines.CoroutineScope visibility:private [final]' type=kotlinx.coroutines.CoroutineScope origin=null
              receiver: GET_VAR '<this>: <root>.MyClass1 declared in <root>.MyClass1.<get-coroutineScope2>' type=<root>.MyClass1 origin=null
    CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass1 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass1 modality:OPEN visibility:public superTypes:[kotlin.Any]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      VALUE_PARAMETER name:other index:0 type:kotlin.Any?
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      annotations:
        ObjCName(name = "returnSuspendValue", swiftName = <null>, exact = <null>)
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlinx.coroutines.CoroutineScope [val]
          CALL 'protected final fun <get-coroutineScope2> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass1' type=kotlinx.coroutines.CoroutineScope origin=null
            $this: GET_VAR '<this>: <root>.MyClass1 declared in <root>.MyClass1.returnSuspendValueNative' type=<root>.MyClass1 origin=null
        RETURN type=kotlin.Nothing from='public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass1'
          CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            scope: GET_VAR 'val tmp_0: kotlinx.coroutines.CoroutineScope declared in <root>.MyClass1.returnSuspendValueNative' type=kotlinx.coroutines.CoroutineScope origin=null
            block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
              FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
                BLOCK_BODY
                  RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.MyClass1.returnSuspendValueNative'
                    CALL 'public final fun returnSuspendValue (): kotlin.String declared in <root>.MyClass1' type=kotlin.String origin=null
                      $this: GET_VAR '<this>: <root>.MyClass1 declared in <root>.MyClass1.returnSuspendValueNative' type=<root>.MyClass1 origin=null
    FUN name:returnSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlin.String [suspend]
      annotations:
        NativeCoroutines
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun returnSuspendValue (): kotlin.String declared in <root>.MyClass1'
          CONST String type=kotlin.String value="OK3"
  CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[<root>.MyClass1]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass2
    PROPERTY name:flowProperty visibility:public modality:FINAL [val]
      annotations:
        NativeCoroutines
      FIELD PROPERTY_BACKING_FIELD name:flowProperty type:kotlinx.coroutines.flow.Flow<kotlin.String> visibility:private [final]
        EXPRESSION_BODY
          CALL 'public final fun flowOf <T> (value: T of kotlinx.coroutines.flow.flowOf): kotlinx.coroutines.flow.Flow<T of kotlinx.coroutines.flow.flowOf> declared in kotlinx.coroutines.flow' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            <T>: kotlin.String
            value: CONST String type=kotlin.String value="OK4"
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-flowProperty> visibility:public modality:FINAL <> ($this:<root>.MyClass2) returnType:kotlinx.coroutines.flow.Flow<kotlin.String>
        correspondingProperty: PROPERTY name:flowProperty visibility:public modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.MyClass2
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public final fun <get-flowProperty> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>.MyClass2'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:flowProperty type:kotlinx.coroutines.flow.Flow<kotlin.String> visibility:private [final]' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
              receiver: GET_VAR '<this>: <root>.MyClass2 declared in <root>.MyClass2.<get-flowProperty>' type=<root>.MyClass2 origin=null
    CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass2 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass1'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass2 modality:FINAL visibility:public superTypes:[<root>.MyClass1]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      VALUE_PARAMETER name:other index:0 type:kotlin.Any?
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
      overridden:
        public open fun hashCode (): kotlin.Int declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN FAKE_OVERRIDE name:returnSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlin.String [suspend,fake_override]
      annotations:
        NativeCoroutines
      overridden:
        public final fun returnSuspendValue (): kotlin.String declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
    FUN FAKE_OVERRIDE name:returnSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> [fake_override]
      annotations:
        ObjCName(name = "returnSuspendValue", swiftName = <null>, exact = <null>)
      overridden:
        public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
      overridden:
        public open fun toString (): kotlin.String declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    PROPERTY FAKE_OVERRIDE name:coroutineScope2 visibility:protected modality:FINAL [fake_override,val]
      annotations:
        NativeCoroutineScope
      overridden:
        protected final coroutineScope2: kotlinx.coroutines.CoroutineScope declared in <root>.MyClass1
      FUN FAKE_OVERRIDE name:<get-coroutineScope2> visibility:protected modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlinx.coroutines.CoroutineScope [fake_override]
        correspondingProperty: PROPERTY FAKE_OVERRIDE name:coroutineScope2 visibility:protected modality:FINAL [fake_override,val]
        overridden:
          protected final fun <get-coroutineScope2> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass1
        $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
    PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowPropertyNative visibility:public modality:FINAL [val]
      annotations:
        ObjCName(name = "flowProperty", swiftName = <null>, exact = <null>)
      FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:<get-flowPropertyNative> visibility:public modality:FINAL <> ($this:<root>.MyClass2) returnType:kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
        correspondingProperty: PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowPropertyNative visibility:public modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.MyClass2
        BLOCK_BODY
          VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlinx.coroutines.CoroutineScope [val]
            CALL 'protected final fun <get-coroutineScope2> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass2' type=kotlinx.coroutines.CoroutineScope origin=null
              $this: GET_VAR '<this>: <root>.MyClass2 declared in <root>.MyClass2.<get-flowPropertyNative>' type=<root>.MyClass2 origin=null
          VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlinx.coroutines.flow.Flow<kotlin.String> [val]
            CALL 'public final fun <get-flowProperty> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>.MyClass2' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
              $this: GET_VAR '<this>: <root>.MyClass2 declared in <root>.MyClass2.<get-flowPropertyNative>' type=<root>.MyClass2 origin=null
          RETURN type=kotlin.Nothing from='public final fun <get-flowPropertyNative> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass2'
            CALL 'public final fun asNativeFlow <T> (scope: kotlinx.coroutines.CoroutineScope?): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.asNativeFlow, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
              <T>: kotlin.String
              $receiver: GET_VAR 'val tmp_2: kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>.MyClass2.<get-flowPropertyNative>' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
              scope: GET_VAR 'val tmp_1: kotlinx.coroutines.CoroutineScope declared in <root>.MyClass2.<get-flowPropertyNative>' type=kotlinx.coroutines.CoroutineScope origin=null
  CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[<root>.MyClass1]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass3
    PROPERTY name:coroutineScope3 visibility:internal modality:FINAL [val]
      annotations:
        NativeCoroutineScope
      FIELD PROPERTY_BACKING_FIELD name:coroutineScope3 type:kotlinx.coroutines.CoroutineScope visibility:private [final]
        EXPRESSION_BODY
          CALL 'public final fun CoroutineScope (context: kotlin.coroutines.CoroutineContext): kotlinx.coroutines.CoroutineScope declared in kotlinx.coroutines' type=kotlinx.coroutines.CoroutineScope origin=null
            context: CALL 'public final fun <get-Default> (): kotlinx.coroutines.CoroutineDispatcher declared in kotlinx.coroutines.Dispatchers' type=kotlinx.coroutines.CoroutineDispatcher origin=GET_PROPERTY
              $this: GET_OBJECT 'CLASS OBJECT name:Dispatchers modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlinx.coroutines.Dispatchers
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-coroutineScope3> visibility:internal modality:FINAL <> ($this:<root>.MyClass3) returnType:kotlinx.coroutines.CoroutineScope
        correspondingProperty: PROPERTY name:coroutineScope3 visibility:internal modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.MyClass3
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='internal final fun <get-coroutineScope3> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass3'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:coroutineScope3 type:kotlinx.coroutines.CoroutineScope visibility:private [final]' type=kotlinx.coroutines.CoroutineScope origin=null
              receiver: GET_VAR '<this>: <root>.MyClass3 declared in <root>.MyClass3.<get-coroutineScope3>' type=<root>.MyClass3 origin=null
    CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass3 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass1'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass3 modality:FINAL visibility:public superTypes:[<root>.MyClass1]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      VALUE_PARAMETER name:other index:0 type:kotlin.Any?
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
      overridden:
        public open fun hashCode (): kotlin.Int declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN FAKE_OVERRIDE name:returnSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlin.String [suspend,fake_override]
      annotations:
        NativeCoroutines
      overridden:
        public final fun returnSuspendValue (): kotlin.String declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
    FUN FAKE_OVERRIDE name:returnSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> [fake_override]
      annotations:
        ObjCName(name = "returnSuspendValue", swiftName = <null>, exact = <null>)
      overridden:
        public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
      overridden:
        public open fun toString (): kotlin.String declared in <root>.MyClass1
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnOtherSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass3) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      annotations:
        ObjCName(name = "returnOtherSuspendValue", swiftName = <null>, exact = <null>)
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass3
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlinx.coroutines.CoroutineScope [val]
          CALL 'internal final fun <get-coroutineScope3> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass3' type=kotlinx.coroutines.CoroutineScope origin=null
            $this: GET_VAR '<this>: <root>.MyClass3 declared in <root>.MyClass3.returnOtherSuspendValueNative' type=<root>.MyClass3 origin=null
        RETURN type=kotlin.Nothing from='public final fun returnOtherSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass3'
          CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            scope: GET_VAR 'val tmp_3: kotlinx.coroutines.CoroutineScope declared in <root>.MyClass3.returnOtherSuspendValueNative' type=kotlinx.coroutines.CoroutineScope origin=null
            block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
              FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
                BLOCK_BODY
                  RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.MyClass3.returnOtherSuspendValueNative'
                    CALL 'public final fun returnOtherSuspendValue (): kotlin.String declared in <root>.MyClass3' type=kotlin.String origin=null
                      $this: GET_VAR '<this>: <root>.MyClass3 declared in <root>.MyClass3.returnOtherSuspendValueNative' type=<root>.MyClass3 origin=null
    FUN name:returnOtherSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass3) returnType:kotlin.String [suspend]
      annotations:
        NativeCoroutines
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass3
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun returnOtherSuspendValue (): kotlin.String declared in <root>.MyClass3'
          CONST String type=kotlin.String value="OK5"
    PROPERTY FAKE_OVERRIDE name:coroutineScope2 visibility:protected modality:FINAL [fake_override,val]
      annotations:
        NativeCoroutineScope
      overridden:
        protected final coroutineScope2: kotlinx.coroutines.CoroutineScope declared in <root>.MyClass1
      FUN FAKE_OVERRIDE name:<get-coroutineScope2> visibility:protected modality:FINAL <> ($this:<root>.MyClass1) returnType:kotlinx.coroutines.CoroutineScope [fake_override]
        correspondingProperty: PROPERTY FAKE_OVERRIDE name:coroutineScope2 visibility:protected modality:FINAL [fake_override,val]
        overridden:
          protected final fun <get-coroutineScope2> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass1
        $this: VALUE_PARAMETER name:<this> type:<root>.MyClass1
  CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass4
    CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass4 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass4 modality:FINAL visibility:public superTypes:[kotlin.Any]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      VALUE_PARAMETER name:other index:0 type:kotlin.Any?
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnExtSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass4, $receiver:<root>.MyClass1) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      annotations:
        ObjCName(name = "returnExtSuspendValue", swiftName = <null>, exact = <null>)
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass4
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass1
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:kotlinx.coroutines.CoroutineScope [val]
          CALL 'internal final fun <get-coroutineScope1> (): kotlinx.coroutines.CoroutineScope declared in <root>' type=kotlinx.coroutines.CoroutineScope origin=null
        RETURN type=kotlin.Nothing from='public final fun returnExtSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass4'
          CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            scope: GET_VAR 'val tmp_4: kotlinx.coroutines.CoroutineScope declared in <root>.MyClass4.returnExtSuspendValueNative' type=kotlinx.coroutines.CoroutineScope origin=null
            block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
              FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
                BLOCK_BODY
                  RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.MyClass4.returnExtSuspendValueNative'
                    CALL 'public final fun returnExtSuspendValue (): kotlin.String declared in <root>.MyClass4' type=kotlin.String origin=null
                      $this: GET_VAR '<this>: <root>.MyClass4 declared in <root>.MyClass4.returnExtSuspendValueNative' type=<root>.MyClass4 origin=null
                      $receiver: GET_VAR '<this>: <root>.MyClass1 declared in <root>.MyClass4.returnExtSuspendValueNative' type=<root>.MyClass1 origin=null
    FUN name:returnExtSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass4, $receiver:<root>.MyClass1) returnType:kotlin.String [suspend]
      annotations:
        NativeCoroutines
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass4
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass1
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun returnExtSuspendValue (): kotlin.String declared in <root>.MyClass4'
          CONST String type=kotlin.String value="OK7"
  FUN name:returnSuspendValue visibility:public modality:FINAL <> () returnType:kotlin.String [suspend]
    annotations:
      NativeCoroutines
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun returnSuspendValue (): kotlin.String declared in <root>'
        CONST String type=kotlin.String value="OK1"
  PROPERTY name:flowExtProperty1 visibility:public modality:FINAL [val]
    annotations:
      NativeCoroutines
    FUN name:<get-flowExtProperty1> visibility:public modality:FINAL <> ($receiver:<root>.MyClass3) returnType:kotlinx.coroutines.flow.Flow<kotlin.String>
      correspondingProperty: PROPERTY name:flowExtProperty1 visibility:public modality:FINAL [val]
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass3
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun <get-flowExtProperty1> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>'
          CALL 'public final fun flowOf <T> (value: T of kotlinx.coroutines.flow.flowOf): kotlinx.coroutines.flow.Flow<T of kotlinx.coroutines.flow.flowOf> declared in kotlinx.coroutines.flow' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            <T>: kotlin.String
            value: CONST String type=kotlin.String value="OK6"
FILE fqName:<root> fileName:/coroutinescope2.kt
  CLASS CLASS name:MyClass5 modality:FINAL visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass5
    CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass5 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass5 modality:FINAL visibility:public superTypes:[kotlin.Any]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      VALUE_PARAMETER name:other index:0 type:kotlin.Any?
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnExtSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass5, $receiver:<root>.MyClass1) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      annotations:
        ObjCName(name = "returnExtSuspendValue", swiftName = <null>, exact = <null>)
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass5
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass1
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlinx.coroutines.CoroutineScope? [val]
          CONST Null type=kotlinx.coroutines.CoroutineScope? value=null
        RETURN type=kotlin.Nothing from='public final fun returnExtSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass5'
          CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            scope: GET_VAR 'val tmp_0: kotlinx.coroutines.CoroutineScope? declared in <root>.MyClass5.returnExtSuspendValueNative' type=kotlinx.coroutines.CoroutineScope? origin=null
            block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
              FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
                BLOCK_BODY
                  RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.MyClass5.returnExtSuspendValueNative'
                    CALL 'public final fun returnExtSuspendValue (): kotlin.String declared in <root>.MyClass5' type=kotlin.String origin=null
                      $this: GET_VAR '<this>: <root>.MyClass5 declared in <root>.MyClass5.returnExtSuspendValueNative' type=<root>.MyClass5 origin=null
                      $receiver: GET_VAR '<this>: <root>.MyClass1 declared in <root>.MyClass5.returnExtSuspendValueNative' type=<root>.MyClass1 origin=null
    FUN name:returnExtSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass5, $receiver:<root>.MyClass1) returnType:kotlin.String [suspend]
      annotations:
        NativeCoroutines
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass5
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass1
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun returnExtSuspendValue (): kotlin.String declared in <root>.MyClass5'
          CONST String type=kotlin.String value="OK9"
  CLASS CLASS name:MyClass6 modality:OPEN visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass6
    PROPERTY name:coroutineScope4 visibility:private modality:FINAL [val]
      annotations:
        NativeCoroutineScope
      FIELD PROPERTY_BACKING_FIELD name:coroutineScope4 type:kotlinx.coroutines.CoroutineScope visibility:private [final]
        EXPRESSION_BODY
          CALL 'public final fun CoroutineScope (context: kotlin.coroutines.CoroutineContext): kotlinx.coroutines.CoroutineScope declared in kotlinx.coroutines' type=kotlinx.coroutines.CoroutineScope origin=null
            context: CALL 'public final fun <get-Default> (): kotlinx.coroutines.CoroutineDispatcher declared in kotlinx.coroutines.Dispatchers' type=kotlinx.coroutines.CoroutineDispatcher origin=GET_PROPERTY
              $this: GET_OBJECT 'CLASS OBJECT name:Dispatchers modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlinx.coroutines.Dispatchers
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-coroutineScope4> visibility:private modality:FINAL <> ($this:<root>.MyClass6) returnType:kotlinx.coroutines.CoroutineScope
        correspondingProperty: PROPERTY name:coroutineScope4 visibility:private modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.MyClass6
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='private final fun <get-coroutineScope4> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass6'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:coroutineScope4 type:kotlinx.coroutines.CoroutineScope visibility:private [final]' type=kotlinx.coroutines.CoroutineScope origin=null
              receiver: GET_VAR '<this>: <root>.MyClass6 declared in <root>.MyClass6.<get-coroutineScope4>' type=<root>.MyClass6 origin=null
    CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass6 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass6 modality:OPEN visibility:public superTypes:[kotlin.Any]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      VALUE_PARAMETER name:other index:0 type:kotlin.Any?
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass6) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      annotations:
        ObjCName(name = "returnSuspendValue", swiftName = <null>, exact = <null>)
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass6
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlinx.coroutines.CoroutineScope [val]
          CALL 'private final fun <get-coroutineScope4> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass6' type=kotlinx.coroutines.CoroutineScope origin=null
            $this: GET_VAR '<this>: <root>.MyClass6 declared in <root>.MyClass6.returnSuspendValueNative' type=<root>.MyClass6 origin=null
        RETURN type=kotlin.Nothing from='public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass6'
          CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            scope: GET_VAR 'val tmp_1: kotlinx.coroutines.CoroutineScope declared in <root>.MyClass6.returnSuspendValueNative' type=kotlinx.coroutines.CoroutineScope origin=null
            block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
              FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
                BLOCK_BODY
                  RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.MyClass6.returnSuspendValueNative'
                    CALL 'public final fun returnSuspendValue (): kotlin.String declared in <root>.MyClass6' type=kotlin.String origin=null
                      $this: GET_VAR '<this>: <root>.MyClass6 declared in <root>.MyClass6.returnSuspendValueNative' type=<root>.MyClass6 origin=null
    FUN name:returnSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass6) returnType:kotlin.String [suspend]
      annotations:
        NativeCoroutines
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass6
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun returnSuspendValue (): kotlin.String declared in <root>.MyClass6'
          CONST String type=kotlin.String value="OK10"
  CLASS CLASS name:MyClass7 modality:FINAL visibility:public superTypes:[<root>.MyClass6]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.MyClass7
    CONSTRUCTOR visibility:public <> () returnType:<root>.MyClass7 [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass6'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:MyClass7 modality:FINAL visibility:public superTypes:[<root>.MyClass6]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.MyClass6
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
      VALUE_PARAMETER name:other index:0 type:kotlin.Any?
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
      overridden:
        public open fun hashCode (): kotlin.Int declared in <root>.MyClass6
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN FAKE_OVERRIDE name:returnSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass6) returnType:kotlin.String [suspend,fake_override]
      annotations:
        NativeCoroutines
      overridden:
        public final fun returnSuspendValue (): kotlin.String declared in <root>.MyClass6
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass6
    FUN FAKE_OVERRIDE name:returnSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass6) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> [fake_override]
      annotations:
        ObjCName(name = "returnSuspendValue", swiftName = <null>, exact = <null>)
      overridden:
        public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass6
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass6
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
      overridden:
        public open fun toString (): kotlin.String declared in <root>.MyClass6
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnOtherSuspendValueNative visibility:public modality:FINAL <> ($this:<root>.MyClass7) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      annotations:
        ObjCName(name = "returnOtherSuspendValue", swiftName = <null>, exact = <null>)
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass7
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlinx.coroutines.CoroutineScope? [val]
          CONST Null type=kotlinx.coroutines.CoroutineScope? value=null
        RETURN type=kotlin.Nothing from='public final fun returnOtherSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass7'
          CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            scope: GET_VAR 'val tmp_2: kotlinx.coroutines.CoroutineScope? declared in <root>.MyClass7.returnOtherSuspendValueNative' type=kotlinx.coroutines.CoroutineScope? origin=null
            block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
              FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
                BLOCK_BODY
                  RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.MyClass7.returnOtherSuspendValueNative'
                    CALL 'public final fun returnOtherSuspendValue (): kotlin.String declared in <root>.MyClass7' type=kotlin.String origin=null
                      $this: GET_VAR '<this>: <root>.MyClass7 declared in <root>.MyClass7.returnOtherSuspendValueNative' type=<root>.MyClass7 origin=null
    FUN name:returnOtherSuspendValue visibility:public modality:FINAL <> ($this:<root>.MyClass7) returnType:kotlin.String [suspend]
      annotations:
        NativeCoroutines
      $this: VALUE_PARAMETER name:<this> type:<root>.MyClass7
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun returnOtherSuspendValue (): kotlin.String declared in <root>.MyClass7'
          CONST String type=kotlin.String value="OK12"
  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>'
        CALL 'public final fun runBoxTest (action: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<com.rickclephas.kmp.nativecoroutines.BoxTest, kotlin.Unit>): kotlin.String declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.String origin=null
          action: FUN_EXPR type=@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<com.rickclephas.kmp.nativecoroutines.BoxTest, kotlin.Unit> origin=LAMBDA
            FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:com.rickclephas.kmp.nativecoroutines.BoxTest) returnType:kotlin.Unit [suspend]
              $receiver: VALUE_PARAMETER name:$this$runBoxTest type:com.rickclephas.kmp.nativecoroutines.BoxTest
              BLOCK_BODY
                CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeSuspend: CALL 'public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                CALL 'public final fun collect <T> (nativeFlow: kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.BoxTest.collect, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>, maxValues: kotlin.Int?): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeFlow: CALL 'public final fun <get-flowPropertyNative> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=GET_PROPERTY
                CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeSuspend: CALL 'public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass1' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                    $this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass1' type=<root>.MyClass1 origin=null
                CALL 'public final fun collect <T> (nativeFlow: kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.BoxTest.collect, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>, maxValues: kotlin.Int?): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeFlow: CALL 'public final fun <get-flowPropertyNative> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass2' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=GET_PROPERTY
                    $this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass2' type=<root>.MyClass2 origin=null
                CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeSuspend: CALL 'public final fun returnOtherSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass3' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                    $this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass3' type=<root>.MyClass3 origin=null
                CALL 'public final fun collect <T> (nativeFlow: kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.BoxTest.collect, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>, maxValues: kotlin.Int?): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeFlow: CALL 'public final fun <get-flowExtProperty1Native> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=GET_PROPERTY
                    $receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass3' type=<root>.MyClass3 origin=null
                CALL 'public final fun with <T, R> (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.with, R of kotlin.with>): R of kotlin.with declared in kotlin' type=kotlin.Unit origin=null
                  <T>: <root>.MyClass4
                  <R>: kotlin.Unit
                  receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass4' type=<root>.MyClass4 origin=null
                  block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.MyClass4, kotlin.Unit> origin=LAMBDA
                    FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.MyClass4) returnType:kotlin.Unit
                      $receiver: VALUE_PARAMETER name:$this$with type:<root>.MyClass4
                      BLOCK_BODY
                        CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                          <T>: kotlin.String
                          $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                          nativeSuspend: CALL 'public final fun returnExtSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass4' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                            $this: GET_VAR '$this$with: <root>.MyClass4 declared in <root>.box.<anonymous>.<anonymous>' type=<root>.MyClass4 origin=null
                            $receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass1' type=<root>.MyClass1 origin=null
                CALL 'public final fun collect <T> (nativeFlow: kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.BoxTest.collect, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>, maxValues: kotlin.Int?): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeFlow: CALL 'public final fun <get-flowExtProperty2Native> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=GET_PROPERTY
                    $receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass3' type=<root>.MyClass3 origin=null
                CALL 'public final fun with <T, R> (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.with, R of kotlin.with>): R of kotlin.with declared in kotlin' type=kotlin.Unit origin=null
                  <T>: <root>.MyClass5
                  <R>: kotlin.Unit
                  receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass5' type=<root>.MyClass5 origin=null
                  block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.MyClass5, kotlin.Unit> origin=LAMBDA
                    FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:<root>.MyClass5) returnType:kotlin.Unit
                      $receiver: VALUE_PARAMETER name:$this$with type:<root>.MyClass5
                      BLOCK_BODY
                        CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                          <T>: kotlin.String
                          $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                          nativeSuspend: CALL 'public final fun returnExtSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass5' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                            $this: GET_VAR '$this$with: <root>.MyClass5 declared in <root>.box.<anonymous>.<anonymous>' type=<root>.MyClass5 origin=null
                            $receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass1' type=<root>.MyClass1 origin=null
                CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeSuspend: CALL 'public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass6' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                    $this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass6' type=<root>.MyClass6 origin=null
                CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeSuspend: CALL 'public final fun returnExtSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                    $receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass6' type=<root>.MyClass6 origin=null
                CALL 'public final fun await <T> (nativeSuspend: kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.BoxTest.await, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>): kotlin.Unit declared in com.rickclephas.kmp.nativecoroutines.BoxTest' type=kotlin.Unit origin=null
                  <T>: kotlin.String
                  $this: GET_VAR '$this$runBoxTest: com.rickclephas.kmp.nativecoroutines.BoxTest declared in <root>.box.<anonymous>' type=com.rickclephas.kmp.nativecoroutines.BoxTest origin=null
                  nativeSuspend: CALL 'public final fun returnOtherSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>.MyClass7' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
                    $this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.MyClass7' type=<root>.MyClass7 origin=null
  FUN name:returnExtSuspendValue visibility:public modality:FINAL <> ($receiver:<root>.MyClass6) returnType:kotlin.String [suspend]
    annotations:
      NativeCoroutines
    $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass6
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun returnExtSuspendValue (): kotlin.String declared in <root>'
        CONST String type=kotlin.String value="OK11"
  PROPERTY name:flowExtProperty2 visibility:public modality:FINAL [val]
    annotations:
      NativeCoroutines
    FUN name:<get-flowExtProperty2> visibility:public modality:FINAL <> ($receiver:<root>.MyClass3) returnType:kotlinx.coroutines.flow.Flow<kotlin.String>
      correspondingProperty: PROPERTY name:flowExtProperty2 visibility:public modality:FINAL [val]
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass3
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun <get-flowExtProperty2> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>'
          CALL 'public final fun flowOf <T> (value: T of kotlinx.coroutines.flow.flowOf): kotlinx.coroutines.flow.Flow<T of kotlinx.coroutines.flow.flowOf> declared in kotlinx.coroutines.flow' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            <T>: kotlin.String
            value: CONST String type=kotlin.String value="OK8"
FILE fqName:<root> fileName:__GENERATED DECLARATIONS__.kt
  FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnExtSuspendValueNative visibility:public modality:FINAL <> ($receiver:<root>.MyClass6) returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
    annotations:
      ObjCName(name = "returnExtSuspendValue", swiftName = <null>, exact = <null>)
    $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass6
    BLOCK_BODY
      VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlinx.coroutines.CoroutineScope? [val]
        CONST Null type=kotlinx.coroutines.CoroutineScope? value=null
      RETURN type=kotlin.Nothing from='public final fun returnExtSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>'
        CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
          <T>: kotlin.String
          scope: GET_VAR 'val tmp_0: kotlinx.coroutines.CoroutineScope? declared in <root>.returnExtSuspendValueNative' type=kotlinx.coroutines.CoroutineScope? origin=null
          block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
            FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
              BLOCK_BODY
                RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.returnExtSuspendValueNative'
                  CALL 'public final fun returnExtSuspendValue (): kotlin.String declared in <root>' type=kotlin.String origin=null
                    $receiver: GET_VAR '<this>: <root>.MyClass6 declared in <root>.returnExtSuspendValueNative' type=<root>.MyClass6 origin=null
  FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:returnSuspendValueNative visibility:public modality:FINAL <> () returnType:kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
    annotations:
      ObjCName(name = "returnSuspendValue", swiftName = <null>, exact = <null>)
    BLOCK_BODY
      VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlinx.coroutines.CoroutineScope [val]
        CALL 'internal final fun <get-coroutineScope1> (): kotlinx.coroutines.CoroutineScope declared in <root>' type=kotlinx.coroutines.CoroutineScope origin=null
      RETURN type=kotlin.Nothing from='public final fun returnSuspendValueNative (): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>'
        CALL 'public final fun nativeSuspend <T> (scope: kotlinx.coroutines.CoroutineScope?, block: kotlin.coroutines.SuspendFunction0<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend>): kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<T of com.rickclephas.kmp.nativecoroutines.nativeSuspend, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onResult")] kotlin.Function2<kotlin.String, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onError")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
          <T>: kotlin.String
          scope: GET_VAR 'val tmp_1: kotlinx.coroutines.CoroutineScope declared in <root>.returnSuspendValueNative' type=kotlinx.coroutines.CoroutineScope origin=null
          block: FUN_EXPR type=kotlin.coroutines.SuspendFunction0<kotlin.String> origin=LAMBDA
            FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String [suspend]
              BLOCK_BODY
                RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.returnSuspendValueNative'
                  CALL 'public final fun returnSuspendValue (): kotlin.String declared in <root>' type=kotlin.String origin=null
  PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowExtProperty1Native visibility:public modality:FINAL [val]
    annotations:
      ObjCName(name = "flowExtProperty1", swiftName = <null>, exact = <null>)
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:<get-flowExtProperty1Native> visibility:public modality:FINAL <> ($receiver:<root>.MyClass3) returnType:kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      correspondingProperty: PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowExtProperty1Native visibility:public modality:FINAL [val]
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass3
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlinx.coroutines.CoroutineScope [val]
          CALL 'internal final fun <get-coroutineScope1> (): kotlinx.coroutines.CoroutineScope declared in <root>' type=kotlinx.coroutines.CoroutineScope origin=null
        VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlinx.coroutines.flow.Flow<kotlin.String> [val]
          CALL 'public final fun <get-flowExtProperty1> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            $receiver: GET_VAR '<this>: <root>.MyClass3 declared in <root>.<get-flowExtProperty1Native>' type=<root>.MyClass3 origin=null
        RETURN type=kotlin.Nothing from='public final fun <get-flowExtProperty1Native> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>'
          CALL 'public final fun asNativeFlow <T> (scope: kotlinx.coroutines.CoroutineScope?): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.asNativeFlow, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            $receiver: GET_VAR 'val tmp_3: kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>.<get-flowExtProperty1Native>' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            scope: GET_VAR 'val tmp_2: kotlinx.coroutines.CoroutineScope declared in <root>.<get-flowExtProperty1Native>' type=kotlinx.coroutines.CoroutineScope origin=null
  PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowExtProperty2Native visibility:public modality:FINAL [val]
    annotations:
      ObjCName(name = "flowExtProperty2", swiftName = <null>, exact = <null>)
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:<get-flowExtProperty2Native> visibility:public modality:FINAL <> ($receiver:<root>.MyClass3) returnType:kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      correspondingProperty: PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowExtProperty2Native visibility:public modality:FINAL [val]
      $receiver: VALUE_PARAMETER name:<this> type:<root>.MyClass3
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:kotlinx.coroutines.CoroutineScope [val]
          CALL 'internal final fun <get-coroutineScope3> (): kotlinx.coroutines.CoroutineScope declared in <root>.MyClass3' type=kotlinx.coroutines.CoroutineScope origin=null
            $this: GET_VAR '<this>: <root>.MyClass3 declared in <root>.<get-flowExtProperty2Native>' type=<root>.MyClass3 origin=null
        VAR IR_TEMPORARY_VARIABLE name:tmp_5 type:kotlinx.coroutines.flow.Flow<kotlin.String> [val]
          CALL 'public final fun <get-flowExtProperty2> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            $receiver: GET_VAR '<this>: <root>.MyClass3 declared in <root>.<get-flowExtProperty2Native>' type=<root>.MyClass3 origin=null
        RETURN type=kotlin.Nothing from='public final fun <get-flowExtProperty2Native> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>'
          CALL 'public final fun asNativeFlow <T> (scope: kotlinx.coroutines.CoroutineScope?): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.asNativeFlow, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            $receiver: GET_VAR 'val tmp_5: kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>.<get-flowExtProperty2Native>' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            scope: GET_VAR 'val tmp_4: kotlinx.coroutines.CoroutineScope declared in <root>.<get-flowExtProperty2Native>' type=kotlinx.coroutines.CoroutineScope origin=null
  PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowPropertyNative visibility:public modality:FINAL [val]
    annotations:
      ObjCName(name = "flowProperty", swiftName = <null>, exact = <null>)
    FUN GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:<get-flowPropertyNative> visibility:public modality:FINAL <> () returnType:kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>>
      correspondingProperty: PROPERTY GENERATED[com.rickclephas.kmp.nativecoroutines.compiler.fir.utils.NativeCoroutinesDeclarationKey] name:flowPropertyNative visibility:public modality:FINAL [val]
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp_6 type:kotlinx.coroutines.CoroutineScope [val]
          CALL 'internal final fun <get-coroutineScope1> (): kotlinx.coroutines.CoroutineScope declared in <root>' type=kotlinx.coroutines.CoroutineScope origin=null
        VAR IR_TEMPORARY_VARIABLE name:tmp_7 type:kotlinx.coroutines.flow.Flow<kotlin.String> [val]
          CALL 'public final fun <get-flowProperty> (): kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
        RETURN type=kotlin.Nothing from='public final fun <get-flowPropertyNative> (): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in <root>'
          CALL 'public final fun asNativeFlow <T> (scope: kotlinx.coroutines.CoroutineScope?): kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<T of com.rickclephas.kmp.nativecoroutines.asNativeFlow, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> declared in com.rickclephas.kmp.nativecoroutines' type=kotlin.Function3<@[ParameterName(name = "onItem")] kotlin.Function3<kotlin.String, kotlin.Function0<kotlin.Unit>, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onComplete")] kotlin.Function2<kotlin.Throwable?, kotlin.Unit, kotlin.Unit>, @[ParameterName(name = "onCancelled")] kotlin.Function2<kotlin.Throwable, kotlin.Unit, kotlin.Unit>, kotlin.Function0<kotlin.Unit>> origin=null
            <T>: kotlin.String
            $receiver: GET_VAR 'val tmp_7: kotlinx.coroutines.flow.Flow<kotlin.String> declared in <root>.<get-flowPropertyNative>' type=kotlinx.coroutines.flow.Flow<kotlin.String> origin=null
            scope: GET_VAR 'val tmp_6: kotlinx.coroutines.CoroutineScope declared in <root>.<get-flowPropertyNative>' type=kotlinx.coroutines.CoroutineScope origin=null
