FILE fqName:<root> fileName:/castToTypeParameter.kt
  CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
    thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver 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> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun hashCode (): kotlin.Int declared in kotlin.Any
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
      overridden:
        public open fun toString (): kotlin.String declared in kotlin.Any
    FUN name:castGenericMemberExtFun visibility:public modality:FINAL returnType:TF of <root>.Host.castGenericMemberExtFun
      TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?] reified:false
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.Host<T of <root>.Host>
      VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:kotlin.Any
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun castGenericMemberExtFun <TF> (<this>: kotlin.Any): 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>(index:1): kotlin.Any declared in <root>.Host.castGenericMemberExtFun' type=kotlin.Any origin=null
    FUN name:castGenericMemberFun visibility:public modality:FINAL returnType:TF of <root>.Host.castGenericMemberFun
      TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?] reified:false
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.Host<T of <root>.Host>
      VALUE_PARAMETER kind:Regular name:x index:1 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 returnType:T of <root>.Host
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.Host<T of <root>.Host>
      VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:kotlin.Any
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun castMemberExtFun (<this>: 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 '<this>(index:1): kotlin.Any declared in <root>.Host.castMemberExtFun' type=kotlin.Any origin=null
    FUN name:castMemberFun visibility:public modality:FINAL returnType:T of <root>.Host
      VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.Host<T of <root>.Host>
      VALUE_PARAMETER kind:Regular name:x index:1 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
    PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
      FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL returnType:TV of <root>.Host.<get-castGenericMemberExtVal>
        TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any?] reified:false
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.Host<T of <root>.Host>
        VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:TV of <root>.Host.<get-castGenericMemberExtVal>
        correspondingProperty: PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public final fun <get-castGenericMemberExtVal> <TV> (<this>: TV of <root>.Host.<get-castGenericMemberExtVal>): 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>(index:1): TV of <root>.Host.<get-castGenericMemberExtVal> declared in <root>.Host.<get-castGenericMemberExtVal>' type=TV of <root>.Host.<get-castGenericMemberExtVal> origin=null
    PROPERTY name:castMemberExtVal visibility:public modality:FINAL [val]
      FUN name:<get-castMemberExtVal> visibility:public modality:FINAL returnType:T of <root>.Host
        VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.Host<T of <root>.Host>
        VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:kotlin.Any
        correspondingProperty: PROPERTY name:castMemberExtVal visibility:public modality:FINAL [val]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='public final fun <get-castMemberExtVal> (<this>: 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 '<this>(index:1): kotlin.Any declared in <root>.Host.<get-castMemberExtVal>' type=kotlin.Any origin=null
  FUN name:castExtFun visibility:public modality:FINAL returnType:T of <root>.castExtFun
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:0 type:kotlin.Any
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='public final fun castExtFun <T> (<this>: kotlin.Any): 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
  FUN name:castFun visibility:public modality:FINAL returnType:T of <root>.castFun
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    VALUE_PARAMETER kind:Regular 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
  PROPERTY name:castExtVal visibility:public modality:FINAL [val]
    FUN name:<get-castExtVal> visibility:public modality:FINAL returnType:T of <root>.<get-castExtVal>
      TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
      VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:0 type:T of <root>.<get-castExtVal>
      correspondingProperty: PROPERTY name:castExtVal visibility:public modality:FINAL [val]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='public final fun <get-castExtVal> <T> (<this>: T of <root>.<get-castExtVal>): 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
