FILE fqName:<root> fileName:/castToTypeParameter.kt
  FUN name:castFun visibility:public modality:FINAL <T> (x:kotlin.Any) returnType:T of <root>.castFun
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    VALUE_PARAMETER name:x index:0 type:kotlin.Any
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun castFun <T> (x: kotlin.Any): T of <root>.castFun declared in <root>'
        TYPE_OP type=T of <root>.castFun origin=CAST typeOperand=T of <root>.castFun
          GET_VAR 'x: kotlin.Any declared in <root>.castFun' type=kotlin.Any origin=null
  FUN name:castExtFun visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:T of <root>.castExtFun
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun castExtFun <T> (): T of <root>.castExtFun declared in <root>'
        TYPE_OP type=T of <root>.castExtFun origin=CAST typeOperand=T of <root>.castExtFun
          GET_VAR '<this>: kotlin.Any declared in <root>.castExtFun' type=kotlin.Any origin=null
  PROPERTY name:castExtVal visibility:public modality:FINAL [val]
    FUN name:<get-castExtVal> visibility:public modality:FINAL <T> ($receiver:T of <root>.<get-castExtVal>) returnType:T of <root>.<get-castExtVal>
      correspondingProperty: PROPERTY name:castExtVal visibility:public modality:FINAL [val]
      TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
      $receiver: VALUE_PARAMETER name:<this> type:T of <root>.<get-castExtVal>
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun <get-castExtVal> <T> (): T of <root>.<get-castExtVal> declared in <root>'
          TYPE_OP type=T of <root>.<get-castExtVal> origin=CAST typeOperand=T of <root>.<get-castExtVal>
            GET_VAR '<this>: T of <root>.<get-castExtVal> declared in <root>.<get-castExtVal>' type=T of <root>.<get-castExtVal> origin=null
  CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host<T of <root>.Host>
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    CONSTRUCTOR visibility:public <> () returnType:<root>.Host<T of <root>.Host> [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]'
    FUN name:castMemberFun visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, x:kotlin.Any) returnType:T of <root>.Host
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
      VALUE_PARAMETER name:x index:0 type:kotlin.Any
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun castMemberFun (x: kotlin.Any): T of <root>.Host declared in <root>.Host'
          TYPE_OP type=T of <root>.Host origin=CAST typeOperand=T of <root>.Host
            GET_VAR 'x: kotlin.Any declared in <root>.Host.castMemberFun' type=kotlin.Any origin=null
    FUN name:castGenericMemberFun visibility:public modality:FINAL <TF> ($this:<root>.Host<T of <root>.Host>, x:kotlin.Any) returnType:TF of <root>.Host.castGenericMemberFun
      TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?] reified:false
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
      VALUE_PARAMETER name:x index:0 type:kotlin.Any
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun castGenericMemberFun <TF> (x: kotlin.Any): TF of <root>.Host.castGenericMemberFun declared in <root>.Host'
          TYPE_OP type=TF of <root>.Host.castGenericMemberFun origin=CAST typeOperand=TF of <root>.Host.castGenericMemberFun
            GET_VAR 'x: kotlin.Any declared in <root>.Host.castGenericMemberFun' type=kotlin.Any origin=null
    FUN name:castMemberExtFun visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.Any) returnType:T of <root>.Host
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
      $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun castMemberExtFun (): T of <root>.Host declared in <root>.Host'
          TYPE_OP type=T of <root>.Host origin=CAST typeOperand=T of <root>.Host
            GET_VAR '<this>: kotlin.Any declared in <root>.Host.castMemberExtFun' type=kotlin.Any origin=null
    FUN name:castGenericMemberExtFun visibility:public modality:FINAL <TF> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.Any) returnType:TF of <root>.Host.castGenericMemberExtFun
      TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?] reified:false
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
      $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun castGenericMemberExtFun <TF> (): TF of <root>.Host.castGenericMemberExtFun declared in <root>.Host'
          TYPE_OP type=TF of <root>.Host.castGenericMemberExtFun origin=CAST typeOperand=TF of <root>.Host.castGenericMemberExtFun
            GET_VAR '<this>: kotlin.Any declared in <root>.Host.castGenericMemberExtFun' type=kotlin.Any origin=null
    PROPERTY name:castMemberExtVal visibility:public modality:FINAL [val]
      FUN name:<get-castMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.Any) returnType:T of <root>.Host
        correspondingProperty: PROPERTY name:castMemberExtVal visibility:public modality:FINAL [val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
        $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public final fun <get-castMemberExtVal> (): T of <root>.Host declared in <root>.Host'
            TYPE_OP type=T of <root>.Host origin=CAST typeOperand=T of <root>.Host
              GET_VAR '<this>: kotlin.Any declared in <root>.Host.<get-castMemberExtVal>' type=kotlin.Any origin=null
    PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
      FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <TV> ($this:<root>.Host<T of <root>.Host>, $receiver:TV of <root>.Host.<get-castGenericMemberExtVal>) returnType:TV of <root>.Host.<get-castGenericMemberExtVal>
        correspondingProperty: PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
        TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any?] reified:false
        $this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
        $receiver: VALUE_PARAMETER name:<this> type:TV of <root>.Host.<get-castGenericMemberExtVal>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public final fun <get-castGenericMemberExtVal> <TV> (): TV of <root>.Host.<get-castGenericMemberExtVal> declared in <root>.Host'
            TYPE_OP type=TV of <root>.Host.<get-castGenericMemberExtVal> origin=CAST typeOperand=TV of <root>.Host.<get-castGenericMemberExtVal>
              GET_VAR '<this>: TV of <root>.Host.<get-castGenericMemberExtVal> declared in <root>.Host.<get-castGenericMemberExtVal>' type=TV of <root>.Host.<get-castGenericMemberExtVal> origin=null
    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 [operator] 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
