Module: main
// CallableId=test/typeOfX
FUN name:typeOfX visibility:private modality:FINAL returnType:kotlin.reflect.KType [inline]
  TYPE_PARAMETER name:F index:0 variance: superTypes:[kotlin.Any?] reified:true
  VALUE_PARAMETER kind:Regular name:<this> index:0 type:test.A<kotlin.CharSequence>
  VALUE_PARAMETER kind:Regular name:b index:1 type:F of test.typeOfX
  BLOCK_BODY
    RETURN type=kotlin.Nothing from='private final fun typeOfX <F> (<this>: test.A<kotlin.CharSequence>, b: F of test.typeOfX): kotlin.reflect.KType [inline] declared in test'
      CALL 'public final fun typeOf <T> (): kotlin.reflect.KType [inline] declared in kotlin.reflect' type=kotlin.reflect.KType origin=null
        TYPE_ARG T: F of test.typeOfX
// CallableId=test/typeOfPair
FUN name:typeOfPair visibility:private modality:FINAL returnType:kotlin.reflect.KType [inline]
  TYPE_PARAMETER name:F index:0 variance: superTypes:[kotlin.CharSequence; kotlin.Comparable<F of test.typeOfPair>] reified:true
  VALUE_PARAMETER kind:Regular name:<this> index:0 type:test.A<kotlin.CharSequence>
  VALUE_PARAMETER kind:Regular name:b index:1 type:F of test.typeOfPair
  BLOCK_BODY
    RETURN type=kotlin.Nothing from='private final fun typeOfPair <F> (<this>: test.A<kotlin.CharSequence>, b: F of test.typeOfPair): kotlin.reflect.KType [inline] declared in test'
      BLOCK type=kotlin.reflect.KType origin=INLINE_ARGS_CONTAINER
        VAR IR_TEMPORARY_VARIABLE name:tmp0 type:test.A<kotlin.CharSequence> [val]
          GET_VAR '<this>: test.A<kotlin.CharSequence> declared in test.typeOfPair' type=test.A<kotlin.CharSequence> origin=IMPLICIT_ARGUMENT
        VAR IR_TEMPORARY_VARIABLE name:tmp2 type:test.Pair<kotlin.CharSequence, F of test.typeOfPair> [val]
          CONSTRUCTOR_CALL 'public constructor <init> (x: A of test.Pair, y: B of test.Pair) [primary] declared in test.Pair' type=test.Pair<kotlin.CharSequence, F of test.typeOfPair> origin=null
            TYPE_ARG (of class) A: kotlin.CharSequence
            TYPE_ARG (of class) B: F of test.typeOfPair
            ARG x: CALL 'public final fun <get-a> (): T of test.A declared in test.A' type=kotlin.CharSequence origin=GET_PROPERTY
              ARG <this>: GET_VAR '<this>: test.A<kotlin.CharSequence> declared in test.typeOfPair' type=test.A<kotlin.CharSequence> origin=IMPLICIT_ARGUMENT
            ARG y: GET_VAR 'b: F of test.typeOfPair declared in test.typeOfPair' type=F of test.typeOfPair origin=null
        RETURNABLE_BLOCK type=kotlin.reflect.KType origin=null
          INLINED_BLOCK type=kotlin.reflect.KType origin=null
            inlinedFunctionSymbol: public final fun typeOfX <F> (b: F of test.A.typeOfX): kotlin.reflect.KType [inline] declared in test.A
            inlinedFunctionFileEntry: FILE_ENTRY path:lib.kt
            VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:this type:test.A<kotlin.CharSequence> [val]
              GET_VAR 'val tmp0: test.A<kotlin.CharSequence> [val] declared in test.typeOfPair' type=test.A<kotlin.CharSequence> origin=null
            VAR IR_TEMPORARY_VARIABLE_FOR_INLINED_PARAMETER name:b type:test.Pair<kotlin.CharSequence, F of test.typeOfPair> [val]
              GET_VAR 'val tmp2: test.Pair<kotlin.CharSequence, F of test.typeOfPair> [val] declared in test.typeOfPair' type=test.Pair<kotlin.CharSequence, F of test.typeOfPair> origin=null
            RETURN type=kotlin.Nothing from='{IrReturnableBlockImpl}'
              CALL 'public final fun typeOf <T> (): kotlin.reflect.KType [inline] declared in kotlin.reflect' type=kotlin.reflect.KType origin=null
                TYPE_ARG T: test.Pair<T of test.A, F of test.typeOfPair>
